Service Fabric

Official Documentation

Service Description

The Service Fabric is the latest member in the Compute Services family. Apps written for the Service Fabric differ from Apps in other compute modes in terms of structure and deployment. With Service Fabric, applications can be made up of microservices that can be installed dynamically and distributed to a pool of provisioned virtual machines. The instances of a microservice can share the resources with other microservices, i.e., more than one microservice instance can be executed on a virtual machine. An advantage over the other execution options is the significantly more flexible resource allocation and better utilization of the machines. Applications can scale more flexibly, specifically at the microservice level. Individual functions can be packaged into microservices and then scaled very individually (if, e.g., a load peak occurs only in a certain application function). However, applications have to be written very specifically for the Azure Service Fabric.

Getting Started

  1. Service Fabric Learning Path
    10/3/2016, Webpage
  2. Design modern microservice applications on Microsoft Azure Service Fabric
    9/30/2016, Video, 1:18:26
  3. Building Microservices Applications on Azure Service Fabric
    9/25/2016, Mva
  4. What is Azure Service Fabric Cluster?
    11/9/2016, Video, 0:18:11
  5. Azure for Developers - From App Services to Service Fabric
    2/10/2017, Video, 1:17:34
  6. Microservices Design and Patterns
    6/23/2016, Mva

Azure Documentation

1. Overview
     1.1. What is Service Fabric?
     1.2. Understand microservices
     1.3. Big picture
     1.4. Application scenarios
     1.5. Patterns and scenarios
     1.6. Architecture
     1.7. Terminology
2. Get started
     2.1. Set up your development environment
          2.1.1. Windows
          2.1.2. Linux
          2.1.3. Mac OS
     2.2. Create your first application
          2.2.1. C# on Windows
          2.2.2. Java on Linux
          2.2.3. C# on Linux
     2.3. Deploy apps on a local cluster
     2.4. Deploy .NET apps in a container
     2.5. Create your first cluster on Azure
     2.6. Create your first standalone cluster
     2.7. Create your first container app
