Moving Applications into Azure Kubernetes

Hussein Salman
Hussein SalmanManager em Avanade
Moving Applications into
Azure Kubernetes
The Azure Group (Azure User Community, Toronto)
About Me
Name : Hussein Salman
Experience: I have over 12 years of experience in software development and architecture
Role: Manager at Avanade
Certifications: PMP, CSM, MCSD, MCSA Cloud and AWS Architect
http://husseinsalman.com
@husseinsalmann
Goals
• Overview of Microservices
• Containerize applications using Docker
• Understand main Kubernetes Objects
• Leverage Azure Services
• Push Docker images into Azure Container Registry
• Deploy application into Azure Kubernetes cluster
What are Microservices?
A software architecture style in
which complex applications are
composed of small,
independent processes
communicating with other using
language-agnostic APIs. These
services are small, highly
decoupled and focus on doing a
small task, facilitating a modular
approach to system-building.
[Figure 1 , martinfowler]
Why complicating things and adopting Microservices architecture
instead of a Monolithic?
Monolithic Architecture Challenges
Scalability is compromised
Lack of Agility
(difficult to understand and modify)
Long-term commitment to
technology stack
Continuous Deployment
(To update one component, you have to
deploy the entire application)
Team Productivity
Reliability
(Single point of failure)
What about Microservice Challenges?
• Debugging is difficult
• Monitoring/Logging is difficult
• Distributed databases make transactions hard
• Distributed services adds more network communication
• Cluster and orchestration tools overhead
• Operational and tooling overhead on dev teams
• Increasing Deployment Complexities
Containers simplifies microservices deployment
What are Containers?
Containers = Operating System Virtualization
Virtual Machines = Hardware Virtualization
[Figure 2 ,docker]
Why Containers?
[Figure 3 ,flipboard.com]
Docker
Leading open-source containerization platform
Docker containers wrap up a piece of software in a
complete filesystem that contains everything it needs to
run: code, runtime, system tools, system libraries –
anything you can install on a server. This guarantees that it
will always run the same, regardless of the environment it
is running in.
Tools: Docker CLI, Docker Engine, Docker Swarm,
Docker Compose
Docker Architecture
[Figure 4 ,docker.com]
Application for the Demo
• Simple App to demonstrate
• Front-end (Angular)
• Back-end API (ASP.NET Core)
Run containerized app locally
Demo 1
What about other distributed systems challenges?
Container Management at Scale
• Where to run the containers?
• How to manage them on multiple hosts?
• What happens if a host is down?
• How to keep them running despite of failure?
• What about scaling?
• How to update them?
• Where are the containers and how to connect?
Elements of Orchestration
Moving Applications into Azure Kubernetes
Kubernetes Architecture
Kubernetes
Master
Node
Image Registry
Node
Node
UI
CLI
API
Application
Application
Application
Azure Kubernetes Service (AKS)
Managed Kubernetes Cluster in Azure:
• Control Plane Is free
• Pay only for worker nodes
• Same software and tooling for regular
K8
Easily Integrate with Azure Services:
• Security: RBAC and Azure AD integration
• Azure Monitor
• Virtual network integration
• Azure DevOps
Azure Container Registry (ACR)
Geo-replicationManage images for all
types of containers
Keep container
images close
Expand registry
functionality
Kubernetes Key Objects
• Pod
• Replica set
• Deployment
• Service
Node
Pod
Container
Pod 1
Container 1
Pod 2
• The smallest and simplest unit in the Kubernetes
object model in terms of deployment and scaling
• Encapsulates container(s), storage, network IPs, and
deployment options
• Represent a running process in the cluster (Worker
Node)
• A group of one or more containers
• Containers within a pod share an IP address and port
space, and can find each other via localhost
Container 2
Container
Pod 1
Node
Service
front-end
Pod
10.10.10.1
back-end
Pod
10.10.10.2
back-end
Pod
10.10.10.3
back-end
Pod
10.10.10.4
IP: 10.10.10.6
DNS: frontend-svc
Service
IP: 10.10.10.6
DNS: backend-svc
Service
Traffic
• Pod objects are mortal, so we can’t rely on
their IP addresses
• Services defines a logical set of pods and a
policy to access them
• They give pods a stable IP
• A service is a virtual load balancer in front
of pods
IP: 10.10.10.6
DNS: backend-svc
Service
back-end
Pod
10.10.10.3
back-end
Pod
10.10.10.4
BE
1.2
BE
1.2
BE
1.2back-end
Pod
10.10.10.5
BE
1.2
Replica Set
Node
Front-end
Pod B
Front-end
Pod C
Replica Set
Replicas: 3
Template:
Front-end
Pod
Front-end
Pod A
• Ensures high availability
• A higher level concept that manages
multiple instances of the same pod
• Defining container images and how many
pod instances
• Responsible for reconciling desired state
and self-healing
Desired State
3
Actual State
32
Deployment
• A Deployment describes declarative updates for
Pods and Replica Sets
• Application deployment with zero downtime
• Updates happen in rolling fashing
• Deployment’s rollout history is kept in the
system so that you can rollback anytime
Replica Set
Pod
Container
Pod
Container ….
Deployment
Updates & Rollback
Scaling, self-healing
What type of object being defined
Application Yaml Files - Deployment
Pods are labeled app: web-ui
deployment use labels to find & manage pods
Specify instances of pod running
Listen on container port 80
Pull the image and run the container
Podtemplate
Give a name to the deployment
Application Yaml Files - Service
type of object being defined
Give a name to the service
Determine the set of the pods a service can target
us
Map incoming traffic on port 4200 to port 80 on pod
Select the service type
29
Application on Kubernetes
web-ui
port 80
Backend-api
port 80
app=web-uilabel
image azurecr.io/frontend:v1
front-end deployment
web-ui-1
port 80
web-ui-2
port 80
31
port
app=web-uilabel
image azurecr.io/frontend:v1
web-ui-1
port 80
web-ui-2
port 80
front-end service
selector app=web-ui
port
IP
4200:80
10.0.2.20 front-end deployment
How it works together?
[Figure 5, Microsoft]
• Provision AKS
• Authenticate AKS to connect to ACR
• Apply yaml Files
• Run the application
Demo 3 – Run App on AKS
Thank You!
http://husseinsalman.com
@husseinsalmann
1 de 34

