All Projects → microsoft → Service Fabric

microsoft / Service Fabric

Licence: mit
Service Fabric is a distributed systems platform for packaging, deploying, and managing stateless and stateful distributed applications and containers at large scale.

Programming Languages

C++
36643 projects - #6 most used programming language
C#
18002 projects
c
50402 projects - #5 most used programming language
Roff
2310 projects
CMake
9771 projects
shell
77523 projects

Projects that are alternatives of or similar to Service Fabric

Cloudi
A Cloud at the lowest level!
Stars: ✭ 352 (-87.75%)
Mutual labels:  microservices, cloud-computing, distributed-systems
Awesome Cloud Native
A curated list for awesome cloud native tools, software and tutorials. - https://jimmysong.io/awesome-cloud-native/
Stars: ✭ 1,157 (-59.74%)
Mutual labels:  microservices, cloud-native, containers
Docker Curriculum
🐬 A comprehensive tutorial on getting started with Docker!
Stars: ✭ 4,523 (+57.38%)
Mutual labels:  microservices, cloud-computing, containers
Nff Go
NFF-Go -Network Function Framework for GO (former YANFF)
Stars: ✭ 1,036 (-63.95%)
Mutual labels:  microservices, cloud-native, containers
Service Fabric
We've moved!
Stars: ✭ 258 (-91.02%)
Mutual labels:  microservices, containers, orchestration
Nats Server
High-Performance server for NATS.io, the cloud and edge native messaging system.
Stars: ✭ 10,223 (+255.71%)
Mutual labels:  cloud-native, cloud-computing, distributed-systems
Cloud Native Labs
The Labs for Cloud Native Roadshow on OpenShift https://www.openshift.com/
Stars: ✭ 64 (-97.77%)
Mutual labels:  microservices, cloud-native, containers
Crossplane
Your Universal Control Plane
Stars: ✭ 4,414 (+53.58%)
Mutual labels:  cloud-native, cloud-computing, containers
Micro
Micro is a distributed cloud operating system
Stars: ✭ 10,778 (+275.02%)
Mutual labels:  microservices, cloud-native, distributed-systems
Awesome Microservices
A curated list of Microservice Architecture related principles and technologies.
Stars: ✭ 10,642 (+270.29%)
Mutual labels:  microservices, cloud-native, cloud-computing
Gnes
GNES is Generic Neural Elastic Search, a cloud-native semantic search system based on deep neural network.
Stars: ✭ 1,178 (-59.01%)
Mutual labels:  microservices, cloud-native, distributed-systems
Dasync
Every developer deserves the right of creating microservices without using any framework 🤍
Stars: ✭ 154 (-94.64%)
Mutual labels:  microservices, cloud-computing, distributed-systems
Genie
Distributed Big Data Orchestration Service
Stars: ✭ 1,544 (-46.28%)
Mutual labels:  microservices, distributed-systems, orchestration
Vald
Vald. A Highly Scalable Distributed Vector Search Engine
Stars: ✭ 158 (-94.5%)
Mutual labels:  microservices, cloud-native, distributed-systems
Spring Cloud Kubernetes
Kubernetes integration with Spring Cloud Discovery Client, Configuration, etc...
Stars: ✭ 2,894 (+0.7%)
Mutual labels:  microservices, cloud-native
Baker
Orchestrate microservice-based process flows
Stars: ✭ 233 (-91.89%)
Mutual labels:  microservices, orchestration
Krakend Ce
KrakenD Community Edition. Make your binary of KrakenD API Gateway
Stars: ✭ 245 (-91.48%)
Mutual labels:  microservices, cloud-native
awesome-cloud-native-security
awesome resources about cloud native security 🐿
Stars: ✭ 233 (-91.89%)
Mutual labels:  cloud-computing, cloud-native
Lagom
Reactive Microservices for the JVM
Stars: ✭ 2,590 (-9.88%)
Mutual labels:  microservices, distributed-systems
cb-tumblebug
Cloud-Barista Multi-Cloud Infra Management Framework
Stars: ✭ 33 (-98.85%)
Mutual labels:  orchestration, cloud-computing

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.

Architecture and Subsystem Explorer

Learn about Service Fabric's Core Subsystems, mapped to this repo's folder structure.

Service Fabric release schedule

Here is the upcoming release schedule for Service Fabric runtime versions that we will be supporting starting with version 8.0.

Version Release date
8.0 2021 Mar
8.1 2021 Jul
8.2 2021 Oct
9.0 2022 Mar
9.1 2022 Jul
9.2 2022 Oct

Please note that these dates are advanced estimates and might be subject to change or minor adjustments closer to each release.

We will be publishing upcoming features and roadmap items on Azure Updates for Service Fabric.

Repo status

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 Contributing.md.

Build Requirements

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:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get update
sudo apt-get install -y docker-ce

Optional: Enable executing docker without sudo

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": ["<my DNS server IP here>", "<my DNS secondary server IP here>"] 
}

Take note to replace the above command with your actual local DNS server, and restart docker:

service docker restart

Testing a local cluster

For more details please refer to Testing using ClusterDeployer.

Running a local cluster

For more details please refer Deploying local cluster from build

Documentation

Service Fabric conceptual and reference documentation is available at docs.microsoft.com/azure/service-fabric. Documentation is also open to your contribution on GitHub at github.com/Microsoft/azure-docs.

Samples

For Service Fabric sample code, check out the Azure Code Sample gallery or go straight to Azure-Samples on GitHub.

Channel 9: Inside Azure Service Fabric

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.

Code of Conduct 

All Service Fabric open source projects adopt the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].