SlideShare a Scribd company logo
1 of 71
Download to read offline
AKS: Kubernetes e Azure
alla massima potenza
Alessandro Melchiori // @amelchiori
Monolith vs
microservice(s)
Monolith
The Good
● Monolith can be good when you are
starting out
● Fewer moving parts enables easy
deployment
Monolith
The “Bad”
● When your application (or company)
grows, monolith begin slowing you
down
Challenges with monolithic software
Challenges with monolithic software
● Difficult to scale
Challenges with monolithic software
● Difficult to scale
● Architecture is hard to maintain and evolve
○ Es: too much software coupling
Challenges with monolithic software
● Difficult to scale
● Architecture is hard to maintain and evolve
○ Es: too much software coupling
● Long build/test/release cycle
○ Update to one functionality requires redeployment of the entire codebase
Challenges with monolithic software
● Difficult to scale
● Architecture is hard to maintain and evolve
○ Es: too much software coupling
● Long build/test/release cycle
○ Update to one functionality requires redeployment of the entire codebase
● Operations is a nightmare
Other options?
The biggest questions ever asked (some of)
● What happens after you die?
The biggest questions ever asked (some of)
● What happens after you die?
● What is life?
The biggest questions ever asked (some of)
● What happens after you die?
● What is life?
● What is a microservice?
What are microservices
service -oriented
architecture composed of
loosely coupled elements
that have bounded context
Adrian Cockcroft
What are microservices
service -oriented
architecture composed of
loosely coupled elements
that have bounded context
Adrian Cockcroft
Services talk with each other over the
network
What are microservices
service -oriented
architecture composed of
loosely coupled elements
that have bounded context
Adrian Cockcroft
You can update the services
independently; updating one service
doesn’t require changing any other
service
What are microservices
service -oriented
architecture composed of
loosely coupled elements
that have bounded context
Adrian Cockcroft
Self-contained; you can update the
code without knowing anything about
the internals of other microservices
Anatomy of a (micro)service
Data Store App. / Logic
Public API
● Http
● gRPC
● Messages
● ...
Anatomy of a (micro)service
Service A Service B
Public API
Public API
Anatomy of a (micro)service
Service A Service B
Public API
Public API
Anatomy of a (micro)service
Service A Service B
Public API
Public API
Anatomy of a (micro)service
Service A
Public API
Version 1.0.0
storeRestaurant(id, name)
Anatomy of a (micro)service
Service A
Public API
Version 1.0.0
storeRestaurant(id, name)
Version 1.1.0
storeRestaurant(id, name)
storeRestaurant(id, name, metadata)
addReview(restaurantId, rating, comments)
Anatomy of a (micro)service
Service A
Public API
Version 1.0.0
storeRestaurant(id, name)
Version 1.1.0
storeRestaurant(id, name)
storeRestaurant(id, name, metadata)
addReview(restaurantId, rating, comments)
Version 2.0.0
storeRestaurant(id, name, metadata)
addReview(restaurantId, rating, comments)
Microservice architecture
The “Good”
● An application is sum of its
components
● Better fault isolation
● Components can be spread across
multiple servers
Microservice architecture
The “Good”
● An application is sum of its
components
● Better fault isolation
● Components can be spread across
multiple servers
The “Bad”
● Many components, many moving
parts
● Difficult to manage
inter-communication
● Manual management can be
difficult
Microservice architecture
The “Good”
● An application is sum of its
components
● Better fault isolation
● Components can be spread across
multiple servers
The “Bad”
● Many components, many moving
parts
● Difficult to manage
inter-communication
● Manual management can be
difficult
Welcome
Kubernetes
Kubernetes
Greek for “Helmsman” < the person who steers a ship
Kubernetes
Greek for “Helmsman” < the person who steers a ship
K8s
Greek for “Helmsman” < the person who steers a ship
● Born in Google
● Donated to CNCF in 2014
● Open source (Apache 2.0)
● v1.0 July 2015
● Written in Go/Golang
● Code is on GitHub (where otherwise?)
K8s: some infos
K8s: the big picture view
K8s: big picture view
● The Master is responsible for
managing the cluster
K8s: big picture view
● The Master is responsible for
managing the cluster
● A node is a VM or a physical
computer that serves as a worker
machine in a Kubernetes cluster.
Master(s)
The K8s control plane
K8s: master components
K8s: master components
kube-apiserver
Component on the master that exposes the
Kubernetes API. It is the front-end for the
Kubernetes control plane.
It is designed to scale horizontally
K8s: master components
etcd
Consistent and highly-available key value
store used as Kubernetes’ backing store for
all cluster data.
K8s: master components
kube-scheduler
Component on the master that watches
newly created pods that have no node
assigned, and selects a node for them to
run on.
K8s: master components
kube-controller-manager
Component on the master that runs
controllers:
● Node controller
● Replication controller
● Endpoints controller
● Service Account & Token controller
Node(s)
The K8s workers
K8s: node components
K8s: node components
kubelet
An agent that runs on each node in the
cluster. It makes sure that containers are
running in a pod.
K8s: node components
kube-proxy
It is like the network brain of the node. It is
a network proxy which reflects Kubernetes
networking services on each node.
K8s: node components
Container runtime
It’s the software that is responsible for
running containers. Kubernetes supports
several runtimes: Docker, rkt, runc and any
OCI runtime-spec implementation.
K8s objects
K8s objects overview
Kubernetes contains a number of abstractions that represent the state of your
system: deployed containerized applications and workloads, their associated
network and disk resources, and other information about what your cluster is
doing.
These abstractions are represented by objects in the Kubernetes API
K8s objects
Basic Kubernetes objects:
● Pod
● Service
● Volume
● Namespace
K8s objects
Basic Kubernetes objects:
● Pod
● Service
● Volume
● Namespace
Higher-level abstraction (controllers):
● ReplicaSet
● Deployment
● StatefulSet
● DaemonSet
● Job
Pods, Services and
Deployment
Pod overview
● Is the basic building block of Kubernetes
● Represents a running process on the
cluster
● Consists of either a single container or a
small number of containers that are
tightly coupled and that share resources
Pod phases
Pods are mortal
The phase of a Pod is a simple, high-level
summary of where the Pod is in its lifecycle:
● Pending
● Running
● Succeeded
● Failed
● Unknown
Service overview
P frontend
10.0.0.12
P frontend
10.0.0.83
P frontend
10.0.0.25
P frontend
10.0.0.39
P backend
10.0.0.41
P backend
10.0.0.44
Service overview
P frontend
10.0.0.12
P frontend
10.0.0.83
P frontend
10.0.0.25
P frontend
10.0.0.39
P backend
10.0.0.41
P backend
10.0.0.44
Service overview
P frontend
10.0.0.12
P frontend
10.0.0.83
P frontend
10.0.0.25
P frontend
10.0.0.39
P backend
10.0.0.41
P backend
10.0.0.81
Service overview
P frontend
10.0.0.12
P frontend
10.0.0.83
P frontend
10.0.0.25
P frontend
10.0.0.39
P backend
10.0.0.41
P backend
10.0.0.44
P
DNS:
be.myservice
10.0.0.27
Deployment overview
● It provides declarative updates for Pods
and ReplicaSets.
● You describe a desired state in a
Deployment object, and the Deployment
controller changes the actual state to
the desired state at a controlled rate.
Declarative model
&
Desired state
Management techniques
The kubectl command-line tool supports several different ways to create and
manage Kubernetes objects:
● Imperative commands
● Imperative object configuration
● Declarative object configuration
Imperative commands
The simplest way to get started or to run a one-off task in a cluster.
kubectl run nginx --image nginx
Imperative commands
Pro:
● Commands are simple, easy to
learn and easy to remember.
● Commands require only a single
step to make changes to the
cluster
Cons:
● Commands do not integrate with
change review processes.
● Commands do not provide an
audit trail associated with
changes.
Imperative object configuration
In imperative object configuration, the kubectl command specifies the operation
(create, replace, etc.), optional flags and at least one file name.
The file specified must contain a full definition of the object in YAML or JSON
format.
kubectl create -f nginx.yaml
Imperative object configuration
Pro:
● Object configuration can be stored
in a source control system such as
Git (vs. imperative commands)
● It’s simpler and easier to
understand (vs. declarative object
configuration)
Cons:
● Object configuration requires basic
understanding of the object
schema (vs. imparative commands)
● It works best on files, not
directories (vs. declarative object
configuration)
● Updates to live objects must be
reflected in configuration files, or
they will be lost during the next
replacement (vs. declarative object
configuration)
Declarative object configuration
Using declarative object configuration, a user operates on object configuration
files stored locally, however the user does not define the operations to be taken
on the files.
Create, update, and delete operations are automatically detected per-object by
kubectl.
kubectl apply -f configs/
Declarative object configuration
Pro:
● Changes made directly to live
objects are retained, even if they
are not merged back into the
configuration files
● It has better support for operating
on directories and automatically
detecting operation types
per-object
Cons:
● Declarative object configuration is
harder to debug
K8s + Azure = AKS
Self-hosting K8s cluster
Manually install master
and worker nodes
Need to consider master HA,
adding additional worker
nodes, patching, updates, ...
Azure Kubernetes Service
● Simplifies deployment, management and
operations of K8s
● Makes it quick and easy to deploy and manage
containerized applications without container
orchestration expertise
● Eliminates the burden of ongoing operations and
maintenance by provisioning, upgrading and scaling
resources on demand
Alessandro Melchiori
Software developer @ CodicePlastico
alessandro@codiceplastico.com
@amelchiori

