In my previous post I shared with you the first of the four pillars of Microsoft’s Open Source strategy – Enable, Integrate, Release and Contribute. In this post, I will share my learning and understanding of the second pillar – ‘Integrate’. Integration is about embracing the open source ecosystem by integrating open source technologies into our platform.
There’s a cool way to explore all types of Open Source (OSS) at Microsoft, using opensource.microsoft.com.
You can explore and visit the GitHub repository for any product or component that is utilizing open source from the community or see topics where Microsoft has released/contributed to OSS. The listing can be sorted by what’s trending, by the stars it has on GitHub, by the Forks it has, or by naming of the service.
Examples of OSS Integration within Azure
In my mind, I have bucketed the types of integration you can find into either providing convenience to the OSS community, harnessing innovative technology from OSS and offering enhanced capabilities or service options to the OSS community. Convenience is about bringing cloud capability, scale, and elasticity to OSS technologies, along with the ability to offload management of the underlying infrastructure. Harnessing the innovation power of OSS is where Microsoft has built a cloud service leveraging innovative open source technology, rather than building a ground-up service. Finally, the last form of OSS integration is about the choice and flexibility to use OSS languages/frameworks of your preference to interact with Azure services and to access additional capabilities in those services.
OSS on Azure Integration for Community’s Convenience
There are many OSS technologies today that are offered as a managed cloud service on Azure. They bring the convenience and benefits of cloud and allow the users to offload any management overhead. Developers can simply focus on building their application and plug-in required Azure managed service components such as MySQL, PostgreSQL, Azure Databricks, Web Apps for Containers, App Service for Linux, etc. Most of these services offer community editions of the OSS technology as a managed service, as opposed to an opinionated variation.
OSS Innovation in Azure
Browsing OSS at Microsoft, you can find the links to GitHub repositories for Microsoft services using OSS technology such as Microsoft Machine Learning for Apache Spark, that provides deep learning and data science tools for Apache Spark. Similarly, HDInsight is a fully managed open-source analytics service in Azure that enables Data Warehousing, Machine Learning, IoT and more through the use of popular frameworks such as Hadoop, Spark, Hive, Kafka, Storm, R and more.
Another fitting example is the service offerings Azure has around providing the management of Linux containers, popularized by Docker open source project, with the added power of cloud computing. Azure Container Services with fully managed Kubernetes cluster (AKS) is where Azure is offering a container service utilizing Docker or custom container images with the orchestration of containers done by community developed Kubernetes. In these service examples, Microsoft has built managed service options or focused on integration that allows you to use these OSS technologies with other services and capabilities within Azure. Finally, another way Azure leverages the innovation power of the community, is by releasing our own projects as Open Source, such as the recent announcement on Service Fabric. However, I’ll reserve that for another discussion in my next post about the ‘Release’ pillar of our OSS strategy.
OSS weaved through Azure services
Recently there have been many announcements about improvements and better integration with DevOps tools such as Terraform, Ansible and Jenkins. In each of these announcements, there are deeper management/configuration/tooling efforts to give your workloads access to other Azure services or optimize how they run on Azure.
As always, if you would like to get into technical depth on how any of these open source technologies feel and operate on Azure, please check out Azure Documentation or give it a spin via Azure trial today!
Azure Documentation for various Open Source technologies:
- OSS Languages/Frameworks: Go / Java / PHP / Python / Node.js / Ruby
- OSS Infrastructure & Distributed Systems Platform: LAMP / MEAN / OpenShift /Cloud Foundry / Containers / Linux VMs / Kubernetes
- OSS DevOps & Tools: VSTS / Chef / Jenkins / Terraform / Ansible / Draft / Helm
- OSS Data Platform & Analytics: Hadoop/Kafka/Spark/Storm / MySQL / PostgreSQL / Redis Cache