SlideShare a Scribd company logo
Microservices
Resilient and Reliable Service Implementation Using Azure Service Fabric
By Brian Perera and the Micros Team
1 Microservices
• Introduction
• Monoliths. SOA and Microservices
• Common Microservice design patterns
Azure Service Fabric
• Introduction
• Building applications with Azure Service Fabric programming models
• Deployment internals - Clusters and Nodes
Demo POC
Agenda for the day
2
3
• Microservice architecture is a method of developing software applications as a suite of independently
deployable and autonomous services.
• Each service runs a unique process and has a bounded context.
• Service isolation is achieved using containers.
• Inter service communicates through a well-defined, lightweight mechanism (API’s and Message Queues)
Microservices Architecture
Reliable/Concurrent
Collections
Microservices Architecture
User Interface
Business Layer
Data Interface
SQL Server
Monolithic Microservices
.NET
Microservice
NodeJs
Microservice
Java
Microservice
User Interface
SQL Server MongoDB Oracle
.NET
Microservice
Shipping Service
(.NET)
NodeJs
Microservice
Inventory
Reports
(Node.js)
Java
Microservice
Product Catalog
(Java)
Isn't SOA the same?
SOA
Microservices
Differentiators
• Application Modeling happens around business
capabilities
• Scope and size defined using Bounded context
• Autonomous Services
• Lightweight communication
• Automated deployments
Common Myth
SOA
Coarse-grained
Microservices
Fine-grained
• Technology diversity (.NET, Java, Node etc…)
• Resilience
• Autonomous services
• High reliability and availability
• Individually scalable services
• Expecting ease of deployment
o Partial deployment
o Service upgrade with ensure zero down time (Rolling updates, Blue/Green deployment)
• If you need organizational alignment
o Full stack development team for each department
• Increase developer productivity
o Faster trouble shooting using service monitoring
o Reduce ramp up time, due to simplicity
When to use Microservices?
• If the solution is simple
• When you don’t have full stack developers
• When your team does not have Domain Driven Design expertise
• When performance is more important than reliability and availability
• When you don’t have a matured Dev Ops team to manage services and deployments
• If you don’t believe in concepts like “Big Design Up Front”
• Testing services is a relatively cumbersome
• Multiple services to be tested
• Service integration testing is challenging
When not to use Microservices
Microservices Design Patterns
Circuit Breaker Pattern
Handle faults that may take a variable amount of time to rectify when connecting to a remote service or
resource. This pattern can improve the stability and resiliency of an application.
Common Microservices Design Patterns
Closed
Success
Open
Half
Open
Fail Fast
Failure or Timeout
Success
Failure
Wait time elapsed
Common Microservices Design Patterns
Api Gateway Pattern
The API Gateway pattern defines how clients access the services in a microservices architecture.
The Api-Gateway defines a single entry point for all clients.
API-Gateway
.NET
Microservice
NodeJs
Microservice
Java
Microservice
Client
Database per Service pattern
Keep each microservices persistent data private to that service and accessible only via its API.
Common Microservices Design Patterns
.NET
Microservice
NodeJs
Microservice
Java
Microservice
SQL Server MongoDB Oracle
.NET
Microservice
.NET
Microservice
NodeJs
Microservice
NodeJs
Microservice
Java
Microservice
Java
Microservice
Common Microservices Design Patterns
Node 1
.NET
Microservic
e
NodeJs
Microservice
Node 1
.NET
Microservice
Java
Microservice
Node 2
NodeJs
Microservice
Node 3
Java
Microservice
Single Service per Host and Multiple Services per Host
Different deployment strategies.
Single Service Per Node Multiple Service Per Node
• Service separation leveraged using Containers
Common Microservices Design Patterns
Service Client /
API Gateway
Registry
Aware HTTP
Client
Client-side Discovery Patterns
When making a request to a service, the client obtains the location of a service instance by querying a Service
Registry, which knows the locations of all service instances.
Service Registry
Service
Instance A
Service
Instance B
Service
Instance C
Virtualized or containerized environment
Query Service Location
Register Service Location
Common Microservices Design Patterns
Server-side Discovery Patterns
When making a request to a service, the client makes a request via a router (a.k.a load balancer) that runs at a
well known location. The router queries a service registry, which might be built into the router, and forwards the
request to an available service instance.
Service Client /
API Gateway
Router /
Load
Balancer
Service Registry
Service
Instance A
Service
Instance B
Service
Instance C
Query Service Location
Register Service Location
Virtualized or containerized environment
• Service registry
• Self registration
• 3rd party registration
• Serverless deployment
• Shared database
• Service instance per VM
• Service instance per Container
Chris Richardson
www.microservices.io/patterns
More microservices patterns….
Do we need to manually implement all
the patterns?
Microservices Frameworks
Microservices Framework for Java
Azure Service Fabric
Azure Service Fabric
Application platform for distributed reliable, hyper scale, Microservice-based applications
Azure Service Fabric
What can you build/deploy with Service Fabric?
Stateless applications
• A service that has state where the state is persisted to external storage, such as Azure databases or Azure storage
• Communication through concurrent collections
Stateful applications
• Reliability of state through replication and local persistence (Reliable Collections)
• Reduce latency
• Reduces the complexity and number of components in traditional three tier architecture
Existing apps written with other frameworks
• These are called guest executables. (Node.js, Java etc...)
Service Fabric Development Models
Reliable Actor API
• Build reliable stateless and stateful objects with a virtual Actor Programming Model
• Suitable for applications with multiple independent units of state and compute
• Automatic state management and turn based concurrency (Single threaded execution)
Reliable Services API
• Build stateless services using existing technologies such as ASP.NET. (.NET Core)
• Build stateful services using reliable collections
• Manage the concurrency and granularity of state changes using transactions
• Communicate with services using the technology of your choice (e.g. WebAPI, WCF)
Service Fabric Clusters
• A cluster is logical group of virtual machines
• It can scale up to 1000s of machines
Service Fabric Nodes
• A node is a Virtual Machine
• Runs on Linux or Windows
• Able to host containers
• Individually scalable
• Service fabric can be configured to host 1 to any number of services or
applications on a single node. (Assuming that your node vertical scales
accordingly)
Deployment - Clusters and Nodes
Node1
Node 2
Node 3Node 4
Node 5
Cluster
Proof of Concept
• .NET Core
• Kestrel
• OWIN host
• NGINX
Azure Service Fabric
Proof of Concept
Easy Maintain UI (MVC .NET Core)
SQL Server
.NET
Microservice
NodeJs
Microservice
Java
Microservice
.NET
Microservice
Inventory
Microservice
[Stateless REST API]
NodeJs
Microservice
Component
Microservice
[Stateless REST API]
Java
Microservice
Maintenance
Microservice
[Stateless REST API]
Java
Microservice
Java
Microservice
Security Microservice
[Stateless REST API]
NGINX (Proxy)
Easy Maintain UI (MVC .NET Core)Easy Maintain UI (MVC .NET Core)
JWT Token
Demo
Questions?
Containers
• Containers wrap a piece of software in a complete file system that contains everything
needed to run: code, runtime, system tools, system libraries – anything that can be
installed on a server.
• Guarantees that the software will always run the same, regardless of its environment.
Appendix
What is .NET Core?
• .NET Core is the latest modular version of .NET.
• It is a new open-source and cross-platform framework for building modern cloud based internet
connected applications, such as web apps, IoT and mobile backends.
• Allows you to separate out your host from the application.
Why use .NET Core?
• .NET Core is cross platform, so you can run it on Windows, Linux, Docker and Mac
• You don't need to install the .NET Framework to run it. Instead, you ship all the required dlls with your
application.
• You can use Visual Studio Code to develop your application, which is free and lightweight in comparison
to Visual Studio. And you can use it on different platforms as well.
• .`NET Core has a number of architectural changes that result in a much leaner and modular framework.
Appendix
What is Kestrel?
.NET Core includes a managed cross-platform web server, called Kestrel.
Kestrel is the new cross platform .NET web server which runs on Linux, Mac and Windows 10 and will,
eventually, run on Raspberry Pi.
Kestrel is way faster when compared to IIS. According to some measure it is about 20 times faster than IIS.
Appendix
What is NGINX?
• NGINX (Pronounced as Engine-X) is an open source,
lightweight, high-performance web server or proxy server.
• Nginx can be used as a reverse proxy server for HTTP, HTTPS,
SMTP, IMAP, POP3 protocols, on the other hand, it is also
used for servers load balancing and HTTP Cache.
Why use NGINX?
• Can be used as a proxy or a load balancer
• Its super fast, light weight and more platform independent.
Appendix
Open Web Interface for .NET
• OWIN is a specification defines how we can separate the Host from the Application.
• Encourage the development of simple modules for .NET web development
• Stimulate the open source ecosystem of .NET web development tools
Appendix
Host (OWIN Host, IIS, Custom Console App)
Server
(Http Listener)
Application
Framework
(WebAPI)
Middleware
(Authentication, WebAPI, SignalR)
Service Fabric Development, Testing and Deployment
• A service developer develops different types of services using the Reliable Actors or Reliable Services
programming model.
• The development environment in the SDK is identical to the production environment, and no emulators are
involved. In other words, what runs on your local development cluster deploys to the same cluster in other
environments.
• Chaos Test Scenarios, application built to cause faults in the cluster for testing purpose of the service fabric.
• Deploying an application on the service fabric combines the following steps into one simple operation:
• Creating the application package
• Uploading the application package to the image store
• Registering the application type
• Creating a new application instance
Appendix
Domain Driven Design
• Domain Driven Design is a methodology and process prescription for the development of complex systems
whose focus is mapping activities, tasks, events, and data within a problem domain into the technology
artifacts of a solution domain.
Appendix
Domain
Bounded
Context
Single
Responsibility
Principal
Ubiquitous
Language
Thank You
Micro services
Micro services
Micro services
Micro services
Micro services
Micro services
Micro services
Micro services
Micro services
Micro services
Micro services
Micro services
Micro services
Micro services
Micro services
Micro services
Micro services
Micro services
Micro services

More Related Content

What's hot

Azure Service Fabric and the Actor Model: when did we forget Object Orientation?
Azure Service Fabric and the Actor Model: when did we forget Object Orientation?Azure Service Fabric and the Actor Model: when did we forget Object Orientation?
Azure Service Fabric and the Actor Model: when did we forget Object Orientation?
João Pedro Martins
 
Microservices to Scale using Azure Service Fabric
Microservices to Scale using Azure Service FabricMicroservices to Scale using Azure Service Fabric
Microservices to Scale using Azure Service Fabric
Mukul Jain
 
Node and Micro-Services at IBM
Node and Micro-Services at IBMNode and Micro-Services at IBM
Node and Micro-Services at IBM
Dejan Glozic
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architecture
Faren faren
 
.Net Microservices with Event Sourcing, CQRS, Docker and... Windows Server 20...
.Net Microservices with Event Sourcing, CQRS, Docker and... Windows Server 20....Net Microservices with Event Sourcing, CQRS, Docker and... Windows Server 20...
.Net Microservices with Event Sourcing, CQRS, Docker and... Windows Server 20...
Javier García Magna
 
Building .NET Microservices
Building .NET MicroservicesBuilding .NET Microservices
Building .NET Microservices
VMware Tanzu
 
Software Architectures, Week 3 - Microservice-based Architectures
Software Architectures, Week 3 - Microservice-based ArchitecturesSoftware Architectures, Week 3 - Microservice-based Architectures
Software Architectures, Week 3 - Microservice-based ArchitecturesAngelos Kapsimanis
 
Microservices Technology Stack
Microservices Technology StackMicroservices Technology Stack
Microservices Technology Stack
Eberhard Wolff
 
#JaxLondon keynote: Developing applications with a microservice architecture
#JaxLondon keynote: Developing applications with a microservice architecture#JaxLondon keynote: Developing applications with a microservice architecture
#JaxLondon keynote: Developing applications with a microservice architecture
Chris Richardson
 
Design patterns for microservice architecture
Design patterns for microservice architectureDesign patterns for microservice architecture
Design patterns for microservice architecture
The Software House
 
Deep dive into service fabric after 2 years
Deep dive into service fabric after 2 yearsDeep dive into service fabric after 2 years
Deep dive into service fabric after 2 years
Tomasz Kopacz
 
Dot net platform and dotnet core fundamentals
Dot net platform and dotnet core fundamentalsDot net platform and dotnet core fundamentals
Dot net platform and dotnet core fundamentals
Lalit Kale
 
Service fabric and azure service fabric mesh
Service fabric and azure service fabric meshService fabric and azure service fabric mesh
Service fabric and azure service fabric mesh
Mikkel Mørk Hegnhøj
 
Microservices with Node.js and Apache Cassandra
Microservices with Node.js and Apache CassandraMicroservices with Node.js and Apache Cassandra
Microservices with Node.js and Apache Cassandra
Jorge Bay Gondra
 
micro services architecture (FrosCon2014)
micro services architecture (FrosCon2014)micro services architecture (FrosCon2014)
micro services architecture (FrosCon2014)
smancke
 
Micro services and Containers
Micro services and ContainersMicro services and Containers
Micro services and Containers
Richard Harvey
 
Understanding MicroSERVICE Architecture with Java & Spring Boot
Understanding MicroSERVICE Architecture with Java & Spring BootUnderstanding MicroSERVICE Architecture with Java & Spring Boot
Understanding MicroSERVICE Architecture with Java & Spring Boot
Kashif Ali Siddiqui
 
WSO2 Product Release Webinar Introducing the WSO2 Message Broker
WSO2 Product Release Webinar   Introducing the WSO2 Message BrokerWSO2 Product Release Webinar   Introducing the WSO2 Message Broker
WSO2 Product Release Webinar Introducing the WSO2 Message BrokerWSO2
 
Microservice Architecture Patterns, by Richard Langlois P. Eng.
Microservice Architecture Patterns, by Richard Langlois P. Eng.Microservice Architecture Patterns, by Richard Langlois P. Eng.
Microservice Architecture Patterns, by Richard Langlois P. Eng.
Richard Langlois P. Eng.
 
Azure servicefabric
Azure servicefabricAzure servicefabric
Azure servicefabric
Abhishek Sur
 

What's hot (20)

Azure Service Fabric and the Actor Model: when did we forget Object Orientation?
Azure Service Fabric and the Actor Model: when did we forget Object Orientation?Azure Service Fabric and the Actor Model: when did we forget Object Orientation?
Azure Service Fabric and the Actor Model: when did we forget Object Orientation?
 
Microservices to Scale using Azure Service Fabric
Microservices to Scale using Azure Service FabricMicroservices to Scale using Azure Service Fabric
Microservices to Scale using Azure Service Fabric
 
Node and Micro-Services at IBM
Node and Micro-Services at IBMNode and Micro-Services at IBM
Node and Micro-Services at IBM
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architecture
 
.Net Microservices with Event Sourcing, CQRS, Docker and... Windows Server 20...
.Net Microservices with Event Sourcing, CQRS, Docker and... Windows Server 20....Net Microservices with Event Sourcing, CQRS, Docker and... Windows Server 20...
.Net Microservices with Event Sourcing, CQRS, Docker and... Windows Server 20...
 
Building .NET Microservices
Building .NET MicroservicesBuilding .NET Microservices
Building .NET Microservices
 
Software Architectures, Week 3 - Microservice-based Architectures
Software Architectures, Week 3 - Microservice-based ArchitecturesSoftware Architectures, Week 3 - Microservice-based Architectures
Software Architectures, Week 3 - Microservice-based Architectures
 
Microservices Technology Stack
Microservices Technology StackMicroservices Technology Stack
Microservices Technology Stack
 
#JaxLondon keynote: Developing applications with a microservice architecture
#JaxLondon keynote: Developing applications with a microservice architecture#JaxLondon keynote: Developing applications with a microservice architecture
#JaxLondon keynote: Developing applications with a microservice architecture
 
Design patterns for microservice architecture
Design patterns for microservice architectureDesign patterns for microservice architecture
Design patterns for microservice architecture
 
Deep dive into service fabric after 2 years
Deep dive into service fabric after 2 yearsDeep dive into service fabric after 2 years
Deep dive into service fabric after 2 years
 
Dot net platform and dotnet core fundamentals
Dot net platform and dotnet core fundamentalsDot net platform and dotnet core fundamentals
Dot net platform and dotnet core fundamentals
 
Service fabric and azure service fabric mesh
Service fabric and azure service fabric meshService fabric and azure service fabric mesh
Service fabric and azure service fabric mesh
 
Microservices with Node.js and Apache Cassandra
Microservices with Node.js and Apache CassandraMicroservices with Node.js and Apache Cassandra
Microservices with Node.js and Apache Cassandra
 
micro services architecture (FrosCon2014)
micro services architecture (FrosCon2014)micro services architecture (FrosCon2014)
micro services architecture (FrosCon2014)
 
Micro services and Containers
Micro services and ContainersMicro services and Containers
Micro services and Containers
 
Understanding MicroSERVICE Architecture with Java & Spring Boot
Understanding MicroSERVICE Architecture with Java & Spring BootUnderstanding MicroSERVICE Architecture with Java & Spring Boot
Understanding MicroSERVICE Architecture with Java & Spring Boot
 
WSO2 Product Release Webinar Introducing the WSO2 Message Broker
WSO2 Product Release Webinar   Introducing the WSO2 Message BrokerWSO2 Product Release Webinar   Introducing the WSO2 Message Broker
WSO2 Product Release Webinar Introducing the WSO2 Message Broker
 
Microservice Architecture Patterns, by Richard Langlois P. Eng.
Microservice Architecture Patterns, by Richard Langlois P. Eng.Microservice Architecture Patterns, by Richard Langlois P. Eng.
Microservice Architecture Patterns, by Richard Langlois P. Eng.
 
Azure servicefabric
Azure servicefabricAzure servicefabric
Azure servicefabric
 

Similar to Micro services

Designing Microservices
Designing MicroservicesDesigning Microservices
Designing Microservices
David Chou
 
Exploring microservices in a Microsoft landscape
Exploring microservices in a Microsoft landscapeExploring microservices in a Microsoft landscape
Exploring microservices in a Microsoft landscape
Alex Thissen
 
Reference architectures shows a microservices deployed to Kubernetes
Reference architectures shows a microservices deployed to KubernetesReference architectures shows a microservices deployed to Kubernetes
Reference architectures shows a microservices deployed to Kubernetes
Rakesh Gujjarlapudi
 
Azure Service Fabric - Hamida Rebai - CCDays
Azure Service Fabric - Hamida Rebai - CCDaysAzure Service Fabric - Hamida Rebai - CCDays
Azure Service Fabric - Hamida Rebai - CCDays
CodeOps Technologies LLP
 
Azure service fabric
Azure service fabricAzure service fabric
Azure service fabric
Fernando Mejía
 
The Microservices world in. NET Core and. NET framework
The Microservices world in. NET Core and. NET frameworkThe Microservices world in. NET Core and. NET framework
The Microservices world in. NET Core and. NET framework
Massimo Bonanni
 
Monolithic to Microservices Architecture
Monolithic to Microservices ArchitectureMonolithic to Microservices Architecture
Monolithic to Microservices Architecture
Vin Dahake
 
Azure realtime-interview questions - part 7
Azure realtime-interview questions - part 7Azure realtime-interview questions - part 7
Azure realtime-interview questions - part 7
Malleswar Reddy
 
HSBC and AWS Day - Microservices and Serverless
HSBC and AWS Day - Microservices and ServerlessHSBC and AWS Day - Microservices and Serverless
HSBC and AWS Day - Microservices and Serverless
Amazon Web Services
 
Introduction to Windows Azure
Introduction to Windows AzureIntroduction to Windows Azure
Introduction to Windows Azure
Ravi Ranjan Karn
 
Microservices with Azure Service Fabric
Microservices with Azure Service FabricMicroservices with Azure Service Fabric
Microservices with Azure Service Fabric
Davide Benvegnù
 
Azure service fabric overview
Azure service fabric overviewAzure service fabric overview
Azure service fabric overview
Baskar rao Dsn
 
Azure Service Fabric: The road ahead for microservices
Azure Service Fabric: The road ahead for microservicesAzure Service Fabric: The road ahead for microservices
Azure Service Fabric: The road ahead for microservices
Microsoft Tech Community
 
.NET microservices with Azure Service Fabric
.NET microservices with Azure Service Fabric.NET microservices with Azure Service Fabric
.NET microservices with Azure Service Fabric
Davide Benvegnù
 
Service Fabric – building tomorrows applications today
Service Fabric – building tomorrows applications todayService Fabric – building tomorrows applications today
Service Fabric – building tomorrows applications today
BizTalk360
 
2020-02-10 Java on Azure Solution Briefing
2020-02-10 Java on Azure Solution Briefing2020-02-10 Java on Azure Solution Briefing
2020-02-10 Java on Azure Solution Briefing
Ed Burns
 
Azure Stack - Azure Nights User Group
Azure Stack - Azure Nights User GroupAzure Stack - Azure Nights User Group
Azure Stack - Azure Nights User Group
Michael Frank
 
Cloud compiler - Minor Project by students of CBPGEC
Cloud compiler - Minor Project by students of CBPGEC  Cloud compiler - Minor Project by students of CBPGEC
Cloud compiler - Minor Project by students of CBPGEC
vipin kumar
 
Mastering microservices - Dot Net Tricks
Mastering microservices - Dot Net TricksMastering microservices - Dot Net Tricks
Mastering microservices - Dot Net Tricks
Gaurav Singh
 
Simplify hybrid data integration at an enterprise scale. Integrate all your d...
Simplify hybrid data integration at an enterprise scale. Integrate all your d...Simplify hybrid data integration at an enterprise scale. Integrate all your d...
Simplify hybrid data integration at an enterprise scale. Integrate all your d...
varanasisatyanvesh
 

Similar to Micro services (20)

Designing Microservices
Designing MicroservicesDesigning Microservices
Designing Microservices
 
Exploring microservices in a Microsoft landscape
Exploring microservices in a Microsoft landscapeExploring microservices in a Microsoft landscape
Exploring microservices in a Microsoft landscape
 
Reference architectures shows a microservices deployed to Kubernetes
Reference architectures shows a microservices deployed to KubernetesReference architectures shows a microservices deployed to Kubernetes
Reference architectures shows a microservices deployed to Kubernetes
 
Azure Service Fabric - Hamida Rebai - CCDays
Azure Service Fabric - Hamida Rebai - CCDaysAzure Service Fabric - Hamida Rebai - CCDays
Azure Service Fabric - Hamida Rebai - CCDays
 
Azure service fabric
Azure service fabricAzure service fabric
Azure service fabric
 
The Microservices world in. NET Core and. NET framework
The Microservices world in. NET Core and. NET frameworkThe Microservices world in. NET Core and. NET framework
The Microservices world in. NET Core and. NET framework
 
Monolithic to Microservices Architecture
Monolithic to Microservices ArchitectureMonolithic to Microservices Architecture
Monolithic to Microservices Architecture
 
Azure realtime-interview questions - part 7
Azure realtime-interview questions - part 7Azure realtime-interview questions - part 7
Azure realtime-interview questions - part 7
 
HSBC and AWS Day - Microservices and Serverless
HSBC and AWS Day - Microservices and ServerlessHSBC and AWS Day - Microservices and Serverless
HSBC and AWS Day - Microservices and Serverless
 
Introduction to Windows Azure
Introduction to Windows AzureIntroduction to Windows Azure
Introduction to Windows Azure
 
Microservices with Azure Service Fabric
Microservices with Azure Service FabricMicroservices with Azure Service Fabric
Microservices with Azure Service Fabric
 
Azure service fabric overview
Azure service fabric overviewAzure service fabric overview
Azure service fabric overview
 
Azure Service Fabric: The road ahead for microservices
Azure Service Fabric: The road ahead for microservicesAzure Service Fabric: The road ahead for microservices
Azure Service Fabric: The road ahead for microservices
 
.NET microservices with Azure Service Fabric
.NET microservices with Azure Service Fabric.NET microservices with Azure Service Fabric
.NET microservices with Azure Service Fabric
 
Service Fabric – building tomorrows applications today
Service Fabric – building tomorrows applications todayService Fabric – building tomorrows applications today
Service Fabric – building tomorrows applications today
 
2020-02-10 Java on Azure Solution Briefing
2020-02-10 Java on Azure Solution Briefing2020-02-10 Java on Azure Solution Briefing
2020-02-10 Java on Azure Solution Briefing
 
Azure Stack - Azure Nights User Group
Azure Stack - Azure Nights User GroupAzure Stack - Azure Nights User Group
Azure Stack - Azure Nights User Group
 
Cloud compiler - Minor Project by students of CBPGEC
Cloud compiler - Minor Project by students of CBPGEC  Cloud compiler - Minor Project by students of CBPGEC
Cloud compiler - Minor Project by students of CBPGEC
 
Mastering microservices - Dot Net Tricks
Mastering microservices - Dot Net TricksMastering microservices - Dot Net Tricks
Mastering microservices - Dot Net Tricks
 
Simplify hybrid data integration at an enterprise scale. Integrate all your d...
Simplify hybrid data integration at an enterprise scale. Integrate all your d...Simplify hybrid data integration at an enterprise scale. Integrate all your d...
Simplify hybrid data integration at an enterprise scale. Integrate all your d...
 

Recently uploaded

UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 

Recently uploaded (20)

UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 

Micro services

  • 1. Microservices Resilient and Reliable Service Implementation Using Azure Service Fabric By Brian Perera and the Micros Team
  • 2. 1 Microservices • Introduction • Monoliths. SOA and Microservices • Common Microservice design patterns Azure Service Fabric • Introduction • Building applications with Azure Service Fabric programming models • Deployment internals - Clusters and Nodes Demo POC Agenda for the day 2 3
  • 3. • Microservice architecture is a method of developing software applications as a suite of independently deployable and autonomous services. • Each service runs a unique process and has a bounded context. • Service isolation is achieved using containers. • Inter service communicates through a well-defined, lightweight mechanism (API’s and Message Queues) Microservices Architecture Reliable/Concurrent Collections
  • 4. Microservices Architecture User Interface Business Layer Data Interface SQL Server Monolithic Microservices .NET Microservice NodeJs Microservice Java Microservice User Interface SQL Server MongoDB Oracle .NET Microservice Shipping Service (.NET) NodeJs Microservice Inventory Reports (Node.js) Java Microservice Product Catalog (Java)
  • 5. Isn't SOA the same? SOA Microservices Differentiators • Application Modeling happens around business capabilities • Scope and size defined using Bounded context • Autonomous Services • Lightweight communication • Automated deployments
  • 7. • Technology diversity (.NET, Java, Node etc…) • Resilience • Autonomous services • High reliability and availability • Individually scalable services • Expecting ease of deployment o Partial deployment o Service upgrade with ensure zero down time (Rolling updates, Blue/Green deployment) • If you need organizational alignment o Full stack development team for each department • Increase developer productivity o Faster trouble shooting using service monitoring o Reduce ramp up time, due to simplicity When to use Microservices?
  • 8. • If the solution is simple • When you don’t have full stack developers • When your team does not have Domain Driven Design expertise • When performance is more important than reliability and availability • When you don’t have a matured Dev Ops team to manage services and deployments • If you don’t believe in concepts like “Big Design Up Front” • Testing services is a relatively cumbersome • Multiple services to be tested • Service integration testing is challenging When not to use Microservices
  • 10. Circuit Breaker Pattern Handle faults that may take a variable amount of time to rectify when connecting to a remote service or resource. This pattern can improve the stability and resiliency of an application. Common Microservices Design Patterns Closed Success Open Half Open Fail Fast Failure or Timeout Success Failure Wait time elapsed
  • 11. Common Microservices Design Patterns Api Gateway Pattern The API Gateway pattern defines how clients access the services in a microservices architecture. The Api-Gateway defines a single entry point for all clients. API-Gateway .NET Microservice NodeJs Microservice Java Microservice Client
  • 12. Database per Service pattern Keep each microservices persistent data private to that service and accessible only via its API. Common Microservices Design Patterns .NET Microservice NodeJs Microservice Java Microservice SQL Server MongoDB Oracle .NET Microservice .NET Microservice NodeJs Microservice NodeJs Microservice Java Microservice Java Microservice
  • 13. Common Microservices Design Patterns Node 1 .NET Microservic e NodeJs Microservice Node 1 .NET Microservice Java Microservice Node 2 NodeJs Microservice Node 3 Java Microservice Single Service per Host and Multiple Services per Host Different deployment strategies. Single Service Per Node Multiple Service Per Node • Service separation leveraged using Containers
  • 14. Common Microservices Design Patterns Service Client / API Gateway Registry Aware HTTP Client Client-side Discovery Patterns When making a request to a service, the client obtains the location of a service instance by querying a Service Registry, which knows the locations of all service instances. Service Registry Service Instance A Service Instance B Service Instance C Virtualized or containerized environment Query Service Location Register Service Location
  • 15. Common Microservices Design Patterns Server-side Discovery Patterns When making a request to a service, the client makes a request via a router (a.k.a load balancer) that runs at a well known location. The router queries a service registry, which might be built into the router, and forwards the request to an available service instance. Service Client / API Gateway Router / Load Balancer Service Registry Service Instance A Service Instance B Service Instance C Query Service Location Register Service Location Virtualized or containerized environment
  • 16. • Service registry • Self registration • 3rd party registration • Serverless deployment • Shared database • Service instance per VM • Service instance per Container Chris Richardson www.microservices.io/patterns More microservices patterns….
  • 17. Do we need to manually implement all the patterns?
  • 18. Microservices Frameworks Microservices Framework for Java Azure Service Fabric
  • 20. Application platform for distributed reliable, hyper scale, Microservice-based applications Azure Service Fabric
  • 21. What can you build/deploy with Service Fabric? Stateless applications • A service that has state where the state is persisted to external storage, such as Azure databases or Azure storage • Communication through concurrent collections Stateful applications • Reliability of state through replication and local persistence (Reliable Collections) • Reduce latency • Reduces the complexity and number of components in traditional three tier architecture Existing apps written with other frameworks • These are called guest executables. (Node.js, Java etc...)
  • 22. Service Fabric Development Models Reliable Actor API • Build reliable stateless and stateful objects with a virtual Actor Programming Model • Suitable for applications with multiple independent units of state and compute • Automatic state management and turn based concurrency (Single threaded execution) Reliable Services API • Build stateless services using existing technologies such as ASP.NET. (.NET Core) • Build stateful services using reliable collections • Manage the concurrency and granularity of state changes using transactions • Communicate with services using the technology of your choice (e.g. WebAPI, WCF)
  • 23. Service Fabric Clusters • A cluster is logical group of virtual machines • It can scale up to 1000s of machines Service Fabric Nodes • A node is a Virtual Machine • Runs on Linux or Windows • Able to host containers • Individually scalable • Service fabric can be configured to host 1 to any number of services or applications on a single node. (Assuming that your node vertical scales accordingly) Deployment - Clusters and Nodes Node1 Node 2 Node 3Node 4 Node 5 Cluster
  • 24. Proof of Concept • .NET Core • Kestrel • OWIN host • NGINX
  • 25. Azure Service Fabric Proof of Concept Easy Maintain UI (MVC .NET Core) SQL Server .NET Microservice NodeJs Microservice Java Microservice .NET Microservice Inventory Microservice [Stateless REST API] NodeJs Microservice Component Microservice [Stateless REST API] Java Microservice Maintenance Microservice [Stateless REST API] Java Microservice Java Microservice Security Microservice [Stateless REST API] NGINX (Proxy) Easy Maintain UI (MVC .NET Core)Easy Maintain UI (MVC .NET Core) JWT Token
  • 26. Demo
  • 28. Containers • Containers wrap a piece of software in a complete file system that contains everything needed to run: code, runtime, system tools, system libraries – anything that can be installed on a server. • Guarantees that the software will always run the same, regardless of its environment. Appendix
  • 29. What is .NET Core? • .NET Core is the latest modular version of .NET. • It is a new open-source and cross-platform framework for building modern cloud based internet connected applications, such as web apps, IoT and mobile backends. • Allows you to separate out your host from the application. Why use .NET Core? • .NET Core is cross platform, so you can run it on Windows, Linux, Docker and Mac • You don't need to install the .NET Framework to run it. Instead, you ship all the required dlls with your application. • You can use Visual Studio Code to develop your application, which is free and lightweight in comparison to Visual Studio. And you can use it on different platforms as well. • .`NET Core has a number of architectural changes that result in a much leaner and modular framework. Appendix
  • 30. What is Kestrel? .NET Core includes a managed cross-platform web server, called Kestrel. Kestrel is the new cross platform .NET web server which runs on Linux, Mac and Windows 10 and will, eventually, run on Raspberry Pi. Kestrel is way faster when compared to IIS. According to some measure it is about 20 times faster than IIS. Appendix
  • 31. What is NGINX? • NGINX (Pronounced as Engine-X) is an open source, lightweight, high-performance web server or proxy server. • Nginx can be used as a reverse proxy server for HTTP, HTTPS, SMTP, IMAP, POP3 protocols, on the other hand, it is also used for servers load balancing and HTTP Cache. Why use NGINX? • Can be used as a proxy or a load balancer • Its super fast, light weight and more platform independent. Appendix
  • 32. Open Web Interface for .NET • OWIN is a specification defines how we can separate the Host from the Application. • Encourage the development of simple modules for .NET web development • Stimulate the open source ecosystem of .NET web development tools Appendix Host (OWIN Host, IIS, Custom Console App) Server (Http Listener) Application Framework (WebAPI) Middleware (Authentication, WebAPI, SignalR)
  • 33. Service Fabric Development, Testing and Deployment • A service developer develops different types of services using the Reliable Actors or Reliable Services programming model. • The development environment in the SDK is identical to the production environment, and no emulators are involved. In other words, what runs on your local development cluster deploys to the same cluster in other environments. • Chaos Test Scenarios, application built to cause faults in the cluster for testing purpose of the service fabric. • Deploying an application on the service fabric combines the following steps into one simple operation: • Creating the application package • Uploading the application package to the image store • Registering the application type • Creating a new application instance Appendix
  • 34. Domain Driven Design • Domain Driven Design is a methodology and process prescription for the development of complex systems whose focus is mapping activities, tasks, events, and data within a problem domain into the technology artifacts of a solution domain. Appendix Domain Bounded Context Single Responsibility Principal Ubiquitous Language

