Over the last few years, Docker and software container systems have become the industry standard for packaging and deploying applications. A consequence of this trend has been the development of container orchestration systems like Kubernetes and Apache Mesos. Microsoft Azure has entered the space with its own comprehensive system orchestration and management system, Azure Service Fabric.
What exactly is the value-add for Service Fabric? How do we use it to solve container-related technical challenges? This course answers both of those questions and goes even further by covering a number of relevant software design concepts. From this course, you will learn what Service Fabric does, how to use it to deploy a real application, and how Service Fabric incorporates design patterns and structures such as the actor model and collections.
By the end of the course, you should be ready to work with a team using Azure Service Fabric to create a working application.
Learning Objectives
- Use Azure Service Fabric to solve infrastructure orchestration challenges
- Learn about software concepts relevant to Service Fabric, including collections, the actor model, and stateful vs stateless services
- Deploy an application to a Service Fabric cluster
Intended Audience
- People looking to build applications using Microsoft Azure
- People interested in container orchestration systems
Prerequisites
- General knowledge of IT architecture
- General knowledge of software containers
Links
What is Service Fabric? With so many cloud platforms and management technologies out there these days, it's easy to get confused when trying to answer the simplest question, what does it do? Let's try to concisely answer that question for Azure Service Fabric.
Azure Service Fabric, what does it do? Well, it does a lot of things. Service Fabric is described as a distributed systems platform. A phrase that may, or may not, help clarify. Really, the simplest way to describe it would be to think of it as an application management system. Now, management is really the key word. Service Fabric is a comprehensive solution, it's not a do one thing well, narrowly focused command line, UNIX tool. Rather, Service Fabric is more like Kubernetes, it's a powerful, full-featured, container deployment and orchestration platform.
Now, if you're familiar with Kubernetes, or other container management systems, you'll have an easier time understanding Service Fabric. Service Fabric, like Kubernetes, lets you create scalable microservices and containers. There are many similarities. As with Kubernetes, you will create something called a cluster, which is simply a set of physical resources, servers running in a cloud or on-premises. Once you have a cluster up and running, you will use various tools, both CLI and web-based, to get the cluster up, and then you can deploy applications into that cluster. The applications take the form of containers, powered by either Docker or Windows Server, depending on your environment. The cluster will download the appropriate images and run the application using an install script or some other process you define.
Now, a complete application may involve several different containers. Some containers may need to be publicly accessible and so the cluster will need SSL certificates and domain names. Clusters may need to run several copies of the container across several physical servers for scaling and redundancy purposes. Clusters may also need to access secrets, connect to databases, or manage other forms of state or connect to other data centers. In the real world of deploying and managing software service, there is a lot of complexity and there are a lot of moving parts. Service Fabric is an all-in-one solution for managing that complexity.
Now, the cool thing about Service Fabric is that again, like Kubernetes, it's actually platform agnostic. It can work in Microsoft Azure, it can work at other providers like AWS, and it can work deployed on-premises on your own hardware, or even on your own laptop. Even better, Microsoft recently open-sourced Service Fabric, it's open-sourced now, so you can look under the hood, play around with it on your own. Check the GitHub link below (https://github.com/Azure/service-fabric).
So, who exactly is Service Fabric for? What kind of people are really the target, when is it a good idea to use Service Fabric? As I said, Service Fabric is comprehensive, it's a comprehensive solution. As a tool, don't think of it as a surgeon's scalpel, it's more like an automated surgery-performing robot, right? And just like with any automated surgery-performing robot it's best not to start using it suddenly without careful planning. Service Fabric is best used either very early in a software project, where you can lock in the right workflows and practices, or with a very stable and mature project that needs to be migrated to a more scalable platform. Projects that are in between those two extremes, that are still very malleable, I would argue should really consider their use case and ensure Service Fabric is solving their problems.
Okay, so I think now we a good high-level understanding of what Service Fabric is, we get the basic idea. Now, in the next session we're gonna break that down into more specific features and clearly talk about how to actually use Service Fabric in practice. We'll go through a few scenarios and ensure that your understanding of Service Fabric and how it works is complete. So, if you're ready, let's get started.
Jonathan Bethune is a senior technical consultant working with several companies including TopTal, BCG, and Instaclustr. He is an experienced devops specialist, data engineer, and software developer. Jonathan has spent years mastering the art of system automation with a variety of different cloud providers and tools. Before he became an engineer, Jonathan was a musician and teacher in New York City. Jonathan is based in Tokyo where he continues to work in technology and write for various publications in his free time.