SlideShare a Scribd company logo
1CONFIDENTIAL
HOSTING MICROSERVICES IN
MICROSOFT AZURE
Sergii Kryshtop, Software Engineering Manager, EPAM Ukraine
APRIL 21, 2018
2CONFIDENTIAL
ABOUT THE SPEAKER
Sergii has 12+ years of experience in software development (6+ years with EPAM).
He works with Microsoft Technology Stack and Azure cloud platform being
focused on software architecture and design, cloud services, software
engineering practices, delivery management and resource management.
During his carrier, Sergii has worked with both green field and legacy systems,
with both small teams working in one room and big ones involving 30 people from
three distant geo locations.
Sergii is passionate about technology, since it enables engineers to make
people’s life easier and better. He is also fond of management, since it helps
development teams transform the intangible ideas and lines of code into tangible
products, which altogether brings real value for business and people.
SERGII KRYSHTOP
EPAM Systems, Software Engineering
Manager
3CONFIDENTIAL
MICROSERVICES
ARCHITECTURE:
CHARACTERISTICS
4CONFIDENTIAL
MONOLITHS AND MICROSERVICES
source: https://martinfowler.com/articles/microservices.html
5CONFIDENTIAL
• Single application as a suite of small
services (100+)
• Services are independently deployable and
scalable
• Different services to be written in different
programming languages
• Different services can be managed by
different teams
• Design for failure, requires monitoring and
logging
MONOLITHS VS. MICROSERVICES
• Change cycles are tied together
• Hard to keep a good modular structure
• Scaling requires scaling of the entire application
MICROSERVICE ARCHITECTURE MONOLITHIC ARCHITECTURE
6CONFIDENTIAL
• Networking, Service Discovery
• Configuration management
• Deployment w/o downtime
• Scaling
• Monitoring
COMPONENTS
7CONFIDENTIAL
SELECTING INFRASTRUCTURE
FOR MICROSERVICES
8CONFIDENTIAL
SLA
9CONFIDENTIAL
• App/OS Customization: ability to select OS and support of different programming languages and
runtimes
• Deployment: Built-in tools for application deployment, upgrade and integration with CI/CD tools
• Scalability: built-in capabilities for scaling-out application on specific condition
• Monitoring: built-in features for monitoring
• Cost Efficiency: hosting service cost per single application. The higher efficiency, the lower cost
• Security: ability to secure access to application on different OSI model levels. Higher mark indicates
ability to control access on lower levels (network, transport, application)
CRITERIA
10CONFIDENTIAL
• OS: Linux, Windows, Custom Image
• Deployment: No built-in support, Infrastructure only
• Scalability: autoscale with Azure Insights Autoscale
• Infrastructure monitoring (CPU, Memory, App metrics)
• SLA:
– 1 x VM: 99.9%
– 2 x VM in Availability Zones: 99.99%
• Cost for 50 microservices:
– 2 x 50 * A1 v2 ($31.39) = $3,139 / month
VIRTUAL MACHINE / VM SCALE SET
App/OS Customization:
Deployment:
Scalability:
Monitoring:
Cost Efficiency:
Security:
11CONFIDENTIAL
• The most popular service for running Web and
API applications (including microservices)
• DevOps friendly
• Scale out within several minutes
• Supported languages: .NET, Java, Node.js, PHP,
and Python
• Monitoring and Integration with Application
Insight
• Docker image support is in preview
APP SERVICE / APP SERVICE PLAN
PROS
App Service Plan
VM1
Web App 1
IIS Site Web Site
Web App 2
IIS Site Web Job
VM2
Web App 1
IIS Site Web Site
Web App 2
IIS Site Web Job
AUTOSCALING
LOAD BALANCING
12CONFIDENTIAL
• No real isolation for each application. Applications runs in IIS Application Pool Process
• Scaling is focused on scaling VMs, but not the applications
• No control on per-application restrictions on consuming resources
• Internal load balancer only in Premium service App Service Environment
APP SERVICE / APP SERVICE PLAN
CONS
13CONFIDENTIAL
• OS: Windows and Linux
• Platforms: .NET Fx, .NET Core , Java, Node.js, PHP, Python
• Deployment:
– Integrated CD with major Git Repositories,
– Blue/Green and Canary support with Slots
• Scalability: autoscale (5 min window)
• Infrastructure monitoring (CPU, Memory, App metrics)
• Automatic OS update management
• SLA: 1 x App Service Plan: 99.95%
• Cost for 50 microservices:
– 1 x 50 * S1 ($73.00) = $3,650 / month
APP SERVICE / WEB APPS
App/OS Customization:
Deployment:
Scalability:
Monitoring:
Cost Efficiency:
Security:
14CONFIDENTIAL
• OS: Linux
• Deployment:
– CI/CD with Docker Hub, Azure Container Registry, and
GitHub
– Blue/Green and Canary support with Slots
• Scalability: autoscale (min 5 min window)
• Infrastructure monitoring (CPU, Memory, App metrics)
• SLA: 1 x App Service Plan: 99.95%
• Cost for 50 microservices:
– 1 x 50 * S1 ($73.00) = $3,650 / month
APP SERVICE / WEB APPS FOR CONTAINERS
App/OS Customization:
Deployment:
Scalability:
Monitoring:
Cost Efficiency:
Security:
15CONFIDENTIAL
• Dedicated App Service environment
• Predicted performance on RPS
• Deployed into Virtual Network
• All features of Azure App Service
• Up to 100 App Service Plans
• Cost for 50 microservices:
– Flat fee for each ASE: $981.19/month
– 50 * I1 (255.50) = $12,775 / month
APP SERVICE ENVIRONMENT (ASE)
App/OS Customization:
Deployment:
Scalability:
Monitoring:
Cost Efficiency:
Security:
16CONFIDENTIAL
• Serverless architecture
• Reach deployment options from App Service Plan
• Predicted cost per transaction or use App Service Plan
• Languages: C#, JavaScript, F#
• Triggers: schedule, Azure Service events (Blob, Queue,
etc.), webhook
• Cost for 50 microservices:
– Execution Time: $0.000016/GB-s
– Total Executions: $0.20 per mln executions
3 mln executions, 1 second, 512MB ~ $20 /month
AZURE FUNCTIONS
App/OS Customization:
Deployment:
Scalability:
Monitoring:
Cost Efficiency:
Security:
17CONFIDENTIAL
AZURE SERVICE FABRIC
18CONFIDENTIAL
• Fully managed platform and programming model for microservices
• Proven platform used by Azure and other Microsoft services
• Run in Azure, on-premise or other clouds
• Introduce additional Actor programming model
• Java, Docker and Windows containers are in roadmap. Linux support Is in Preview
AZURE SERVICE FABRIC (ASF)
PROS
CONS
• Vendor lock on Platform and model
• On-premise support were released in 2016
• Need to develop expertise
19CONFIDENTIAL
• OS: Windows, Linux
• Deployment: Rolling updates, etc.
• Scalability: built-in autoscale
• Infrastructure monitoring, App monitoring
• Programming Models: from containers and guest-
executables to microservices and actors.
• SLA: 99.99% (from VM)
• Cost for 50 microservices:
– 5 x D2 V3 ($80.30) = $401.5 / month
– 5 x D4 V3 ($160.60) = $803.0 / month
AZURE SERVICE FABRIC
App/OS Customization:
Deployment:
Scalability:
Monitoring:
Cost Efficiency:
Security:
20CONFIDENTIAL
CONTAINERS
21CONFIDENTIAL
CONTAINERS ARE LIGHTWEIGHT
SERVER
HOST OS
GUEST OS
HYPERVISOR (TYPE 2)
LIBRARIES
APP A
GUEST OS
LIBRARIES
APP B
VM
SERVER
HOST OS
LIBRARIES
APP A
LIBRARIES
APP B
CONTAINERS
• Containers are isolated but share OS
• Increase the compute density and
memory utilization
DOCKER ENGINE
22CONFIDENTIAL
VIRTUAL MACHINES CONTAINERS AND THE HOST
23CONFIDENTIAL
• Application Deployment, including rollouts and rollbacks
• Horizontal Scaling
• Self-healing
• Discovery and load balancing
• Configuration management
• Monitoring
CONTAINER ORCHESTRATION
CONTAINER ORCHESTRATION = CLOUD PLATFORM
24CONFIDENTIAL
• Optimized provisioning of open-source container
orchestration tools
– Kubernetes
– DC/OS
– Docker Swarm
• Full automation of all orchestration platform
components
• Compatible with standard open-source
orchestration API
• ACS is a free service that clusters Virtual Machines
(VMs) into a container
• Hybrid deployment for applications
AZURE CONTAINER SERVICE (ACS)
25CONFIDENTIAL
CONTAINER ORCHESTRATION BASELINE ARCHITECTURE
Master
Master
App 1 App 2
App 3
App 1 App 2
Worker Node Worker Node
OrchestrationOrchestration
Orchestration
Services
Admin UI / CLI
Load Balancing
Application Users
26CONFIDENTIAL
ACS KUBERNETES DEPLOYMENT
27CONFIDENTIAL
ACS DOCKER SWARM DEPLOYMENT
28CONFIDENTIAL
ACS DC/OS (APACHE MESOS)
30CONFIDENTIAL
• Optimized provisioning of open-source container
orchestration tools
• Full automation of all orchestration platform
components
• Compatible with standard open-source
orchestration API
• ACS is a free service that clusters Virtual Machines
(VMs) into a container
• Hybrid deployment for applications
AZURE KUBERNETES SERVICE (AKS)
31CONFIDENTIAL
• Azure-Hosted Control Plane
• Control version of Kubernetes
• Upgrade to new version of Kubernetes
• No payment for Master Nodes
AZURE CONTAINER SERVICE (MANAGED) (AKS)
UNMANAGED KUBERNETES (ACS) MANAGED KUBERNETES (AKS)
Control Plane
Master
VM
Master
VM
Master
VM
Agent Pool
Agent
VM
Agent
VM
Agent
VM
Hosted
Control Pane
Agent Pool
Agent
VM
Agent
VM
Agent
VM
32CONFIDENTIAL
• OS: Linux
• Deployment: Rolling updates, etc.
• Scalability: in-cluster scaling
• Infrastructure monitoring, App monitoring (K8s tools)
• Programming Models: Any that can run in Linux containers
• SLA: 99.99% (from VM when 2+ workers)
• Cost for 50 microservices:
– Master: 3 x D2 V3 ($80.30) ~ $241.0 / month
– Worker: 3 x D4 V3 ($160.60) ~ $483.0 / month
AZURE KUBERNETES SERVICE (AKS)
App/OS Customization:
Deployment:
Scalability:
Monitoring:
Cost Efficiency:
Security:
33CONFIDENTIAL
• Store and manage container images across all types of Azure deployments
• Azure Container Registry is a managed Docker registry service based on the open-source
Docker Registry 2.0.
• Maintain Windows and Linux container images in a single Docker registry
• Use familiar, open-source Docker command line interface (CLI) tools
• Simplify registry access management with Azure Active Directory
• Managed Registry and Classic
AZURE CONTAINER REGISTRY SERVICE
34CONFIDENTIAL
ACR PRICING
Managed Registry SLA 99.9% successfully process Registry Transactions.
The SLA for Classic Registry is provided through Azure Storage (99.9%).
36CONFIDENTIAL
IN DATA TIER
CONTAINERS
37CONFIDENTIAL
• Get more DTU density for given cost
• Databases runs in isolation
• Scale up/down database manually or
using autoscale
SQL DATABASE ELASTIC POOL
SQL ELASTIC DATABASE POOL
eDTU POOL
38CONFIDENTIAL
DEMO:
DEPLOY TO ACS KUBERNETES
39CONFIDENTIAL
1. Provision Managed Kubernetes Cluster
2. Provision Azure Container Service
3. Get sample application from GitHub and create docker package
4. Push app image to registry
5. Deploy application to cluster
SCENARIO
https://github.com/sergekryshtop/gab2018_aksdemo
42CONFIDENTIAL
OTHER TIPS
43CONFIDENTIAL
CREATE DOCKER REGISTRY SECRET WITH JMESPATH
http://jmespath.org/
44CONFIDENTIAL
• Available Docker Integration Build Task
• Docker Registry Credentials Management
• Docker Build command
• Docker Push command
• Docker Run command
• Run Docker commands
• Docker Compose support
• Requires VSTS agent with Docker tools or
Agent running in Docker Container
VISUAL STUDIO TEAM SERVICES: BUILD
45CONFIDENTIAL
BUILD STEPS AND RESULT
46CONFIDENTIAL
BUILD STEPS FOR AGENT IN DOCKER
47CONFIDENTIAL
SUMMARY
48CONFIDENTIAL
• Depending on product engineering maturity and system architecture you have several Azure services
to deployment
• Containers and Linux are the first-class citizens in Azure
• Microsoft wrap all Container orchestration components with easy-to-use services which allows to
build full CI and CD solution in short time
• It is a trend from Microsoft and industry to move into better resource utilization and containers
• If you build microservices on Microsoft stack and not interested in Containers and open-source
orchestration, than Azure Service Fabric might be a good option to go
WRAP UP
49CONFIDENTIAL
CONTACT ME
sergii_kryshtop@epam.com
skryshtop
skryshtop
sergii.kryshtop
@skryshtop