Editor's Notes

  1. (30 seconds) Good afternoon everyone, thanks for coming In the micros account we have developed a practice to research about a technical topic and present it to the account by weekly. This time around Nishantha Hettiarachchi said, why just the Micros account, let share it with the rest of Virtusa. We are not experts in microservices but a set of techies who love to learn new technologies. This K-talk is about Microservice, we will be touching base with Azure Service Fabric.
  2. (15 seconds) This is a agenda for this session So lets get started…
  3. independently deployable and manageable, Small or fine grained and autonomous (self managed). Each service runs a unique process. – This mean that they run independently. Service separation is achieved using containers. So what are containers?
  4. This is a tradition tiered Monolithic application. Developed, tested and deployed as a one single strip. Let look at the microservices architecture. Your UI client application talks to different services, which talk to their own data bases.
  5. There is a quite a debate between the SOA community and microservices community about this. SOA community claims that they have been following the microservice pattern for more than a decade, and that they don’t need a new name for it. Martin Flower a famous microservices solution architect states that Microservices are a subset of SOA Some say microservices are a specialization of SOA Clear differentiates Service modeling happens around business capabilities Bounded context Services are autonomous Communicate with lightweight mechanisms Automated deployment
  6. It’s a common myth that Microservices needs to be more granular than SOA services. Breaking up a services into smaller parts means that the overall complexity increases. It then becomes a overhead on maintaining the services. Its impossible to implement patterns like single Db per service patterns With Domain driven design concepts we need to find the right balance, when defining the size and scope of the service.
  7. When we are working with diverse technology stacks Resilience – ability to self heal and spring back to life Go through the rest
  8. Go through the items Talk a Big design
  9. Let talk about the common patterns used with Microservices
  10. What is the problem that this pattern handles? This patterns ensures that, If a service fails, we should not be ideally keep hitting that service for a response. We should give it time to self heal. It’s a simple state machine. Close state -> Open -> Half Open
  11. What is the problem that this pattern handles? In a microservice environment we are talking about a lot of services. We can’t let clients try to connect to all the services individually. We then use the change of implementing security and loadbalancing. So we define a single entry point to our services.
  12. What is the problem that this pattern handles? If we really see it, having one database would mean that it becomes a single point of failure. If the central DB goes down all the services goes down with it. By having a a single DB per service we are ensuring that the whole application will not fail at the same time.
  13. Single Service Per Node Services instances are isolated from one another There is no possibility of conflicting resource requirements or dependency versions A service instance can only consume at most the resources of a single host Its straightforward to monitor, manage, and redeploy each service instance The drawbacks of this approach include: Potentially less efficient resource utilization compared to Multiple Services per Host because there are more hosts Multiple Service Per Node The benefits of this pattern include: More efficient resource utilization than the Service Instance per host pattern The drawbacks of this approach include: Risk of conflicting resource requirements Risk of conflicting dependency versions Difficult to limit the resources consumed by a service instance If multiple services instances are deployed in the same process then its difficult to monitor the resource consumption of each service instance. Its also impossible to isolate each instance
  14. What is the problem that this pattern handles? In a microservice environment we are talking about a lot of services. A service will not be located on a fixed location. If a service failure occur another instance will be spinning up on a new ip address. The service registry keeps track of the service locations. The client side proxy talks to the service registry find out where the service is deploys and then talk to it. The client is now tightly coupled with the service register.
  15. This pattern addresses the same problem but removes the dependency between the client and the service registry. The service register communication is handed over to a router or load balancer. This router talks to the service register to locate the service. AWS elastic loadbalancer or Azure load balancer can be used as a router.
  16. These are some of the other patterns out there. If you go to Chris Richardson site you will be able to find a lot more information related to microservices
  17. The answer is no
  18. There are already frameworks to build to handle these. We just need to use them. These are some of the frameworks out there.
  19. We will now be talking a bit more about the Azure Service Fabric
  20. This platform allows you to build, test and deploy microservices. You don’t need to worry about the cross cutting concerns. Service fabric will take care of them for you. Features like, loadbalancing, health monitoring, Replication & failover, state management, messaging are handled by service fabric. When it comes to deployment strategies, you can give to deploy your services on the Windows or Linux box on Azure, Private Clouds or even hosted clouds like AWS. You have that flexibility. So is this new? The answer is no. Microsoft has been using this for their internal systems for the past 5 years. Microsoft has now given us the capability build resilient applications using this framework.
  21. We can implement stateless and stateful services using the virtual actor programming model. Actor programming model might be a separate K-talk all together. Useful if you have multiple independent units Supports turn based concurrency or single threaded access Build stateful ASP.NET MVC applications on top of .NET core, which are deployed on Kestrel Build stateful services using reliable collections Manage concurrency using transactions Pick your technology for communications Mind you there already templates available in visual studio 2015.
  22. Now lets get to the internal of the service fabric deployments. A cluster is a collection of nodes which are VM’s A cluster can scale up to 1000s of machines VM on linux or windows Able to host containers. (Windows and docker containers) Scalable Multiple applications on a node
  23. Couple of month back we got a oppertinity do a presale for a aircraft maintence provider. The POC that we are presenting is a small subset of what we tried to propose. The goals was to provide a SAS solution using azure service fabric. The POC application consists of 4 microservices and 1 web application.
  24. Explain why we used NGINX for proxy
  25. Think of a freight container. Normally we try to separate out the goods that we ship using containers. For example, you’re a business man who ships pianos. And you are good at it, but someone asks you to ship whisky with the pianos. And you put everything into the same place and ship it. Now there complaints for the clients saying that the whisky is split all over the pianos. So if you had containerized based on concern you would be shipping pianos in 1 container and the whisky in another 1. If your whisky is split your pianos are not impacted. This same concept applies to services. This is why containering or as some people say dockerizing is important. In software terms what does it mean. We can wrap up code, runtime, system tools, system libraries into a container Production, dev env compatibility issue no more
  26. Once again thank you very much for your participation. Hope to see you all during the next tech talk.