Recomendados

Deploying Containers on Azure por
Deploying Containers on AzureDeploying Containers on Azure
Deploying Containers on AzureHussein Salman
723 visualizações36 slides
Best Practices with Azure & Kubernetes por
Best Practices with Azure & KubernetesBest Practices with Azure & Kubernetes
Best Practices with Azure & KubernetesMicrosoft Tech Community
927 visualizações59 slides
Aks pimarox from zero to hero por
Aks pimarox from zero to heroAks pimarox from zero to hero
Aks pimarox from zero to heroJohan Biere
451 visualizações69 slides
Best Practices with Azure Kubernetes Services por
Best Practices with Azure Kubernetes ServicesBest Practices with Azure Kubernetes Services
Best Practices with Azure Kubernetes ServicesQAware GmbH
11.5K visualizações78 slides
Kubernetes in Azure por
Kubernetes in AzureKubernetes in Azure
Kubernetes in AzureKarl Ots
1.2K visualizações12 slides
DevOps with Kubernetes and Helm - OSCON 2018 por
DevOps with Kubernetes and Helm - OSCON 2018DevOps with Kubernetes and Helm - OSCON 2018
DevOps with Kubernetes and Helm - OSCON 2018Jessica Deen
1.1K visualizações37 slides

Mais conteúdo relacionado

Mais procurados

