Exciting updates from Microsoft Build 2018
The Build conference is Microsoft's premier event targeted at software developers. Over the years, a lot of big technology announcements have been made at this conference and this year was no exception. As expected, Azure keeps taking the spotlight over the other Microsoft developer platforms and the company is clearly making very large investments to expand not only its global footprint but the depth and breadth of all its services. In this blog post I want to highlight a few of the most exciting updates and news that came out of the event and what my take is on them. This is not an exhaustive list of course. So let's get started! Planet database I'm going to start with a topic that is dear and near to my heart. If you follow my blog posts you will know I'm a huge fan of Azure's NoSQL database: Cosmos DB. And wow did the team deliver this year! Let's check all the improvements announced:
- Multi-master global replication: this is the big one. Imagine your database in California is also your database in Germany. What one set of users is doing is constantly being replicated to the other one, all with policy based conflict detection and respecting all of Cosmos DB consistency level guarantees. I believe a new generation of global applications will be built on top of this platform. If you have 10 minutes to spare today, you need to check out Dr. Rimma Nehme's amazing "geo-replicated paint" demo right here.
- Sharing throughput across containers: this will allow clients to have different collections, graphs, etc all sharing a pool of Request Units. This was a blocker for clients that wanted to implement multiple data containers but the pricing model was making it cost prohibitive.
- BulkExecutor library: a .NET library to do data changes in bulk. This was a previous pain point because you had to roll your own solution and there was no difference in the backend. With this new library now we have an official way to do bulk changes and also the Cosmos Db team estimates as much as a 10x throughput improvement. Great stuff!
- Cosmos DB on VNet endpoint: yes this is Cosmos DB related but again it shows Microsoft's compromise to continue moving away from public endpoints and into secure internal service connections.
- Global VNet peering: you can now peer VNets across Azure regions transparently. Again this is not only more secure but also allows for bigger, scalable application architectures. For example, microservices that can transparently and securely cross VNet boundaries
- Azure DDOS protection: built in capability of Azure to protect against Distributed Denial of Service attacks. It's a wild west out there on the Internet where someone can rent a botnet and try to bring down any public site. Anything providers can do to kill this type of attack is great.
- Confidential Compute platform: in tandem with the latest security improvements on Intel Xeon processors, Azure is rolling out a new set of VMs (DC series) that will be able to do compute on Trusted Execution Environments. Basically, your data remains encrypted at all points even down to the CPU level where the Intel hardware extensions can do computation on it. This means the cloud provider has absolutely zero visibility of your data at any point in time. Many industries will be moving in this direction and I'm glad to see Azure stepping forward first.
- Azure CDN: Azure now has a first party service for content delivery all over the world. This was provided previously as a third party offering, but like other services (MySQL DbaaS for example), there were likely several customers that wanted this to be officially provided by Microsoft. And of course, other cloud providers have this as a core offering so competitiveness plays a role as well.
- Azure Blockchain Workbench: blockchain is everywhere and nowhere at the same time. What I mean by that is that there is large industry interest on what type of new applications will be built on distributed ledger technology, but there is not a large pool of experienced developers in this area to make all these ideas a reality. Microsoft is working to fix this by providing a turnkey solution that will allow you to deploy, manage and code against an existing blockchain platform (Ethereum, Hyperledger, etc) easily all using APIs that abstract the infrastructure complexity away. Basically, trying to bring blockchain development to the masses. I'm a big proponent of distributed ledger systems where there is a good use case for them and I'm excited about lowering the barrier of entry for building one.
- Azure Standard Load Balancer: the capabilities of the load balancing service have been greatly expanded. There is better VNet support and big scale improvement with up to 1000 VMs supported as part of the backend load balanced pool.
- Azure Event Hubs Kafka endpoint: it's no secret that Kafka is becoming ubiquitous on most data platform architectures due to it's robust message processing scalability and extensibility. To capitalize on this, Microsoft has taken it's existing Event Hubs service and built a compatibility layer for Kafka. This means your existing applications will be using Event Hubs but they will get a Kafka endpoint and will think they are talking to a Kafka cluster. This is an interesting move to entice people to migrate to a fully managed, simpler service instead of running Kafka on your own or through HDInsight.
- Azure Functions improvements: Microsoft knows serverless computing is a big deal and they also know that AWS has a big head start here with their Lambda service. As such, there are big things happening both with Azure Functions and Azure Event Grid. Better monitoring, better diagnostics, support for long running stateful operations that open the service to more use cases.
- Cognitive Services improvements: there is just too much here to list in this blog post. You can see the full list here. I want to highlight it though because it just shows that Microsoft is very serious on their AI investment and their approach is to bundle most AI research and operations inside easy to use APIs. The goal of course is to have developers add AI capabilities to their applications without having to be AI specialists themselves. On top of this, Microsoft is opening up their research pipeline for developers to play around with what they have cooking on their Cognitive Services Labs.