SlideShare une entreprise Scribd logo
1  sur  35
Building Cloud-Native Apps
Nish Anil – Sr. PM .NET Platform, Microsoft
@nishanil
Swaminathan Vetri – Technical Architect, Maersk
@svswaminathan
Developers.. Developers.. Developers..
Visual Studio Code Visual Studio Visual Studio for Mac
Tools for AzureXamarinTypeScript
http://dot.net/architecture http://github.com/dotnet-architecture
Free eBooks
Coming Soon
.. and more @ http://dot.net/architecture
• .NET Platform
• Cloud-Native philosophy
• Microservices Architecture
• Leveraging containers & orchestrators
• Getting Started with Microservices
• Key Patterns for Microservices
• Communication
• Resiliency – Designing for failure
• Healthcheck
DESKTOP WEB CLOUD MOBILE GAMING IoT AI
.NET
Just a few of our millions of .NET customers…
dot.net/customers
• Build and run scalable applications in modern, dynamic environments
• Containers, service meshes, microservices, immutable infrastructure, and declarative APIs exemplify this
approach.
• Enables loosely coupled systems resilient, manageable, and observable
• Enables engineers to make high-impact changes frequently and predictably with minimal toil.
Company Experience
Netflix Has 600+ services in production. Deploys a hundred times per day.
Uber Has 1,000+ services stored in production. Deploys several thousand
builds each week.
WeChat Has 300+ services in production. Makes almost 1,000 changes per
day.
*CNCF definition
Key: Speed, Agility, & Scalability
The 12-Factor Application – A methodology to adopt for cloud-native apps
1. Codebase
2. Dependencies
3. Configurations
4. Backing Services
5. Build, Release, Run
6. Processes
7. Port Binding
8. Concurrency
9. Disposability
10. Dev/Prod Parity
11. Logging
12. Admin Process
https://12factor.net/
https://content.pivotal.io/blog/beyond-the-twelve-factor-app
Leveraging containers for Microservices
A container is a standard unit of software that packages up code and
all its dependencies, so the application runs quickly and reliably from
one computing environment to another.
Azure Container Registry (ACR)
Use familiar, open-
source Docker CLI tools
Azure Container Registry
geo-replication
Manage images for all
types of containers
Manage a Docker private registry as a first-class Azure resource
Scheduling Affinity/anti-
affinity
Health
monitoring
Failover
Scaling Networking Service
discovery
Coordinated
app upgrades
Azure Kubernetes Service (AKS)
The elements of orchestration
https://github.com/dotnet-architecture/eShopOnContainers
Key Patterns for Microservices
1. API Gateway vs. Direct communication
- API Gateways implementation with Ocelot / Azure API Management
2. Resilient cloud applications
- Retries with exponential backoff plus Circuit breaker policy
3. HealthCheck
…
Direct communication vs the API Gateway pattern
Direct communication to microservices
(“NO API Gateway usage”)
Using the API Gateway pattern
https://github.com/dotnet-architecture/eShopOnContainers
Building resilient cloud applications
Retries with exponential backoff
Retries with exponential backoff
Service Mesh tools:
• Envoy from Lyft Engineering
• Linkerd from https://buoyant.io
• Traefik from https
For example, Service Fabric Mesh uses Envoy out-of-the-box and “transparently”:
You can also use with Kubernetes but you need to implement/deploy it:
These tools provide features such as:
• Retry
• Circuit-breaking
• Latency and other metrics
• Failure- and latency-aware load balancing
• Distributed tracing
• Protocol upgrade
• Version-aware routing
• Cluster failover, etc
If using those, you don’t need an implementation of retries and circuit breaker as part of every microservice.
Instead, you will be using one as a sidecar pattern or host proxy.
Moving resilient patterns to the platform (Retries/Circuit-Breaker):
Other Considerations..
• Communication Patterns
• Asynchronous messaging patterns
• Event driven architecture
• Data Management
• CQRS
• Deployment patterns
• Cross Cutting Concerns
• Externalized Configurations
• Service Discovery
….
Questions Thank you

Contenu connexe

Tendances

Tendances (20)