berne.*tesday1 por
berne.*tesday1berne.*tesday1
berne.*tesday1Anne Starr
103 visualizações36 slides
DCSF 19 Docker Enterprise Platform and Architecture por
DCSF 19 Docker Enterprise Platform and ArchitectureDCSF 19 Docker Enterprise Platform and Architecture
DCSF 19 Docker Enterprise Platform and ArchitectureDocker, Inc.
414 visualizações21 slides
Container orchestration overview por
Container orchestration overviewContainer orchestration overview
Container orchestration overviewWyn B. Van Devanter
1.1K visualizações44 slides
DCSF 19 Microservices API: Routing Across Any Infrastructure por
DCSF 19 Microservices API: Routing Across Any InfrastructureDCSF 19 Microservices API: Routing Across Any Infrastructure
DCSF 19 Microservices API: Routing Across Any InfrastructureDocker, Inc.
1.6K visualizações26 slides
Virtualized Containers - How Good is it - Ananth - Siemens - CC18 por
Virtualized Containers - How Good is it - Ananth - Siemens - CC18Virtualized Containers - How Good is it - Ananth - Siemens - CC18
Virtualized Containers - How Good is it - Ananth - Siemens - CC18CodeOps Technologies LLP
8.9K visualizações17 slides
Introduction To Docker, Docker Compose, Docker Swarm por
Introduction To Docker, Docker Compose, Docker SwarmIntroduction To Docker, Docker Compose, Docker Swarm
Introduction To Docker, Docker Compose, Docker SwarmAn Nguyen
162 visualizações36 slides

Mais procurados(20)

berne.*tesday1 por Anne Starr
berne.*tesday1berne.*tesday1
berne.*tesday1
Anne Starr103 visualizações
DCSF 19 Docker Enterprise Platform and Architecture por Docker, Inc.
DCSF 19 Docker Enterprise Platform and ArchitectureDCSF 19 Docker Enterprise Platform and Architecture
DCSF 19 Docker Enterprise Platform and Architecture
Docker, Inc.414 visualizações
Container orchestration overview por Wyn B. Van Devanter
Container orchestration overviewContainer orchestration overview
Container orchestration overview
Wyn B. Van Devanter1.1K visualizações
DCSF 19 Microservices API: Routing Across Any Infrastructure por Docker, Inc.
DCSF 19 Microservices API: Routing Across Any InfrastructureDCSF 19 Microservices API: Routing Across Any Infrastructure
DCSF 19 Microservices API: Routing Across Any Infrastructure
Docker, Inc.1.6K visualizações
Virtualized Containers - How Good is it - Ananth - Siemens - CC18 por CodeOps Technologies LLP
Virtualized Containers - How Good is it - Ananth - Siemens - CC18Virtualized Containers - How Good is it - Ananth - Siemens - CC18
Virtualized Containers - How Good is it - Ananth - Siemens - CC18
CodeOps Technologies LLP8.9K visualizações
Introduction To Docker, Docker Compose, Docker Swarm por An Nguyen
Introduction To Docker, Docker Compose, Docker SwarmIntroduction To Docker, Docker Compose, Docker Swarm
Introduction To Docker, Docker Compose, Docker Swarm
An Nguyen162 visualizações
DevOps: Kubernetes + Helm with Azure por Jessica Deen
DevOps: Kubernetes + Helm with AzureDevOps: Kubernetes + Helm with Azure
DevOps: Kubernetes + Helm with Azure
Jessica Deen568 visualizações
Power of Choice in Docker EE 2.0 - Anoop - Docker - CC18 por CodeOps Technologies LLP
Power of Choice in Docker EE 2.0 - Anoop - Docker - CC18Power of Choice in Docker EE 2.0 - Anoop - Docker - CC18
Power of Choice in Docker EE 2.0 - Anoop - Docker - CC18
CodeOps Technologies LLP8.8K visualizações
AWS ECS LESSONS LEARNED por humayun Jamal
AWS ECS LESSONS LEARNEDAWS ECS LESSONS LEARNED
AWS ECS LESSONS LEARNED
humayun Jamal275 visualizações
Container Orchestration with Docker Swarm and Kubernetes por Will Hall
Container Orchestration with Docker Swarm and KubernetesContainer Orchestration with Docker Swarm and Kubernetes
Container Orchestration with Docker Swarm and Kubernetes
Will Hall317 visualizações
Kubernetes Docker Container Implementation Ppt PowerPoint Presentation Slide ... por SlideTeam
Kubernetes Docker Container Implementation Ppt PowerPoint Presentation Slide ...Kubernetes Docker Container Implementation Ppt PowerPoint Presentation Slide ...
Kubernetes Docker Container Implementation Ppt PowerPoint Presentation Slide ...
SlideTeam233 visualizações
Proof of Concept: Serverless with Swarm by Nirmal Mehta, Booz Allen Hamilton por Docker, Inc.
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.427 visualizações
Containers and OpenStack - A Happy Marriage - Madhuri - Intel - CC18 por CodeOps Technologies LLP
Containers and OpenStack - A Happy Marriage - Madhuri - Intel - CC18Containers and OpenStack - A Happy Marriage - Madhuri - Intel - CC18
Containers and OpenStack - A Happy Marriage - Madhuri - Intel - CC18
CodeOps Technologies LLP9.3K visualizações
Make Java Microservices Resilient with Istio - Mangesh - IBM - CC18 por CodeOps Technologies LLP
Make Java Microservices Resilient with Istio - Mangesh - IBM - CC18Make Java Microservices Resilient with Istio - Mangesh - IBM - CC18
Make Java Microservices Resilient with Istio - Mangesh - IBM - CC18
CodeOps Technologies LLP9.1K visualizações
Lessons from migrating container applications to azure por Christoph Schittko
Lessons from migrating container applications to azureLessons from migrating container applications to azure
Lessons from migrating container applications to azure
Christoph Schittko594 visualizações
Kubernetes vs Docker Swarm | Container Orchestration War | Kubernetes Trainin... por Edureka!
Kubernetes vs Docker Swarm | Container Orchestration War | Kubernetes Trainin...Kubernetes vs Docker Swarm | Container Orchestration War | Kubernetes Trainin...
Kubernetes vs Docker Swarm | Container Orchestration War | Kubernetes Trainin...
Edureka!2.1K visualizações
(DEV302) Hosting ASP.Net 5 Apps in AWS with Docker & AWS CodeDeploy por Amazon Web Services
(DEV302) Hosting ASP.Net 5 Apps in AWS with Docker & AWS CodeDeploy(DEV302) Hosting ASP.Net 5 Apps in AWS with Docker & AWS CodeDeploy
(DEV302) Hosting ASP.Net 5 Apps in AWS with Docker & AWS CodeDeploy
Amazon Web Services4.5K visualizações
DCEU 18: App-in-a-Box with Docker Application Packages por Docker, Inc.
DCEU 18: App-in-a-Box with Docker Application PackagesDCEU 18: App-in-a-Box with Docker Application Packages
DCEU 18: App-in-a-Box with Docker Application Packages
Docker, Inc.465 visualizações
Containers: Life Beyond Microservices? by Sushil Kumar, Robin Systems por Docker, Inc.
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
Docker, Inc.522 visualizações
DevOps with Azure, Kubernetes, and Helm Webinar por Codefresh
DevOps with Azure, Kubernetes, and Helm WebinarDevOps with Azure, Kubernetes, and Helm Webinar
DevOps with Azure, Kubernetes, and Helm Webinar
Codefresh2.2K visualizações

