Sure, I can build a big distributed system the old fashioned way with queues, stateless workers, caches, and a SQL farm on Virtual Machines, but this is a major pain and it’s unlikely that I can make it 1/100th as resilient as the Microsoft Azure team has. Plus, as a developer, I want to spend my time solving business problems not reinventing the wheel.
Pain Point 1: App Upgrades
As a developer of distributed enterprise apps, app upgrades are a pain point, especially when down time cannot be tolerated. Service Fabric solves this deployment and upgrade problem with a new model that upgrades in place across the entire cluster seamlessly. This is awesome! It means that a true cloud scale, consumer quality upgrade experience is possible in the enterprise. Service Fabric allows developers to work on a system that receives updates daily for new features AND bug fixes. This capability aligns with the government’s desire for agile development and delivery of enterprise applications.
Pain Point 2: Inefficiency
Another benefit of an app run time that spans an entire cluster of services is the increased efficiency with computer resources. We often have entire farms of servers, each of which contain production, staging, UAT, and Development environments dedicated to a single application. This results in a lot of servers doing very little most of the time. With Service Fabric, all the apps can be installed on an app run time that spans the cluster of servers and the run time decides what services runs on which server. This results in many apps sharing the same servers, and in turn increasing efficiency.