Zero-downtime deployment with Kubernetes [Meetup #21 - 01]
Zero-downtime deployment with Kubernetes [Meetup #21 - 01]Zero-downtime deployment with Kubernetes [Meetup #21 - 01]
Zero-downtime deployment with Kubernetes [Meetup #21 - 01]
 
Dynamic Azure Credentials for Applications and CI/CD Pipelines
Dynamic Azure Credentials for Applications and CI/CD PipelinesDynamic Azure Credentials for Applications and CI/CD Pipelines
Dynamic Azure Credentials for Applications and CI/CD Pipelines
 
Pivotal Container Service il modo più semplice per gestire Kubernetes in azie...
Pivotal Container Service il modo più semplice per gestire Kubernetes in azie...Pivotal Container Service il modo più semplice per gestire Kubernetes in azie...
Pivotal Container Service il modo più semplice per gestire Kubernetes in azie...
 
EDA Governance Model: a multicloud approach based on GitOps | Alejandro Alija...
EDA Governance Model: a multicloud approach based on GitOps | Alejandro Alija...EDA Governance Model: a multicloud approach based on GitOps | Alejandro Alija...
EDA Governance Model: a multicloud approach based on GitOps | Alejandro Alija...
 
Codemotion Azure Container Apps
Codemotion Azure Container AppsCodemotion Azure Container Apps
Codemotion Azure Container Apps
 
stackconf 2021 | Stretching the Service Mesh Beyond the Clouds
stackconf 2021 | Stretching the Service Mesh Beyond the Cloudsstackconf 2021 | Stretching the Service Mesh Beyond the Clouds
stackconf 2021 | Stretching the Service Mesh Beyond the Clouds
 
Monitoring Your AWS EKS Environment with Datadog
Monitoring Your AWS EKS Environment with DatadogMonitoring Your AWS EKS Environment with Datadog
Monitoring Your AWS EKS Environment with Datadog
 
Empower Your Security Practitioners with Elastic SIEM
Empower Your Security Practitioners with Elastic SIEMEmpower Your Security Practitioners with Elastic SIEM
Empower Your Security Practitioners with Elastic SIEM
 
Deploying Cloud Use Cases
Deploying Cloud Use CasesDeploying Cloud Use Cases
Deploying Cloud Use Cases
 
Cloud-native Patterns (July 4th, 2019)
Cloud-native Patterns (July 4th, 2019)Cloud-native Patterns (July 4th, 2019)
Cloud-native Patterns (July 4th, 2019)
 
Spring Boot apps in Kubernetes
Spring Boot apps in KubernetesSpring Boot apps in Kubernetes
Spring Boot apps in Kubernetes
 
Using Cisco pxGrid for Security Platform Integration: a deep dive
Using Cisco pxGrid for Security Platform Integration: a deep diveUsing Cisco pxGrid for Security Platform Integration: a deep dive
Using Cisco pxGrid for Security Platform Integration: a deep dive
 
Automate Your Container Deployments Securely
Automate Your Container Deployments SecurelyAutomate Your Container Deployments Securely
Automate Your Container Deployments Securely
 
stackconf 2021 | Data Driven Security
stackconf 2021 | Data Driven Securitystackconf 2021 | Data Driven Security
stackconf 2021 | Data Driven Security
 
Journey from on prem to the cloud with kubernetes
Journey from on prem to the cloud with kubernetesJourney from on prem to the cloud with kubernetes
Journey from on prem to the cloud with kubernetes
 
NashTech - Azure Application Insights
NashTech - Azure Application InsightsNashTech - Azure Application Insights
NashTech - Azure Application Insights
 
Application Autoscaling Made Easy with Kubernetes Event-Driven Autoscaling (K...
Application Autoscaling Made Easy with Kubernetes Event-Driven Autoscaling (K...Application Autoscaling Made Easy with Kubernetes Event-Driven Autoscaling (K...
Application Autoscaling Made Easy with Kubernetes Event-Driven Autoscaling (K...
 
Data Agility for Devops - OSI 2018
Data Agility for Devops - OSI 2018Data Agility for Devops - OSI 2018
Data Agility for Devops - OSI 2018
 
FestiveTechCalendar2021 - Have Yourself An​ Azure Container Registry
FestiveTechCalendar2021 - Have Yourself An​ Azure Container RegistryFestiveTechCalendar2021 - Have Yourself An​ Azure Container Registry
FestiveTechCalendar2021 - Have Yourself An​ Azure Container Registry
 
Continuous Delivery with Spinnaker.io
Continuous Delivery with Spinnaker.ioContinuous Delivery with Spinnaker.io
Continuous Delivery with Spinnaker.io
 

Similaire à Building cloud native apps

Similaire à Building cloud native apps (20)

Kubernetes vs App Service
Kubernetes vs App ServiceKubernetes vs App Service
Kubernetes vs App Service
 
The state of containers for your DevOps journey
The state of containers for your DevOps journeyThe state of containers for your DevOps journey
The state of containers for your DevOps journey
 
Cloud for Kubernetes : Session4
Cloud for Kubernetes : Session4Cloud for Kubernetes : Session4
Cloud for Kubernetes : Session4
 
Using Azure DevOps to continuously build, test, and deploy containerized appl...
Using Azure DevOps to continuously build, test, and deploy containerized appl...Using Azure DevOps to continuously build, test, and deploy containerized appl...
Using Azure DevOps to continuously build, test, and deploy containerized appl...
 
[OpenInfra Days Vietnam 2019] Innovation with open sources and app modernizat...
[OpenInfra Days Vietnam 2019] Innovation with open sources and app modernizat...[OpenInfra Days Vietnam 2019] Innovation with open sources and app modernizat...
[OpenInfra Days Vietnam 2019] Innovation with open sources and app modernizat...
 
Kubernetes on on on on on on on on on on on on on on Azure Deck.pptx
Kubernetes on on on on on on on on on on on on on on Azure Deck.pptxKubernetes on on on on on on on on on on on on on on Azure Deck.pptx
Kubernetes on on on on on on on on on on on on on on Azure Deck.pptx
 
KubeCon China 2019 - Building Apps with Containers, Functions and Managed Ser...
KubeCon China 2019 - Building Apps with Containers, Functions and Managed Ser...KubeCon China 2019 - Building Apps with Containers, Functions and Managed Ser...
KubeCon China 2019 - Building Apps with Containers, Functions and Managed Ser...
 
Designing Microservices
Designing MicroservicesDesigning Microservices
Designing Microservices
 
Microsoft, Linux, Open Source, DevOps
Microsoft, Linux, Open Source, DevOpsMicrosoft, Linux, Open Source, DevOps
Microsoft, Linux, Open Source, DevOps
 
Developing Hybrid Cloud Applications
Developing Hybrid Cloud ApplicationsDeveloping Hybrid Cloud Applications
Developing Hybrid Cloud Applications
 
All you need for Containerized application in Microsoft Azure
All you need for Containerized application in Microsoft AzureAll you need for Containerized application in Microsoft Azure
All you need for Containerized application in Microsoft Azure
 
Develop and deploy Kubernetes applications with Docker - IBM Index 2018
Develop and deploy Kubernetes  applications with Docker - IBM Index 2018Develop and deploy Kubernetes  applications with Docker - IBM Index 2018
Develop and deploy Kubernetes applications with Docker - IBM Index 2018
 
Containers On Azure.
Containers On Azure.Containers On Azure.
Containers On Azure.
 
Innovation with Open Sources and App Modernization for Developers | Ian Y. Choi
Innovation with Open Sources and App Modernization for Developers | Ian Y. ChoiInnovation with Open Sources and App Modernization for Developers | Ian Y. Choi
Innovation with Open Sources and App Modernization for Developers | Ian Y. Choi
 
Azure Containers & Serverless Technology Options (After-Tech-Summit-2018 Edit...
Azure Containers & Serverless Technology Options (After-Tech-Summit-2018 Edit...Azure Containers & Serverless Technology Options (After-Tech-Summit-2018 Edit...
Azure Containers & Serverless Technology Options (After-Tech-Summit-2018 Edit...
 
Ricardo Fiel - Microsoft - OSL19
Ricardo Fiel - Microsoft - OSL19Ricardo Fiel - Microsoft - OSL19
Ricardo Fiel - Microsoft - OSL19
 
Accelerate Application Innovation Journey with Azure Kubernetes Service
Accelerate Application Innovation Journey with Azure Kubernetes Service Accelerate Application Innovation Journey with Azure Kubernetes Service
Accelerate Application Innovation Journey with Azure Kubernetes Service
 
Microservices and Serverless for Mega Startups - DevOps IL Meetup
Microservices and Serverless for Mega Startups - DevOps IL MeetupMicroservices and Serverless for Mega Startups - DevOps IL Meetup
Microservices and Serverless for Mega Startups - DevOps IL Meetup
 
Microservices Tools | Edureka
Microservices Tools | EdurekaMicroservices Tools | Edureka
Microservices Tools | Edureka
 
GIDS 2019: Developing Apps with Containers, Functions and Cloud Services
GIDS 2019: Developing Apps with Containers, Functions and Cloud ServicesGIDS 2019: Developing Apps with Containers, Functions and Cloud Services
GIDS 2019: Developing Apps with Containers, Functions and Cloud Services
 

Plus de Swaminathan Vetri

Plus de Swaminathan Vetri (18)

Architecting multi-cloud ready applications
Architecting multi-cloud ready applicationsArchitecting multi-cloud ready applications
Architecting multi-cloud ready applications
 
BDotNet - Microsoft Build 2023 After Party
BDotNet - Microsoft Build 2023 After Party BDotNet - Microsoft Build 2023 After Party
BDotNet - Microsoft Build 2023 After Party
 
AzureContainerAppswithDotNet_Pune_2022.pptx
AzureContainerAppswithDotNet_Pune_2022.pptxAzureContainerAppswithDotNet_Pune_2022.pptx
AzureContainerAppswithDotNet_Pune_2022.pptx
 
Microservices and Service Mesh
Microservices and Service MeshMicroservices and Service Mesh
Microservices and Service Mesh
 
Infrastructure automation with .NET
Infrastructure automation with .NETInfrastructure automation with .NET
Infrastructure automation with .NET
 
Azure infra automation using pulumi
Azure infra automation using pulumiAzure infra automation using pulumi
Azure infra automation using pulumi
 
CI/CD with GitHub Actions
CI/CD with GitHub ActionsCI/CD with GitHub Actions
CI/CD with GitHub Actions
 
Bye bye WCF, hello gRPC
Bye bye WCF, hello gRPCBye bye WCF, hello gRPC
Bye bye WCF, hello gRPC
 
Azure dev ops
Azure dev opsAzure dev ops
Azure dev ops
 
.Net Standard 2.0
.Net Standard 2.0.Net Standard 2.0
.Net Standard 2.0
 
Cross platform dotnet development using dotnet core
Cross platform dotnet development using dotnet coreCross platform dotnet development using dotnet core
Cross platform dotnet development using dotnet core
 
Unicom DevCon - CI/CD for Asp.net core apps using Docker
Unicom DevCon - CI/CD for Asp.net core apps using DockerUnicom DevCon - CI/CD for Asp.net core apps using Docker
Unicom DevCon - CI/CD for Asp.net core apps using Docker
 
CI/CD for Asp.net core apps using Docker
CI/CD for Asp.net core apps using DockerCI/CD for Asp.net core apps using Docker
CI/CD for Asp.net core apps using Docker
 
Deploying .net core apps to Docker - dotnetConf Local Bengaluru
Deploying .net core apps to Docker - dotnetConf Local BengaluruDeploying .net core apps to Docker - dotnetConf Local Bengaluru
Deploying .net core apps to Docker - dotnetConf Local Bengaluru
 
Rapid mobile app development using Ionic framework
Rapid mobile app development using Ionic frameworkRapid mobile app development using Ionic framework
Rapid mobile app development using Ionic framework
 
Entity Framework for Cross platform apps
Entity Framework for Cross platform appsEntity Framework for Cross platform apps
Entity Framework for Cross platform apps
 
Xamarin Dev Days - Intro to Xamarin
Xamarin Dev Days - Intro to XamarinXamarin Dev Days - Intro to Xamarin
Xamarin Dev Days - Intro to Xamarin
 
Getting Started with Ionic
Getting Started with IonicGetting Started with Ionic
Getting Started with Ionic
 

Dernier

%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
masabamasaba
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
shinachiaurasa2
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 

Dernier (20)

%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
Generic or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisionsGeneric or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisions
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 

Building cloud native apps

  • 1. Building Cloud-Native Apps Nish Anil – Sr. PM .NET Platform, Microsoft @nishanil Swaminathan Vetri – Technical Architect, Maersk @svswaminathan
  • 2. Developers.. Developers.. Developers.. Visual Studio Code Visual Studio Visual Studio for Mac Tools for AzureXamarinTypeScript
  • 4. Free eBooks Coming Soon .. and more @ http://dot.net/architecture
  • 5. • .NET Platform • Cloud-Native philosophy • Microservices Architecture • Leveraging containers & orchestrators • Getting Started with Microservices • Key Patterns for Microservices • Communication • Resiliency – Designing for failure • Healthcheck
  • 6. DESKTOP WEB CLOUD MOBILE GAMING IoT AI .NET
  • 7. Just a few of our millions of .NET customers… dot.net/customers
  • 8. • Build and run scalable applications in modern, dynamic environments • Containers, service meshes, microservices, immutable infrastructure, and declarative APIs exemplify this approach. • Enables loosely coupled systems resilient, manageable, and observable • Enables engineers to make high-impact changes frequently and predictably with minimal toil. Company Experience Netflix Has 600+ services in production. Deploys a hundred times per day. Uber Has 1,000+ services stored in production. Deploys several thousand builds each week. WeChat Has 300+ services in production. Makes almost 1,000 changes per day. *CNCF definition Key: Speed, Agility, & Scalability
  • 9. The 12-Factor Application – A methodology to adopt for cloud-native apps 1. Codebase 2. Dependencies 3. Configurations 4. Backing Services 5. Build, Release, Run 6. Processes 7. Port Binding 8. Concurrency 9. Disposability 10. Dev/Prod Parity 11. Logging 12. Admin Process https://12factor.net/ https://content.pivotal.io/blog/beyond-the-twelve-factor-app
  • 10.
  • 11.
  • 12.
  • 13.
  • 14. Leveraging containers for Microservices A container is a standard unit of software that packages up code and all its dependencies, so the application runs quickly and reliably from one computing environment to another.
  • 15.
  • 16. Azure Container Registry (ACR) Use familiar, open- source Docker CLI tools Azure Container Registry geo-replication Manage images for all types of containers Manage a Docker private registry as a first-class Azure resource
  • 17.
  • 18. Scheduling Affinity/anti- affinity Health monitoring Failover Scaling Networking Service discovery Coordinated app upgrades Azure Kubernetes Service (AKS) The elements of orchestration
  • 20.
  • 21. Key Patterns for Microservices 1. API Gateway vs. Direct communication - API Gateways implementation with Ocelot / Azure API Management 2. Resilient cloud applications - Retries with exponential backoff plus Circuit breaker policy 3. HealthCheck …
  • 22. Direct communication vs the API Gateway pattern Direct communication to microservices (“NO API Gateway usage”) Using the API Gateway pattern
  • 23.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29. Building resilient cloud applications
  • 32.
  • 33. Service Mesh tools: • Envoy from Lyft Engineering • Linkerd from https://buoyant.io • Traefik from https For example, Service Fabric Mesh uses Envoy out-of-the-box and “transparently”: You can also use with Kubernetes but you need to implement/deploy it: These tools provide features such as: • Retry • Circuit-breaking • Latency and other metrics • Failure- and latency-aware load balancing • Distributed tracing • Protocol upgrade • Version-aware routing • Cluster failover, etc If using those, you don’t need an implementation of retries and circuit breaker as part of every microservice. Instead, you will be using one as a sidecar pattern or host proxy. Moving resilient patterns to the platform (Retries/Circuit-Breaker):
  • 34. Other Considerations.. • Communication Patterns • Asynchronous messaging patterns • Event driven architecture • Data Management • CQRS • Deployment patterns • Cross Cutting Concerns • Externalized Configurations • Service Discovery ….

Notes de l'éditeur

  1. 6
  2. Containers offer a logical packaging mechanism in which applications can be abstracted from the environment in which they actually run. This decoupling allows container-based applications to be deployed easily and consistently, regardless of the target environment Containerization provides a clean separation of concerns – isolation. Developers focus on their application logic and dependencies; IT Ops focus on deployment and management.
  3. Efficiently manage a single registry replicated across multiple regions. Geo-replication enables you to manage global deployments as one entity to simplify operations and management. Reduce the network latency and eliminate any ingress/egress charges by keeping your registry in the same data center as your deployments. ACR gives you local, network-close storage of your container images and full control over naming and organization of the images.
  4. TechReady 23