As many of you known for the 2020 year is predicted X billion connected people with over Y million applications processing Z petabytes of data and the traditional software architectures, development processes, deployment models, and release processes are not going to suffice.
The monolithic application will be substituted with micro-service architecture that provides a mechanism to break down the monolithic application in to distributed loosely coupled autonomous services that can be developed, tested and deployed independently.
Example microservices are protocol gateways, user profiles, shopping carts, inventory processing, queues, caches, they can defined by:
- Is independently versioned, scaled, and deployed
- Has a unique name that can be resolved
- Interacts with other microservices over well-defined interfaces like REST
- Remains logically consistent in the presence of failures
- Hosted in a container (code + config)
- Can be written in any language or framework
The Microsoft Azure Service Fabric is a microservices platform giving every microservice a unique name that can either be stateless or stateful.
Stateless microservices (protocol gateways, web proxies, etc.) do not maintain any mutable state outside of any request and its response from the service. Stateful microservices (user accounts, databases, devices, shopping carts, queues etc.) maintain mutable, authoritative state beyond the request and its response.
- Instant releases: Each service can be packaged, maintained and deployed independently thus enabling just-in-time releases.
- Separation: Developers can focus on a specific service and develop the service using a language of their choice.
- Integration and inter-dependencies across services: Though the services are isolated, they can be functionally dependent on each other. A composition of services needs to be built such that they deliver the required business goals.
- Portable deployments: A robust application deployment requires mirroring the production environment across Dev and QA. Abstracting the application packaging from the infrastructure dependencies can make the application portable across different environments.
- On-demand provisioning of infrastructure: Creating a container or a container cluster requires Developers to have knowledge and experience on provisioning and managing infrastructures.
Service Fabric powers many Microsoft services today such as SQL Databases, Cortana, Power BI, Event Hubs, Skype and many core Azure Services. Service Fabric’s services can start small, as needed, and grow to massive scale with hundreds or thousands of machines, creating Service Fabric clusters across availability sets in a region or across regions.
Service Fabric provides comprehensive runtime and life-cycle management capabilities to applications composed of these microservices. It hosts microservices inside containers that are deployed and activated across the Service Fabric cluster.
thanks for reading.