More Related Content

What's hot

Kubernetes: The Next Research Platform
Kubernetes: The Next Research PlatformKubernetes: The Next Research Platform
Kubernetes: The Next Research PlatformBob Killen
 
18th Athens Big Data Meetup - 2nd Talk - Run Spark and Flink Jobs on Kubernetes
18th Athens Big Data Meetup - 2nd Talk - Run Spark and Flink Jobs on Kubernetes18th Athens Big Data Meetup - 2nd Talk - Run Spark and Flink Jobs on Kubernetes
18th Athens Big Data Meetup - 2nd Talk - Run Spark and Flink Jobs on KubernetesAthens Big Data
 
Introduction to Kubernetes and Google Container Engine (GKE)
Introduction to Kubernetes and Google Container Engine (GKE)Introduction to Kubernetes and Google Container Engine (GKE)
Introduction to Kubernetes and Google Container Engine (GKE)Opsta
 
K8s in 3h - Kubernetes Fundamentals Training
K8s in 3h - Kubernetes Fundamentals TrainingK8s in 3h - Kubernetes Fundamentals Training
K8s in 3h - Kubernetes Fundamentals TrainingPiotr Perzyna
 
Brief intro to K8s controller and operator
Brief intro to K8s controller and operator Brief intro to K8s controller and operator
Brief intro to K8s controller and operator Shang Xiang Fan
 
