Yes — Microsoft’s relationship with the open source community had been, let’s call it, rocky. However, in the past decade, much has changed. The market, the developer ecosystem, and, yes, Microsoft. We believe that openness is good for customers, good for the community, good for civic engagement, and good for business. We put our resources behind that belief. Let me explain.
I have been asking the thought leaders in the local open source community, here in Chicago, about what Microsoft can do to build better linkages between Microsoft and non-Microsoft technologies, with a focus on open source. One of the things that I learned is that Microsoft is doing things in the open source space already that are not widely known. There is a vague recollection that we have a sizable open tech group (Microsoft OpenTech), but what is not known is the breadth of ways they are powering interoperability through both open standards and open source.
Yes, you can fire up Linux environments on Azure, and yes, you can use Eclipse within Visual Studio. But the open technologies (services, languages, databases, environments, standards, devices, OS’s, etc.) goes so much further. Here is just a small sample of the projects that Microsoft OpenTech has released:
- Jenkins plugin for using Windows Azure Blob service (open source Continuous Integration tool)
- Open sourced Reactive Extensions (Rx – a cloud programming model that allows developers to use a common interface for writing event-based applications that interact with diverse data sources, like stock quotes, Tweets, computer events, and Web service requests)
- ActorFx (an open source, non-prescriptive, language-independent model of dynamic distributed objects for building highly available data structures and other logical entities)
- Redis on Windows: MS Open Tech releases 64-bit version and Azure installer (an open source, networked, in-memory, key-value data store)
- VM Depot from MS Open Tech (community-driven catalog of open source virtual machine images for Windows Azure)
- Microsoft SQL Server Connector for Apache Hadoop (supports several databases including MySQL and HDFS)
- Windows Azure plugin for Eclipse with Java (create, develop, test, and deploy Java-based Windows Azure applications using the Eclipse development environment)
- CouchDB-compatible database service (Cloudant Data Layer available to Windows Azure developers)
- Open-sourcing Entity Framework, WebPI, ASP.NET, MVC (open sourced the Entity Framework (EF), a database mapping tool useful for application development in the .NET Framework, as well as WebPI (Microsoft Web Platform Installer) and the ASP.NET and MVC application frameworks)
- MongoDB Installer for Windows Azure (automates the provisioning and deployment of MongoDB replica sets on Windows Azure virtual machines)
- Node.js on Windows Azure and Windows (a server-side programming language for writing highly scalable Internet applications)
- Symfony and Doctrine on Windows Azure (open source web application framework for PHP developers, and the Doctrine Project, a set of open-source libraries)
- Windows Azure command line tool for Mac and Linux (allows non-Windows desktops to manage Windows Azure virtual machines running the Windows Server operating system as well as Linux distributions such as Ubuntu, CentOS, and OpenSUSE.)
Along with some of the better known projects such as:
- Support for Linux virtual machines on Windows Azure
- Support for PHP development on Windows Azure
- Drupal, WordPress and other options in the Windows Azure web sites gallery
- Support for Linux in Microsoft System Center
I also encourage you to look at some of our projects in progress. These projects span cloud apps, developer tools and DevOps, BI and data integration, open web technologies, open sourced VMs, and even apps and games. And if there are open sourced tools that we need to integrate with, or integrate better with, please tweet me at @MSFTChicago.