3. How To
     3.1. Build an application
          3.1.1. Concepts
               3.1.1.1. Supported programming models
               3.1.1.2. Application model
               3.1.1.3. Hosting model
               3.1.1.4. Service manifest resources
               3.1.1.5. Service state
               3.1.1.6. Service partitioning
               3.1.1.7. Availability of services
               3.1.1.8. Scalability of applications
               3.1.1.9. ASP.NET Core
          3.1.2. Plan app capacity
          3.1.3. Build a guest executable service
               3.1.3.1. Deploy a guest executable
               3.1.3.2. Deploy multiple guest executables
          3.1.4. Build a container service
               3.1.4.1. Overview
               3.1.4.2. Deploy Windows container
               3.1.4.3. Deploy Linux container
               3.1.4.4. Docker compose (preview)
               3.1.4.5. Resource Governance for Containers and Services
               3.1.4.6. Volume and logging drivers
          3.1.5. Build a Reliable Service service
               3.1.5.1. Overview
               3.1.5.2. Concepts
                    3.1.5.2.1. Reliable Services lifecycle - C#
                    3.1.5.2.2. Reliable Services lifecycle - Java
               3.1.5.3. Reliable Collections
                    3.1.5.3.1. Reliable Collections
                    3.1.5.3.2. Reliable Collection guidelines & recommendations
                    3.1.5.3.3. Working with Reliable Collections
                    3.1.5.3.4. Transactions and locks
                    3.1.5.3.5. Reliable Concurrent Queue
                    3.1.5.3.6. Reliable Collection serialization
                    3.1.5.3.7. Reliable State Manager and Reliable Collection internals
               3.1.5.4. Get started
                    3.1.5.4.1. C# on Windows
                    3.1.5.4.2. Java on Linux
               3.1.5.5. Configure
               3.1.5.6. Send notifications
               3.1.5.7. Backup and restore
               3.1.5.8. Communicate with services
                    3.1.5.8.1. Communicate with Reliable Services
                    3.1.5.8.2. Service Remoting - C#
                    3.1.5.8.3. Service Remoting - Java
                    3.1.5.8.4. WCF
                    3.1.5.8.5. Secure communications - C#
                    3.1.5.8.6. Secure communications - Java
               3.1.5.9. Advanced usage
          3.1.6. Build a Reliable Actor service
               3.1.6.1. Overview
               3.1.6.2. Concepts
                    3.1.6.2.1. Architecture
                    3.1.6.2.2. Lifecycle and garbage collection
                    3.1.6.2.3. State management
                    3.1.6.2.4. Polymorphism
                    3.1.6.2.5. Reentrancy
                    3.1.6.2.6. Type serialization
               3.1.6.3. Get started
                    3.1.6.3.1. C# on Windows
                    3.1.6.3.2. Java on Linux
               3.1.6.4. Send notifications
               3.1.6.5. Set timers and reminders
               3.1.6.6. Configure KvsActorStateProvider
               3.1.6.7. Configure communications settings
               3.1.6.8. Configure ReliableDictionaryActorStateProvider
          3.1.7. Communicate with services
               3.1.7.1. Service communication
               3.1.7.2. DNS service
               3.1.7.3. Reverse proxy
               3.1.7.4. Configure reverse proxy for secure communication
          3.1.8. Add a web front end
          3.1.9. Work in an IDE
               3.1.9.1. Get started with Eclipse plugin for Java development
               3.1.9.2. Manage apps in Visual Studio
               3.1.9.3. Configure secure connections in Visual Studio
               3.1.9.4. Configure your application for multiple environments
          3.1.10. Configure security
               3.1.10.1. Manage application secrets
               3.1.10.2. Configure security policies for your application
          3.1.11. Debug
               3.1.11.1. Debug a C# service in VS
               3.1.11.2. Debug a Java service in Eclipse
               3.1.11.3. Common errors and exceptions
          3.1.12. Monitor and diagnose locally
               3.1.12.1. Windows
               3.1.12.2. Linux
          3.1.13. Migrate from Cloud Services
               3.1.13.1. Compare Cloud Services with Service Fabric
               3.1.13.2. Migrate to Service Fabric
               3.1.13.3. Recommended practices
     3.2. Manage application lifecycle
          3.2.1. Overview
          3.2.2. Package an application
          3.2.3. Understand the ImageStoreConnectionString setting
          3.2.4. Deploy or remove applications
               3.2.4.1. PowerShell
               3.2.4.2. Visual Studio
               3.2.4.3. FabricClient APIs
          3.2.5. Upgrade an application
               3.2.5.1. Overview
               3.2.5.2. Configure application upgrade
               3.2.5.3. Application upgrade parameters
               3.2.5.4. Upgrade
                    3.2.5.4.1. PowerShell
                    3.2.5.4.2. Visual Studio
               3.2.5.5. Troubleshoot application upgrades
               3.2.5.6. Data serialization in application upgrades
               3.2.5.7. Application upgrades advanced topics
          3.2.6. Test applications and services
               3.2.6.1. Fault analysis overview
               3.2.6.2. Test service-to-service communication
               3.2.6.3. Simulate failures
                    3.2.6.3.1. Using controlled chaos
                    3.2.6.3.2. Using test actions
                    3.2.6.3.3. During workloads
                    3.2.6.3.4. Using test scenarios
                    3.2.6.3.5. Using the node transition APIs
               3.2.6.4. Load test your application
          3.2.7. Set up continuous integration
               3.2.7.1. Set up continuous integration with VSTS
               3.2.7.2. Deploy your Linux Java app using Jenkins
     3.3. Create and manage clusters
          3.3.1. Overview
          3.3.2. Concepts
               3.3.2.1. Describe a cluster
               3.3.2.2. Cluster security
               3.3.2.3. Feature differences between Linux and Windows
          3.3.3. Plan and prepare
               3.3.3.1. Capacity planning
               3.3.3.2. Disaster recovery
          3.3.4. Clusters on Azure
               3.3.4.1. Concepts
                    3.3.4.1.1. Node types and VM Scale Sets
                    3.3.4.1.2. Cluster networking patterns
               3.3.4.2. Create
                    3.3.4.2.1. Azure portal
                    3.3.4.2.2. Azure Resource Manager
                    3.3.4.2.3. Visual Studio and Azure Resource Manager
               3.3.4.3. Scale
                    3.3.4.3.1. Manually
                    3.3.4.3.2. Programmatically
               3.3.4.4. Upgrade
               3.3.4.5. Set access control
               3.3.4.6. Configure
               3.3.4.7. Manage cluster certificates
               3.3.4.8. Delete
          3.3.5. Standalone clusters
               3.3.5.1. Plan and prepare for your deployment
               3.3.5.2. Create
                    3.3.5.2.1. Create on-premises
                    3.3.5.2.2. Create on Azure virtual machines
                    3.3.5.2.3. Secure using certs
                    3.3.5.2.4. Secure using Windows security
                    3.3.5.2.5. Contents of the standalone package
               3.3.5.3. Scale
               3.3.5.4. Set access control
               3.3.5.5. Configure
               3.3.5.6. Upgrade
          3.3.6. Visualize a cluster
          3.3.7. Connect to a secure cluster
          3.3.8. Manage a cluster using Azure CLI
          3.3.9. Patch cluster nodes
          3.3.10. Manage and orchestrate cluster resources
               3.3.10.1. Cluster Resource Manager overview
               3.3.10.2. Cluster Resource Manager architecture
               3.3.10.3. Describe a cluster
               3.3.10.4. Application groups overview
               3.3.10.5. Configure Cluster Resource Manager settings
               3.3.10.6. Resource consumption metrics
               3.3.10.7. Use service affinity
               3.3.10.8. Service placement policies
               3.3.10.9. Manage a cluster
               3.3.10.10. Cluster defragmentation
               3.3.10.11. Balance a cluster
               3.3.10.12. Throttling
               3.3.10.13. Service movement
     3.4. Monitor and diagnose
          3.4.1. Monitor and diagnose applications
          3.4.2. Generate events
               3.4.2.1. Generate infrastructure level events
                    3.4.2.1.1. Reliable Services events
                    3.4.2.1.2. Reliable Actors events
               3.4.2.2. Generate application level events
          3.4.3. Inspect application and cluster health
               3.4.3.1. Monitor Service Fabric health
               3.4.3.2. Report and check service health
               3.4.3.3. Add custom health reports
               3.4.3.4. Troubleshoot with system health reports
               3.4.3.5. View health reports
          3.4.4. Aggregate events
               3.4.4.1. Aggregate events with EventFlow
               3.4.4.2. Aggregate events with Azure Diagnostics
                    3.4.4.2.1. Windows
                    3.4.4.2.2. Linux
          3.4.5. Analyze events
               3.4.5.1. Analyze events with Application Insights
               3.4.5.2. Analyze events with OMS
          3.4.6. Troubleshoot your local cluster
4. Reference
     4.1. PowerShell (Azure)
     4.2. PowerShell
     4.3. Azure CLI
     4.4. Java API
     4.5. .NET
     4.6. REST
5. Resources
     5.1. Azure Roadmap
     5.2. Common questions about Service Fabric
     5.3. Learning path
     5.4. MSDN Forum
     5.5. Pricing
     5.6. Sample code
     5.7. Service Fabric support options
     5.8. Service Updates
     5.9. Videos

Tools

Tool Description