Craig Box (Google) - The road to Kubernetes 1.0
Craig Box (Google) - The road to Kubernetes 1.0Craig Box (Google) - The road to Kubernetes 1.0
Craig Box (Google) - The road to Kubernetes 1.0Outlyer
 
Quarkus: From developer joy to Kubernetes nirvana! | DevNation Tech Talk
Quarkus: From developer joy to Kubernetes nirvana! | DevNation Tech TalkQuarkus: From developer joy to Kubernetes nirvana! | DevNation Tech Talk
Quarkus: From developer joy to Kubernetes nirvana! | DevNation Tech TalkRed Hat Developers
 
SpringBoot and Spring Cloud Service for MSA
SpringBoot and Spring Cloud Service for MSASpringBoot and Spring Cloud Service for MSA
SpringBoot and Spring Cloud Service for MSAOracle Korea
 
OpenStack on Kubernetes (BOS Summit / May 2017 update)
OpenStack on Kubernetes (BOS Summit / May 2017 update)OpenStack on Kubernetes (BOS Summit / May 2017 update)
OpenStack on Kubernetes (BOS Summit / May 2017 update)rhirschfeld
 
Kubernetes Monitoring & Best Practices
Kubernetes Monitoring & Best PracticesKubernetes Monitoring & Best Practices
Kubernetes Monitoring & Best PracticesAjeet Singh Raina
 
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...Edureka!
 
Helm - Package Manager for Kubernetes
Helm - Package Manager for KubernetesHelm - Package Manager for Kubernetes
Helm - Package Manager for KubernetesKnoldus Inc.
 
Qt for Python
Qt for PythonQt for Python
Qt for PythonICS
 
Kubernetes-native or not? When should you ditch your traditional CI/CD server...
Kubernetes-native or not? When should you ditch your traditional CI/CD server...Kubernetes-native or not? When should you ditch your traditional CI/CD server...
Kubernetes-native or not? When should you ditch your traditional CI/CD server...Red Hat Developers
 
From Rollercoasters to Meerkats: 3 Generations of Production Kubernetes Clusters
From Rollercoasters to Meerkats: 3 Generations of Production Kubernetes ClustersFrom Rollercoasters to Meerkats: 3 Generations of Production Kubernetes Clusters
From Rollercoasters to Meerkats: 3 Generations of Production Kubernetes ClustersMatthew Barker
 
Migrating from oracle soa suite to microservices on kubernetes
Migrating from oracle soa suite to microservices on kubernetesMigrating from oracle soa suite to microservices on kubernetes
Migrating from oracle soa suite to microservices on kubernetesKonveyor Community
 

What's hot (20)

Quick introduction to Kubernetes
Quick introduction to KubernetesQuick introduction to Kubernetes
Quick introduction to Kubernetes
 
Kubernetes: The Next Research Platform
Kubernetes: The Next Research PlatformKubernetes: The Next Research Platform
Kubernetes: The Next Research Platform
 
18th Athens Big Data Meetup - 2nd Talk - Run Spark and Flink Jobs on Kubernetes
18th Athens Big Data Meetup - 2nd Talk - Run Spark and Flink Jobs on Kubernetes18th Athens Big Data Meetup - 2nd Talk - Run Spark and Flink Jobs on Kubernetes
18th Athens Big Data Meetup - 2nd Talk - Run Spark and Flink Jobs on Kubernetes
 
Introduction to Kubernetes and Google Container Engine (GKE)
Introduction to Kubernetes and Google Container Engine (GKE)Introduction to Kubernetes and Google Container Engine (GKE)
Introduction to Kubernetes and Google Container Engine (GKE)
 
K8s in 3h - Kubernetes Fundamentals Training
K8s in 3h - Kubernetes Fundamentals TrainingK8s in 3h - Kubernetes Fundamentals Training
K8s in 3h - Kubernetes Fundamentals Training
 
