‘Microsoft loves Linux’ – yes you read it right. There was a time when Linux was compared with Cancer once. The scenario has totally changed. Now they are kind of in a romantic relationship. If you have followed some recent announcements by Microsoft in Satya Naddela era, they are really focused on making things open source, making things cross platform, building things for Cloud and Mobile first world. Few years ago, we got .NET Core – a modular, high performing light weight .NET framework to build cross platform applications targeting Windows, Linux and MacOS. Which enabled us modernising the application in the era of client side heavy, modular, containerised applications built for cloud and obviously targeting operating system of our choice. Build in one platform run in another. This was not possible at all in the past.
Recently Microsoft has released SQL Server 2017 for Linux. One of the biggest server product built for Linux by Microsoft. It is to give more freedom to their customers to choose operating system of their choice. Oracle is doing the same thing for years now, their database can live in Windows as well as in Linux servers. This is to tap into the market where there are players already exists and firms are heavily into Linux Eco system.
Having said all these, how is it going to affect you and your clients? Let’s talk about a typical Web application development scenario – as a consultant of Microsoft stack development team, I was asked many times for a new client Implementation to choose right tools and technology platform for their web applications. As an obvious choice ASP.NET with C# for web, and for data storage SQL Server database was the number one candidate. Since ASP.NET and SQL Server both were tightly coupled with Windows OS so far, we had no other choice than to suggest our clients to go for Windows Server only.
Now, when giving a ball park estimate about the Server OS and other software licensing cost to our clients, it was found most of the times that – it was overshooting clients budget for a small to mid-sized implementation. Since the licensing model for Windows Server is complex and costly, it was a driving factor for over budgeting. For some other clients who already has their Eco-system built in Linux, and doesn’t want to move from there to Windows Eco system, for those cases also it was a deal breaker. If you are a Microsoft technology development shop than you wouldn’t feel comfortable suggesting your clients to choose another low cost open source platform. The reason being –
- You already have a resource pool of Microsoft technology stack development.
- It will take significant amount of time and money for your development team to learn any new open source platform. – and for sure clients won’t wait for that.
So how would you deal with it? as everyone knows Linux is free and open source distribution, but in reality it’s not completely free. Industry leading Linux distributions like ReadHat or Ubuntu charges for support. For sure customers won’t go for production without the support from the OS vendors. So, you have to purchase support from the vendors. Still you are going to save money for your clients. Wondering how much? It was found in many studies that total cost of ownership (TCO) of Linux is about 34% lesser than Windows. Another study says – Unix and Unix-like operating systems powers about 67% percent of all web servers and the majority runs on Linux. In-fact Microsoft says more than 1/3 of their VM’s in the Azure are in Linux. Microsoft now supports two of their biggest candidate .NET framework as .NET Core and SQL Server in Linux. Recently Amazon AWS also started supporting .NET core and SQL Server in Linux. Eventually all other cloud and shared hosting providers started supporting this and coming up with competitive pricing model. This is just the beginning.
After going through all the above texts and numbers – it’s a no-brainier now. If you use Linux as web server for your ASP.NET website and SQL Server for Linux for database – you are good to go. You are saving your client’s money on server operating system licensing. You are saving money by not spending in skill set development for your team.
Now roll up your sleeves and start developing ASP.NET Core website in MVC, deploy it in the Linux web server such as Apache. Deploy SQL Server 2017 in Linux database server or may be in a Docker container, you are all set. **
Your development team is happy, since they don’t have to slog long hours to learn a new thing. Your client is happy, since you have saved a good amount money. So…It’s a win-win situation for you and your client both.
** My upcoming posts will talk about building and deploying ASP.NET Core MVC web apps for Linux. Till then Stay tuned and stay healthy.
Check this post on how to install Linux on Windows 10.