SlideShare une entreprise Scribd logo
1  sur  26
Moving Containerized
Apps to Azure Container
Service
Christoph Schittko
Cloud Solution Architect, Microsoft
Agenda
▪ Business Problem
▪ Customer On-Prem Architecture
▪ Challenges and Solutions
▪ Lessons Learned
▪ Demo
▪ Resources
Assumptions
▪ Familiar with Docker
▪ Familiar with Container Deployment and Orchestration
▪ Familiar with Azure Container Service
Business Problem
▪ Operating on-prem hardware at PB scale is expensive
▪ New business models require new operating models
– Elastic Scale
– Cost Efficient Deployment through Highest Density
▪ Rapid Global Expansion requires Partnering with Public Cloud
Providers
Existing Customer On-Prem Solution(s)
Application Services Agent Pool
Public Agent Pool
Data Services Agent Pool
Master
Virtual machineVirtual machine Virtual machineVirtual machineVirtual machine
Virtual machine Virtual machine
Virtual machine Virtual machine
Virtual machine Virtual machine
Virtual machine Virtual machine
Virtual machine
Virtual machine
Storage Array
Challenges
▪ Cost Efficient Cluster Configurations
▪ Persistent Data with high IOPS requirements
▪ Internet Access to Services
▪ Advanced Node Configuration (Cassandra HA)
▪ Network “Isolation” ofApplications
Introducing ACS-Engine
▪ ACS works with 2Tiers ofTemplates
– ACS Deployment Model -> ARMTemplates
▪ Highly Customizable ClusterTopology
▪ Built with learning from POCs
ACS-Engine: Model and Config
Difficulty Scope Skill Required
Simple Custom Cluster • Authoring JSON documents
Advanced Customize Provisioning • Custom ARMTemplate (JSON docs w/ proprietary
templating)
• Custom Provision Scripts (bash scripts w/ proprietary
templating)
Expert Extend the Engine • Extend the model (Go Coding)
• Add additional provisioning hooks (Go Coding)
Cost Efficient Clusters
▪ SmallestVM possible
▪ Scale Elastically
▪ AgentType PerWorkload
– VM type
– Storage config
– Application specific config
ACS-Engine Model (snippet)
"agentPoolProfiles": [
{
"name": "agentapps",
"count": 4,
"vmSize": "Standard_D2_v2"
},
{
"name": "agentcassandra",
"count": 1,
"vmSize": "Standard_D3_v2",
"availabilityProfile": "AvailabilitySet",
"storageProfile": "StorageAccount",
"diskSizesGB": [128, 128, 128, 128]
}
],
Persistent Data
Storage blob
VHD data disk
Azure Files
Virtual machine
Node Configuration
▪ Custom Script Extension requiresARM modifications
▪ Custom Agent Script Hook in ACS-Engine (not published yet)
▪ Cloud Init / Cloud Config
Custom Script Extension vs. Custom Data
{
"type": "CustomScript",
"fileUris": [ ... ]
}
#!/bin/bash
...
ARM Template
Customization
Script on Web
ARM
Engine
Virtual machine
Deploy
VM
Custom Script
Custom Data
{
"customData": "#cloud-
config
}
ARM Template
ARM
Engine
Virtual machine
Passes
Script
Deploy
VM
Advanced Node Config
▪ Install Docker Drivers or Add-Ons
▪ Container Registry Credentials
▪ Specify DCOS Attributes for Placement Constraints
▪ Configuring Nodes forCassandra HA
– E.g. Cassandra requires rack topology to configure itself for HA
– Racks map to Azure Fault Domains
– FD discovery via Metadata Service at Node Provisioning time
– Publish to DCOS via attributes
– Perform Customization in Container Startup Script
Cloud Init via ARM’s customData
• Cross Platform solution to customize cloudVMs (http://cloud-init.io)
• Passed Directly to theVM’s Azure Agent at provisioning time. No Staging Needed
{
"type": "Microsoft.Compute/virtualMachines“,
"osProfile": {
"adminUsername": "[variables('adminUsername')]",
"computername": "[concat(variables('agent128VMNamePrefix'), copyIndex())]",
"customData": "[base64(concat('#cloud-confignn', '{"bootcmd":["bash -c ...]"
}
"linuxConfiguration": {
Cloud Config
#cloud-config
bootcmd: […]
disk_setup: […]
fs_setup: […]
mounts: […]
runcmd: […]
write_files: […]
Externally Accessible Services
Load balancer
Svc
instance 1
10.0.0.4:80
Svc
instance 2
10.0.0.5:80
Host Mode Networking Bridge Mode Networking
Load balancer
Svc instance1
10.0.0.4:10091
Svc instance2
10.0.0.4:19828
Marathon-lb
10.0.0.4:80
Externally Accessible Services
▪ ACS Public Agent Pool
– Works great with Containers in Host Mode
▪ Azure L4 ELB / Azure L7 App Gateway
– Hard to add agents (CLI 1.x /VMSS) and containers
▪ DCOS Built-In L4 LB (minuteman)
– Integrated in DCOS scaling operations
▪ L7 LB (Marathon-lb / HA Proxy )
– Integrated in DCOS scaling operations
▪ Nginx Proxy in Host Mode on Public Agent
– Combine with minuteman to allow for DCOS scaling
– Expose through ELB
DCOS Service Discovery
Network Type IP Addressing DNS Naming Scheme
Host Network Host IP : Host Port <servicename>.marathon.mesos
Bridge Network VIP : Container Port <servicename>.marathon.l4lb.thisdcos.directory
User Network Private IP : Container Port <servicename>.
marathon.containerip.dcos.thisdcos.directory
Application Networks
▪ Based on DockerVirtual Networks
▪ Isolate Applications to their own address space
▪ Scope Name Resolution
▪ Simplification NOT a security boundary
▪ Very hard to provision in current DCOS configuration
– Mesosphere recommends placement in pre-configured overlay network
Resulting Architecture
Application Services Agent Pool
Public Agent Pool
Master
Virtual machine
Virtual machine
Virtual machine
Cloud Object Store
Azure load
balancer
Azure load
balancer
Azure Premium
Storage Data
Disks
MySql Agent
Pool
Virtual machine Virtual machineVirtual machine
Availability set
Virtual machine
Virtual machine Virtual machineVirtual machine
Availability set
Virtual machine
Cassandra /
Gluster
Agent Pool
Availability set
Storage blob
marathon-lb / nginx
AzureContainer
Registry
ACS-Engine: Demo
▪ Clone ACS-Engine Repo
▪ Build engine
▪ Custom Model
▪ Provision Cluster
▪ Show DCOS UI  Cooking Show Style
▪ Deploy Service?
Outcome
▪ Mission Accomplished: No Code Changes
– MinorConfig Changes
▪ DNS Naming
▪ Network Mode
▪ Setup Scripts
– Modifications to S3Proxy to account for S3 not following HTTP standard
▪ ~2300 cores of compute
▪ >100TB storage
▪ Passing Load / StressTests
Other Lessons Learned
▪ Azure Explore Existing Container Solutions before building your own (S3
Proxy, Cassandra)
▪ ACS install requires outbound network connectivity
▪ Azure Container Registry + ACS works seamless
▪ DCOS install does not detect orphaned nodes
▪ ACS DCOS makes private networks really hard
▪ DCOS is moving fast. DCOS docs, not so much
▪ Slack (K8s, Mesos)
▪ DCOS Jira for bug fixes
Some More Lessons Learned
▪ 250 Storage Accounts isn’t as much as you think
▪ Large Storage Opportunities. Work with Azure Storage team to
optimize storage account placement
▪ Think about Elasticity when you Switch to Availability Sets
– Templates / Scripts to increase / decrease agent pool size
▪ GlusterFS on Data Disks instead ofAzure Files
– Limited LockingCapabilities can cause data corruption
– 1000 IOPS
Resources
▪ DCOS Docs: https://docs.mesosphere.com/1.8/overview/
▪ ACS-Engine with PersistentVolume Provisioning: https://github.com/xtophs/acs-
engine/tree/xtoph-agentscripts
▪ ACS-Engine with DCOS attributes: https://github.com/xtophs/acs-engine/tree/xtoph-attributes
▪ Adding existingVMSS to Azure LB: https://github.com/xtophs/add-vmss-to-existing-load-balancer
▪ Cloud Init: https://cloud-init.io/
▪ Troubleshooting Cloud Config: https://github.com/xtophs/troubleshooting-cloud-config
▪ Configuring HAProxy in DCOS : https://docs.microsoft.com/en-us/azure/container-
service/container-service-load-balancing

Contenu connexe

Tendances

Docker Meetup at Docker HQ: Docker Cloud
Docker Meetup at Docker HQ: Docker CloudDocker Meetup at Docker HQ: Docker Cloud
Docker Meetup at Docker HQ: Docker CloudDocker, Inc.
 
DevOps with Kubernetes and Helm - OSCON 2018
DevOps with Kubernetes and Helm - OSCON 2018DevOps with Kubernetes and Helm - OSCON 2018
DevOps with Kubernetes and Helm - OSCON 2018Jessica Deen
 
Proof of Concept: Serverless with Swarm by Nirmal Mehta, Booz Allen Hamilton
Proof of Concept: Serverless with Swarm by Nirmal Mehta, Booz Allen Hamilton Proof of Concept: Serverless with Swarm by Nirmal Mehta, Booz Allen Hamilton
Proof of Concept: Serverless with Swarm by Nirmal Mehta, Booz Allen Hamilton Docker, Inc.
 
Moving Applications into Azure Kubernetes
Moving Applications into Azure KubernetesMoving Applications into Azure Kubernetes
Moving Applications into Azure KubernetesHussein Salman
 
Containers: Life Beyond Microservices? by Sushil Kumar, Robin Systems
Containers: Life Beyond Microservices? by Sushil Kumar, Robin SystemsContainers: Life Beyond Microservices? by Sushil Kumar, Robin Systems
Containers: Life Beyond Microservices? by Sushil Kumar, Robin SystemsDocker, Inc.
 
Azure Kubernetes Service - benefits and challenges
Azure Kubernetes Service - benefits and challengesAzure Kubernetes Service - benefits and challenges
Azure Kubernetes Service - benefits and challengesWojciech Barczyński
 
Dev opsec dockerimage_patch_n_lifecyclemanagement_2019
Dev opsec dockerimage_patch_n_lifecyclemanagement_2019Dev opsec dockerimage_patch_n_lifecyclemanagement_2019
Dev opsec dockerimage_patch_n_lifecyclemanagement_2019kanedafromparis
 
Best Practices with Azure Kubernetes Services
Best Practices with Azure Kubernetes ServicesBest Practices with Azure Kubernetes Services
Best Practices with Azure Kubernetes ServicesQAware GmbH
 
Azure kubernetes service
Azure kubernetes serviceAzure kubernetes service
Azure kubernetes serviceVishwas N
 
The container ecosystem @ Microsoft A story of developer productivity
The container ecosystem @ MicrosoftA story of developer productivityThe container ecosystem @ MicrosoftA story of developer productivity
The container ecosystem @ Microsoft A story of developer productivityNills Franssens
 
Building a Platform-as-a-Service with Docker and Node.js
Building a Platform-as-a-Service with Docker and Node.jsBuilding a Platform-as-a-Service with Docker and Node.js
Building a Platform-as-a-Service with Docker and Node.jsKevin Swiber
 
Structured Container Delivery by Oscar Renalias, Accenture
Structured Container Delivery by Oscar Renalias, AccentureStructured Container Delivery by Oscar Renalias, Accenture
Structured Container Delivery by Oscar Renalias, AccentureDocker, Inc.
 
Introduction to Docker - 2017
Introduction to Docker - 2017Introduction to Docker - 2017
Introduction to Docker - 2017Docker, Inc.
 
DevOps with Kubernetes and Helm
DevOps with Kubernetes and HelmDevOps with Kubernetes and Helm
DevOps with Kubernetes and HelmJessica Deen
 
DCEU 18: Docker Enterprise Platform and Architecture
DCEU 18: Docker Enterprise Platform and ArchitectureDCEU 18: Docker Enterprise Platform and Architecture
DCEU 18: Docker Enterprise Platform and ArchitectureDocker, Inc.
 
Continuous delivery of microservices with kubernetes - Quintor 27-2-2017
Continuous delivery of microservices with kubernetes - Quintor 27-2-2017Continuous delivery of microservices with kubernetes - Quintor 27-2-2017
Continuous delivery of microservices with kubernetes - Quintor 27-2-2017Arjen Wassink
 
Containers and VMs and Clouds: Oh My. by Mike Coleman
Containers and VMs and Clouds: Oh My. by Mike ColemanContainers and VMs and Clouds: Oh My. by Mike Coleman
Containers and VMs and Clouds: Oh My. by Mike ColemanDocker, Inc.
 
DCSF19 Containers for Beginners
DCSF19 Containers for BeginnersDCSF19 Containers for Beginners
DCSF19 Containers for BeginnersDocker, Inc.
 

Tendances (20)

Docker Meetup at Docker HQ: Docker Cloud
Docker Meetup at Docker HQ: Docker CloudDocker Meetup at Docker HQ: Docker Cloud
Docker Meetup at Docker HQ: Docker Cloud
 
DevOps with Kubernetes and Helm - OSCON 2018
DevOps with Kubernetes and Helm - OSCON 2018DevOps with Kubernetes and Helm - OSCON 2018
DevOps with Kubernetes and Helm - OSCON 2018
 
Proof of Concept: Serverless with Swarm by Nirmal Mehta, Booz Allen Hamilton
Proof of Concept: Serverless with Swarm by Nirmal Mehta, Booz Allen Hamilton Proof of Concept: Serverless with Swarm by Nirmal Mehta, Booz Allen Hamilton
Proof of Concept: Serverless with Swarm by Nirmal Mehta, Booz Allen Hamilton
 
Moving Applications into Azure Kubernetes
Moving Applications into Azure KubernetesMoving Applications into Azure Kubernetes
Moving Applications into Azure Kubernetes
 
Containers: Life Beyond Microservices? by Sushil Kumar, Robin Systems
Containers: Life Beyond Microservices? by Sushil Kumar, Robin SystemsContainers: Life Beyond Microservices? by Sushil Kumar, Robin Systems
Containers: Life Beyond Microservices? by Sushil Kumar, Robin Systems
 
Azure Kubernetes Service - benefits and challenges
Azure Kubernetes Service - benefits and challengesAzure Kubernetes Service - benefits and challenges
Azure Kubernetes Service - benefits and challenges
 
Dev opsec dockerimage_patch_n_lifecyclemanagement_2019
Dev opsec dockerimage_patch_n_lifecyclemanagement_2019Dev opsec dockerimage_patch_n_lifecyclemanagement_2019
Dev opsec dockerimage_patch_n_lifecyclemanagement_2019
 
Best Practices with Azure Kubernetes Services
Best Practices with Azure Kubernetes ServicesBest Practices with Azure Kubernetes Services
Best Practices with Azure Kubernetes Services
 
Azure kubernetes service
Azure kubernetes serviceAzure kubernetes service
Azure kubernetes service
 
The container ecosystem @ Microsoft A story of developer productivity
The container ecosystem @ MicrosoftA story of developer productivityThe container ecosystem @ MicrosoftA story of developer productivity
The container ecosystem @ Microsoft A story of developer productivity
 
Building a Platform-as-a-Service with Docker and Node.js
Building a Platform-as-a-Service with Docker and Node.jsBuilding a Platform-as-a-Service with Docker and Node.js
Building a Platform-as-a-Service with Docker and Node.js
 
Structured Container Delivery by Oscar Renalias, Accenture
Structured Container Delivery by Oscar Renalias, AccentureStructured Container Delivery by Oscar Renalias, Accenture
Structured Container Delivery by Oscar Renalias, Accenture
 
Introduction to Docker - 2017
Introduction to Docker - 2017Introduction to Docker - 2017
Introduction to Docker - 2017
 
Docker Datacenter - CaaS
Docker Datacenter - CaaSDocker Datacenter - CaaS
Docker Datacenter - CaaS
 
DevOps with Kubernetes and Helm
DevOps with Kubernetes and HelmDevOps with Kubernetes and Helm
DevOps with Kubernetes and Helm
 
DCEU 18: Docker Enterprise Platform and Architecture
DCEU 18: Docker Enterprise Platform and ArchitectureDCEU 18: Docker Enterprise Platform and Architecture
DCEU 18: Docker Enterprise Platform and Architecture
 
Continuous delivery of microservices with kubernetes - Quintor 27-2-2017
Continuous delivery of microservices with kubernetes - Quintor 27-2-2017Continuous delivery of microservices with kubernetes - Quintor 27-2-2017
Continuous delivery of microservices with kubernetes - Quintor 27-2-2017
 
Containers and VMs and Clouds: Oh My. by Mike Coleman
Containers and VMs and Clouds: Oh My. by Mike ColemanContainers and VMs and Clouds: Oh My. by Mike Coleman
Containers and VMs and Clouds: Oh My. by Mike Coleman
 
DCSF19 Containers for Beginners
DCSF19 Containers for BeginnersDCSF19 Containers for Beginners
DCSF19 Containers for Beginners
 
Docker on Docker
Docker on DockerDocker on Docker
Docker on Docker
 

Similaire à Lessons from migrating container applications to azure

Azure: Docker Container orchestration, PaaS ( Service Farbic ) and High avail...
Azure: Docker Container orchestration, PaaS ( Service Farbic ) and High avail...Azure: Docker Container orchestration, PaaS ( Service Farbic ) and High avail...
Azure: Docker Container orchestration, PaaS ( Service Farbic ) and High avail...Alexey Bokov
 
Cloud Architecture: Patterns and Best Practices
Cloud Architecture: Patterns and Best PracticesCloud Architecture: Patterns and Best Practices
Cloud Architecture: Patterns and Best PracticesSascha Möllering
 
Building a Just-in-Time Application Stack for Analysts
Building a Just-in-Time Application Stack for AnalystsBuilding a Just-in-Time Application Stack for Analysts
Building a Just-in-Time Application Stack for AnalystsAvere Systems
 
AWS Workshop 101
AWS Workshop 101AWS Workshop 101
AWS Workshop 101lynn80827
 
DataTalks.Club - Building Scalable End-to-End Deep Learning Pipelines in the ...
DataTalks.Club - Building Scalable End-to-End Deep Learning Pipelines in the ...DataTalks.Club - Building Scalable End-to-End Deep Learning Pipelines in the ...
DataTalks.Club - Building Scalable End-to-End Deep Learning Pipelines in the ...Rustem Feyzkhanov
 
azure track -05- windows azure pack deep dive
azure track -05- windows azure pack deep diveazure track -05- windows azure pack deep dive
azure track -05- windows azure pack deep diveITProceed
 
Compare Docker deployment options in the public cloud
Compare Docker deployment options in the public cloudCompare Docker deployment options in the public cloud
Compare Docker deployment options in the public cloudSreenivas Makam
 
.NET Developer Days - So many Docker platforms, so little time...
.NET Developer Days - So many Docker platforms, so little time....NET Developer Days - So many Docker platforms, so little time...
.NET Developer Days - So many Docker platforms, so little time...Michele Leroux Bustamante
 
From Docker Straight to AWS
From Docker Straight to AWSFrom Docker Straight to AWS
From Docker Straight to AWSDevOps.com
 
AWS Webcast - Deploying Remote Desktop Gateway on the AWS Cloud
AWS Webcast - Deploying Remote Desktop Gateway on the AWS CloudAWS Webcast - Deploying Remote Desktop Gateway on the AWS Cloud
AWS Webcast - Deploying Remote Desktop Gateway on the AWS CloudAmazon Web Services
 
Experts Live Europe 2017 - VSTS / TFS automated Release Pipelines for Web App...
Experts Live Europe 2017 - VSTS / TFS automated Release Pipelines for Web App...Experts Live Europe 2017 - VSTS / TFS automated Release Pipelines for Web App...
Experts Live Europe 2017 - VSTS / TFS automated Release Pipelines for Web App...Marc Müller
 
無伺服器架構和Containers on AWS入門
無伺服器架構和Containers on AWS入門 無伺服器架構和Containers on AWS入門
無伺服器架構和Containers on AWS入門 Amazon Web Services
 
Modernizing existing .NET applications with Windows Containers and Azure cloud
Modernizing existing .NET applications with Windows Containers and Azure cloudModernizing existing .NET applications with Windows Containers and Azure cloud
Modernizing existing .NET applications with Windows Containers and Azure cloudMicrosoft Tech Community
 
AWS re:Invent 2016: Hybrid Architecture Design: Connecting Your On-Premises W...
AWS re:Invent 2016: Hybrid Architecture Design: Connecting Your On-Premises W...AWS re:Invent 2016: Hybrid Architecture Design: Connecting Your On-Premises W...
AWS re:Invent 2016: Hybrid Architecture Design: Connecting Your On-Premises W...Amazon Web Services
 
AWS Tutorial | AWS Certified Solutions Architect | Amazon AWS | AWS Training ...
AWS Tutorial | AWS Certified Solutions Architect | Amazon AWS | AWS Training ...AWS Tutorial | AWS Certified Solutions Architect | Amazon AWS | AWS Training ...
AWS Tutorial | AWS Certified Solutions Architect | Amazon AWS | AWS Training ...Edureka!
 
Azure Databricks – Customer Experiences and Lessons Denzil Ribeiro Madhu Ganta
Azure Databricks – Customer Experiences and Lessons Denzil Ribeiro Madhu GantaAzure Databricks – Customer Experiences and Lessons Denzil Ribeiro Madhu Ganta
Azure Databricks – Customer Experiences and Lessons Denzil Ribeiro Madhu GantaDatabricks
 
AWS Webcast - AWS Webinar Series for Education #3 - Discover the Ease of AWS ...
AWS Webcast - AWS Webinar Series for Education #3 - Discover the Ease of AWS ...AWS Webcast - AWS Webinar Series for Education #3 - Discover the Ease of AWS ...
AWS Webcast - AWS Webinar Series for Education #3 - Discover the Ease of AWS ...Amazon Web Services
 

Similaire à Lessons from migrating container applications to azure (20)

Azure: Docker Container orchestration, PaaS ( Service Farbic ) and High avail...
Azure: Docker Container orchestration, PaaS ( Service Farbic ) and High avail...Azure: Docker Container orchestration, PaaS ( Service Farbic ) and High avail...
Azure: Docker Container orchestration, PaaS ( Service Farbic ) and High avail...
 
Cloud Architecture: Patterns and Best Practices
Cloud Architecture: Patterns and Best PracticesCloud Architecture: Patterns and Best Practices
Cloud Architecture: Patterns and Best Practices
 
Building a Just-in-Time Application Stack for Analysts
Building a Just-in-Time Application Stack for AnalystsBuilding a Just-in-Time Application Stack for Analysts
Building a Just-in-Time Application Stack for Analysts
 
AWS Workshop 101
AWS Workshop 101AWS Workshop 101
AWS Workshop 101
 
Azure fundamentals 03
Azure fundamentals 03Azure fundamentals 03
Azure fundamentals 03
 
DataTalks.Club - Building Scalable End-to-End Deep Learning Pipelines in the ...
DataTalks.Club - Building Scalable End-to-End Deep Learning Pipelines in the ...DataTalks.Club - Building Scalable End-to-End Deep Learning Pipelines in the ...
DataTalks.Club - Building Scalable End-to-End Deep Learning Pipelines in the ...
 
azure track -05- windows azure pack deep dive
azure track -05- windows azure pack deep diveazure track -05- windows azure pack deep dive
azure track -05- windows azure pack deep dive
 
Compare Docker deployment options in the public cloud
Compare Docker deployment options in the public cloudCompare Docker deployment options in the public cloud
Compare Docker deployment options in the public cloud
 
.NET Developer Days - So many Docker platforms, so little time...
.NET Developer Days - So many Docker platforms, so little time....NET Developer Days - So many Docker platforms, so little time...
.NET Developer Days - So many Docker platforms, so little time...
 
From Docker Straight to AWS
From Docker Straight to AWSFrom Docker Straight to AWS
From Docker Straight to AWS
 
AWS Webcast - Deploying Remote Desktop Gateway on the AWS Cloud
AWS Webcast - Deploying Remote Desktop Gateway on the AWS CloudAWS Webcast - Deploying Remote Desktop Gateway on the AWS Cloud
AWS Webcast - Deploying Remote Desktop Gateway on the AWS Cloud
 
Experts Live Europe 2017 - VSTS / TFS automated Release Pipelines for Web App...
Experts Live Europe 2017 - VSTS / TFS automated Release Pipelines for Web App...Experts Live Europe 2017 - VSTS / TFS automated Release Pipelines for Web App...
Experts Live Europe 2017 - VSTS / TFS automated Release Pipelines for Web App...
 
無伺服器架構和Containers on AWS入門
無伺服器架構和Containers on AWS入門 無伺服器架構和Containers on AWS入門
無伺服器架構和Containers on AWS入門
 
Modernizing existing .NET applications with Windows Containers and Azure cloud
Modernizing existing .NET applications with Windows Containers and Azure cloudModernizing existing .NET applications with Windows Containers and Azure cloud
Modernizing existing .NET applications with Windows Containers and Azure cloud
 
AWS re:Invent 2016: Hybrid Architecture Design: Connecting Your On-Premises W...
AWS re:Invent 2016: Hybrid Architecture Design: Connecting Your On-Premises W...AWS re:Invent 2016: Hybrid Architecture Design: Connecting Your On-Premises W...
AWS re:Invent 2016: Hybrid Architecture Design: Connecting Your On-Premises W...
 
Docker and CloudStack
Docker and CloudStackDocker and CloudStack
Docker and CloudStack
 
AWS Webcast - Website Hosting
AWS Webcast - Website HostingAWS Webcast - Website Hosting
AWS Webcast - Website Hosting
 
AWS Tutorial | AWS Certified Solutions Architect | Amazon AWS | AWS Training ...
AWS Tutorial | AWS Certified Solutions Architect | Amazon AWS | AWS Training ...AWS Tutorial | AWS Certified Solutions Architect | Amazon AWS | AWS Training ...
AWS Tutorial | AWS Certified Solutions Architect | Amazon AWS | AWS Training ...
 
Azure Databricks – Customer Experiences and Lessons Denzil Ribeiro Madhu Ganta
Azure Databricks – Customer Experiences and Lessons Denzil Ribeiro Madhu GantaAzure Databricks – Customer Experiences and Lessons Denzil Ribeiro Madhu Ganta
Azure Databricks – Customer Experiences and Lessons Denzil Ribeiro Madhu Ganta
 
AWS Webcast - AWS Webinar Series for Education #3 - Discover the Ease of AWS ...
AWS Webcast - AWS Webinar Series for Education #3 - Discover the Ease of AWS ...AWS Webcast - AWS Webinar Series for Education #3 - Discover the Ease of AWS ...
AWS Webcast - AWS Webinar Series for Education #3 - Discover the Ease of AWS ...
 

Dernier

Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonLeveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonApplitools
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldRoberto Pérez Alcolea
 
eSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolseSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolsosttopstonverter
 
Not a Kubernetes fan? The state of PaaS in 2024
Not a Kubernetes fan? The state of PaaS in 2024Not a Kubernetes fan? The state of PaaS in 2024
Not a Kubernetes fan? The state of PaaS in 2024Anthony Dahanne
 
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilitiesAmazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilitiesKrzysztofKkol1
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsSafe Software
 
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptxThe Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptxRTS corp
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf31events.com
 
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingOpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingShane Coughlan
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
VictoriaMetrics Anomaly Detection Updates: Q1 2024
VictoriaMetrics Anomaly Detection Updates: Q1 2024VictoriaMetrics Anomaly Detection Updates: Q1 2024
VictoriaMetrics Anomaly Detection Updates: Q1 2024VictoriaMetrics
 
SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?Alexandre Beguel
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsChristian Birchler
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Developmentvyaparkranti
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZABSYZ Inc
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
Best Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITBest Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITmanoharjgpsolutions
 
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics
 

Dernier (20)

Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonLeveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository world
 
eSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolseSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration tools
 
Not a Kubernetes fan? The state of PaaS in 2024
Not a Kubernetes fan? The state of PaaS in 2024Not a Kubernetes fan? The state of PaaS in 2024
Not a Kubernetes fan? The state of PaaS in 2024
 
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilitiesAmazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data Streams
 
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptxThe Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf
 
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingOpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
VictoriaMetrics Anomaly Detection Updates: Q1 2024
VictoriaMetrics Anomaly Detection Updates: Q1 2024VictoriaMetrics Anomaly Detection Updates: Q1 2024
VictoriaMetrics Anomaly Detection Updates: Q1 2024
 
SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Development
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZ
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
Best Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITBest Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh IT
 
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
 

Lessons from migrating container applications to azure

  • 1. Moving Containerized Apps to Azure Container Service Christoph Schittko Cloud Solution Architect, Microsoft
  • 2. Agenda ▪ Business Problem ▪ Customer On-Prem Architecture ▪ Challenges and Solutions ▪ Lessons Learned ▪ Demo ▪ Resources
  • 3. Assumptions ▪ Familiar with Docker ▪ Familiar with Container Deployment and Orchestration ▪ Familiar with Azure Container Service
  • 4. Business Problem ▪ Operating on-prem hardware at PB scale is expensive ▪ New business models require new operating models – Elastic Scale – Cost Efficient Deployment through Highest Density ▪ Rapid Global Expansion requires Partnering with Public Cloud Providers
  • 5. Existing Customer On-Prem Solution(s) Application Services Agent Pool Public Agent Pool Data Services Agent Pool Master Virtual machineVirtual machine Virtual machineVirtual machineVirtual machine Virtual machine Virtual machine Virtual machine Virtual machine Virtual machine Virtual machine Virtual machine Virtual machine Virtual machine Virtual machine Storage Array
  • 6. Challenges ▪ Cost Efficient Cluster Configurations ▪ Persistent Data with high IOPS requirements ▪ Internet Access to Services ▪ Advanced Node Configuration (Cassandra HA) ▪ Network “Isolation” ofApplications
  • 7. Introducing ACS-Engine ▪ ACS works with 2Tiers ofTemplates – ACS Deployment Model -> ARMTemplates ▪ Highly Customizable ClusterTopology ▪ Built with learning from POCs
  • 8. ACS-Engine: Model and Config Difficulty Scope Skill Required Simple Custom Cluster • Authoring JSON documents Advanced Customize Provisioning • Custom ARMTemplate (JSON docs w/ proprietary templating) • Custom Provision Scripts (bash scripts w/ proprietary templating) Expert Extend the Engine • Extend the model (Go Coding) • Add additional provisioning hooks (Go Coding)
  • 9. Cost Efficient Clusters ▪ SmallestVM possible ▪ Scale Elastically ▪ AgentType PerWorkload – VM type – Storage config – Application specific config
  • 10. ACS-Engine Model (snippet) "agentPoolProfiles": [ { "name": "agentapps", "count": 4, "vmSize": "Standard_D2_v2" }, { "name": "agentcassandra", "count": 1, "vmSize": "Standard_D3_v2", "availabilityProfile": "AvailabilitySet", "storageProfile": "StorageAccount", "diskSizesGB": [128, 128, 128, 128] } ],
  • 11. Persistent Data Storage blob VHD data disk Azure Files Virtual machine
  • 12. Node Configuration ▪ Custom Script Extension requiresARM modifications ▪ Custom Agent Script Hook in ACS-Engine (not published yet) ▪ Cloud Init / Cloud Config
  • 13. Custom Script Extension vs. Custom Data { "type": "CustomScript", "fileUris": [ ... ] } #!/bin/bash ... ARM Template Customization Script on Web ARM Engine Virtual machine Deploy VM Custom Script Custom Data { "customData": "#cloud- config } ARM Template ARM Engine Virtual machine Passes Script Deploy VM
  • 14. Advanced Node Config ▪ Install Docker Drivers or Add-Ons ▪ Container Registry Credentials ▪ Specify DCOS Attributes for Placement Constraints ▪ Configuring Nodes forCassandra HA – E.g. Cassandra requires rack topology to configure itself for HA – Racks map to Azure Fault Domains – FD discovery via Metadata Service at Node Provisioning time – Publish to DCOS via attributes – Perform Customization in Container Startup Script
  • 15. Cloud Init via ARM’s customData • Cross Platform solution to customize cloudVMs (http://cloud-init.io) • Passed Directly to theVM’s Azure Agent at provisioning time. No Staging Needed { "type": "Microsoft.Compute/virtualMachines“, "osProfile": { "adminUsername": "[variables('adminUsername')]", "computername": "[concat(variables('agent128VMNamePrefix'), copyIndex())]", "customData": "[base64(concat('#cloud-confignn', '{"bootcmd":["bash -c ...]" } "linuxConfiguration": {
  • 16. Cloud Config #cloud-config bootcmd: […] disk_setup: […] fs_setup: […] mounts: […] runcmd: […] write_files: […]
  • 17. Externally Accessible Services Load balancer Svc instance 1 10.0.0.4:80 Svc instance 2 10.0.0.5:80 Host Mode Networking Bridge Mode Networking Load balancer Svc instance1 10.0.0.4:10091 Svc instance2 10.0.0.4:19828 Marathon-lb 10.0.0.4:80
  • 18. Externally Accessible Services ▪ ACS Public Agent Pool – Works great with Containers in Host Mode ▪ Azure L4 ELB / Azure L7 App Gateway – Hard to add agents (CLI 1.x /VMSS) and containers ▪ DCOS Built-In L4 LB (minuteman) – Integrated in DCOS scaling operations ▪ L7 LB (Marathon-lb / HA Proxy ) – Integrated in DCOS scaling operations ▪ Nginx Proxy in Host Mode on Public Agent – Combine with minuteman to allow for DCOS scaling – Expose through ELB
  • 19. DCOS Service Discovery Network Type IP Addressing DNS Naming Scheme Host Network Host IP : Host Port <servicename>.marathon.mesos Bridge Network VIP : Container Port <servicename>.marathon.l4lb.thisdcos.directory User Network Private IP : Container Port <servicename>. marathon.containerip.dcos.thisdcos.directory
  • 20. Application Networks ▪ Based on DockerVirtual Networks ▪ Isolate Applications to their own address space ▪ Scope Name Resolution ▪ Simplification NOT a security boundary ▪ Very hard to provision in current DCOS configuration – Mesosphere recommends placement in pre-configured overlay network
  • 21. Resulting Architecture Application Services Agent Pool Public Agent Pool Master Virtual machine Virtual machine Virtual machine Cloud Object Store Azure load balancer Azure load balancer Azure Premium Storage Data Disks MySql Agent Pool Virtual machine Virtual machineVirtual machine Availability set Virtual machine Virtual machine Virtual machineVirtual machine Availability set Virtual machine Cassandra / Gluster Agent Pool Availability set Storage blob marathon-lb / nginx AzureContainer Registry
  • 22. ACS-Engine: Demo ▪ Clone ACS-Engine Repo ▪ Build engine ▪ Custom Model ▪ Provision Cluster ▪ Show DCOS UI  Cooking Show Style ▪ Deploy Service?
  • 23. Outcome ▪ Mission Accomplished: No Code Changes – MinorConfig Changes ▪ DNS Naming ▪ Network Mode ▪ Setup Scripts – Modifications to S3Proxy to account for S3 not following HTTP standard ▪ ~2300 cores of compute ▪ >100TB storage ▪ Passing Load / StressTests
  • 24. Other Lessons Learned ▪ Azure Explore Existing Container Solutions before building your own (S3 Proxy, Cassandra) ▪ ACS install requires outbound network connectivity ▪ Azure Container Registry + ACS works seamless ▪ DCOS install does not detect orphaned nodes ▪ ACS DCOS makes private networks really hard ▪ DCOS is moving fast. DCOS docs, not so much ▪ Slack (K8s, Mesos) ▪ DCOS Jira for bug fixes
  • 25. Some More Lessons Learned ▪ 250 Storage Accounts isn’t as much as you think ▪ Large Storage Opportunities. Work with Azure Storage team to optimize storage account placement ▪ Think about Elasticity when you Switch to Availability Sets – Templates / Scripts to increase / decrease agent pool size ▪ GlusterFS on Data Disks instead ofAzure Files – Limited LockingCapabilities can cause data corruption – 1000 IOPS
  • 26. Resources ▪ DCOS Docs: https://docs.mesosphere.com/1.8/overview/ ▪ ACS-Engine with PersistentVolume Provisioning: https://github.com/xtophs/acs- engine/tree/xtoph-agentscripts ▪ ACS-Engine with DCOS attributes: https://github.com/xtophs/acs-engine/tree/xtoph-attributes ▪ Adding existingVMSS to Azure LB: https://github.com/xtophs/add-vmss-to-existing-load-balancer ▪ Cloud Init: https://cloud-init.io/ ▪ Troubleshooting Cloud Config: https://github.com/xtophs/troubleshooting-cloud-config ▪ Configuring HAProxy in DCOS : https://docs.microsoft.com/en-us/azure/container- service/container-service-load-balancing