Brief intro to K8s controller and operator
Brief intro to K8s controller and operator Brief intro to K8s controller and operator
Brief intro to K8s controller and operator
 
Craig Box (Google) - The road to Kubernetes 1.0
Craig Box (Google) - The road to Kubernetes 1.0Craig Box (Google) - The road to Kubernetes 1.0
Craig Box (Google) - The road to Kubernetes 1.0
 
Quarkus: From developer joy to Kubernetes nirvana! | DevNation Tech Talk
Quarkus: From developer joy to Kubernetes nirvana! | DevNation Tech TalkQuarkus: From developer joy to Kubernetes nirvana! | DevNation Tech Talk
Quarkus: From developer joy to Kubernetes nirvana! | DevNation Tech Talk
 
SpringBoot and Spring Cloud Service for MSA
SpringBoot and Spring Cloud Service for MSASpringBoot and Spring Cloud Service for MSA
SpringBoot and Spring Cloud Service for MSA
 
OpenStack on Kubernetes (BOS Summit / May 2017 update)
OpenStack on Kubernetes (BOS Summit / May 2017 update)OpenStack on Kubernetes (BOS Summit / May 2017 update)
OpenStack on Kubernetes (BOS Summit / May 2017 update)
 
Kubernetes Monitoring & Best Practices
Kubernetes Monitoring & Best PracticesKubernetes Monitoring & Best Practices
Kubernetes Monitoring & Best Practices
 
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
 
Crunchy containers
Crunchy containersCrunchy containers
Crunchy containers
 
From Code to Kubernetes
From Code to KubernetesFrom Code to Kubernetes
From Code to Kubernetes
 
Helm - Package Manager for Kubernetes
Helm - Package Manager for KubernetesHelm - Package Manager for Kubernetes
Helm - Package Manager for Kubernetes
 
Qt for Python
Qt for PythonQt for Python
Qt for Python
 
Kubernetes-native or not? When should you ditch your traditional CI/CD server...
Kubernetes-native or not? When should you ditch your traditional CI/CD server...Kubernetes-native or not? When should you ditch your traditional CI/CD server...
Kubernetes-native or not? When should you ditch your traditional CI/CD server...
 
From Rollercoasters to Meerkats: 3 Generations of Production Kubernetes Clusters
From Rollercoasters to Meerkats: 3 Generations of Production Kubernetes ClustersFrom Rollercoasters to Meerkats: 3 Generations of Production Kubernetes Clusters
From Rollercoasters to Meerkats: 3 Generations of Production Kubernetes Clusters
 
Migrating from oracle soa suite to microservices on kubernetes
Migrating from oracle soa suite to microservices on kubernetesMigrating from oracle soa suite to microservices on kubernetes
Migrating from oracle soa suite to microservices on kubernetes
 
QtQuick Day 1
QtQuick Day 1QtQuick Day 1
QtQuick Day 1
 

Similar to AKS: k8s e azure

Introduction to Kubernetes Workshop
Introduction to Kubernetes WorkshopIntroduction to Kubernetes Workshop
Introduction to Kubernetes WorkshopBob Killen
 
Ultimate Guide to Microservice Architecture on Kubernetes
Ultimate Guide to Microservice Architecture on KubernetesUltimate Guide to Microservice Architecture on Kubernetes
Ultimate Guide to Microservice Architecture on Kuberneteskloia
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetesGabriel Carro
 
01 - VMUGIT - Lecce 2018 - Fabio Rapposelli, VMware
01 - VMUGIT - Lecce 2018 - Fabio Rapposelli, VMware01 - VMUGIT - Lecce 2018 - Fabio Rapposelli, VMware
01 - VMUGIT - Lecce 2018 - Fabio Rapposelli, VMwareVMUG IT
 
Intro to Kubernetes & GitOps Workshop
Intro to Kubernetes & GitOps WorkshopIntro to Kubernetes & GitOps Workshop
Intro to Kubernetes & GitOps WorkshopWeaveworks
 
DevOps Days Boston 2017: Real-world Kubernetes for DevOps
DevOps Days Boston 2017: Real-world Kubernetes for DevOpsDevOps Days Boston 2017: Real-world Kubernetes for DevOps
DevOps Days Boston 2017: Real-world Kubernetes for DevOpsAmbassador Labs
 
Free GitOps Workshop + Intro to Kubernetes & GitOps
Free GitOps Workshop + Intro to Kubernetes & GitOpsFree GitOps Workshop + Intro to Kubernetes & GitOps
Free GitOps Workshop + Intro to Kubernetes & GitOpsWeaveworks
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetesRishabh Indoria
 
Mete Atamel "Resilient microservices with kubernetes"
Mete Atamel "Resilient microservices with kubernetes"Mete Atamel "Resilient microservices with kubernetes"
Mete Atamel "Resilient microservices with kubernetes"IT Event
 