Similar a Moving Applications into Azure Kubernetes

Develop and deploy Kubernetes applications with Docker - IBM Index 2018 por
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 2018Patrick Chanezon
3K visualizações58 slides
Using Azure DevOps to continuously build, test, and deploy containerized appl... por
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...Adrian Todorov
666 visualizações61 slides
Containers, microservices and serverless for realists por
Containers, microservices and serverless for realistsContainers, microservices and serverless for realists
Containers, microservices and serverless for realistsKarthik Gaekwad
77.3K visualizações74 slides
Building Cloud Native Applications Using Azure Kubernetes Service por
Building Cloud Native Applications Using Azure Kubernetes ServiceBuilding Cloud Native Applications Using Azure Kubernetes Service
Building Cloud Native Applications Using Azure Kubernetes ServiceDennis Moon
123 visualizações43 slides
Container on azure por
Container on azureContainer on azure
Container on azureVishwas N
93 visualizações57 slides
AWS January 2016 Webinar Series - Introduction to Deploying Applications on AWS por
AWS January 2016 Webinar Series - Introduction to Deploying Applications on AWSAWS January 2016 Webinar Series - Introduction to Deploying Applications on AWS
AWS January 2016 Webinar Series - Introduction to Deploying Applications on AWSAmazon Web Services
5.8K visualizações34 slides

Similar a Moving Applications into Azure Kubernetes(20)

