Microsoft recently stunned a lot of people by announcing that Service Fabric, the platform upon which many of Microsoft’s cloud services are built, was being released under MIT open-source licensing.
I started to learn about Service Fabric last year. I had heard the term and thought I knew what it was. It wasn’t until I attended an architect boot camp for Microsoft staff and partners, that I realized I didn’t have a clue of what the platform was or how important it was.
Service Fabric is a system that allows you to deploy applications as easy-to-update (and rollback) microservices or containers. These services can be load-balanced and/or replicated across a cluster of machines (as many as 1000 in Azure) offering fault tolerance at the machine and microservice levels with huge levels of scalability. Clever things can be done with storage, enabling microservices to use local fast storage or to use external capacity (shared cluster storage or database services).
Service Fabric has existed for a long time and it has played a huge role in Microsoft’s cloud services. Azure SQL is built on Service Fabric, as are bits of Skype for Business, Cortana, Azure Cosmos DB, and CRM 365. Microsoft has proven this technology and then released it to us.
Service Fabric is available in Azure, where it uses a cluster of virtual machines in a scale set. Alternatively, we can download Service Fabric and deploy it on Windows Server. We can write new microservices code in Visual Studio and push it onto the cluster in a reliable upgrade domain process, similarly to how Azure updates its hosts. We can also deploy services in containers. Or if we have legacy monolithic apps, we can package and run them on Service Fabric and later add/update pieces of code as microservices.
Service Fabric has proven itself as a great platform for scaled out and reliable services. If you need scaled-out event handling (IoT), a gaming platform, or a messaging system, the architecture of Service Fabric is intended to allow developers to write modular code that can be dependable and change quickly.
As of March 14th, Service Fabric is available publicly on GitHub under the MIT open source license. Developers can clone the code, build it for Linux, test it for themselves, log issues, and so forth. The team behind Service Fabric is excited about this release and the opportunity to work with the open source community. The work doesn’t stop now. Service Fabric is still a strategic platform for Microsoft. The work on new features and improvement will continue but now it will be with the community.
Microsoft is immediately welcoming code contributions from the open source world. Though the team did admit that this is all new, so it will take time to get into the swing of things. They also want to finish a complete build, test, and continuous integration pipeline for Windows and Linux.
Once upon a time, Steve Balmer (previous CEO of Microsoft) called Linux a cancer. It was an interesting statement because a large percentage of the graduates that Microsoft hired to write code were educated only in the open-source world. They had to learn Windows, SQL Server, and so on from scratch.
Balmer might be hated in the open-source world for that old proclamation but he did start a change inside of Microsoft. Open source became integral to the corporation’s success. Microsoft’s cloud, Windows Azure, was renamed to Microsoft Azure to de-emphasize the Windows piece and to make Linux a first-class citizen (40 percent of all virtual machines in Azure, as of last October). The networking of Azure uses Microsoft’s own Linux distribution, SONiC, as a switch operating system. Instead of writing its own big data/machine learning system, Microsoft integrated Hadoop into Azure as HDInsight and started contributing code back into the project. Kubernetes, which originated in Google, is baked into Azure for container orchestration at no extra cost. Even the hardware of Azure is developed in an “open-source” manner.
Don’t get me wrong, Windows Server and SQL Server aren’t going open source anytime soon. But in the world of cloud services, where it’s the hosting and enablement/resiliency/integration engineering that is for sale, we should not be surprised that open source-code exists or that previously proprietary code is released to the world. This practice will only strengthen the code and lead to more integrations. When it comes back into Azure, Microsoft’s engineering will hopefully hide the difficulties of open-source product management and result in a better service for all of us.