Docker Madison, Introduction to Kubernetes
Docker Madison, Introduction to KubernetesDocker Madison, Introduction to Kubernetes
Docker Madison, Introduction to KubernetesTimothy St. Clair
 
Containers kuberenetes
Containers kuberenetesContainers kuberenetes
Containers kuberenetescsegayan
 
Introduction to Container Storage Interface (CSI)
Introduction to Container Storage Interface (CSI)Introduction to Container Storage Interface (CSI)
Introduction to Container Storage Interface (CSI)Idan Atias
 
Free GitOps Workshop
Free GitOps WorkshopFree GitOps Workshop
Free GitOps WorkshopWeaveworks
 
Kubernetes #1 intro
Kubernetes #1   introKubernetes #1   intro
Kubernetes #1 introTerry Cho
 
Keynote #Tech - Google : aperçu de la gestion des services distribués chez Go...
Keynote #Tech - Google : aperçu de la gestion des services distribués chez Go...Keynote #Tech - Google : aperçu de la gestion des services distribués chez Go...
Keynote #Tech - Google : aperçu de la gestion des services distribués chez Go...Paris Open Source Summit
 
Mete Atamel
Mete AtamelMete Atamel
Mete AtamelCodeFest
 

Similar to AKS: k8s e azure (20)

Aks: k8s e azure
Aks:  k8s e azureAks:  k8s e azure
Aks: k8s e azure
 
Introduction to Kubernetes Workshop
Introduction to Kubernetes WorkshopIntroduction to Kubernetes Workshop
Introduction to Kubernetes Workshop
 
Ultimate Guide to Microservice Architecture on Kubernetes
Ultimate Guide to Microservice Architecture on KubernetesUltimate Guide to Microservice Architecture on Kubernetes
Ultimate Guide to Microservice Architecture on Kubernetes
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetes
 
01 - VMUGIT - Lecce 2018 - Fabio Rapposelli, VMware
01 - VMUGIT - Lecce 2018 - Fabio Rapposelli, VMware01 - VMUGIT - Lecce 2018 - Fabio Rapposelli, VMware
01 - VMUGIT - Lecce 2018 - Fabio Rapposelli, VMware
 
Intro to Kubernetes & GitOps Workshop
Intro to Kubernetes & GitOps WorkshopIntro to Kubernetes & GitOps Workshop
Intro to Kubernetes & GitOps Workshop
 
DevOps Days Boston 2017: Real-world Kubernetes for DevOps
DevOps Days Boston 2017: Real-world Kubernetes for DevOpsDevOps Days Boston 2017: Real-world Kubernetes for DevOps
DevOps Days Boston 2017: Real-world Kubernetes for DevOps
 
Free GitOps Workshop + Intro to Kubernetes & GitOps
Free GitOps Workshop + Intro to Kubernetes & GitOpsFree GitOps Workshop + Intro to Kubernetes & GitOps
Free GitOps Workshop + Intro to Kubernetes & GitOps
 
Containers kuberenetes
Containers kuberenetesContainers kuberenetes
Containers kuberenetes
 
Containers kuberenetes
Containers kuberenetesContainers kuberenetes
Containers kuberenetes
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetes
 
Mete Atamel "Resilient microservices with kubernetes"
Mete Atamel "Resilient microservices with kubernetes"Mete Atamel "Resilient microservices with kubernetes"
Mete Atamel "Resilient microservices with kubernetes"
 
Container Orchestration using kubernetes
Container Orchestration using kubernetesContainer Orchestration using kubernetes
Container Orchestration using kubernetes
 
Docker Madison, Introduction to Kubernetes
Docker Madison, Introduction to KubernetesDocker Madison, Introduction to Kubernetes
Docker Madison, Introduction to Kubernetes
 
Containers kuberenetes
Containers kuberenetesContainers kuberenetes
Containers kuberenetes
 
Introduction to Container Storage Interface (CSI)
Introduction to Container Storage Interface (CSI)Introduction to Container Storage Interface (CSI)
Introduction to Container Storage Interface (CSI)
 
Free GitOps Workshop
Free GitOps WorkshopFree GitOps Workshop
Free GitOps Workshop
 
Kubernetes #1 intro
Kubernetes #1   introKubernetes #1   intro
Kubernetes #1 intro
 
Keynote #Tech - Google : aperçu de la gestion des services distribués chez Go...
Keynote #Tech - Google : aperçu de la gestion des services distribués chez Go...Keynote #Tech - Google : aperçu de la gestion des services distribués chez Go...
Keynote #Tech - Google : aperçu de la gestion des services distribués chez Go...
 
Mete Atamel
Mete AtamelMete Atamel
Mete Atamel
 

More from Alessandro Melchiori

Developing reliable applications with .net core and AKS
Developing reliable applications with .net core and AKSDeveloping reliable applications with .net core and AKS
Developing reliable applications with .net core and AKSAlessandro Melchiori
 
Developing reliable applications with .net core and AKS
Developing reliable applications with .net core and AKSDeveloping reliable applications with .net core and AKS
Developing reliable applications with .net core and AKSAlessandro Melchiori
 