Develop and deploy Kubernetes applications with Docker - IBM Index 2018 por Patrick Chanezon
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
Patrick Chanezon3K visualizações
Using Azure DevOps to continuously build, test, and deploy containerized appl... por Adrian Todorov
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...
Adrian Todorov666 visualizações
Containers, microservices and serverless for realists por Karthik Gaekwad
Containers, microservices and serverless for realistsContainers, microservices and serverless for realists
Containers, microservices and serverless for realists
Karthik Gaekwad77.3K visualizações
Building Cloud Native Applications Using Azure Kubernetes Service por Dennis Moon
Building Cloud Native Applications Using Azure Kubernetes ServiceBuilding Cloud Native Applications Using Azure Kubernetes Service
Building Cloud Native Applications Using Azure Kubernetes Service
Dennis Moon123 visualizações
Container on azure por Vishwas N
Container on azureContainer on azure
Container on azure
Vishwas N93 visualizações
AWS January 2016 Webinar Series - Introduction to Deploying Applications on AWS por Amazon Web Services
AWS January 2016 Webinar Series - Introduction to Deploying Applications on AWSAWS January 2016 Webinar Series - Introduction to Deploying Applications on AWS
AWS January 2016 Webinar Series - Introduction to Deploying Applications on AWS
Amazon Web Services5.8K visualizações
Microsoft Ignite 2018 BRK3192 Container DevOps on Azure por Jessica Deen
Microsoft Ignite 2018 BRK3192 Container DevOps on AzureMicrosoft Ignite 2018 BRK3192 Container DevOps on Azure
Microsoft Ignite 2018 BRK3192 Container DevOps on Azure
Jessica Deen281 visualizações
Microservices and docker por Alex Ivy
Microservices and dockerMicroservices and docker
Microservices and docker
Alex Ivy831 visualizações
AWS re:Invent 2016: Development Workflow with Docker and Amazon ECS (CON302) por Amazon Web Services
AWS re:Invent 2016: Development Workflow with Docker and Amazon ECS (CON302)AWS re:Invent 2016: Development Workflow with Docker and Amazon ECS (CON302)
AWS re:Invent 2016: Development Workflow with Docker and Amazon ECS (CON302)
Amazon Web Services3.4K visualizações
Kubernetes: від знайомства до використання у CI/CD por Stfalcon Meetups
Kubernetes: від знайомства до використання у CI/CDKubernetes: від знайомства до використання у CI/CD
Kubernetes: від знайомства до використання у CI/CD
Stfalcon Meetups522 visualizações
Docker dev ops for cd meetup 12-14 por Simon Storm
Docker dev ops for cd meetup 12-14Docker dev ops for cd meetup 12-14
Docker dev ops for cd meetup 12-14
Simon Storm1.1K visualizações
SS Introduction to Docker por Stephane Woillez
SS Introduction to DockerSS Introduction to Docker
SS Introduction to Docker
Stephane Woillez219 visualizações
Netflix and Containers: Not A Stranger Thing por aspyker
Netflix and Containers:  Not A Stranger ThingNetflix and Containers:  Not A Stranger Thing
Netflix and Containers: Not A Stranger Thing
aspyker2.3K visualizações
Netflix and Containers: Not Stranger Things por All Things Open
Netflix and Containers: Not Stranger ThingsNetflix and Containers: Not Stranger Things
Netflix and Containers: Not Stranger Things
All Things Open412 visualizações
Microservices: How loose is loosely coupled? por John Rofrano
Microservices: How loose is loosely coupled?Microservices: How loose is loosely coupled?
Microservices: How loose is loosely coupled?
John Rofrano671 visualizações
Open shift and docker - october,2014 por Hojoong Kim
Open shift and docker - october,2014Open shift and docker - october,2014
Open shift and docker - october,2014
Hojoong Kim10K visualizações
Building Cloud-Native Applications with Kubernetes, Helm and Kubeless por Bitnami
Building Cloud-Native Applications with Kubernetes, Helm and KubelessBuilding Cloud-Native Applications with Kubernetes, Helm and Kubeless
Building Cloud-Native Applications with Kubernetes, Helm and Kubeless
Bitnami1.4K visualizações
Net Pipeline on Windows Kubernetes por Codefresh
Net Pipeline on Windows KubernetesNet Pipeline on Windows Kubernetes
Net Pipeline on Windows Kubernetes
Codefresh412 visualizações
Docker EE 2.0 Choice, Security & Agility por Ashnikbiz
Docker EE 2.0Choice, Security & AgilityDocker EE 2.0Choice, Security & Agility
Docker EE 2.0 Choice, Security & Agility
Ashnikbiz361 visualizações
Microsoft, Linux, Open Source, DevOps por Jessica Deen
Microsoft, Linux, Open Source, DevOpsMicrosoft, Linux, Open Source, DevOps
Microsoft, Linux, Open Source, DevOps
Jessica Deen212 visualizações