More Related Content

PDF
【BS1】What’s new in visual studio 2022 and c# 10
PPTX
Power of Azure Devops
PPTX
Red Hat Quarkus | Red Hat Application Development | DO283
PPTX
CI CD using Docker and Jenkins
PPTX
WinOps Conf 2015 - Microsoft Azure & Open Source
PDF
Azure Pipeline Tutorial | Azure DevOps Tutorial | Edureka
PPTX
Infrastructure automation with .NET
PDF
Building scalable applications using serverless on the cloud
【BS1】What’s new in visual studio 2022 and c# 10
Power of Azure Devops
Red Hat Quarkus | Red Hat Application Development | DO283
CI CD using Docker and Jenkins
WinOps Conf 2015 - Microsoft Azure & Open Source
Azure Pipeline Tutorial | Azure DevOps Tutorial | Edureka
Infrastructure automation with .NET
Building scalable applications using serverless on the cloud

What's hot (20)

PPTX
Docker and Microservice
PPTX
Webinar: High velocity deployment with google cloud and weave cloud
PPTX
Getting Started with Azure Artifacts
PPTX
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...
PPTX
DevOps for Azure
PDF
Spring: Your Next Java Micro-Framework
PPTX
Azure DevOps Extensions
PPTX
Azure dev ops
PDF
JavaLand - Micrometer and SpringBoot
PDF
PuppetConf 2016: Keynote: Pulling the Strings to Containerize Your Life - Sco...
PPTX
Leveraging Azure DevOps across the Enterprise
PPTX
Modern CI/CD Pipeline Using Azure DevOps
PDF
Workshop Azure DevOps | Docker | Azure Kubernetes Services
PDF
Apache Continuum Build, Test, and Release
PDF
App sec in the time of docker containers
PDF
DCSF 19 Improving the Human Condition with Docker
PDF
アプリケーションエンジニアへのいちおし Azure Update at Microsoft Ignite 2020
PPTX
Azure, DevOps and the Commodore 64
PPTX
The Power of Azure DevOps
PDF
[JAZUG Tohoku Azure DevOps] Azure DevOps
Docker and Microservice
Webinar: High velocity deployment with google cloud and weave cloud
Getting Started with Azure Artifacts
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...
DevOps for Azure
Spring: Your Next Java Micro-Framework
Azure DevOps Extensions
Azure dev ops
JavaLand - Micrometer and SpringBoot
PuppetConf 2016: Keynote: Pulling the Strings to Containerize Your Life - Sco...
Leveraging Azure DevOps across the Enterprise
Modern CI/CD Pipeline Using Azure DevOps
Workshop Azure DevOps | Docker | Azure Kubernetes Services
Apache Continuum Build, Test, and Release
App sec in the time of docker containers
DCSF 19 Improving the Human Condition with Docker
アプリケーションエンジニアへのいちおし Azure Update at Microsoft Ignite 2020
Azure, DevOps and the Commodore 64
The Power of Azure DevOps
[JAZUG Tohoku Azure DevOps] Azure DevOps
Ad

