SlideShare a Scribd company logo
ABOUT US
➤ Rauno De Pasquale, Co-Founder and CTO at Newesis Srl,
constantly trying to reconcile his degree in Philosophy with
a passion for computer science. After almost 18 year at
Deltatre, at the beginning of 2019 he creates Newesis, with
the aim of simplifying the use of the most advanced
services of Cloud platforms even in fields other than sports.
➤ Cristiano Degiorgis, An enthusiastic *lehrling* in the IT
world still feeling like Alice in wonderland after so many
years being around.
➤ Linkedin:
https://www.linkedin.com/in/ra
uno-de-pasquale-b075773
➤ Twitter: @RaunoDepa
➤ Linkedin:
https://www.linkedin.com/in/cr
istianodegiorgis/
➤ StackOverflow:
https://stackoverflow.com/user
s/539684/crixo
AGENDA
➤ Knowing the context and the concepts behind the use of containers is essential to be able to proceed on the road that will lead you
to master the Kubernetes and Cloud Native applications.
➤ This initial session covers basic skills to answer questions such as:
➤ what is a container image?
➤ Why did anyone feel the need for an orchestrator?
➤ Are there alternatives to Docker and Kubernetes?
➤ How does working with containers and Kubernetes connect to traditional virtualization?
➤ This session has the scope of providing the basic skills to be able to orientate in subsequent sessions where the ways of creating and
running applications in the Kubernetes environment will be addressed.
➤ Speaker: Rauno De Pasquale (Newesis) supported by Cristiano DeGiorgis (Deltatre)
➤ Organised by: #DeltatreLab supported by #Newesis
➤ Powered by: #Deltatre
➤ Hashtags: #DeltatreK8S #Containers #Docker #Kubernetes #meetup #webinar
WHAT THIS SESSION IS
NOT
➤ Training on what it is and how to use Docker
➤ Wait for: Monday 25-May 17:30 --> 19:30 - Kubernetes the Deltatre way: Docker in Action
➤ Training on what it is and how to use Kubernetes
➤ Wait for:
➤ Wednesday 3-Jun 17:30 --> 19:30 - Kubernetes the Deltatre way: Kubernetes basics
➤ Monday 8-Jun 17:30 --> 19:30 - Kubernetes the Deltatre way: Kubernetes advanced topics & Kind
➤ Monday 15-Jun 17:30 --> 19:30 - Kubernetes the Deltatre way: Kubernetes CI/CD
➤ Monday 22-Jun 17:30 --> 19:30 - Kubernetes the Deltatre way: Kubernetes extensibility: CRD & Operators
INTRODUCTION TO
CONTAINERS
WHAT IS A CONTAINER?
➤ “A container is a standard unit of software that packages up code and all its dependencies, so the application runs quickly and
reliably from one computing environment to another. “ (Docker web site)
➤ “Containers offer a logical packaging mechanism in which applications can be abstracted from the environment in which they
actually run.” (Google Cloud web site)
➤ “Linux containers are implementations of operating system-level virtualization for the Linux operating system.” “OS-level
virtualization refers to an operating system paradigm in which the kernel allows the existence of multiple isolated user space
instances. Such instances, called containers (Solaris, Docker), Zones (Solaris), virtual private servers (OpenVZ), partitions, virtual
environments (VEs), virtual kernel (DragonFly BSD), or jails (FreeBSD jail or chroot jail),[1] may look like real computers from the
point of view of programs running in them. “ (Wikipedia on Linux Containers and OS-Level virtualisation)
➤ “Isolated area of an OS with resource limits usage applied” (Nigel Poulton, book “Docker Deep Dive”)
A CONTAINER IS A GROUP
OF PROCESSES ...
... RESTRICTED TO A
PRIVATE NAMESPACE
➤ “Namespaces are a feature of the Linux kernel that partitions kernel resources such that one set of processes sees one set of
resources while another set of processes sees a different set of resources. The feature works by having the same namespace for a
set of resources and processes, but those namespaces refer to distinct resources. Resources may exist in multiple spaces. Examples
of such resources are process IDs, hostnames, user IDs, file names, and some names associated with network access, and
interprocess communication. “ (Wikipedia – Linux namespaces)
➤ “cgroups (abbreviated from control groups) is a Linux kernel feature that limits, accounts for, and isolates the resource usage (CPU,
memory, disk I/O, network, etc.) of a collection of processes..” (Wikipedia - Cgroups)
➤ “cgroups, which stands for control groups, are a kernel mechanism for limiting and measuring the total resources used by a group of
processes running on a system. For example, you can apply CPU, memory, network or IO quotas. cgroups were originally developed
by Paul Menage and Rohit Seth of Google, and their first features were merged into Linux 2.6.24.“ (Duncan Macrae - How Linux
Kernel Cgroups And Namespaces Made Modern Containers Possible)
➤ “Namespaces are a kernel mechanism for limiting the visibility that a group of processes has of the rest of a system. For example
you can limit visibility to certain process trees, network interfaces, user IDs or filesystem mounts. namespaces were originally
developed by Eric Biederman, and the final major namespace was merged into Linux 3.8.” (Duncan Macrae - How Linux Kernel
Cgroups And Namespaces Made Modern Containers Possible)
2018
9
CONTAINERS VS VIRTUAL
MACHINES
2018
10
2018
DOES CONTAINER MEAN
DOCKER?
OK CONTAINERS BUT WHY
ORCHESTRATORS?
2018
2018
2018
ORCHESTRATORS
2018
DOES ORCHESTRATOR
MEAN KUBERNETES?
WHY DOCKER AND
KUBERNETES?
DELTATRE STRATEGY
• Docker and Kubernetes have the larger
communities and larger adoption
• Fully supported by all major Cloud providers
• Fully supported for an OnPremises
configuration
• Part of the Open Containers Initiatives
• Part of the Cloud Native Computing Foundation
• Docker supports Kubernetes (now part of the
Enteprise Edition)
• Docker support migration from Swarm to
Kubernetes
• Google Borg as foundation of Kubernetes
2018
18
CLOUD AGNOSTIC
Portable Solutions
➤Reusable components and products must be Cloud Agnostic
➤Container images able to run on Linux OS
➤ NodeJS
➤ .Net Core
➤Docker images and Kubernetes based deployments
➤MongoDB and in general intensive IO applications to be installed into
VMs and not as containers
➤Usage of PaaS only if replaceable with alternatives (e.g. CosmosDB in
Azure is ok if development is done to preserve compatibility with
MongoDB)
2018
2018
Docker
2018
DOCKER BASICS
➤Dockerfile
➤ Source code of an image
➤Image
➤ Immutable package of application and its dependencies
➤ Composed by multiple layers
➤Container
➤ Running instance of an image
➤Registry
➤ Repository of images
➤Docker Daemon
➤ Build images
➤ Run Containers
➤Docker CLI
2018
21
DOCKERFILE
Image build instruction
➤A dockerfile contains the instruction for the docker build process on
how to create a new image
➤Build of an image is done by executing command inside a container
➤A container is the execution of an image
➤Multi-Stage builds should be used to optimise image creation process
and image size
20182018
2018
Kubernetes
➤ Greek for “Helmsman”; also the root of the word “governor”
and “cybernetic”
➤ Orchestrator for containers
➤ Builds on Docker containers
➤ Also supporting other container technologies
➤ Multi-cloud and bare-metal environments
➤ Inspired and informed by Google’s experiences and internal
systems
➤ 100% Open Source, written in Go
➤ Created by three Google employees initially during the
summer of 2014; grew exponentially and became the first
project to get donated to the CNCF
➤ Release 1.0 21st July 2015
KUBERNETES – THE
ORIGIN
8
➤ It all started with Google growing and experiencing problems
on managing the new scale of hardware and software
➤ The Datacentre as a Computer
(https://research.google/pubs/pub35290/)
➤ Abstract completely hardware (software defined datacentre)
➤ Abstract completely from network (software define network)
➤ Declarative application deployment (deploy is documentation)
➤ Self-Healing system based on desired state
➤ Ability to configure rules for automatic scaling
➤ Designed for multi-tenant
➤ Designed for integration (“API first” approach)
KUBERNETES – THE
BASIC CONCEPTS
KUBERNETES VS
VIRTUAL MACHINES
KUBERNETES VS
VIRTUAL MACHINES
KUBERNETES
ARCHITECTURE
KUBERNETES
ARCHITECTURE
➤ Etcd
➤ The etcd project, developed by the team at CoreOS, is a lightweight, distributed key-value
store that can be configured to span across multiple nodes.
➤ Kubernetes uses etcd to store configuration data that can be accessed by each of the nodes in
the cluster.
➤ Kube-apiserver
➤ This is the main management point of the entire cluster as it allows a user to configure
Kubernetes' workloads and organizational units
➤ The API server implements a RESTful interface
➤ Kube-controller-manager
➤ It manages different controllers that regulate the state of the cluster, manage workload life
cycles, and perform routine tasks.
➤ When a change is seen, the controller reads the new information and implements the
procedure that fulfills the desired state.
➤ Kube-scheduler
➤ The process that actually assigns workloads to specific nodes
➤ The scheduler is responsible for tracking available capacity on each host to make sure that
workloads are not scheduled in excess of the available resources.
KUBERNETES
ARCHITECTURE
➤ Container Runtime
➤ Typically Docker
➤ Rkt and runC supported
➤ Kubelet
➤ The kubelet service communicates with the master
components to authenticate to the cluster and
receive commands and work
➤ The kubelet process then assumes responsibility for
maintaining the state of the work on the node
server.
➤ Kube-Proxy
➤ To manage individual host subnetting and make
services available to other components
➤ Cluster - A collection of hosts that aggregate their available
resources including cpu, ram, disk, and their devices into a
usable pool.
➤ Master - The master(s) represent a collection of components
that make up the control plane of Kubernetes. These
components are responsible for all cluster decisions including
both scheduling and responding to cluster events.
➤ Node - A single host, physical or virtual capable of running
pods. A node is managed by the master(s), and at a minimum
runs both kubelet and kube-proxy to be considered part of the
cluster.
➤ Namespace - A logical cluster or environment. Primary method
of dividing a cluster or scoping access.
KUBERNETES – THE
BASIC CONCEPTS
➤ Pod - A pod is the smallest unit of work or management
resource within Kubernetes. It is comprised of one or more
containers that share their storage, network, and context
(namespace, cgroups etc).
➤ Deployment - A declarative method of managing stateless
Pods and ReplicaSets. Provides rollback functionality in
addition to more granular update control mechanisms.
➤ Service - Services provide a method of exposing and
consuming L4 Pod network accessible resources. They use
label selectors to map groups of pods and ports to a cluster-
unique virtual IP.
➤ Volume - Storage that is tied to the Pod Lifecycle, consumable
by one or more containers within the pod.
➤ ConfigMap - Externalized data stored within kubernetes that
can be referenced as a commandline argument, environment
variable, or injected as a file into a volume mount. Ideal for
separating containerized application from configuration.
➤ Secret - Functionally identical to ConfigMaps, but stored
encoded as base64, and encrypted at rest (if configured).
KUBERNETES – THE
BASIC CONCEPTS
2018
32
KUBERNETES – YAML
FILES
2018
2018
and more
2018
34
2018
➤ Part of the Cloud Native Computing Foundation
➤ Designed to simply management of dependencies on Kubernetes
deployments
➤ CHARTS: Helm packages, a few YAML configurations files
➤ Mostly standard Kubernetes YAML format
➤ Templates and Values yaml files used to abstract composition of
Kubernetes YAML files with variables (e.g. by environment)
➤ Requirementes.yaml used to define dependencies
HELM PACKAGE MANAGER
➤ xxxx
HELM CHART
EXAMPLE
2018
36
2018
➤ Traffic Management
➤ Decouples traffic flow and infrastructure scaling, letting you specify
via Pilot what rules you want traffic to follow rather than which
specific pods/VMs
➤ Security
➤ Strong identity, powerful policy, transparent TLS encryption, and
authentication, authorization and audit (AAA) tools
➤ Policy and Telemetry
➤ A flexible model to enforce authorization policies and collect
telemetry for the services in a mesh
➤ Performance and Scalability
➤ Support for Horizontal Pod Autoscaling
ISTIO – SERVICE MESH
Processes, Containers, Virtual Machines -
https://medium.com/@jessgreb01/what-is-the-
difference-between-a-process-a-container-and-a-vm-
f36ba0f8a8f7
Introduction to Kubernetes for Vmware users -
https://blogs.vmware.com/cloudnative/2017/10/25/
kubernetes-introduction-vmware-users/
Introduction to Kubernetes Architecture -
https://phoenixnap.com/kb/understanding-
kubernetes-architecture-diagrams
Docker and Windows -
https://techcommunity.microsoft.com/t5/windows-
dev-appconsult/first-steps-with-docker-
introduction/ba-p/317547
Kubernetes and Windows -
https://techcommunity.microsoft.com/t5/windows-
dev-appconsult/first-steps-with-docker-and-
kubernetes-introduction/ba-p/357525
LINKS
THE END – Q&A ?

More Related Content

What's hot

An Introduction to Kubernetes
An Introduction to KubernetesAn Introduction to Kubernetes
An Introduction to Kubernetes
Imesh Gunaratne
 
Docker Dojo
Docker DojoDocker Dojo
Understand how docker works
Understand how docker worksUnderstand how docker works
Understand how docker works
Justin Li
 
Wso2 con 2014-us-tutorial-apache stratos-wso2 private paas with docker integr...
Wso2 con 2014-us-tutorial-apache stratos-wso2 private paas with docker integr...Wso2 con 2014-us-tutorial-apache stratos-wso2 private paas with docker integr...
Wso2 con 2014-us-tutorial-apache stratos-wso2 private paas with docker integr...
Lakmal Warusawithana
 
Container Orchestration from Theory to Practice
Container Orchestration from Theory to PracticeContainer Orchestration from Theory to Practice
Container Orchestration from Theory to Practice
Docker, Inc.
 
Lisa 2015-gluster fs-introduction
Lisa 2015-gluster fs-introductionLisa 2015-gluster fs-introduction
Lisa 2015-gluster fs-introduction
Gluster.org
 
How Secure Is Your Container? ContainerCon Berlin 2016
How Secure Is Your Container? ContainerCon Berlin 2016How Secure Is Your Container? ContainerCon Berlin 2016
How Secure Is Your Container? ContainerCon Berlin 2016
Phil Estes
 
HDFS for Geographically Distributed File System
HDFS for Geographically Distributed File SystemHDFS for Geographically Distributed File System
HDFS for Geographically Distributed File System
Konstantin V. Shvachko
 
Container orchestration
Container orchestrationContainer orchestration
Container orchestration
Timo Derstappen
 
Glusterfs and openstack
Glusterfs  and openstackGlusterfs  and openstack
Glusterfs and openstack
openstackindia
 
Red Hat Gluster Storage : GlusterFS
Red Hat Gluster Storage : GlusterFSRed Hat Gluster Storage : GlusterFS
Red Hat Gluster Storage : GlusterFS
bipin kunal
 
Container & kubernetes
Container & kubernetesContainer & kubernetes
Container & kubernetes
Ted Jung
 
Docker and kubernetes
Docker and kubernetesDocker and kubernetes
Docker and kubernetes
Meiyappan Kannappa
 
virtualization-vs-containerization-paas
virtualization-vs-containerization-paasvirtualization-vs-containerization-paas
virtualization-vs-containerization-paas
rajdeep
 
Kubernetes Introduction & Whats new in Kubernetes 1.6
Kubernetes Introduction & Whats new in Kubernetes 1.6Kubernetes Introduction & Whats new in Kubernetes 1.6
Kubernetes Introduction & Whats new in Kubernetes 1.6
Opcito Technologies
 
Why Go Lang?
Why Go Lang?Why Go Lang?
Why Go Lang?
Sathish VJ
 
Docker n co
Docker n coDocker n co
Docker n co
Rohit Jnagal
 
DockerCon 18 docker storage
DockerCon 18 docker storageDockerCon 18 docker storage
DockerCon 18 docker storage
Daniel Finneran
 
Disperse xlator ramon_datalab
Disperse xlator ramon_datalabDisperse xlator ramon_datalab
Disperse xlator ramon_datalab
Gluster.org
 
Docker.io
Docker.ioDocker.io

What's hot (20)

An Introduction to Kubernetes
An Introduction to KubernetesAn Introduction to Kubernetes
An Introduction to Kubernetes
 
Docker Dojo
Docker DojoDocker Dojo
Docker Dojo
 
Understand how docker works
Understand how docker worksUnderstand how docker works
Understand how docker works
 
Wso2 con 2014-us-tutorial-apache stratos-wso2 private paas with docker integr...
Wso2 con 2014-us-tutorial-apache stratos-wso2 private paas with docker integr...Wso2 con 2014-us-tutorial-apache stratos-wso2 private paas with docker integr...
Wso2 con 2014-us-tutorial-apache stratos-wso2 private paas with docker integr...
 
Container Orchestration from Theory to Practice
Container Orchestration from Theory to PracticeContainer Orchestration from Theory to Practice
Container Orchestration from Theory to Practice
 
Lisa 2015-gluster fs-introduction
Lisa 2015-gluster fs-introductionLisa 2015-gluster fs-introduction
Lisa 2015-gluster fs-introduction
 
How Secure Is Your Container? ContainerCon Berlin 2016
How Secure Is Your Container? ContainerCon Berlin 2016How Secure Is Your Container? ContainerCon Berlin 2016
How Secure Is Your Container? ContainerCon Berlin 2016
 
HDFS for Geographically Distributed File System
HDFS for Geographically Distributed File SystemHDFS for Geographically Distributed File System
HDFS for Geographically Distributed File System
 
Container orchestration
Container orchestrationContainer orchestration
Container orchestration
 
Glusterfs and openstack
Glusterfs  and openstackGlusterfs  and openstack
Glusterfs and openstack
 
Red Hat Gluster Storage : GlusterFS
Red Hat Gluster Storage : GlusterFSRed Hat Gluster Storage : GlusterFS
Red Hat Gluster Storage : GlusterFS
 
Container & kubernetes
Container & kubernetesContainer & kubernetes
Container & kubernetes
 
Docker and kubernetes
Docker and kubernetesDocker and kubernetes
Docker and kubernetes
 
virtualization-vs-containerization-paas
virtualization-vs-containerization-paasvirtualization-vs-containerization-paas
virtualization-vs-containerization-paas
 
Kubernetes Introduction & Whats new in Kubernetes 1.6
Kubernetes Introduction & Whats new in Kubernetes 1.6Kubernetes Introduction & Whats new in Kubernetes 1.6
Kubernetes Introduction & Whats new in Kubernetes 1.6
 
Why Go Lang?
Why Go Lang?Why Go Lang?
Why Go Lang?
 
Docker n co
Docker n coDocker n co
Docker n co
 
DockerCon 18 docker storage
DockerCon 18 docker storageDockerCon 18 docker storage
DockerCon 18 docker storage
 
Disperse xlator ramon_datalab
Disperse xlator ramon_datalabDisperse xlator ramon_datalab
Disperse xlator ramon_datalab
 
Docker.io
Docker.ioDocker.io
Docker.io
 

Similar to Kubernetes the deltatre way the basics - introduction to containers and orchestrators

Containers in depth – Understanding how containers work to better work with c...
Containers in depth – Understanding how containers work to better work with c...Containers in depth – Understanding how containers work to better work with c...
Containers in depth – Understanding how containers work to better work with c...
All Things Open
 
Containers in depth – Understanding how containers work to better work with c...
Containers in depth – Understanding how containers work to better work with c...Containers in depth – Understanding how containers work to better work with c...
Containers in depth – Understanding how containers work to better work with c...
All Things Open
 
Containers in depth – understanding how containers work to better work with c...
Containers in depth – understanding how containers work to better work with c...Containers in depth – understanding how containers work to better work with c...
Containers in depth – understanding how containers work to better work with c...
All Things Open
 
All Things Containers - Docker, Kubernetes, Helm, Istio, GitOps and more
All Things Containers - Docker, Kubernetes, Helm, Istio, GitOps and moreAll Things Containers - Docker, Kubernetes, Helm, Istio, GitOps and more
All Things Containers - Docker, Kubernetes, Helm, Istio, GitOps and more
All Things Open
 
20220406 - SDAN_Presentation1_SDANOverview.pdf
20220406 - SDAN_Presentation1_SDANOverview.pdf20220406 - SDAN_Presentation1_SDANOverview.pdf
20220406 - SDAN_Presentation1_SDANOverview.pdf
ssuser34f58c1
 
Introduction to containers, k8s, Microservices & Cloud Native
Introduction to containers, k8s, Microservices & Cloud NativeIntroduction to containers, k8s, Microservices & Cloud Native
Introduction to containers, k8s, Microservices & Cloud Native
Terry Wang
 
Docker Application to Scientific Computing
Docker Application to Scientific ComputingDocker Application to Scientific Computing
Docker Application to Scientific Computing
Peter Bryzgalov
 
Introduction to Containers: From Docker to Kubernetes and everything in-between
Introduction to Containers:  From Docker to Kubernetes and everything in-betweenIntroduction to Containers:  From Docker to Kubernetes and everything in-between
Introduction to Containers: From Docker to Kubernetes and everything in-between
All Things Open
 
Dev opsec dockerimage_patch_n_lifecyclemanagement_
Dev opsec dockerimage_patch_n_lifecyclemanagement_Dev opsec dockerimage_patch_n_lifecyclemanagement_
Dev opsec dockerimage_patch_n_lifecyclemanagement_
kanedafromparis
 
Federated Kubernetes: As a Platform for Distributed Scientific Computing
Federated Kubernetes: As a Platform for Distributed Scientific ComputingFederated Kubernetes: As a Platform for Distributed Scientific Computing
Federated Kubernetes: As a Platform for Distributed Scientific Computing
Bob Killen
 
Kubernetes - how to orchestrate containers
Kubernetes - how to orchestrate containersKubernetes - how to orchestrate containers
Kubernetes - how to orchestrate containers
inovex GmbH
 
Kubernetes: https://youtu.be/KnjnQj-FvfQ
Kubernetes: https://youtu.be/KnjnQj-FvfQKubernetes: https://youtu.be/KnjnQj-FvfQ
Kubernetes: https://youtu.be/KnjnQj-FvfQ
Rahul Malhotra
 
Webinar: OpenEBS - Still Free and now FASTEST Kubernetes storage
Webinar: OpenEBS - Still Free and now FASTEST Kubernetes storageWebinar: OpenEBS - Still Free and now FASTEST Kubernetes storage
Webinar: OpenEBS - Still Free and now FASTEST Kubernetes storage
MayaData Inc
 
The world of Docker and Kubernetes
The world of Docker and Kubernetes The world of Docker and Kubernetes
The world of Docker and Kubernetes
vty
 
Oscon 2017: Build your own container-based system with the Moby project
Oscon 2017: Build your own container-based system with the Moby projectOscon 2017: Build your own container-based system with the Moby project
Oscon 2017: Build your own container-based system with the Moby project
Patrick Chanezon
 
Evolution of Linux Containerization
Evolution of Linux Containerization Evolution of Linux Containerization
Evolution of Linux Containerization
WSO2
 
Evoluation of Linux Container Virtualization
Evoluation of Linux Container VirtualizationEvoluation of Linux Container Virtualization
Evoluation of Linux Container Virtualization
Imesh Gunaratne
 
Kubernetes and Hybrid Deployments
Kubernetes and Hybrid DeploymentsKubernetes and Hybrid Deployments
Kubernetes and Hybrid Deployments
Sandeep Parikh
 
Kubernetes intro
Kubernetes introKubernetes intro
Kubernetes intro
Pravin Magdum
 
Microservices, Containers and Docker
Microservices, Containers and DockerMicroservices, Containers and Docker
Microservices, Containers and Docker
Ioannis Papapanagiotou
 

Similar to Kubernetes the deltatre way the basics - introduction to containers and orchestrators (20)

Containers in depth – Understanding how containers work to better work with c...
Containers in depth – Understanding how containers work to better work with c...Containers in depth – Understanding how containers work to better work with c...
Containers in depth – Understanding how containers work to better work with c...
 
Containers in depth – Understanding how containers work to better work with c...
Containers in depth – Understanding how containers work to better work with c...Containers in depth – Understanding how containers work to better work with c...
Containers in depth – Understanding how containers work to better work with c...
 
Containers in depth – understanding how containers work to better work with c...
Containers in depth – understanding how containers work to better work with c...Containers in depth – understanding how containers work to better work with c...
Containers in depth – understanding how containers work to better work with c...
 
All Things Containers - Docker, Kubernetes, Helm, Istio, GitOps and more
All Things Containers - Docker, Kubernetes, Helm, Istio, GitOps and moreAll Things Containers - Docker, Kubernetes, Helm, Istio, GitOps and more
All Things Containers - Docker, Kubernetes, Helm, Istio, GitOps and more
 
20220406 - SDAN_Presentation1_SDANOverview.pdf
20220406 - SDAN_Presentation1_SDANOverview.pdf20220406 - SDAN_Presentation1_SDANOverview.pdf
20220406 - SDAN_Presentation1_SDANOverview.pdf
 
Introduction to containers, k8s, Microservices & Cloud Native
Introduction to containers, k8s, Microservices & Cloud NativeIntroduction to containers, k8s, Microservices & Cloud Native
Introduction to containers, k8s, Microservices & Cloud Native
 
Docker Application to Scientific Computing
Docker Application to Scientific ComputingDocker Application to Scientific Computing
Docker Application to Scientific Computing
 
Introduction to Containers: From Docker to Kubernetes and everything in-between
Introduction to Containers:  From Docker to Kubernetes and everything in-betweenIntroduction to Containers:  From Docker to Kubernetes and everything in-between
Introduction to Containers: From Docker to Kubernetes and everything in-between
 
Dev opsec dockerimage_patch_n_lifecyclemanagement_
Dev opsec dockerimage_patch_n_lifecyclemanagement_Dev opsec dockerimage_patch_n_lifecyclemanagement_
Dev opsec dockerimage_patch_n_lifecyclemanagement_
 
Federated Kubernetes: As a Platform for Distributed Scientific Computing
Federated Kubernetes: As a Platform for Distributed Scientific ComputingFederated Kubernetes: As a Platform for Distributed Scientific Computing
Federated Kubernetes: As a Platform for Distributed Scientific Computing
 
Kubernetes - how to orchestrate containers
Kubernetes - how to orchestrate containersKubernetes - how to orchestrate containers
Kubernetes - how to orchestrate containers
 
Kubernetes: https://youtu.be/KnjnQj-FvfQ
Kubernetes: https://youtu.be/KnjnQj-FvfQKubernetes: https://youtu.be/KnjnQj-FvfQ
Kubernetes: https://youtu.be/KnjnQj-FvfQ
 
Webinar: OpenEBS - Still Free and now FASTEST Kubernetes storage
Webinar: OpenEBS - Still Free and now FASTEST Kubernetes storageWebinar: OpenEBS - Still Free and now FASTEST Kubernetes storage
Webinar: OpenEBS - Still Free and now FASTEST Kubernetes storage
 
The world of Docker and Kubernetes
The world of Docker and Kubernetes The world of Docker and Kubernetes
The world of Docker and Kubernetes
 
Oscon 2017: Build your own container-based system with the Moby project
Oscon 2017: Build your own container-based system with the Moby projectOscon 2017: Build your own container-based system with the Moby project
Oscon 2017: Build your own container-based system with the Moby project
 
Evolution of Linux Containerization
Evolution of Linux Containerization Evolution of Linux Containerization
Evolution of Linux Containerization
 
Evoluation of Linux Container Virtualization
Evoluation of Linux Container VirtualizationEvoluation of Linux Container Virtualization
Evoluation of Linux Container Virtualization
 
Kubernetes and Hybrid Deployments
Kubernetes and Hybrid DeploymentsKubernetes and Hybrid Deployments
Kubernetes and Hybrid Deployments
 
Kubernetes intro
Kubernetes introKubernetes intro
Kubernetes intro
 
Microservices, Containers and Docker
Microservices, Containers and DockerMicroservices, Containers and Docker
Microservices, Containers and Docker
 

More from Rauno De Pasquale

06 azure well architected framework
06 azure well architected framework06 azure well architected framework
06 azure well architected framework
Rauno De Pasquale
 
05 azure well architected framework
05 azure well architected framework05 azure well architected framework
05 azure well architected framework
Rauno De Pasquale
 
04 azure well architected framework
04 azure well architected framework04 azure well architected framework
04 azure well architected framework
Rauno De Pasquale
 
03 azure well architected framework
03 azure well architected framework03 azure well architected framework
03 azure well architected framework
Rauno De Pasquale
 
02 azure well architected framework
02 azure well architected framework02 azure well architected framework
02 azure well architected framework
Rauno De Pasquale
 
01 azure well architected framework
01 azure well architected framework01 azure well architected framework
01 azure well architected framework
Rauno De Pasquale
 
DevOps Torino Meetup - DevOps Engineer, a role that does not exist but is muc...
DevOps Torino Meetup - DevOps Engineer, a role that does not exist but is muc...DevOps Torino Meetup - DevOps Engineer, a role that does not exist but is muc...
DevOps Torino Meetup - DevOps Engineer, a role that does not exist but is muc...
Rauno De Pasquale
 
DevOps Torino Meetup - SRE Concepts
DevOps Torino Meetup - SRE ConceptsDevOps Torino Meetup - SRE Concepts
DevOps Torino Meetup - SRE Concepts
Rauno De Pasquale
 
DevOps Torino Meetup Group Kickoff Meeting - Why a meetup group on DevOps, wh...
DevOps Torino Meetup Group Kickoff Meeting - Why a meetup group on DevOps, wh...DevOps Torino Meetup Group Kickoff Meeting - Why a meetup group on DevOps, wh...
DevOps Torino Meetup Group Kickoff Meeting - Why a meetup group on DevOps, wh...
Rauno De Pasquale
 
Newesis azure devops-presentation
Newesis azure devops-presentationNewesis azure devops-presentation
Newesis azure devops-presentation
Rauno De Pasquale
 
Newesis - Introduction to Containers
Newesis -  Introduction to ContainersNewesis -  Introduction to Containers
Newesis - Introduction to Containers
Rauno De Pasquale
 
Newesis - Introduction to the Cloud
Newesis -  Introduction to the CloudNewesis -  Introduction to the Cloud
Newesis - Introduction to the Cloud
Rauno De Pasquale
 

More from Rauno De Pasquale (12)

06 azure well architected framework
06 azure well architected framework06 azure well architected framework
06 azure well architected framework
 
05 azure well architected framework
05 azure well architected framework05 azure well architected framework
05 azure well architected framework
 
04 azure well architected framework
04 azure well architected framework04 azure well architected framework
04 azure well architected framework
 
03 azure well architected framework
03 azure well architected framework03 azure well architected framework
03 azure well architected framework
 
02 azure well architected framework
02 azure well architected framework02 azure well architected framework
02 azure well architected framework
 
01 azure well architected framework
01 azure well architected framework01 azure well architected framework
01 azure well architected framework
 
DevOps Torino Meetup - DevOps Engineer, a role that does not exist but is muc...
DevOps Torino Meetup - DevOps Engineer, a role that does not exist but is muc...DevOps Torino Meetup - DevOps Engineer, a role that does not exist but is muc...
DevOps Torino Meetup - DevOps Engineer, a role that does not exist but is muc...
 
DevOps Torino Meetup - SRE Concepts
DevOps Torino Meetup - SRE ConceptsDevOps Torino Meetup - SRE Concepts
DevOps Torino Meetup - SRE Concepts
 
DevOps Torino Meetup Group Kickoff Meeting - Why a meetup group on DevOps, wh...
DevOps Torino Meetup Group Kickoff Meeting - Why a meetup group on DevOps, wh...DevOps Torino Meetup Group Kickoff Meeting - Why a meetup group on DevOps, wh...
DevOps Torino Meetup Group Kickoff Meeting - Why a meetup group on DevOps, wh...
 
Newesis azure devops-presentation
Newesis azure devops-presentationNewesis azure devops-presentation
Newesis azure devops-presentation
 
Newesis - Introduction to Containers
Newesis -  Introduction to ContainersNewesis -  Introduction to Containers
Newesis - Introduction to Containers
 
Newesis - Introduction to the Cloud
Newesis -  Introduction to the CloudNewesis -  Introduction to the Cloud
Newesis - Introduction to the Cloud
 

Recently uploaded

Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
Grant Fritchey
 
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
gapen1
 
Quarter 3 SLRP grade 9.. gshajsbhhaheabh
Quarter 3 SLRP grade 9.. gshajsbhhaheabhQuarter 3 SLRP grade 9.. gshajsbhhaheabh
Quarter 3 SLRP grade 9.. gshajsbhhaheabh
aisafed42
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
Green Software Development
 
How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?
ToXSL Technologies
 
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
The Third Creative Media
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
Remote DBA Services
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Julian Hyde
 
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
Bert Jan Schrijver
 
Oracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptxOracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptx
Remote DBA Services
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
ICS
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
Peter Muessig
 
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdfTop Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
VALiNTRY360
 
All you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVMAll you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVM
Alina Yurenko
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
Green Software Development
 
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemUI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
Peter Muessig
 
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
dakas1
 
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom KittEnhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
Peter Caitens
 
一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
dakas1
 
Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !
Marcin Chrost
 

Recently uploaded (20)

Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
 
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
 
Quarter 3 SLRP grade 9.. gshajsbhhaheabh
Quarter 3 SLRP grade 9.. gshajsbhhaheabhQuarter 3 SLRP grade 9.. gshajsbhhaheabh
Quarter 3 SLRP grade 9.. gshajsbhhaheabh
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
 
How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?
 
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
 
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
 
Oracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptxOracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptx
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
 
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdfTop Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
 
All you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVMAll you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVM
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
 
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemUI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
 
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
 
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom KittEnhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
 
一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
 
Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !
 

Kubernetes the deltatre way the basics - introduction to containers and orchestrators

  • 1.
  • 2. ABOUT US ➤ Rauno De Pasquale, Co-Founder and CTO at Newesis Srl, constantly trying to reconcile his degree in Philosophy with a passion for computer science. After almost 18 year at Deltatre, at the beginning of 2019 he creates Newesis, with the aim of simplifying the use of the most advanced services of Cloud platforms even in fields other than sports. ➤ Cristiano Degiorgis, An enthusiastic *lehrling* in the IT world still feeling like Alice in wonderland after so many years being around. ➤ Linkedin: https://www.linkedin.com/in/ra uno-de-pasquale-b075773 ➤ Twitter: @RaunoDepa ➤ Linkedin: https://www.linkedin.com/in/cr istianodegiorgis/ ➤ StackOverflow: https://stackoverflow.com/user s/539684/crixo
  • 3. AGENDA ➤ Knowing the context and the concepts behind the use of containers is essential to be able to proceed on the road that will lead you to master the Kubernetes and Cloud Native applications. ➤ This initial session covers basic skills to answer questions such as: ➤ what is a container image? ➤ Why did anyone feel the need for an orchestrator? ➤ Are there alternatives to Docker and Kubernetes? ➤ How does working with containers and Kubernetes connect to traditional virtualization? ➤ This session has the scope of providing the basic skills to be able to orientate in subsequent sessions where the ways of creating and running applications in the Kubernetes environment will be addressed. ➤ Speaker: Rauno De Pasquale (Newesis) supported by Cristiano DeGiorgis (Deltatre) ➤ Organised by: #DeltatreLab supported by #Newesis ➤ Powered by: #Deltatre ➤ Hashtags: #DeltatreK8S #Containers #Docker #Kubernetes #meetup #webinar
  • 4. WHAT THIS SESSION IS NOT ➤ Training on what it is and how to use Docker ➤ Wait for: Monday 25-May 17:30 --> 19:30 - Kubernetes the Deltatre way: Docker in Action ➤ Training on what it is and how to use Kubernetes ➤ Wait for: ➤ Wednesday 3-Jun 17:30 --> 19:30 - Kubernetes the Deltatre way: Kubernetes basics ➤ Monday 8-Jun 17:30 --> 19:30 - Kubernetes the Deltatre way: Kubernetes advanced topics & Kind ➤ Monday 15-Jun 17:30 --> 19:30 - Kubernetes the Deltatre way: Kubernetes CI/CD ➤ Monday 22-Jun 17:30 --> 19:30 - Kubernetes the Deltatre way: Kubernetes extensibility: CRD & Operators
  • 6. WHAT IS A CONTAINER? ➤ “A container is a standard unit of software that packages up code and all its dependencies, so the application runs quickly and reliably from one computing environment to another. “ (Docker web site) ➤ “Containers offer a logical packaging mechanism in which applications can be abstracted from the environment in which they actually run.” (Google Cloud web site) ➤ “Linux containers are implementations of operating system-level virtualization for the Linux operating system.” “OS-level virtualization refers to an operating system paradigm in which the kernel allows the existence of multiple isolated user space instances. Such instances, called containers (Solaris, Docker), Zones (Solaris), virtual private servers (OpenVZ), partitions, virtual environments (VEs), virtual kernel (DragonFly BSD), or jails (FreeBSD jail or chroot jail),[1] may look like real computers from the point of view of programs running in them. “ (Wikipedia on Linux Containers and OS-Level virtualisation) ➤ “Isolated area of an OS with resource limits usage applied” (Nigel Poulton, book “Docker Deep Dive”)
  • 7. A CONTAINER IS A GROUP OF PROCESSES ...
  • 8. ... RESTRICTED TO A PRIVATE NAMESPACE ➤ “Namespaces are a feature of the Linux kernel that partitions kernel resources such that one set of processes sees one set of resources while another set of processes sees a different set of resources. The feature works by having the same namespace for a set of resources and processes, but those namespaces refer to distinct resources. Resources may exist in multiple spaces. Examples of such resources are process IDs, hostnames, user IDs, file names, and some names associated with network access, and interprocess communication. “ (Wikipedia – Linux namespaces) ➤ “cgroups (abbreviated from control groups) is a Linux kernel feature that limits, accounts for, and isolates the resource usage (CPU, memory, disk I/O, network, etc.) of a collection of processes..” (Wikipedia - Cgroups) ➤ “cgroups, which stands for control groups, are a kernel mechanism for limiting and measuring the total resources used by a group of processes running on a system. For example, you can apply CPU, memory, network or IO quotas. cgroups were originally developed by Paul Menage and Rohit Seth of Google, and their first features were merged into Linux 2.6.24.“ (Duncan Macrae - How Linux Kernel Cgroups And Namespaces Made Modern Containers Possible) ➤ “Namespaces are a kernel mechanism for limiting the visibility that a group of processes has of the rest of a system. For example you can limit visibility to certain process trees, network interfaces, user IDs or filesystem mounts. namespaces were originally developed by Eric Biederman, and the final major namespace was merged into Linux 3.8.” (Duncan Macrae - How Linux Kernel Cgroups And Namespaces Made Modern Containers Possible)
  • 11. OK CONTAINERS BUT WHY ORCHESTRATORS?
  • 12. 2018
  • 13. 2018
  • 17. DELTATRE STRATEGY • Docker and Kubernetes have the larger communities and larger adoption • Fully supported by all major Cloud providers • Fully supported for an OnPremises configuration • Part of the Open Containers Initiatives • Part of the Cloud Native Computing Foundation • Docker supports Kubernetes (now part of the Enteprise Edition) • Docker support migration from Swarm to Kubernetes • Google Borg as foundation of Kubernetes
  • 18. 2018 18 CLOUD AGNOSTIC Portable Solutions ➤Reusable components and products must be Cloud Agnostic ➤Container images able to run on Linux OS ➤ NodeJS ➤ .Net Core ➤Docker images and Kubernetes based deployments ➤MongoDB and in general intensive IO applications to be installed into VMs and not as containers ➤Usage of PaaS only if replaceable with alternatives (e.g. CosmosDB in Azure is ok if development is done to preserve compatibility with MongoDB) 2018
  • 20. 2018 DOCKER BASICS ➤Dockerfile ➤ Source code of an image ➤Image ➤ Immutable package of application and its dependencies ➤ Composed by multiple layers ➤Container ➤ Running instance of an image ➤Registry ➤ Repository of images ➤Docker Daemon ➤ Build images ➤ Run Containers ➤Docker CLI
  • 21. 2018 21 DOCKERFILE Image build instruction ➤A dockerfile contains the instruction for the docker build process on how to create a new image ➤Build of an image is done by executing command inside a container ➤A container is the execution of an image ➤Multi-Stage builds should be used to optimise image creation process and image size 20182018
  • 23. ➤ Greek for “Helmsman”; also the root of the word “governor” and “cybernetic” ➤ Orchestrator for containers ➤ Builds on Docker containers ➤ Also supporting other container technologies ➤ Multi-cloud and bare-metal environments ➤ Inspired and informed by Google’s experiences and internal systems ➤ 100% Open Source, written in Go ➤ Created by three Google employees initially during the summer of 2014; grew exponentially and became the first project to get donated to the CNCF ➤ Release 1.0 21st July 2015 KUBERNETES – THE ORIGIN 8
  • 24. ➤ It all started with Google growing and experiencing problems on managing the new scale of hardware and software ➤ The Datacentre as a Computer (https://research.google/pubs/pub35290/) ➤ Abstract completely hardware (software defined datacentre) ➤ Abstract completely from network (software define network) ➤ Declarative application deployment (deploy is documentation) ➤ Self-Healing system based on desired state ➤ Ability to configure rules for automatic scaling ➤ Designed for multi-tenant ➤ Designed for integration (“API first” approach) KUBERNETES – THE BASIC CONCEPTS
  • 28. KUBERNETES ARCHITECTURE ➤ Etcd ➤ The etcd project, developed by the team at CoreOS, is a lightweight, distributed key-value store that can be configured to span across multiple nodes. ➤ Kubernetes uses etcd to store configuration data that can be accessed by each of the nodes in the cluster. ➤ Kube-apiserver ➤ This is the main management point of the entire cluster as it allows a user to configure Kubernetes' workloads and organizational units ➤ The API server implements a RESTful interface ➤ Kube-controller-manager ➤ It manages different controllers that regulate the state of the cluster, manage workload life cycles, and perform routine tasks. ➤ When a change is seen, the controller reads the new information and implements the procedure that fulfills the desired state. ➤ Kube-scheduler ➤ The process that actually assigns workloads to specific nodes ➤ The scheduler is responsible for tracking available capacity on each host to make sure that workloads are not scheduled in excess of the available resources.
  • 29. KUBERNETES ARCHITECTURE ➤ Container Runtime ➤ Typically Docker ➤ Rkt and runC supported ➤ Kubelet ➤ The kubelet service communicates with the master components to authenticate to the cluster and receive commands and work ➤ The kubelet process then assumes responsibility for maintaining the state of the work on the node server. ➤ Kube-Proxy ➤ To manage individual host subnetting and make services available to other components
  • 30. ➤ Cluster - A collection of hosts that aggregate their available resources including cpu, ram, disk, and their devices into a usable pool. ➤ Master - The master(s) represent a collection of components that make up the control plane of Kubernetes. These components are responsible for all cluster decisions including both scheduling and responding to cluster events. ➤ Node - A single host, physical or virtual capable of running pods. A node is managed by the master(s), and at a minimum runs both kubelet and kube-proxy to be considered part of the cluster. ➤ Namespace - A logical cluster or environment. Primary method of dividing a cluster or scoping access. KUBERNETES – THE BASIC CONCEPTS
  • 31. ➤ Pod - A pod is the smallest unit of work or management resource within Kubernetes. It is comprised of one or more containers that share their storage, network, and context (namespace, cgroups etc). ➤ Deployment - A declarative method of managing stateless Pods and ReplicaSets. Provides rollback functionality in addition to more granular update control mechanisms. ➤ Service - Services provide a method of exposing and consuming L4 Pod network accessible resources. They use label selectors to map groups of pods and ports to a cluster- unique virtual IP. ➤ Volume - Storage that is tied to the Pod Lifecycle, consumable by one or more containers within the pod. ➤ ConfigMap - Externalized data stored within kubernetes that can be referenced as a commandline argument, environment variable, or injected as a file into a volume mount. Ideal for separating containerized application from configuration. ➤ Secret - Functionally identical to ConfigMaps, but stored encoded as base64, and encrypted at rest (if configured). KUBERNETES – THE BASIC CONCEPTS
  • 34. 2018 34 2018 ➤ Part of the Cloud Native Computing Foundation ➤ Designed to simply management of dependencies on Kubernetes deployments ➤ CHARTS: Helm packages, a few YAML configurations files ➤ Mostly standard Kubernetes YAML format ➤ Templates and Values yaml files used to abstract composition of Kubernetes YAML files with variables (e.g. by environment) ➤ Requirementes.yaml used to define dependencies HELM PACKAGE MANAGER
  • 36. 2018 36 2018 ➤ Traffic Management ➤ Decouples traffic flow and infrastructure scaling, letting you specify via Pilot what rules you want traffic to follow rather than which specific pods/VMs ➤ Security ➤ Strong identity, powerful policy, transparent TLS encryption, and authentication, authorization and audit (AAA) tools ➤ Policy and Telemetry ➤ A flexible model to enforce authorization policies and collect telemetry for the services in a mesh ➤ Performance and Scalability ➤ Support for Horizontal Pod Autoscaling ISTIO – SERVICE MESH
  • 37. Processes, Containers, Virtual Machines - https://medium.com/@jessgreb01/what-is-the- difference-between-a-process-a-container-and-a-vm- f36ba0f8a8f7 Introduction to Kubernetes for Vmware users - https://blogs.vmware.com/cloudnative/2017/10/25/ kubernetes-introduction-vmware-users/ Introduction to Kubernetes Architecture - https://phoenixnap.com/kb/understanding- kubernetes-architecture-diagrams Docker and Windows - https://techcommunity.microsoft.com/t5/windows- dev-appconsult/first-steps-with-docker- introduction/ba-p/317547 Kubernetes and Windows - https://techcommunity.microsoft.com/t5/windows- dev-appconsult/first-steps-with-docker-and- kubernetes-introduction/ba-p/357525 LINKS
  • 38. THE END – Q&A ?

Editor's Notes

  1. Virtual machines (VMs) are an abstraction of physical hardware turning one server into many servers. The hypervisor allows multiple VMs to run on a single machine. Each VM includes a full copy of an operating system, the application, necessary binaries and libraries - taking up tens of GBs. VMs can also be slow to boot. Containers are an abstraction at the app layer that packages code and dependencies together. Multiple containers can run on the same machine and share the OS kernel with other containers, each running as isolated processes in user space. Containers take up less space than VMs (container images are typically tens of MBs in size), can handle more applications and require fewer VMs and Operating systems.
  2. Docker is the most famous and by large the most adopted container technology, but it is not the only one existing. Containers are based on capabilities of the OS kernel, as Kernel Namespaces, Cgroups and Chroot. Containers management software as Docker provide a control plane, APIs and CLI to more easily manage, in the form of pre-defined packages, the build and execution of images and containers. Docker is an App Container as RKT and runC; while Lxc (and the Ubuntu version named Lxd), Linux-Vserver and OpenVZ are containers Full-System (meaning a different version of the kernel can be executed inside the container). For Microsoft Windows the alternatives are Hyper-V Containers (a container Full-System) or Docker. runC is not really a different container manager, it is the runtime environment developed initially by Docker and released to the Open Container Initiative (see: https://www.opencontainers.org/about/members ) Each container software defines its own format for the image package, even if Rkt is able to run also Docker images.
  3. You can start packaging your applications into containers and run them using Docker. It makes a clean definition and distribution but…
  4. … but if the number of containers and nodes start growing you can no longer manually manage them or just script docker run command, you need an orchestrator.
  5. Running a container on a single local machine is easy, but on a production environment you will find yourself to run hundreds of containers into hundreds of different servers, you will need to be able to replace a container that was running on a server that failed, or to manage the networking between containers, or to scale them horizontally, or to manage updates, etc… this is why Orchestrators came into play.
  6. Kubernetes is considered as the standard in terms of containers orchestrators but it is not the only options. Docker Swarm, Nomad and Mesos are still possible alternatives.
  7. If containers mean more than just Docker and if orchestrators mean more than just Kubernetes why is this set of sessions named on Kubernetes only?
  8. .Net Core and NodeJS are the main frameworks used today by Deltatre to develop applications and they have a perfect fit with containerisation
  9. Please remind that the image is an application image, so in order to run it has to be compatible with the OS Kernel of the host.
  10. Multi-stage builds are a new feature requiring Docker 17.05 or higher on the daemon and client. Multistage builds are useful to anyone who has struggled to optimize Dockerfiles while keeping them easy to read and maintain. One of the most challenging things about building images is keeping the image size down. Each instruction in the Dockerfile adds a layer to the image, and you need to remember to clean up any artifacts you don’t need before moving on to the next layer. With multi-stage builds, you use multiple FROM statements in your Dockerfile. Each FROM instruction can use a different base, and each of them begins a new stage of the build. You can selectively copy artifacts from one stage to another, leaving behind everything you don’t want in the final image. y default, the stages are not named, and you refer to them by their integer number, starting with 0 for the first FROM instruction. However, you can name your stages, by adding an as <NAME> to the FROM instruction.
  11. Image taken from Vmware blog: https://blogs.vmware.com/cloudnative/2017/10/25/kubernetes-introduction-vmware-users/
  12. Image taken from Vmware blog: https://blogs.vmware.com/cloudnative/2017/10/25/kubernetes-introduction-vmware-users/
  13. Image taken from office Kubernete documentations: https://kubernetes.io/docs/concepts/overview/components/
  14. Addionally the “Cloud-Controller-Manager” is used in Cloud deployments. Cloud controller managers act as the glue that allows Kubernetes to interact providers with different capabilities, features, and APIs while maintaining relatively generic constructs internally. This allows Kubernetes to update its state information according to information gathered from the cloud provider, adjust cloud resources as changes are needed in the system, and create and use additional cloud services to satisfy the work requirements submitted to the cluster.
  15. Image taken from office Kubernete documentations: https://kubernetes.io/docs/concepts/overview/components/
  16. Configurations are expressed via Yaml files
  17. Around Kubernetes a large ecosystem or additional solutions have been build, we are here reporting only two of them as examples
  18. Helm can: Install software; Automatically install software dependencies; Upgrade software; Configure software deployments; Fetch software packages from repositories. Helm provides this functionality through the following components: A command line tool, helm, which provides the user interface to all Helm functionality. Before version 3.0, a companion server component, tiller, that runs on your Kubernetes cluster, listens for commands from helm, and handles the configuration and deployment of software releases on the cluster The Helm packaging format, called charts. During the installation of a chart, Helm combines the chart's templates with the configuration specified by the user and the defaults in value.yaml. These are rendered into Kubernetes manifests that are then deployed via the Kubernetes API. This creates a release, a specific configuration and deployment of a particular chart. This concept of releases is important, because you may want to deploy the same application more than once on a cluster. For instance, you may need multiple RabbitMQ servers with different configurations. You also will probably want to upgrade different instances of a chart individually. Perhaps one application is ready for an updated RabbitMQ server but another is not. With Helm, you upgrade each release individually.