How to search...better! (azure search)
How to search...better! (azure search)How to search...better! (azure search)
How to search...better! (azure search)Alessandro Melchiori
 
A quick tour around Azure Dev Spaces
A quick tour around Azure Dev SpacesA quick tour around Azure Dev Spaces
A quick tour around Azure Dev SpacesAlessandro Melchiori
 
Azure functions: from a function to a whole application in 60 minutes
Azure functions: from a function to a whole application in 60 minutesAzure functions: from a function to a whole application in 60 minutes
Azure functions: from a function to a whole application in 60 minutesAlessandro Melchiori
 
Monitoring docker: from zero to Azure
Monitoring docker: from zero to AzureMonitoring docker: from zero to Azure
Monitoring docker: from zero to AzureAlessandro Melchiori
 
Cooking Akka.net and Azure Service Fabric together
Cooking Akka.net and Azure Service Fabric togetherCooking Akka.net and Azure Service Fabric together
Cooking Akka.net and Azure Service Fabric togetherAlessandro Melchiori
 
ACR + ACS + VSTS: a complete ALM pipeline with docker and azure
ACR + ACS + VSTS: a complete ALM pipeline with docker and azureACR + ACS + VSTS: a complete ALM pipeline with docker and azure
ACR + ACS + VSTS: a complete ALM pipeline with docker and azureAlessandro Melchiori
 
Come ti "pusho" il web con WebSockets: da 0 a SignalR
Come ti "pusho" il web con WebSockets: da 0 a SignalR Come ti "pusho" il web con WebSockets: da 0 a SignalR
Come ti "pusho" il web con WebSockets: da 0 a SignalR Alessandro Melchiori
 
Azure service fabric: a gentle introduction
Azure service fabric: a gentle introductionAzure service fabric: a gentle introduction
Azure service fabric: a gentle introductionAlessandro Melchiori
 
From CRUD to messages: a true story
From CRUD to messages: a true storyFrom CRUD to messages: a true story
From CRUD to messages: a true storyAlessandro Melchiori
 

More from Alessandro Melchiori (20)

Scale your (aks) cluster, luke!
Scale your (aks) cluster, luke!Scale your (aks) cluster, luke!
Scale your (aks) cluster, luke!
 
A quick introduction to AKS
A quick introduction to AKSA quick introduction to AKS
A quick introduction to AKS
 
Developing reliable applications with .net core and AKS
Developing reliable applications with .net core and AKSDeveloping reliable applications with .net core and AKS
Developing reliable applications with .net core and AKS
 
VS Code tools for docker
VS Code tools for dockerVS Code tools for docker
VS Code tools for docker
 
Developing reliable applications with .net core and AKS
Developing reliable applications with .net core and AKSDeveloping reliable applications with .net core and AKS
Developing reliable applications with .net core and AKS
 
How to search...better! (azure search)
How to search...better! (azure search)How to search...better! (azure search)
How to search...better! (azure search)
 
How to search...better!
How to search...better!How to search...better!
How to search...better!
 
A quick tour around Azure Dev Spaces
A quick tour around Azure Dev SpacesA quick tour around Azure Dev Spaces
A quick tour around Azure Dev Spaces
 
Azure functions: from a function to a whole application in 60 minutes
Azure functions: from a function to a whole application in 60 minutesAzure functions: from a function to a whole application in 60 minutes
Azure functions: from a function to a whole application in 60 minutes
 
Monitoring docker: from zero to Azure
Monitoring docker: from zero to AzureMonitoring docker: from zero to Azure
Monitoring docker: from zero to Azure
 
Cooking Akka.net and Azure Service Fabric together
Cooking Akka.net and Azure Service Fabric togetherCooking Akka.net and Azure Service Fabric together
Cooking Akka.net and Azure Service Fabric together
 
Azure data platform overview
Azure data platform overviewAzure data platform overview
Azure data platform overview
 
ACR + ACS + VSTS: a complete ALM pipeline with docker and azure
ACR + ACS + VSTS: a complete ALM pipeline with docker and azureACR + ACS + VSTS: a complete ALM pipeline with docker and azure
ACR + ACS + VSTS: a complete ALM pipeline with docker and azure
 
Docker & Azure
Docker & AzureDocker & Azure
Docker & Azure
 
Docker and Azure
Docker and AzureDocker and Azure
Docker and Azure
 
Come ti "pusho" il web con WebSockets: da 0 a SignalR
Come ti "pusho" il web con WebSockets: da 0 a SignalR Come ti "pusho" il web con WebSockets: da 0 a SignalR
Come ti "pusho" il web con WebSockets: da 0 a SignalR
 
Docker &amp; azure
Docker &amp; azureDocker &amp; azure
Docker &amp; azure
 
Azure service fabric: a gentle introduction
Azure service fabric: a gentle introductionAzure service fabric: a gentle introduction
Azure service fabric: a gentle introduction
 