Último

Uni Systems for Power Platform.pptx por
Uni Systems for Power Platform.pptxUni Systems for Power Platform.pptx
Uni Systems for Power Platform.pptxUni Systems S.M.S.A.
58 visualizações21 slides
Centralized Logging Feature in CloudStack using ELK and Grafana - Kiran Chava... por
Centralized Logging Feature in CloudStack using ELK and Grafana - Kiran Chava...Centralized Logging Feature in CloudStack using ELK and Grafana - Kiran Chava...
Centralized Logging Feature in CloudStack using ELK and Grafana - Kiran Chava...ShapeBlue
48 visualizações17 slides
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlue por
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlueElevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlue
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlueShapeBlue
96 visualizações7 slides
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue por
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlueShapeBlue
50 visualizações23 slides
Scaling Knowledge Graph Architectures with AI por
Scaling Knowledge Graph Architectures with AIScaling Knowledge Graph Architectures with AI
Scaling Knowledge Graph Architectures with AIEnterprise Knowledge
53 visualizações15 slides
Hypervisor Agnostic DRS in CloudStack - Brief overview & demo - Vishesh Jinda... por
Hypervisor Agnostic DRS in CloudStack - Brief overview & demo - Vishesh Jinda...Hypervisor Agnostic DRS in CloudStack - Brief overview & demo - Vishesh Jinda...
Hypervisor Agnostic DRS in CloudStack - Brief overview & demo - Vishesh Jinda...ShapeBlue
63 visualizações13 slides

Último(20)