Similar to Hosting Microservices in Microsoft Azure (20)

PPTX
Containers in Microsoft Azure
PPTX
Demystifying Azure Compute
PPTX
Microservices in Azure
PPTX
Tour de France Azure PaaS 2/7 Exécuter une application
PPTX
Microservices in Azure
PDF
AZ900-AzureFundamentals-part-5.pdf
PPTX
Running Containers On Azure
PPTX
Net core microservice development made easy with azure dev spaces
PPTX
Azure: Docker Container orchestration, PaaS ( Service Farbic ) and High avail...
PDF
Modern Software Architecture - Cloud Scale Computing
PPTX
Azure Modern Cloud App Development Approaches 2017
PPTX
Power of Compute Services on Microsoft Azure.
PPTX
Microservices using .Net core
PPTX
TenT-Day01.pptx
PPTX
TenT-Day01.pptx
PPTX
Microsoft TechSummit - Deploy your Solution to IaaS and PaaS with VSTS and Az...
PPTX
20170209 dev day-websites_vs_cloudservices_vsservicefabric_scenarios
PDF
Cloud Computing as Innovation Hub - Mohammad Fairus Khalid
PPTX
Azure App Service - Customer Presentation v4.pptx
PDF
AppSphere 15 - Microsoft Azure for Developers & DevOps
Containers in Microsoft Azure
Demystifying Azure Compute
Microservices in Azure
Tour de France Azure PaaS 2/7 Exécuter une application
Microservices in Azure
AZ900-AzureFundamentals-part-5.pdf
Running Containers On Azure
Net core microservice development made easy with azure dev spaces
Azure: Docker Container orchestration, PaaS ( Service Farbic ) and High avail...
Modern Software Architecture - Cloud Scale Computing
Azure Modern Cloud App Development Approaches 2017
Power of Compute Services on Microsoft Azure.
Microservices using .Net core
TenT-Day01.pptx
TenT-Day01.pptx
Microsoft TechSummit - Deploy your Solution to IaaS and PaaS with VSTS and Az...
20170209 dev day-websites_vs_cloudservices_vsservicefabric_scenarios
Cloud Computing as Innovation Hub - Mohammad Fairus Khalid
Azure App Service - Customer Presentation v4.pptx
AppSphere 15 - Microsoft Azure for Developers & DevOps
Ad

