Service Fabric is a distributed systems platform for packaging, deploying, and managing stateless and stateful distributed applications and containers at large scale.
Service Fabric runs on Windows and Linux, on any cloud, any datacenter, across geographic regions, or on your laptop.
Service Fabric represents the next-generation platform for building and managing these enterprise-class, tier-1, cloud-scale applications running in containers.
Microsoft Azure Service Fabric is a distributed systems platform designed to simplify the development, deployment, and management of both stateless and stateful distributed applications at scale. This robust solution enables organizations to build highly reliable, performant, and cost-efficient enterprise-class applications in containers.
Key Features:
Stateless and Stateful Application Support: Service Fabric handles both types of applications seamlessly, ensuring flexibility for diverse workloads.
Cross-Platform Compatibility: Runs on Windows and Linux, offering versatility across environments.
Scalability: Easily scales to meet demand, whether deployed in the cloud, datacenter, or across regions.
Self-Healing Capabilities: Automatically detects and resolves issues, minimizing downtime.
Resource Efficiency: Optimizes resource utilization for cost savings.
README
Service Fabric
Service Fabric is a distributed systems platform for packaging, deploying, and managing stateless and stateful distributed applications and containers at large scale. Service Fabric runs on Windows and Linux, on any cloud, any datacenter, across geographic regions, or on your laptop.Service Fabric represents the next-generation platform for building and managing these enterprise-class, tier-1, cloud-scale applications running in containers.
We are in the process to move our development to GitHub. Until then, the Service Fabric team will continue regular feature development internally. We'll be providing frequent updates here and on our team blog as we make progress.
Quick look at our current status
Service Fabric build tools for Linux
Basic tests for Linux builds available
Container image with build tools available to run builds
Providing feedback and filing issues
We have multiple repositories (in addition to this one) that constitute the Service Fabric product. For more information on how to provide feedback and file issues across the different components (and associated repositories), please see .
A vulnerability scanner for container images and filesystems. Easily install the binary to try it out.
Works with Syft, the powerful SBOM (software bill of materials) tool for container images and filesystems.
Syft is a powerful and easy-to-use open-source tool for generating Software Bill of Materials (SBOMs) for container images and filesystems. It provides detailed visibility into the packages and dependencies in your software, helping you manage vulnerabilities, license compliance, and software supply chain security.
Create fully functional virtual Kubernetes clusters - Each vcluster runs inside a namespace of the underlying k8s cluster. It's cheaper than creating separate full-blown clusters and it offers better multi-tenancy and isolation than regular namespaces.
Generate Software Bill of Materials (SBOM) for most applications and container images with a single command. Generate Operations Bill of Materials (OBOM) for Linux and Windows hosts. Integrate with any CI/CD pipeline. Automatically submit the generated BOM to your dependency track server for analysis.
Okteto is a cloud-native development platform that bridges the gap between local development and production, enabling seamless development and deployment in Kubernetes clusters.
A vulnerability scanner for container images and filesystems. Easily install the binary to try it out.
Works with Syft, the powerful SBOM (software bill of materials) tool for container images and filesystems.
Syft is a powerful and easy-to-use open-source tool for generating Software Bill of Materials (SBOMs) for container images and filesystems. It provides detailed visibility into the packages and dependencies in your software, helping you manage vulnerabilities, license compliance, and software supply chain security.
Create fully functional virtual Kubernetes clusters - Each vcluster runs inside a namespace of the underlying k8s cluster. It's cheaper than creating separate full-blown clusters and it offers better multi-tenancy and isolation than regular namespaces.
Generate Software Bill of Materials (SBOM) for most applications and container images with a single command. Generate Operations Bill of Materials (OBOM) for Linux and Windows hosts. Integrate with any CI/CD pipeline. Automatically submit the generated BOM to your dependency track server for analysis.
Okteto is a cloud-native development platform that bridges the gap between local development and production, enabling seamless development and deployment in Kubernetes clusters.
High Availability: Ensures applications remain accessible with minimal latency.
Audience & Benefits:
Ideal for developers and IT teams tasked with building large-scale enterprise applications. Service Fabric provides the tools needed to ensure reliability, performance, and scalability while reducing operational complexity and costs.
Installation is straightforward via winget, allowing seamless integration into your development workflow.
The requirements below are based off running clean builds using ninja, with the command
runbuild.sh –c –n
The builds were run on Azure Linux VMs with added disk capacity. If you want to to build on an Azure machine you need to add approximately 70GB for the source+build outputs.
These times should be taken as estimates of how long a build will take.
Machine SKU
Cores
Memory
Build Time
Standard_D8s_v3
8
32GB
~4 hours
Standard_D16s_v3
16
64GB
~2 hours
Standard_D32s_v3
32
128GB
~1 hour
On a smaller VM (Standard_D4s_V3 / 4 cores / 16GB) the build may fail. You may be able to build on a machine with less RAM if you limit the parallelism using the -j switch.
The build also requires approximately 70GB of disk space.
Setting up for build
Get a Linux machine
This is the Linux version of Service Fabric. You need a Linux machine to build this project. If you already have a Linux machine, great! You can get started below. If not, you can get a Linux machine on Azure.
Installing docker
Our build environment depends on Docker. In order to get started you will need to install docker.
There are many ways to install docker. Here is how to install on Ubuntu:
By default docker requires root privelages to run. In order to run docker as a regular user (i.e, not root), you need to add the user to the docker user group:
sudo usermod -aG docker ${USER}
su - ${USER}
You do not need to do this, but note that if you skip this step, you must run all docker commands with sudo.
Build Service Fabric
To start the build inside of a docker container you can clone the repository and run this command from the root directory:
./runbuild.sh
This will do a full build of the project with the output being placed into the out directory. For more options see runbuild.sh -h.
Additionally in order to build and create the installer packages you can pass in the -createinstaller option to the script:
./runbuild.sh -createinstaller
Optional: Build the container locally
If you would prefer to build the container locally, you can run the following script:
sudo ./tools/builddocker.sh
Currently, the build container is based off a base image that includes a few Service Fabric dependencies that have either not yet been open sourced, or must be included due to technical constraints (for example, some .NET files currently only build on Windows, but are required for a Linux build).
This will pull all of the required packages, add Service Fabric internal dependencies, and apply patches.
Troubleshooting: Internet connectivity when installing local docker containers behind a firewall
A common issue with building a docker container behind a firewall is when the firewall blocks the default DNS used by docker. This will manifest as packages failing to download during the docker build step (such as in the builddocker.sh script above).
To fix this, you need to tell Docker to use an alternative DNS server. As a root user, create or edit the Docker daemon's config file at /etc/docker/daemon.json so that it has an entry that looks like this:
{
"dns": ["", ""]
}
Take note to replace the above command with your actual local DNS server, and restart docker:
Take a virtual tour with us and meet some of the folks who design and implement service fabric. This Channel 9 YouTube playlist will continue to grow over time with content describing the inner workings of Service Fabric. We have covered most of the subsystems already.
License
All Service Fabric open source projects are licensed under the MIT License.