Uni Systems for Power Platform.pptx por Uni Systems S.M.S.A.
Uni Systems for Power Platform.pptxUni Systems for Power Platform.pptx
Uni Systems for Power Platform.pptx
Uni Systems S.M.S.A.58 visualizações
Centralized Logging Feature in CloudStack using ELK and Grafana - Kiran Chava... por ShapeBlue
Centralized Logging Feature in CloudStack using ELK and Grafana - Kiran Chava...Centralized Logging Feature in CloudStack using ELK and Grafana - Kiran Chava...
Centralized Logging Feature in CloudStack using ELK and Grafana - Kiran Chava...
ShapeBlue48 visualizações
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlue por ShapeBlue
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlueElevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlue
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlue
ShapeBlue96 visualizações
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue por ShapeBlue
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue
ShapeBlue50 visualizações
Scaling Knowledge Graph Architectures with AI por Enterprise Knowledge
Scaling Knowledge Graph Architectures with AIScaling Knowledge Graph Architectures with AI
Scaling Knowledge Graph Architectures with AI
Enterprise Knowledge53 visualizações
Hypervisor Agnostic DRS in CloudStack - Brief overview & demo - Vishesh Jinda... por ShapeBlue
Hypervisor Agnostic DRS in CloudStack - Brief overview & demo - Vishesh Jinda...Hypervisor Agnostic DRS in CloudStack - Brief overview & demo - Vishesh Jinda...
Hypervisor Agnostic DRS in CloudStack - Brief overview & demo - Vishesh Jinda...
ShapeBlue63 visualizações
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBIT por ShapeBlue
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBITUpdates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBIT
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBIT
ShapeBlue91 visualizações
Backup and Disaster Recovery with CloudStack and StorPool - Workshop - Venko ... por ShapeBlue
Backup and Disaster Recovery with CloudStack and StorPool - Workshop - Venko ...Backup and Disaster Recovery with CloudStack and StorPool - Workshop - Venko ...
Backup and Disaster Recovery with CloudStack and StorPool - Workshop - Venko ...
ShapeBlue77 visualizações
Migrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlue por ShapeBlue
Migrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlueMigrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlue
Migrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlue
ShapeBlue96 visualizações
"Surviving highload with Node.js", Andrii Shumada por Fwdays
"Surviving highload with Node.js", Andrii Shumada "Surviving highload with Node.js", Andrii Shumada
"Surviving highload with Node.js", Andrii Shumada
Fwdays40 visualizações
MVP and prioritization.pdf por rahuldharwal141
MVP and prioritization.pdfMVP and prioritization.pdf
MVP and prioritization.pdf
rahuldharwal14138 visualizações
Backroll, News and Demo - Pierre Charton, Matthias Dhellin, Ousmane Diarra - ... por ShapeBlue
Backroll, News and Demo - Pierre Charton, Matthias Dhellin, Ousmane Diarra - ...Backroll, News and Demo - Pierre Charton, Matthias Dhellin, Ousmane Diarra - ...
Backroll, News and Demo - Pierre Charton, Matthias Dhellin, Ousmane Diarra - ...
ShapeBlue83 visualizações
Setting Up Your First CloudStack Environment with Beginners Challenges - MD R... por ShapeBlue
Setting Up Your First CloudStack Environment with Beginners Challenges - MD R...Setting Up Your First CloudStack Environment with Beginners Challenges - MD R...
Setting Up Your First CloudStack Environment with Beginners Challenges - MD R...
ShapeBlue54 visualizações
Network Source of Truth and Infrastructure as Code revisited por Network Automation Forum
Network Source of Truth and Infrastructure as Code revisitedNetwork Source of Truth and Infrastructure as Code revisited
Network Source of Truth and Infrastructure as Code revisited
Network Automation Forum42 visualizações
State of the Union - Rohit Yadav - Apache CloudStack por ShapeBlue
State of the Union - Rohit Yadav - Apache CloudStackState of the Union - Rohit Yadav - Apache CloudStack
State of the Union - Rohit Yadav - Apache CloudStack
ShapeBlue145 visualizações
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or... por ShapeBlue
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...
ShapeBlue88 visualizações
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f... por TrustArc
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...
TrustArc77 visualizações
Business Analyst Series 2023 - Week 4 Session 7 por DianaGray10
Business Analyst Series 2023 -  Week 4 Session 7Business Analyst Series 2023 -  Week 4 Session 7
Business Analyst Series 2023 - Week 4 Session 7
DianaGray1080 visualizações
VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlue por ShapeBlue
VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlueVNF Integration and Support in CloudStack - Wei Zhou - ShapeBlue
VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlue
ShapeBlue85 visualizações