More from Katherine Golovinova (20)

PDF
Contract-based Testing Approach as a Tool for Shift Lef
PDF
Speed up application testing with azure container instances
PDF
Analyzing application activities with KSQL and Elasticsearch
PPTX
Testing Big Data solutions fast and furiously
PDF
"Fast & Fail in real life of DevTestSecOps"
PPTX
Geodistributed databases - what, how, and why?
PPTX
COSMOS DB - geodistributed database for anyone
PDF
Migrating from a monolith to microservices – is it worth it?
PDF
Azure Functions - the evolution of microservices platform or marketing gibber...
PPTX
Gatling and Page Object: a way to performance testing
PDF
Automation of Security scanning easy or cheese
PPTX
Gradle plugins for Test Automation
PPTX
Automation world under the DevTestSecOps umbrella
PPTX
"Disaster Recovery in Azure" by Viktor Kocherha
PPTX
"Certified Kubernetes Administrator Exam – how it was" by Andrii Fedenishin
PPTX
"Modern CI/CD" by Dmytro Batiievskyi
PPTX
EPAM DevOps community meetup: Building CI/CD for microservice architecture
PPTX
EPAM DevOps community meetup: Designing bare metal Kubernetes clusters
PDF
Infrastructure as Code for Azure: ARM or Terraform?
PDF
Azure IoT Hub: what is it and why we select other solution (production projec...
Contract-based Testing Approach as a Tool for Shift Lef
Speed up application testing with azure container instances
Analyzing application activities with KSQL and Elasticsearch
Testing Big Data solutions fast and furiously
"Fast & Fail in real life of DevTestSecOps"
Geodistributed databases - what, how, and why?
COSMOS DB - geodistributed database for anyone
Migrating from a monolith to microservices – is it worth it?
Azure Functions - the evolution of microservices platform or marketing gibber...
Gatling and Page Object: a way to performance testing
Automation of Security scanning easy or cheese
Gradle plugins for Test Automation
Automation world under the DevTestSecOps umbrella
"Disaster Recovery in Azure" by Viktor Kocherha
"Certified Kubernetes Administrator Exam – how it was" by Andrii Fedenishin
"Modern CI/CD" by Dmytro Batiievskyi
EPAM DevOps community meetup: Building CI/CD for microservice architecture
EPAM DevOps community meetup: Designing bare metal Kubernetes clusters
Infrastructure as Code for Azure: ARM or Terraform?
Azure IoT Hub: what is it and why we select other solution (production projec...

Recently uploaded (20)

PPTX
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx
PDF
Operating System & Kernel Study Guide-1 - converted.pdf
PDF
Embodied AI: Ushering in the Next Era of Intelligent Systems
PPTX
additive manufacturing of ss316l using mig welding
PDF
SM_6th-Sem__Cse_Internet-of-Things.pdf IOT
PPT
Mechanical Engineering MATERIALS Selection
PPT
CRASH COURSE IN ALTERNATIVE PLUMBING CLASS
PPTX
Welding lecture in detail for understanding
PDF
Automation-in-Manufacturing-Chapter-Introduction.pdf
PDF
The CXO Playbook 2025 – Future-Ready Strategies for C-Suite Leaders Cerebrai...
DOCX
ASol_English-Language-Literature-Set-1-27-02-2023-converted.docx
PPTX
Recipes for Real Time Voice AI WebRTC, SLMs and Open Source Software.pptx
PDF
keyrequirementskkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
PPTX
IOT PPTs Week 10 Lecture Material.pptx of NPTEL Smart Cities contd
PPTX
FINAL REVIEW FOR COPD DIANOSIS FOR PULMONARY DISEASE.pptx
PPTX
Infosys Presentation by1.Riyan Bagwan 2.Samadhan Naiknavare 3.Gaurav Shinde 4...
PPTX
UNIT 4 Total Quality Management .pptx
PPTX
Internet of Things (IOT) - A guide to understanding
PPTX
bas. eng. economics group 4 presentation 1.pptx
PPTX
Lecture Notes Electrical Wiring System Components
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx
Operating System & Kernel Study Guide-1 - converted.pdf
Embodied AI: Ushering in the Next Era of Intelligent Systems
additive manufacturing of ss316l using mig welding
SM_6th-Sem__Cse_Internet-of-Things.pdf IOT
Mechanical Engineering MATERIALS Selection
CRASH COURSE IN ALTERNATIVE PLUMBING CLASS
Welding lecture in detail for understanding
Automation-in-Manufacturing-Chapter-Introduction.pdf
The CXO Playbook 2025 – Future-Ready Strategies for C-Suite Leaders Cerebrai...
ASol_English-Language-Literature-Set-1-27-02-2023-converted.docx
Recipes for Real Time Voice AI WebRTC, SLMs and Open Source Software.pptx
keyrequirementskkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
IOT PPTs Week 10 Lecture Material.pptx of NPTEL Smart Cities contd
FINAL REVIEW FOR COPD DIANOSIS FOR PULMONARY DISEASE.pptx
Infosys Presentation by1.Riyan Bagwan 2.Samadhan Naiknavare 3.Gaurav Shinde 4...
UNIT 4 Total Quality Management .pptx
Internet of Things (IOT) - A guide to understanding
bas. eng. economics group 4 presentation 1.pptx
Lecture Notes Electrical Wiring System Components

Hosting Microservices in Microsoft Azure

  • 1. 1CONFIDENTIAL HOSTING MICROSERVICES IN MICROSOFT AZURE Sergii Kryshtop, Software Engineering Manager, EPAM Ukraine APRIL 21, 2018
  • 2. 2CONFIDENTIAL ABOUT THE SPEAKER Sergii has 12+ years of experience in software development (6+ years with EPAM). He works with Microsoft Technology Stack and Azure cloud platform being focused on software architecture and design, cloud services, software engineering practices, delivery management and resource management. During his carrier, Sergii has worked with both green field and legacy systems, with both small teams working in one room and big ones involving 30 people from three distant geo locations. Sergii is passionate about technology, since it enables engineers to make people’s life easier and better. He is also fond of management, since it helps development teams transform the intangible ideas and lines of code into tangible products, which altogether brings real value for business and people. SERGII KRYSHTOP EPAM Systems, Software Engineering Manager
  • 4. 4CONFIDENTIAL MONOLITHS AND MICROSERVICES source: https://martinfowler.com/articles/microservices.html
  • 5. 5CONFIDENTIAL • Single application as a suite of small services (100+) • Services are independently deployable and scalable • Different services to be written in different programming languages • Different services can be managed by different teams • Design for failure, requires monitoring and logging MONOLITHS VS. MICROSERVICES • Change cycles are tied together • Hard to keep a good modular structure • Scaling requires scaling of the entire application MICROSERVICE ARCHITECTURE MONOLITHIC ARCHITECTURE
  • 6. 6CONFIDENTIAL • Networking, Service Discovery • Configuration management • Deployment w/o downtime • Scaling • Monitoring COMPONENTS
  • 9. 9CONFIDENTIAL • App/OS Customization: ability to select OS and support of different programming languages and runtimes • Deployment: Built-in tools for application deployment, upgrade and integration with CI/CD tools • Scalability: built-in capabilities for scaling-out application on specific condition • Monitoring: built-in features for monitoring • Cost Efficiency: hosting service cost per single application. The higher efficiency, the lower cost • Security: ability to secure access to application on different OSI model levels. Higher mark indicates ability to control access on lower levels (network, transport, application) CRITERIA
  • 10. 10CONFIDENTIAL • OS: Linux, Windows, Custom Image • Deployment: No built-in support, Infrastructure only • Scalability: autoscale with Azure Insights Autoscale • Infrastructure monitoring (CPU, Memory, App metrics) • SLA: – 1 x VM: 99.9% – 2 x VM in Availability Zones: 99.99% • Cost for 50 microservices: – 2 x 50 * A1 v2 ($31.39) = $3,139 / month VIRTUAL MACHINE / VM SCALE SET App/OS Customization: Deployment: Scalability: Monitoring: Cost Efficiency: Security:
  • 11. 11CONFIDENTIAL • The most popular service for running Web and API applications (including microservices) • DevOps friendly • Scale out within several minutes • Supported languages: .NET, Java, Node.js, PHP, and Python • Monitoring and Integration with Application Insight • Docker image support is in preview APP SERVICE / APP SERVICE PLAN PROS App Service Plan VM1 Web App 1 IIS Site Web Site Web App 2 IIS Site Web Job VM2 Web App 1 IIS Site Web Site Web App 2 IIS Site Web Job AUTOSCALING LOAD BALANCING
  • 12. 12CONFIDENTIAL • No real isolation for each application. Applications runs in IIS Application Pool Process • Scaling is focused on scaling VMs, but not the applications • No control on per-application restrictions on consuming resources • Internal load balancer only in Premium service App Service Environment APP SERVICE / APP SERVICE PLAN CONS
  • 13. 13CONFIDENTIAL • OS: Windows and Linux • Platforms: .NET Fx, .NET Core , Java, Node.js, PHP, Python • Deployment: – Integrated CD with major Git Repositories, – Blue/Green and Canary support with Slots • Scalability: autoscale (5 min window) • Infrastructure monitoring (CPU, Memory, App metrics) • Automatic OS update management • SLA: 1 x App Service Plan: 99.95% • Cost for 50 microservices: – 1 x 50 * S1 ($73.00) = $3,650 / month APP SERVICE / WEB APPS App/OS Customization: Deployment: Scalability: Monitoring: Cost Efficiency: Security:
  • 14. 14CONFIDENTIAL • OS: Linux • Deployment: – CI/CD with Docker Hub, Azure Container Registry, and GitHub – Blue/Green and Canary support with Slots • Scalability: autoscale (min 5 min window) • Infrastructure monitoring (CPU, Memory, App metrics) • SLA: 1 x App Service Plan: 99.95% • Cost for 50 microservices: – 1 x 50 * S1 ($73.00) = $3,650 / month APP SERVICE / WEB APPS FOR CONTAINERS App/OS Customization: Deployment: Scalability: Monitoring: Cost Efficiency: Security:
  • 15. 15CONFIDENTIAL • Dedicated App Service environment • Predicted performance on RPS • Deployed into Virtual Network • All features of Azure App Service • Up to 100 App Service Plans • Cost for 50 microservices: – Flat fee for each ASE: $981.19/month – 50 * I1 (255.50) = $12,775 / month APP SERVICE ENVIRONMENT (ASE) App/OS Customization: Deployment: Scalability: Monitoring: Cost Efficiency: Security:
  • 16. 16CONFIDENTIAL • Serverless architecture • Reach deployment options from App Service Plan • Predicted cost per transaction or use App Service Plan • Languages: C#, JavaScript, F# • Triggers: schedule, Azure Service events (Blob, Queue, etc.), webhook • Cost for 50 microservices: – Execution Time: $0.000016/GB-s – Total Executions: $0.20 per mln executions 3 mln executions, 1 second, 512MB ~ $20 /month AZURE FUNCTIONS App/OS Customization: Deployment: Scalability: Monitoring: Cost Efficiency: Security:
  • 18. 18CONFIDENTIAL • Fully managed platform and programming model for microservices • Proven platform used by Azure and other Microsoft services • Run in Azure, on-premise or other clouds • Introduce additional Actor programming model • Java, Docker and Windows containers are in roadmap. Linux support Is in Preview AZURE SERVICE FABRIC (ASF) PROS CONS • Vendor lock on Platform and model • On-premise support were released in 2016 • Need to develop expertise
  • 19. 19CONFIDENTIAL • OS: Windows, Linux • Deployment: Rolling updates, etc. • Scalability: built-in autoscale • Infrastructure monitoring, App monitoring • Programming Models: from containers and guest- executables to microservices and actors. • SLA: 99.99% (from VM) • Cost for 50 microservices: – 5 x D2 V3 ($80.30) = $401.5 / month – 5 x D4 V3 ($160.60) = $803.0 / month AZURE SERVICE FABRIC App/OS Customization: Deployment: Scalability: Monitoring: Cost Efficiency: Security:
  • 21. 21CONFIDENTIAL CONTAINERS ARE LIGHTWEIGHT SERVER HOST OS GUEST OS HYPERVISOR (TYPE 2) LIBRARIES APP A GUEST OS LIBRARIES APP B VM SERVER HOST OS LIBRARIES APP A LIBRARIES APP B CONTAINERS • Containers are isolated but share OS • Increase the compute density and memory utilization DOCKER ENGINE
  • 23. 23CONFIDENTIAL • Application Deployment, including rollouts and rollbacks • Horizontal Scaling • Self-healing • Discovery and load balancing • Configuration management • Monitoring CONTAINER ORCHESTRATION CONTAINER ORCHESTRATION = CLOUD PLATFORM
  • 24. 24CONFIDENTIAL • Optimized provisioning of open-source container orchestration tools – Kubernetes – DC/OS – Docker Swarm • Full automation of all orchestration platform components • Compatible with standard open-source orchestration API • ACS is a free service that clusters Virtual Machines (VMs) into a container • Hybrid deployment for applications AZURE CONTAINER SERVICE (ACS)
  • 25. 25CONFIDENTIAL CONTAINER ORCHESTRATION BASELINE ARCHITECTURE Master Master App 1 App 2 App 3 App 1 App 2 Worker Node Worker Node OrchestrationOrchestration Orchestration Services Admin UI / CLI Load Balancing Application Users
  • 29. 30CONFIDENTIAL • Optimized provisioning of open-source container orchestration tools • Full automation of all orchestration platform components • Compatible with standard open-source orchestration API • ACS is a free service that clusters Virtual Machines (VMs) into a container • Hybrid deployment for applications AZURE KUBERNETES SERVICE (AKS)
  • 30. 31CONFIDENTIAL • Azure-Hosted Control Plane • Control version of Kubernetes • Upgrade to new version of Kubernetes • No payment for Master Nodes AZURE CONTAINER SERVICE (MANAGED) (AKS) UNMANAGED KUBERNETES (ACS) MANAGED KUBERNETES (AKS) Control Plane Master VM Master VM Master VM Agent Pool Agent VM Agent VM Agent VM Hosted Control Pane Agent Pool Agent VM Agent VM Agent VM
  • 31. 32CONFIDENTIAL • OS: Linux • Deployment: Rolling updates, etc. • Scalability: in-cluster scaling • Infrastructure monitoring, App monitoring (K8s tools) • Programming Models: Any that can run in Linux containers • SLA: 99.99% (from VM when 2+ workers) • Cost for 50 microservices: – Master: 3 x D2 V3 ($80.30) ~ $241.0 / month – Worker: 3 x D4 V3 ($160.60) ~ $483.0 / month AZURE KUBERNETES SERVICE (AKS) App/OS Customization: Deployment: Scalability: Monitoring: Cost Efficiency: Security:
  • 32. 33CONFIDENTIAL • Store and manage container images across all types of Azure deployments • Azure Container Registry is a managed Docker registry service based on the open-source Docker Registry 2.0. • Maintain Windows and Linux container images in a single Docker registry • Use familiar, open-source Docker command line interface (CLI) tools • Simplify registry access management with Azure Active Directory • Managed Registry and Classic AZURE CONTAINER REGISTRY SERVICE
  • 33. 34CONFIDENTIAL ACR PRICING Managed Registry SLA 99.9% successfully process Registry Transactions. The SLA for Classic Registry is provided through Azure Storage (99.9%).
  • 35. 37CONFIDENTIAL • Get more DTU density for given cost • Databases runs in isolation • Scale up/down database manually or using autoscale SQL DATABASE ELASTIC POOL SQL ELASTIC DATABASE POOL eDTU POOL
  • 37. 39CONFIDENTIAL 1. Provision Managed Kubernetes Cluster 2. Provision Azure Container Service 3. Get sample application from GitHub and create docker package 4. Push app image to registry 5. Deploy application to cluster SCENARIO https://github.com/sergekryshtop/gab2018_aksdemo
  • 39. 43CONFIDENTIAL CREATE DOCKER REGISTRY SECRET WITH JMESPATH http://jmespath.org/
  • 40. 44CONFIDENTIAL • Available Docker Integration Build Task • Docker Registry Credentials Management • Docker Build command • Docker Push command • Docker Run command • Run Docker commands • Docker Compose support • Requires VSTS agent with Docker tools or Agent running in Docker Container VISUAL STUDIO TEAM SERVICES: BUILD
  • 44. 48CONFIDENTIAL • Depending on product engineering maturity and system architecture you have several Azure services to deployment • Containers and Linux are the first-class citizens in Azure • Microsoft wrap all Container orchestration components with easy-to-use services which allows to build full CI and CD solution in short time • It is a trend from Microsoft and industry to move into better resource utilization and containers • If you build microservices on Microsoft stack and not interested in Containers and open-source orchestration, than Azure Service Fabric might be a good option to go WRAP UP