From CRUD to messages: a true story
From CRUD to messages: a true storyFrom CRUD to messages: a true story
From CRUD to messages: a true story
 
Functional Reactive Programming
Functional Reactive ProgrammingFunctional Reactive Programming
Functional Reactive Programming
 

Recently uploaded

A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 

Recently uploaded (20)

A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 

AKS: k8s e azure

  • 1. AKS: Kubernetes e Azure alla massima potenza Alessandro Melchiori // @amelchiori
  • 3. Monolith The Good ● Monolith can be good when you are starting out ● Fewer moving parts enables easy deployment
  • 4. Monolith The “Bad” ● When your application (or company) grows, monolith begin slowing you down
  • 6. Challenges with monolithic software ● Difficult to scale
  • 7. Challenges with monolithic software ● Difficult to scale ● Architecture is hard to maintain and evolve ○ Es: too much software coupling
  • 8. Challenges with monolithic software ● Difficult to scale ● Architecture is hard to maintain and evolve ○ Es: too much software coupling ● Long build/test/release cycle ○ Update to one functionality requires redeployment of the entire codebase
  • 9. Challenges with monolithic software ● Difficult to scale ● Architecture is hard to maintain and evolve ○ Es: too much software coupling ● Long build/test/release cycle ○ Update to one functionality requires redeployment of the entire codebase ● Operations is a nightmare
  • 11. The biggest questions ever asked (some of) ● What happens after you die?
  • 12. The biggest questions ever asked (some of) ● What happens after you die? ● What is life?
  • 13. The biggest questions ever asked (some of) ● What happens after you die? ● What is life? ● What is a microservice?
  • 14.
  • 15. What are microservices service -oriented architecture composed of loosely coupled elements that have bounded context Adrian Cockcroft
  • 16. What are microservices service -oriented architecture composed of loosely coupled elements that have bounded context Adrian Cockcroft Services talk with each other over the network
  • 17. What are microservices service -oriented architecture composed of loosely coupled elements that have bounded context Adrian Cockcroft You can update the services independently; updating one service doesn’t require changing any other service
  • 18. What are microservices service -oriented architecture composed of loosely coupled elements that have bounded context Adrian Cockcroft Self-contained; you can update the code without knowing anything about the internals of other microservices
  • 19. Anatomy of a (micro)service Data Store App. / Logic Public API ● Http ● gRPC ● Messages ● ...
  • 20. Anatomy of a (micro)service Service A Service B Public API Public API
  • 21. Anatomy of a (micro)service Service A Service B Public API Public API
  • 22. Anatomy of a (micro)service Service A Service B Public API Public API
  • 23. Anatomy of a (micro)service Service A Public API Version 1.0.0 storeRestaurant(id, name)
  • 24. Anatomy of a (micro)service Service A Public API Version 1.0.0 storeRestaurant(id, name) Version 1.1.0 storeRestaurant(id, name) storeRestaurant(id, name, metadata) addReview(restaurantId, rating, comments)
  • 25. Anatomy of a (micro)service Service A Public API Version 1.0.0 storeRestaurant(id, name) Version 1.1.0 storeRestaurant(id, name) storeRestaurant(id, name, metadata) addReview(restaurantId, rating, comments) Version 2.0.0 storeRestaurant(id, name, metadata) addReview(restaurantId, rating, comments)
  • 26. Microservice architecture The “Good” ● An application is sum of its components ● Better fault isolation ● Components can be spread across multiple servers
  • 27. Microservice architecture The “Good” ● An application is sum of its components ● Better fault isolation ● Components can be spread across multiple servers The “Bad” ● Many components, many moving parts ● Difficult to manage inter-communication ● Manual management can be difficult
  • 28. Microservice architecture The “Good” ● An application is sum of its components ● Better fault isolation ● Components can be spread across multiple servers The “Bad” ● Many components, many moving parts ● Difficult to manage inter-communication ● Manual management can be difficult
  • 30. Kubernetes Greek for “Helmsman” < the person who steers a ship
  • 31. Kubernetes Greek for “Helmsman” < the person who steers a ship
  • 32. K8s Greek for “Helmsman” < the person who steers a ship
  • 33. ● Born in Google ● Donated to CNCF in 2014 ● Open source (Apache 2.0) ● v1.0 July 2015 ● Written in Go/Golang ● Code is on GitHub (where otherwise?) K8s: some infos
  • 34. K8s: the big picture view
  • 35. K8s: big picture view ● The Master is responsible for managing the cluster
  • 36. K8s: big picture view ● The Master is responsible for managing the cluster ● A node is a VM or a physical computer that serves as a worker machine in a Kubernetes cluster.
  • 39. K8s: master components kube-apiserver Component on the master that exposes the Kubernetes API. It is the front-end for the Kubernetes control plane. It is designed to scale horizontally
  • 40. K8s: master components etcd Consistent and highly-available key value store used as Kubernetes’ backing store for all cluster data.
  • 41. K8s: master components kube-scheduler Component on the master that watches newly created pods that have no node assigned, and selects a node for them to run on.
  • 42. K8s: master components kube-controller-manager Component on the master that runs controllers: ● Node controller ● Replication controller ● Endpoints controller ● Service Account & Token controller
  • 45. K8s: node components kubelet An agent that runs on each node in the cluster. It makes sure that containers are running in a pod.
  • 46. K8s: node components kube-proxy It is like the network brain of the node. It is a network proxy which reflects Kubernetes networking services on each node.
  • 47. K8s: node components Container runtime It’s the software that is responsible for running containers. Kubernetes supports several runtimes: Docker, rkt, runc and any OCI runtime-spec implementation.
  • 49. K8s objects overview Kubernetes contains a number of abstractions that represent the state of your system: deployed containerized applications and workloads, their associated network and disk resources, and other information about what your cluster is doing. These abstractions are represented by objects in the Kubernetes API
  • 50. K8s objects Basic Kubernetes objects: ● Pod ● Service ● Volume ● Namespace
  • 51. K8s objects Basic Kubernetes objects: ● Pod ● Service ● Volume ● Namespace Higher-level abstraction (controllers): ● ReplicaSet ● Deployment ● StatefulSet ● DaemonSet ● Job
  • 53. Pod overview ● Is the basic building block of Kubernetes ● Represents a running process on the cluster ● Consists of either a single container or a small number of containers that are tightly coupled and that share resources
  • 54. Pod phases Pods are mortal The phase of a Pod is a simple, high-level summary of where the Pod is in its lifecycle: ● Pending ● Running ● Succeeded ● Failed ● Unknown
  • 55. Service overview P frontend 10.0.0.12 P frontend 10.0.0.83 P frontend 10.0.0.25 P frontend 10.0.0.39 P backend 10.0.0.41 P backend 10.0.0.44
  • 56. Service overview P frontend 10.0.0.12 P frontend 10.0.0.83 P frontend 10.0.0.25 P frontend 10.0.0.39 P backend 10.0.0.41 P backend 10.0.0.44
  • 57. Service overview P frontend 10.0.0.12 P frontend 10.0.0.83 P frontend 10.0.0.25 P frontend 10.0.0.39 P backend 10.0.0.41 P backend 10.0.0.81
  • 58. Service overview P frontend 10.0.0.12 P frontend 10.0.0.83 P frontend 10.0.0.25 P frontend 10.0.0.39 P backend 10.0.0.41 P backend 10.0.0.44 P DNS: be.myservice 10.0.0.27
  • 59. Deployment overview ● It provides declarative updates for Pods and ReplicaSets. ● You describe a desired state in a Deployment object, and the Deployment controller changes the actual state to the desired state at a controlled rate.
  • 61. Management techniques The kubectl command-line tool supports several different ways to create and manage Kubernetes objects: ● Imperative commands ● Imperative object configuration ● Declarative object configuration
  • 62. Imperative commands The simplest way to get started or to run a one-off task in a cluster. kubectl run nginx --image nginx
  • 63. Imperative commands Pro: ● Commands are simple, easy to learn and easy to remember. ● Commands require only a single step to make changes to the cluster Cons: ● Commands do not integrate with change review processes. ● Commands do not provide an audit trail associated with changes.
  • 64. Imperative object configuration In imperative object configuration, the kubectl command specifies the operation (create, replace, etc.), optional flags and at least one file name. The file specified must contain a full definition of the object in YAML or JSON format. kubectl create -f nginx.yaml
  • 65. Imperative object configuration Pro: ● Object configuration can be stored in a source control system such as Git (vs. imperative commands) ● It’s simpler and easier to understand (vs. declarative object configuration) Cons: ● Object configuration requires basic understanding of the object schema (vs. imparative commands) ● It works best on files, not directories (vs. declarative object configuration) ● Updates to live objects must be reflected in configuration files, or they will be lost during the next replacement (vs. declarative object configuration)
  • 66. Declarative object configuration Using declarative object configuration, a user operates on object configuration files stored locally, however the user does not define the operations to be taken on the files. Create, update, and delete operations are automatically detected per-object by kubectl. kubectl apply -f configs/
  • 67. Declarative object configuration Pro: ● Changes made directly to live objects are retained, even if they are not merged back into the configuration files ● It has better support for operating on directories and automatically detecting operation types per-object Cons: ● Declarative object configuration is harder to debug
  • 68. K8s + Azure = AKS
  • 69. Self-hosting K8s cluster Manually install master and worker nodes Need to consider master HA, adding additional worker nodes, patching, updates, ...
  • 70. Azure Kubernetes Service ● Simplifies deployment, management and operations of K8s ● Makes it quick and easy to deploy and manage containerized applications without container orchestration expertise ● Eliminates the burden of ongoing operations and maintenance by provisioning, upgrading and scaling resources on demand
  • 71. Alessandro Melchiori Software developer @ CodicePlastico alessandro@codiceplastico.com @amelchiori