Moving Applications into Azure Kubernetes

  • 1. Moving Applications into Azure Kubernetes The Azure Group (Azure User Community, Toronto)
  • 2. About Me Name : Hussein Salman Experience: I have over 12 years of experience in software development and architecture Role: Manager at Avanade Certifications: PMP, CSM, MCSD, MCSA Cloud and AWS Architect http://husseinsalman.com @husseinsalmann
  • 3. Goals • Overview of Microservices • Containerize applications using Docker • Understand main Kubernetes Objects • Leverage Azure Services • Push Docker images into Azure Container Registry • Deploy application into Azure Kubernetes cluster
  • 4. What are Microservices? A software architecture style in which complex applications are composed of small, independent processes communicating with other using language-agnostic APIs. These services are small, highly decoupled and focus on doing a small task, facilitating a modular approach to system-building. [Figure 1 , martinfowler]
  • 5. Why complicating things and adopting Microservices architecture instead of a Monolithic?
  • 6. Monolithic Architecture Challenges Scalability is compromised Lack of Agility (difficult to understand and modify) Long-term commitment to technology stack Continuous Deployment (To update one component, you have to deploy the entire application) Team Productivity Reliability (Single point of failure)
  • 7. What about Microservice Challenges? • Debugging is difficult • Monitoring/Logging is difficult • Distributed databases make transactions hard • Distributed services adds more network communication • Cluster and orchestration tools overhead • Operational and tooling overhead on dev teams • Increasing Deployment Complexities
  • 9. What are Containers? Containers = Operating System Virtualization Virtual Machines = Hardware Virtualization [Figure 2 ,docker]
  • 10. Why Containers? [Figure 3 ,flipboard.com]
  • 11. Docker Leading open-source containerization platform Docker containers wrap up a piece of software in a complete filesystem that contains everything it needs to run: code, runtime, system tools, system libraries – anything you can install on a server. This guarantees that it will always run the same, regardless of the environment it is running in. Tools: Docker CLI, Docker Engine, Docker Swarm, Docker Compose
  • 13. Application for the Demo • Simple App to demonstrate • Front-end (Angular) • Back-end API (ASP.NET Core)
  • 14. Run containerized app locally Demo 1
  • 15. What about other distributed systems challenges?
  • 16. Container Management at Scale • Where to run the containers? • How to manage them on multiple hosts? • What happens if a host is down? • How to keep them running despite of failure? • What about scaling? • How to update them? • Where are the containers and how to connect?
  • 20. Azure Kubernetes Service (AKS) Managed Kubernetes Cluster in Azure: • Control Plane Is free • Pay only for worker nodes • Same software and tooling for regular K8 Easily Integrate with Azure Services: • Security: RBAC and Azure AD integration • Azure Monitor • Virtual network integration • Azure DevOps
  • 21. Azure Container Registry (ACR) Geo-replicationManage images for all types of containers Keep container images close Expand registry functionality
  • 22. Kubernetes Key Objects • Pod • Replica set • Deployment • Service
  • 23. Node Pod Container Pod 1 Container 1 Pod 2 • The smallest and simplest unit in the Kubernetes object model in terms of deployment and scaling • Encapsulates container(s), storage, network IPs, and deployment options • Represent a running process in the cluster (Worker Node) • A group of one or more containers • Containers within a pod share an IP address and port space, and can find each other via localhost Container 2 Container Pod 1
  • 24. Node Service front-end Pod 10.10.10.1 back-end Pod 10.10.10.2 back-end Pod 10.10.10.3 back-end Pod 10.10.10.4 IP: 10.10.10.6 DNS: frontend-svc Service IP: 10.10.10.6 DNS: backend-svc Service Traffic • Pod objects are mortal, so we can’t rely on their IP addresses • Services defines a logical set of pods and a policy to access them • They give pods a stable IP • A service is a virtual load balancer in front of pods IP: 10.10.10.6 DNS: backend-svc Service back-end Pod 10.10.10.3 back-end Pod 10.10.10.4 BE 1.2 BE 1.2 BE 1.2back-end Pod 10.10.10.5 BE 1.2
  • 25. Replica Set Node Front-end Pod B Front-end Pod C Replica Set Replicas: 3 Template: Front-end Pod Front-end Pod A • Ensures high availability • A higher level concept that manages multiple instances of the same pod • Defining container images and how many pod instances • Responsible for reconciling desired state and self-healing Desired State 3 Actual State 32
  • 26. Deployment • A Deployment describes declarative updates for Pods and Replica Sets • Application deployment with zero downtime • Updates happen in rolling fashing • Deployment’s rollout history is kept in the system so that you can rollback anytime Replica Set Pod Container Pod Container …. Deployment Updates & Rollback Scaling, self-healing
  • 27. What type of object being defined Application Yaml Files - Deployment Pods are labeled app: web-ui deployment use labels to find & manage pods Specify instances of pod running Listen on container port 80 Pull the image and run the container Podtemplate Give a name to the deployment
  • 28. Application Yaml Files - Service type of object being defined Give a name to the service Determine the set of the pods a service can target us Map incoming traffic on port 4200 to port 80 on pod Select the service type
  • 31. 31 port app=web-uilabel image azurecr.io/frontend:v1 web-ui-1 port 80 web-ui-2 port 80 front-end service selector app=web-ui port IP 4200:80 10.0.2.20 front-end deployment
  • 32. How it works together? [Figure 5, Microsoft]
  • 33. • Provision AKS • Authenticate AKS to connect to ACR • Apply yaml Files • Run the application Demo 3 – Run App on AKS