SlideShare une entreprise Scribd logo
1  sur  74
Télécharger pour lire hors ligne
Paas with Docker and K8s
Massimiliano Dessì @desmax74
ROME 18-19 MARCH 2016
2
Speaker
Massimiliano Dessì has more than 15 years of
experience in programming.
Manager of GDG Sardegna, Founder of
SpringFramework IT,
co-founder of Jug Sardegna.
Author of Spring 2.5 AOP.
He works in the CloudComputing and DevOps
area.
3
A lot of hype around Docker
FROM ubuntu:latest
WORKDIR /app
ADD src/github.com/<mycompany>/service1 /app/service1
EXPOSE 8080
ENTRYPOINT ["/app/service1"]
4
Layered and immutable images
Copy on write model
each container has its own file system and
ports
...
5
But the Rock & roll is when the system grows
6
the rationale behind docker
http://martinfowler.com/articles/microservices.html
7
Modern requirement: Scale
https://www.nginx.com/blog/introduction-to-microservices/
8
Y Axis (Functional Decomposition)
https://www.nginx.com/blog/introduction-to-microservices/
9
X Axis (Horizontal duplication)
https://www.nginx.com/blog/introduction-to-microservices/
10
Z Axis (Data Partitioning)
https://www.nginx.com/blog/introduction-to-microservices/
11
Docker OS images size
https://imagelayers.io
12
Microservices
Each microservice exposes a service
and is independent, i.e. each microservices
includes the “server” to expose its API to
other microservices or to the outside world,
this leads us to create images with small
footprint as possible to optimize resources
needed to scale.
Micro didn't means micro endopint of a
docker image with a size of n-Gigabyte.
13
Docker best practice
“In almost all cases, you should only run a
single process in a single container. Decoupling
applications into multiple containers makes it
much easier to scale horizontally and reuse
containers. If that service depends on another
service, make use of container linking.”
https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/
14
Docker
We can use Docker to run microservices
inside containers
lightweight services on Lightweight
process
Each microservice has its own release
cycle
15
Docker
reduce complexity per microservice
smaller independent releases
Continous Integration
Continous Delivery / Deployment
16
Let's see
different approaches
to deploy our microservices
as a docker containers
to understand pro and cons
17
Docker on AWS ECS
With plain docker
we can use
AWS EC2 Container Service
and
compose our microservices
18
https://github.com/aws/amazon-ecs-agent
ECS Container
instances are EC2
instances with an
Agent installed
(GO)
Docker on AWS ECS
19
You can compose microservices (like docker compose)
Docker on AWS ECS
20
{
"requiresAttributes": [],
"taskDefinitionArn": "arn:aws:ecs:eu-west-1:073930265103:task-definition/console-sample-app-
static:7",
"status": "ACTIVE",
"revision": 7,
"containerDefinitions": [
{
"volumesFrom": [],
"memory": 300,
"extraHosts": null,
"dnsServers": null,
"disableNetworking": null,
"dnsSearchDomains": null,
"portMappings": [
{
"hostPort": 80,
"containerPort": 80,
"protocol": "tcp"
}
],
"hostname": null,
"essential": true,
"entryPoint": [
"sh",
"-c"
],
...
As usual on AWS
every parts
is configurable
but not portable
outside AWS
Docker on AWS ECS
21
"mountPoints": [],
"name": "simple-app",
"ulimits": null,
"dockerSecurityOptions": null,
"environment": [],
"links": [],
"workingDirectory": null,
"readonlyRootFilesystem": null,
"image": "httpd:2.4",
"command": [
"/bin/sh -c "echo '<html> <head> <title>Amazon ECS Sample App</title> <style>body
{margin-top: 40px; background-color: #333;} </style> </head><body> <div style=color:white;text-
align:center> <h1>Amazon ECS Sample App</h1> <h2>Congratulations!</h2> <p>Your application is
now running on a container in Amazon ECS.</p> </div></body></html>' >
/usr/local/apache2/htdocs/index.html && httpd-foreground""
],
"user": null,
"dockerLabels": null,
"logConfiguration": null,
"cpu": 10,
"privileged": null,
"expanded": true
}
],
"volumes": [],
"family": "console-sample-app-static"
}
Docker on AWS ECS
22
Approchable through sync/async API
(various languages sdk available)
Docker on AWS ECS
23
Fully configurable through API
Docker on AWS ECS
24
Pro of ECS:
● Fast way to deploy docker
● Cluster
Cons of ECS:
● Docker is a simple agent in the EC2 instance you
haven't full control
● Conf not portable
● Test only on AWS no Vagrant/Vbox to simulate two
or more instances togheter outside AWS
25
Docker on AWS Elastic bean stalk
26
Dockerrun.aws.json
{
"AWSEBDockerrunVersion": 2,
"volumes": [
{
"name": "php-app",
"host": {
"sourcePath": "/var/app/current/php-app"
}
},
{
"name": "nginx-proxy-conf",
"host": {
"sourcePath": "/var/app/current/proxy/conf.d"
}
}
],
"containerDefinitions": [
{
"name": "php-app",
"image": "php:fpm",
"environment": [
{
"name": "Container",
"value": "PHP"
}
],
"essential": true,
"memory": 128,
"mountPoints": [
{
"sourceVolume": "php-app",
"containerPath": "/var/www/html",
"readOnly": true
}
]
},
{
"name": "nginx-proxy",
"image": "nginx",
"essential": true,
"memory": 128,
"portMappings": [
{
"hostPort": 80,
"containerPort": 80
}
],
"links": [
"php-app"
],
"mountPoints": [
….
]
}
]
}
Docker on AWS Elastic bean stalk
27
Docker on AWS Elastic bean stalk
28
Pro of EBS:
● Fast way to deploy your stack with docker
● Windows APP Support (not related with Docker)
● Cluster
Cons of EBS:
● Conf not portable
●
Test only on AWS no Vagrant/Vbox to simulate two or
more instances togheter outside AWS
● Not simple/clear cleanup of the resources used
29
Houston we have a problem
Who manages, controls, monitors and orchestrate
and scales our microservices inside docker
container ?
AWS provides cluster group and loadbalancer but
is a coarse grained solution.
30
Some problems to solve
Manage: Who decides the number of containers
with the same image control ?
Who decides the dedicated resources for each
container ?
Who provide HA ?
Monitor: Who checks the health of the containers
Scale: Who acts as load balancer in front of the
containers
31
Some problems to solve
Orchestrate: Who puts the related container near
each other ?
Who provides the notion of app stack with
containers ?
Who provides endpoints ?
32
Now we start to play the Rock & Roll
33
K8s
https://github.com/kubernetes
34http://kubernetes.io/v1.1/docs/design/architecture.html
35http://kubernetes.io/v1.1/docs/admin/high-availability.html
K8s HA
36
Note
Docker and Kubernetes are written in Go
and are released with
Open Source license,
you can learn, hack and contribute
every single line of code
37
Names the pieces
Master: Is the core of the cluster, with restful
commands define our desidered cluster, it contains the
API Server
Scheduler: Schedule workloads in terms of Pods on
the nodes. It spread pods across the cluster for
matching pods replicas.
Etcd: Distributed configuration store, contains the
kubernetes state
38
Nodes
Node-n
kubelet: Interact with the API Server
Kube-proxy: provides load balancing and directs the
traffic to specific service to ther proper pod
Pod: is the entity to aggregate related containers and
the data, close in terms of network and HW.
Pods allow us to logically group containers.
Eaxch pods has its unique ip Address
39
Node
Service:
Provides a reliable endpoint for the pods.
A service can be implemented internally using
podSelector or externally with Endpoints.
Each service has its unique ip address.
Services are visible internally and can be exposed
externally
ReplicationController: Manage the number of nodes
of the pods and Container included to satisfy the
desidered number in the conf.
40
We interact with kubernetes throught UI or with kubectl
kubectl create -f mysql-pod.yaml
kubectl create -f mysql-service.yaml
kubectl create -f wildfly-rc.yaml
kubectl get pods
kubectl get services
kubectl get replicationcontrollers
…
http://kubernetes.io/docs/user-guide/kubectl/kubectl/
41
Javaee yaml
apiVersion: v1
kind: Service
metadata:
name: mysql-service
labels:
name: mysql-pod
context: docker-k8s-lab
spec:
ports:
# the port that this service should
serve on
- port: 3306
# label keys and values that must
match in order to receive traffic for
this service
selector:
name: mysql-pod
context: docker-k8s-lab
apiVersion: v1
kind: ReplicationController
metadata:
name: wildfly-rc
labels:
name: wildfly
context: docker-k8s-lab
spec:
replicas: 1
template:
metadata:
labels:
name: wildfly
spec:
containers:
- name: wildfly-rc-pod
image: arungupta/wildfly-mysql-
javaee7:k8s
ports:
- containerPort: 8080
42
nginx-pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: mysql-pod
labels:
name: mysql-pod
context: docker-k8s-lab
spec:
containers:
-
name: mysql
image: mysql:latest
env:
-
name: "MYSQL_USER"
value: "mysql"
-
name: "MYSQL_PASSWORD"
value: "mysql"
-
name: "MYSQL_DATABASE"
value: "sample"
-
name: "MYSQL_ROOT_PASSWORD"
value: "supersecret"
ports:
-
containerPort: 3306
43
Ephemereal
Docker container are ephemeral,
You can use a persistent volume, but if a POD is
removed the persistent volume will be deleted.
On AWS we can use Elastic Block Store
44
Volumes
apiVersion: v1
kind: Pod
metadata:
name: test-aws
Spec:
containers:
- image: nginx:latest
ports:
- containerPort: 80
name: test-aws
volumeMounts:
- mountPath: /usr/share/nginx/html
name: aws-pd
volumes:
- name: aws-pd
awsElasticBlockStore:
volumeID: aws://<availability-zone>/<volume-id>
fsType: ext4
Volume types available :
EmptyDir, hostPath, gcePersistentDisk, awsElasticBlockStore, nfs, iscsi, flocker, glusterfs, rbd,
GitRepo, secret, persistentVolumeClaim
45
Multitenancy
By default the namespaces created in kubernetes are
kube-system for system level containers
default for the containers created by the user
We can create other namespaces with
apiVersion: v1
kind: Namespace
metadata:
name: test
46
Multitenancy
Now we can use this fresh namespace for new pods
apiVersion: v1
kind: Pod
metadata:
name: utility
namespace: test
spec:
containers:
- image: debian:latest
command:
- sleep
- "3600"
name: utility
<service-name>.<namespace-name>.cluster.local
The pod can access services in other namespace
but with using this naming
47
Scaling
When your application needs more resources you can
Add resources, not deleting Replication controller and
related pods, but adding other pods.
First we ask number of the pods
kubectl get pods-l name=<pod_name>
And then increase
kubectl scale –replicas=<desidered-number> rc/<pod-name>
48
Dev on K8s
Write code
Put code/artifact into docker image
Write kubernetes metadata
Apply the metadata
Choose size and updates when you need
49
K8s distribution examples
50
Pro of Kubernetes:
● Open Source (Golang)/Community
● Tested (former Google Borg Project)
● Deployable on bare metal or public
Cloud public (AWS, GCE, Azure) or
private Cloud or virtualized env with
VMWare vSphere
51
Pro of Kubernetes (continuation):
● Testable locally with Vagrant and
virtual machines
● Portable configurations
(pods/service/controllers)
● Dashboard, Grafana, Metrics
52
Pro of Kubernetes:
Under control of two foundations
i.e standard
(containers)
(orchestration)
53
The Open Container Initiative is a lightweight, open
governance structure, formed under the auspices of
the Linux Foundation, for the express purpose of
creating open industry standards around container
formats and runtime.
...
Docker is donating its container format and runtime,
runC, to the OCI to serve as the cornerstone of this
new effort. It is available now at
https://github.com/opencontainers/runc.
Open Container initiative (OCI)
https://www.opencontainers.org/
https://github.com/opencontainers/specs
54
The Cloud Native Computing Foundation’s
mission is to create and drive the adoption of a new
computing paradigm that is optimized for modern
distributed systems environments.
Cloud native Initiative Foundation (CNCF)
https://cncf.io
55
K8s add on
Ok I like
Docker and K8s
but I want more
56
K8s add on
Docker & K8s with Devops tool,
deployable everywhere, included
notebook with Vagrant and
Virtualbox
(included a commercial version)
57
Openshift
58
Openshift
59
Deployable on your local machine
60
Openshift commons
http://commons.openshift.org/index.html#colleagues
“Commons builds connections and collaboration across OpenShift
communities, projects and stakeholders. In doing so we'll enable
the success of customers, users, partners, and contributors as we
deepen our knowledge and experiences together.
Our goals go beyond code contributions. Commons is a place for
companies using OpenShift to accelerate its success and
adoption. To do this we'll act as resources for each other, share
best practices and provide a forum for peer-to-peer
communication.”
61
Openshift commons 1
http://commons.openshift.org/index.html#colleagues
62
Openshift commons 2
http://commons.openshift.org/index.html#colleagues
63
Openshift commons 3
http://commons.openshift.org/index.html#colleagues
64
Openshift commons 4
http://commons.openshift.org/index.html#colleagues
65
Openshift commons 5
http://commons.openshift.org/index.html#colleagues
66
Fabric8
Ok I like
Docker and K8s
and Openshift but…
I want a ready Paas DevOps
67
Fabric8
68
Fabric8
69
Fabric8
70
Fabric8
71
Fabric8
72
Q & A
73
Resources
http://www.docker.com/
http://kubernetes.io/
http://aws.amazon.com/documentation/ecs/
https://aws.amazon.com/documentation/elastic-beanstalk/
https://www.openshift.org/
http://fabric8.io/
74
Thanks!
ROME 18-19 MARCH 2016
@desmax74
http://slideshare.net/desmax74
All pictures belong
to their respective authors

Contenu connexe

Tendances

Continuous Integration and Kamailio
Continuous Integration and KamailioContinuous Integration and Kamailio
Continuous Integration and KamailioGiacomo Vacca
 
Docker Distributed application bundle & Stack - Overview
Docker Distributed application bundle & Stack - Overview Docker Distributed application bundle & Stack - Overview
Docker Distributed application bundle & Stack - Overview Thomas Chacko
 
KubeCon EU 2016: Templatized Application Configuration on OpenShift and Kuber...
KubeCon EU 2016: Templatized Application Configuration on OpenShift and Kuber...KubeCon EU 2016: Templatized Application Configuration on OpenShift and Kuber...
KubeCon EU 2016: Templatized Application Configuration on OpenShift and Kuber...KubeAcademy
 
Running Docker in Development & Production (DevSum 2015)
Running Docker in Development & Production (DevSum 2015)Running Docker in Development & Production (DevSum 2015)
Running Docker in Development & Production (DevSum 2015)Ben Hall
 
IaC and Immutable Infrastructure with Terraform, Сергей Марченко
IaC and Immutable Infrastructure with Terraform, Сергей МарченкоIaC and Immutable Infrastructure with Terraform, Сергей Марченко
IaC and Immutable Infrastructure with Terraform, Сергей МарченкоSigma Software
 
Developing and Deploying PHP with Docker
Developing and Deploying PHP with DockerDeveloping and Deploying PHP with Docker
Developing and Deploying PHP with DockerPatrick Mizer
 
Making environment for_infrastructure_as_code
Making environment for_infrastructure_as_codeMaking environment for_infrastructure_as_code
Making environment for_infrastructure_as_codeSoshi Nemoto
 
Dockercon 16 Wrap-up (Docker for Mac and Win, Docker 1.12, Swarm Mode, etc.)
Dockercon 16 Wrap-up (Docker for Mac and Win, Docker 1.12, Swarm Mode, etc.)Dockercon 16 Wrap-up (Docker for Mac and Win, Docker 1.12, Swarm Mode, etc.)
Dockercon 16 Wrap-up (Docker for Mac and Win, Docker 1.12, Swarm Mode, etc.)Nils De Moor
 
Preparation study of_docker - (MOSG)
Preparation study of_docker  - (MOSG)Preparation study of_docker  - (MOSG)
Preparation study of_docker - (MOSG)Soshi Nemoto
 
Docker in production: reality, not hype (OSCON 2015)
Docker in production: reality, not hype (OSCON 2015)Docker in production: reality, not hype (OSCON 2015)
Docker in production: reality, not hype (OSCON 2015)bridgetkromhout
 
Real World Experience of Running Docker in Development and Production
Real World Experience of Running Docker in Development and ProductionReal World Experience of Running Docker in Development and Production
Real World Experience of Running Docker in Development and ProductionBen Hall
 
How to deploy PHP projects with docker
How to deploy PHP projects with dockerHow to deploy PHP projects with docker
How to deploy PHP projects with dockerRuoshi Ling
 
An Introduction to the Kubernetes API
An Introduction to the Kubernetes APIAn Introduction to the Kubernetes API
An Introduction to the Kubernetes APIStefan Schimanski
 
Ship your Scala code often and easy with Docker
Ship your Scala code often and easy with DockerShip your Scala code often and easy with Docker
Ship your Scala code often and easy with DockerMarcus Lönnberg
 
Cloud read java with kubernetes
Cloud read java with kubernetesCloud read java with kubernetes
Cloud read java with kubernetesCesar Tron-Lozai
 
Automating Kubernetes Environments with Ansible
Automating Kubernetes Environments with AnsibleAutomating Kubernetes Environments with Ansible
Automating Kubernetes Environments with AnsibleTimothy Appnel
 
Dessi docker kubernetes paas cloud
Dessi docker kubernetes paas cloudDessi docker kubernetes paas cloud
Dessi docker kubernetes paas cloudMassimiliano Dessì
 
Continuous Delivery: The Next Frontier
Continuous Delivery: The Next FrontierContinuous Delivery: The Next Frontier
Continuous Delivery: The Next FrontierCarlos Sanchez
 

Tendances (20)

Continuous Integration and Kamailio
Continuous Integration and KamailioContinuous Integration and Kamailio
Continuous Integration and Kamailio
 
Docker Distributed application bundle & Stack - Overview
Docker Distributed application bundle & Stack - Overview Docker Distributed application bundle & Stack - Overview
Docker Distributed application bundle & Stack - Overview
 
KubeCon EU 2016: Templatized Application Configuration on OpenShift and Kuber...
KubeCon EU 2016: Templatized Application Configuration on OpenShift and Kuber...KubeCon EU 2016: Templatized Application Configuration on OpenShift and Kuber...
KubeCon EU 2016: Templatized Application Configuration on OpenShift and Kuber...
 
Running Docker in Development & Production (DevSum 2015)
Running Docker in Development & Production (DevSum 2015)Running Docker in Development & Production (DevSum 2015)
Running Docker in Development & Production (DevSum 2015)
 
IaC and Immutable Infrastructure with Terraform, Сергей Марченко
IaC and Immutable Infrastructure with Terraform, Сергей МарченкоIaC and Immutable Infrastructure with Terraform, Сергей Марченко
IaC and Immutable Infrastructure with Terraform, Сергей Марченко
 
Docker orchestration
Docker orchestrationDocker orchestration
Docker orchestration
 
Developing and Deploying PHP with Docker
Developing and Deploying PHP with DockerDeveloping and Deploying PHP with Docker
Developing and Deploying PHP with Docker
 
Making environment for_infrastructure_as_code
Making environment for_infrastructure_as_codeMaking environment for_infrastructure_as_code
Making environment for_infrastructure_as_code
 
Dockercon 16 Wrap-up (Docker for Mac and Win, Docker 1.12, Swarm Mode, etc.)
Dockercon 16 Wrap-up (Docker for Mac and Win, Docker 1.12, Swarm Mode, etc.)Dockercon 16 Wrap-up (Docker for Mac and Win, Docker 1.12, Swarm Mode, etc.)
Dockercon 16 Wrap-up (Docker for Mac and Win, Docker 1.12, Swarm Mode, etc.)
 
Preparation study of_docker - (MOSG)
Preparation study of_docker  - (MOSG)Preparation study of_docker  - (MOSG)
Preparation study of_docker - (MOSG)
 
Docker in production: reality, not hype (OSCON 2015)
Docker in production: reality, not hype (OSCON 2015)Docker in production: reality, not hype (OSCON 2015)
Docker in production: reality, not hype (OSCON 2015)
 
Real World Experience of Running Docker in Development and Production
Real World Experience of Running Docker in Development and ProductionReal World Experience of Running Docker in Development and Production
Real World Experience of Running Docker in Development and Production
 
How to deploy PHP projects with docker
How to deploy PHP projects with dockerHow to deploy PHP projects with docker
How to deploy PHP projects with docker
 
Statyczna analiza kodu PHP
Statyczna analiza kodu PHPStatyczna analiza kodu PHP
Statyczna analiza kodu PHP
 
An Introduction to the Kubernetes API
An Introduction to the Kubernetes APIAn Introduction to the Kubernetes API
An Introduction to the Kubernetes API
 
Ship your Scala code often and easy with Docker
Ship your Scala code often and easy with DockerShip your Scala code often and easy with Docker
Ship your Scala code often and easy with Docker
 
Cloud read java with kubernetes
Cloud read java with kubernetesCloud read java with kubernetes
Cloud read java with kubernetes
 
Automating Kubernetes Environments with Ansible
Automating Kubernetes Environments with AnsibleAutomating Kubernetes Environments with Ansible
Automating Kubernetes Environments with Ansible
 
Dessi docker kubernetes paas cloud
Dessi docker kubernetes paas cloudDessi docker kubernetes paas cloud
Dessi docker kubernetes paas cloud
 
Continuous Delivery: The Next Frontier
Continuous Delivery: The Next FrontierContinuous Delivery: The Next Frontier
Continuous Delivery: The Next Frontier
 

En vedette

Dockerize it: stop living in the past and embrace the future
Dockerize it: stop living in the past and embrace the futureDockerize it: stop living in the past and embrace the future
Dockerize it: stop living in the past and embrace the futureCodemotion
 
Agile Project Management: Integrare metodologie di progetto tradizionali con ...
Agile Project Management: Integrare metodologie di progetto tradizionali con ...Agile Project Management: Integrare metodologie di progetto tradizionali con ...
Agile Project Management: Integrare metodologie di progetto tradizionali con ...Codemotion
 
ElasticSearch in action
ElasticSearch in actionElasticSearch in action
ElasticSearch in actionCodemotion
 
How to disassemble a monolithic app in (not-so) micro-services
How to disassemble a monolithic app in (not-so) micro-servicesHow to disassemble a monolithic app in (not-so) micro-services
How to disassemble a monolithic app in (not-so) micro-servicesCodemotion
 
Angular 2: core concepts
Angular 2: core conceptsAngular 2: core concepts
Angular 2: core conceptsCodemotion
 
GlueCon kubernetes & container engine
GlueCon kubernetes & container engineGlueCon kubernetes & container engine
GlueCon kubernetes & container enginebrendandburns
 
Nobody likes working with you - Luigi G. Valle - Codemotion Milan 2016
Nobody likes working with you - Luigi G. Valle - Codemotion Milan 2016Nobody likes working with you - Luigi G. Valle - Codemotion Milan 2016
Nobody likes working with you - Luigi G. Valle - Codemotion Milan 2016Codemotion
 
Web scale infrastructures with kubernetes and flannel
Web scale infrastructures with kubernetes and flannelWeb scale infrastructures with kubernetes and flannel
Web scale infrastructures with kubernetes and flannelpurpleocean
 
Reactive Android: RxJava and beyond - Fabio Tiriticco - Codemotion Amsterdam ...
Reactive Android: RxJava and beyond - Fabio Tiriticco - Codemotion Amsterdam ...Reactive Android: RxJava and beyond - Fabio Tiriticco - Codemotion Amsterdam ...
Reactive Android: RxJava and beyond - Fabio Tiriticco - Codemotion Amsterdam ...Codemotion
 
Dove sono i tuoi vertici e di cosa stanno parlando?
Dove sono i tuoi vertici e di cosa stanno parlando?Dove sono i tuoi vertici e di cosa stanno parlando?
Dove sono i tuoi vertici e di cosa stanno parlando?Codemotion
 
Beautiful Authentication - Tiffany Conroy - Codemotion Milan 2016
Beautiful Authentication - Tiffany Conroy - Codemotion Milan 2016Beautiful Authentication - Tiffany Conroy - Codemotion Milan 2016
Beautiful Authentication - Tiffany Conroy - Codemotion Milan 2016Codemotion
 
Search on the fly: how to lighten your Big Data - Simona Russo, Auro Rolle - ...
Search on the fly: how to lighten your Big Data - Simona Russo, Auro Rolle - ...Search on the fly: how to lighten your Big Data - Simona Russo, Auro Rolle - ...
Search on the fly: how to lighten your Big Data - Simona Russo, Auro Rolle - ...Codemotion
 

En vedette (12)

Dockerize it: stop living in the past and embrace the future
Dockerize it: stop living in the past and embrace the futureDockerize it: stop living in the past and embrace the future
Dockerize it: stop living in the past and embrace the future
 
Agile Project Management: Integrare metodologie di progetto tradizionali con ...
Agile Project Management: Integrare metodologie di progetto tradizionali con ...Agile Project Management: Integrare metodologie di progetto tradizionali con ...
Agile Project Management: Integrare metodologie di progetto tradizionali con ...
 
ElasticSearch in action
ElasticSearch in actionElasticSearch in action
ElasticSearch in action
 
How to disassemble a monolithic app in (not-so) micro-services
How to disassemble a monolithic app in (not-so) micro-servicesHow to disassemble a monolithic app in (not-so) micro-services
How to disassemble a monolithic app in (not-so) micro-services
 
Angular 2: core concepts
Angular 2: core conceptsAngular 2: core concepts
Angular 2: core concepts
 
GlueCon kubernetes & container engine
GlueCon kubernetes & container engineGlueCon kubernetes & container engine
GlueCon kubernetes & container engine
 
Nobody likes working with you - Luigi G. Valle - Codemotion Milan 2016
Nobody likes working with you - Luigi G. Valle - Codemotion Milan 2016Nobody likes working with you - Luigi G. Valle - Codemotion Milan 2016
Nobody likes working with you - Luigi G. Valle - Codemotion Milan 2016
 
Web scale infrastructures with kubernetes and flannel
Web scale infrastructures with kubernetes and flannelWeb scale infrastructures with kubernetes and flannel
Web scale infrastructures with kubernetes and flannel
 
Reactive Android: RxJava and beyond - Fabio Tiriticco - Codemotion Amsterdam ...
Reactive Android: RxJava and beyond - Fabio Tiriticco - Codemotion Amsterdam ...Reactive Android: RxJava and beyond - Fabio Tiriticco - Codemotion Amsterdam ...
Reactive Android: RxJava and beyond - Fabio Tiriticco - Codemotion Amsterdam ...
 
Dove sono i tuoi vertici e di cosa stanno parlando?
Dove sono i tuoi vertici e di cosa stanno parlando?Dove sono i tuoi vertici e di cosa stanno parlando?
Dove sono i tuoi vertici e di cosa stanno parlando?
 
Beautiful Authentication - Tiffany Conroy - Codemotion Milan 2016
Beautiful Authentication - Tiffany Conroy - Codemotion Milan 2016Beautiful Authentication - Tiffany Conroy - Codemotion Milan 2016
Beautiful Authentication - Tiffany Conroy - Codemotion Milan 2016
 
Search on the fly: how to lighten your Big Data - Simona Russo, Auro Rolle - ...
Search on the fly: how to lighten your Big Data - Simona Russo, Auro Rolle - ...Search on the fly: how to lighten your Big Data - Simona Russo, Auro Rolle - ...
Search on the fly: how to lighten your Big Data - Simona Russo, Auro Rolle - ...
 

Similaire à Come costruire una Platform As A Service con Docker, Kubernetes Go e Java

Get you Java application ready for Kubernetes !
Get you Java application ready for Kubernetes !Get you Java application ready for Kubernetes !
Get you Java application ready for Kubernetes !Anthony Dahanne
 
Kubernetes for java developers - Tutorial at Oracle Code One 2018
Kubernetes for java developers - Tutorial at Oracle Code One 2018Kubernetes for java developers - Tutorial at Oracle Code One 2018
Kubernetes for java developers - Tutorial at Oracle Code One 2018Anthony Dahanne
 
Cloud-native .NET Microservices mit Kubernetes
Cloud-native .NET Microservices mit KubernetesCloud-native .NET Microservices mit Kubernetes
Cloud-native .NET Microservices mit KubernetesQAware GmbH
 
Weave User Group Talk - DockerCon 2017 Recap
Weave User Group Talk - DockerCon 2017 RecapWeave User Group Talk - DockerCon 2017 Recap
Weave User Group Talk - DockerCon 2017 RecapPatrick Chanezon
 
Kubernetes for the PHP developer
Kubernetes for the PHP developerKubernetes for the PHP developer
Kubernetes for the PHP developerPaul Czarkowski
 
Docker Platform and Ecosystem
Docker Platform and EcosystemDocker Platform and Ecosystem
Docker Platform and EcosystemPatrick Chanezon
 
A hitchhiker‘s guide to the cloud native stack
A hitchhiker‘s guide to the cloud native stackA hitchhiker‘s guide to the cloud native stack
A hitchhiker‘s guide to the cloud native stackQAware GmbH
 
A Hitchhiker’s Guide to the Cloud Native Stack. #CDS17
A Hitchhiker’s Guide to the Cloud Native Stack. #CDS17A Hitchhiker’s Guide to the Cloud Native Stack. #CDS17
A Hitchhiker’s Guide to the Cloud Native Stack. #CDS17Mario-Leander Reimer
 
Docker Enterprise Workshop - Technical
Docker Enterprise Workshop - TechnicalDocker Enterprise Workshop - Technical
Docker Enterprise Workshop - TechnicalPatrick Chanezon
 
O'Reilly Software Architecture Conference London 2017: Building Resilient Mic...
O'Reilly Software Architecture Conference London 2017: Building Resilient Mic...O'Reilly Software Architecture Conference London 2017: Building Resilient Mic...
O'Reilly Software Architecture Conference London 2017: Building Resilient Mic...Ambassador Labs
 
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
 
Kubernetes #1 intro
Kubernetes #1   introKubernetes #1   intro
Kubernetes #1 introTerry Cho
 
Accelerate your development with Docker
Accelerate your development with DockerAccelerate your development with Docker
Accelerate your development with DockerAndrey Hristov
 
Accelerate your software development with Docker
Accelerate your software development with DockerAccelerate your software development with Docker
Accelerate your software development with DockerAndrey Hristov
 
When Docker Engine 1.12 features unleashes software architecture
When Docker Engine 1.12 features unleashes software architectureWhen Docker Engine 1.12 features unleashes software architecture
When Docker Engine 1.12 features unleashes software architecture Adrien Blind
 
[Codelab 2017] Docker 기초 및 활용 방안
[Codelab 2017] Docker 기초 및 활용 방안[Codelab 2017] Docker 기초 및 활용 방안
[Codelab 2017] Docker 기초 및 활용 방안양재동 코드랩
 
Kubernetes workshop -_the_basics
Kubernetes workshop -_the_basicsKubernetes workshop -_the_basics
Kubernetes workshop -_the_basicsSjuul Janssen
 
Kubernetes extensibility
Kubernetes extensibilityKubernetes extensibility
Kubernetes extensibilityDocker, Inc.
 
Dockerization of Azure Platform
Dockerization of Azure PlatformDockerization of Azure Platform
Dockerization of Azure Platformnirajrules
 

Similaire à Come costruire una Platform As A Service con Docker, Kubernetes Go e Java (20)

Get you Java application ready for Kubernetes !
Get you Java application ready for Kubernetes !Get you Java application ready for Kubernetes !
Get you Java application ready for Kubernetes !
 
Kubernetes for java developers - Tutorial at Oracle Code One 2018
Kubernetes for java developers - Tutorial at Oracle Code One 2018Kubernetes for java developers - Tutorial at Oracle Code One 2018
Kubernetes for java developers - Tutorial at Oracle Code One 2018
 
Cloud-native .NET Microservices mit Kubernetes
Cloud-native .NET Microservices mit KubernetesCloud-native .NET Microservices mit Kubernetes
Cloud-native .NET Microservices mit Kubernetes
 
Weave User Group Talk - DockerCon 2017 Recap
Weave User Group Talk - DockerCon 2017 RecapWeave User Group Talk - DockerCon 2017 Recap
Weave User Group Talk - DockerCon 2017 Recap
 
Kubernetes for the PHP developer
Kubernetes for the PHP developerKubernetes for the PHP developer
Kubernetes for the PHP developer
 
Docker Platform and Ecosystem
Docker Platform and EcosystemDocker Platform and Ecosystem
Docker Platform and Ecosystem
 
A hitchhiker‘s guide to the cloud native stack
A hitchhiker‘s guide to the cloud native stackA hitchhiker‘s guide to the cloud native stack
A hitchhiker‘s guide to the cloud native stack
 
A Hitchhiker’s Guide to the Cloud Native Stack. #CDS17
A Hitchhiker’s Guide to the Cloud Native Stack. #CDS17A Hitchhiker’s Guide to the Cloud Native Stack. #CDS17
A Hitchhiker’s Guide to the Cloud Native Stack. #CDS17
 
Kubernetes Basics
Kubernetes BasicsKubernetes Basics
Kubernetes Basics
 
Docker Enterprise Workshop - Technical
Docker Enterprise Workshop - TechnicalDocker Enterprise Workshop - Technical
Docker Enterprise Workshop - Technical
 
O'Reilly Software Architecture Conference London 2017: Building Resilient Mic...
O'Reilly Software Architecture Conference London 2017: Building Resilient Mic...O'Reilly Software Architecture Conference London 2017: Building Resilient Mic...
O'Reilly Software Architecture Conference London 2017: Building Resilient Mic...
 
Dev opsec dockerimage_patch_n_lifecyclemanagement_
Dev opsec dockerimage_patch_n_lifecyclemanagement_Dev opsec dockerimage_patch_n_lifecyclemanagement_
Dev opsec dockerimage_patch_n_lifecyclemanagement_
 
Kubernetes #1 intro
Kubernetes #1   introKubernetes #1   intro
Kubernetes #1 intro
 
Accelerate your development with Docker
Accelerate your development with DockerAccelerate your development with Docker
Accelerate your development with Docker
 
Accelerate your software development with Docker
Accelerate your software development with DockerAccelerate your software development with Docker
Accelerate your software development with Docker
 
When Docker Engine 1.12 features unleashes software architecture
When Docker Engine 1.12 features unleashes software architectureWhen Docker Engine 1.12 features unleashes software architecture
When Docker Engine 1.12 features unleashes software architecture
 
[Codelab 2017] Docker 기초 및 활용 방안
[Codelab 2017] Docker 기초 및 활용 방안[Codelab 2017] Docker 기초 및 활용 방안
[Codelab 2017] Docker 기초 및 활용 방안
 
Kubernetes workshop -_the_basics
Kubernetes workshop -_the_basicsKubernetes workshop -_the_basics
Kubernetes workshop -_the_basics
 
Kubernetes extensibility
Kubernetes extensibilityKubernetes extensibility
Kubernetes extensibility
 
Dockerization of Azure Platform
Dockerization of Azure PlatformDockerization of Azure Platform
Dockerization of Azure Platform
 

Plus de Codemotion

Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...Codemotion
 
Pompili - From hero to_zero: The FatalNoise neverending story
Pompili - From hero to_zero: The FatalNoise neverending storyPompili - From hero to_zero: The FatalNoise neverending story
Pompili - From hero to_zero: The FatalNoise neverending storyCodemotion
 
Pastore - Commodore 65 - La storia
Pastore - Commodore 65 - La storiaPastore - Commodore 65 - La storia
Pastore - Commodore 65 - La storiaCodemotion
 
Pennisi - Essere Richard Altwasser
Pennisi - Essere Richard AltwasserPennisi - Essere Richard Altwasser
Pennisi - Essere Richard AltwasserCodemotion
 
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...Codemotion
 
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019Codemotion
 
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019Codemotion
 
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Francesco Baldassarri  - Deliver Data at Scale - Codemotion Amsterdam 2019 - Francesco Baldassarri  - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 - Codemotion
 
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...Codemotion
 
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...Codemotion
 
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...Codemotion
 
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...Codemotion
 
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019Codemotion
 
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019Codemotion
 
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019Codemotion
 
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...Codemotion
 
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...Codemotion
 
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019Codemotion
 
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019Codemotion
 
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019Codemotion
 

Plus de Codemotion (20)

Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
 
Pompili - From hero to_zero: The FatalNoise neverending story
Pompili - From hero to_zero: The FatalNoise neverending storyPompili - From hero to_zero: The FatalNoise neverending story
Pompili - From hero to_zero: The FatalNoise neverending story
 
Pastore - Commodore 65 - La storia
Pastore - Commodore 65 - La storiaPastore - Commodore 65 - La storia
Pastore - Commodore 65 - La storia
 
Pennisi - Essere Richard Altwasser
Pennisi - Essere Richard AltwasserPennisi - Essere Richard Altwasser
Pennisi - Essere Richard Altwasser
 
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
 
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
 
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
 
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Francesco Baldassarri  - Deliver Data at Scale - Codemotion Amsterdam 2019 - Francesco Baldassarri  - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
 
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
 
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
 
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
 
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
 
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
 
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
 
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
 
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
 
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
 
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
 
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
 
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
 

Dernier

PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentationvaddepallysandeep122
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
Best Web Development Agency- Idiosys USA.pdf
Best Web Development Agency- Idiosys USA.pdfBest Web Development Agency- Idiosys USA.pdf
Best Web Development Agency- Idiosys USA.pdfIdiosysTechnologies1
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 

Dernier (20)

Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentation
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
Best Web Development Agency- Idiosys USA.pdf
Best Web Development Agency- Idiosys USA.pdfBest Web Development Agency- Idiosys USA.pdf
Best Web Development Agency- Idiosys USA.pdf
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 

Come costruire una Platform As A Service con Docker, Kubernetes Go e Java

  • 1. Paas with Docker and K8s Massimiliano Dessì @desmax74 ROME 18-19 MARCH 2016
  • 2. 2 Speaker Massimiliano Dessì has more than 15 years of experience in programming. Manager of GDG Sardegna, Founder of SpringFramework IT, co-founder of Jug Sardegna. Author of Spring 2.5 AOP. He works in the CloudComputing and DevOps area.
  • 3. 3 A lot of hype around Docker FROM ubuntu:latest WORKDIR /app ADD src/github.com/<mycompany>/service1 /app/service1 EXPOSE 8080 ENTRYPOINT ["/app/service1"]
  • 4. 4 Layered and immutable images Copy on write model each container has its own file system and ports ...
  • 5. 5 But the Rock & roll is when the system grows
  • 6. 6 the rationale behind docker http://martinfowler.com/articles/microservices.html
  • 8. 8 Y Axis (Functional Decomposition) https://www.nginx.com/blog/introduction-to-microservices/
  • 9. 9 X Axis (Horizontal duplication) https://www.nginx.com/blog/introduction-to-microservices/
  • 10. 10 Z Axis (Data Partitioning) https://www.nginx.com/blog/introduction-to-microservices/
  • 11. 11 Docker OS images size https://imagelayers.io
  • 12. 12 Microservices Each microservice exposes a service and is independent, i.e. each microservices includes the “server” to expose its API to other microservices or to the outside world, this leads us to create images with small footprint as possible to optimize resources needed to scale. Micro didn't means micro endopint of a docker image with a size of n-Gigabyte.
  • 13. 13 Docker best practice “In almost all cases, you should only run a single process in a single container. Decoupling applications into multiple containers makes it much easier to scale horizontally and reuse containers. If that service depends on another service, make use of container linking.” https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/
  • 14. 14 Docker We can use Docker to run microservices inside containers lightweight services on Lightweight process Each microservice has its own release cycle
  • 15. 15 Docker reduce complexity per microservice smaller independent releases Continous Integration Continous Delivery / Deployment
  • 16. 16 Let's see different approaches to deploy our microservices as a docker containers to understand pro and cons
  • 17. 17 Docker on AWS ECS With plain docker we can use AWS EC2 Container Service and compose our microservices
  • 18. 18 https://github.com/aws/amazon-ecs-agent ECS Container instances are EC2 instances with an Agent installed (GO) Docker on AWS ECS
  • 19. 19 You can compose microservices (like docker compose) Docker on AWS ECS
  • 20. 20 { "requiresAttributes": [], "taskDefinitionArn": "arn:aws:ecs:eu-west-1:073930265103:task-definition/console-sample-app- static:7", "status": "ACTIVE", "revision": 7, "containerDefinitions": [ { "volumesFrom": [], "memory": 300, "extraHosts": null, "dnsServers": null, "disableNetworking": null, "dnsSearchDomains": null, "portMappings": [ { "hostPort": 80, "containerPort": 80, "protocol": "tcp" } ], "hostname": null, "essential": true, "entryPoint": [ "sh", "-c" ], ... As usual on AWS every parts is configurable but not portable outside AWS Docker on AWS ECS
  • 21. 21 "mountPoints": [], "name": "simple-app", "ulimits": null, "dockerSecurityOptions": null, "environment": [], "links": [], "workingDirectory": null, "readonlyRootFilesystem": null, "image": "httpd:2.4", "command": [ "/bin/sh -c "echo '<html> <head> <title>Amazon ECS Sample App</title> <style>body {margin-top: 40px; background-color: #333;} </style> </head><body> <div style=color:white;text- align:center> <h1>Amazon ECS Sample App</h1> <h2>Congratulations!</h2> <p>Your application is now running on a container in Amazon ECS.</p> </div></body></html>' > /usr/local/apache2/htdocs/index.html && httpd-foreground"" ], "user": null, "dockerLabels": null, "logConfiguration": null, "cpu": 10, "privileged": null, "expanded": true } ], "volumes": [], "family": "console-sample-app-static" } Docker on AWS ECS
  • 22. 22 Approchable through sync/async API (various languages sdk available) Docker on AWS ECS
  • 23. 23 Fully configurable through API Docker on AWS ECS
  • 24. 24 Pro of ECS: ● Fast way to deploy docker ● Cluster Cons of ECS: ● Docker is a simple agent in the EC2 instance you haven't full control ● Conf not portable ● Test only on AWS no Vagrant/Vbox to simulate two or more instances togheter outside AWS
  • 25. 25 Docker on AWS Elastic bean stalk
  • 26. 26 Dockerrun.aws.json { "AWSEBDockerrunVersion": 2, "volumes": [ { "name": "php-app", "host": { "sourcePath": "/var/app/current/php-app" } }, { "name": "nginx-proxy-conf", "host": { "sourcePath": "/var/app/current/proxy/conf.d" } } ], "containerDefinitions": [ { "name": "php-app", "image": "php:fpm", "environment": [ { "name": "Container", "value": "PHP" } ], "essential": true, "memory": 128, "mountPoints": [ { "sourceVolume": "php-app", "containerPath": "/var/www/html", "readOnly": true } ] }, { "name": "nginx-proxy", "image": "nginx", "essential": true, "memory": 128, "portMappings": [ { "hostPort": 80, "containerPort": 80 } ], "links": [ "php-app" ], "mountPoints": [ …. ] } ] } Docker on AWS Elastic bean stalk
  • 27. 27 Docker on AWS Elastic bean stalk
  • 28. 28 Pro of EBS: ● Fast way to deploy your stack with docker ● Windows APP Support (not related with Docker) ● Cluster Cons of EBS: ● Conf not portable ● Test only on AWS no Vagrant/Vbox to simulate two or more instances togheter outside AWS ● Not simple/clear cleanup of the resources used
  • 29. 29 Houston we have a problem Who manages, controls, monitors and orchestrate and scales our microservices inside docker container ? AWS provides cluster group and loadbalancer but is a coarse grained solution.
  • 30. 30 Some problems to solve Manage: Who decides the number of containers with the same image control ? Who decides the dedicated resources for each container ? Who provide HA ? Monitor: Who checks the health of the containers Scale: Who acts as load balancer in front of the containers
  • 31. 31 Some problems to solve Orchestrate: Who puts the related container near each other ? Who provides the notion of app stack with containers ? Who provides endpoints ?
  • 32. 32 Now we start to play the Rock & Roll
  • 36. 36 Note Docker and Kubernetes are written in Go and are released with Open Source license, you can learn, hack and contribute every single line of code
  • 37. 37 Names the pieces Master: Is the core of the cluster, with restful commands define our desidered cluster, it contains the API Server Scheduler: Schedule workloads in terms of Pods on the nodes. It spread pods across the cluster for matching pods replicas. Etcd: Distributed configuration store, contains the kubernetes state
  • 38. 38 Nodes Node-n kubelet: Interact with the API Server Kube-proxy: provides load balancing and directs the traffic to specific service to ther proper pod Pod: is the entity to aggregate related containers and the data, close in terms of network and HW. Pods allow us to logically group containers. Eaxch pods has its unique ip Address
  • 39. 39 Node Service: Provides a reliable endpoint for the pods. A service can be implemented internally using podSelector or externally with Endpoints. Each service has its unique ip address. Services are visible internally and can be exposed externally ReplicationController: Manage the number of nodes of the pods and Container included to satisfy the desidered number in the conf.
  • 40. 40 We interact with kubernetes throught UI or with kubectl kubectl create -f mysql-pod.yaml kubectl create -f mysql-service.yaml kubectl create -f wildfly-rc.yaml kubectl get pods kubectl get services kubectl get replicationcontrollers … http://kubernetes.io/docs/user-guide/kubectl/kubectl/
  • 41. 41 Javaee yaml apiVersion: v1 kind: Service metadata: name: mysql-service labels: name: mysql-pod context: docker-k8s-lab spec: ports: # the port that this service should serve on - port: 3306 # label keys and values that must match in order to receive traffic for this service selector: name: mysql-pod context: docker-k8s-lab apiVersion: v1 kind: ReplicationController metadata: name: wildfly-rc labels: name: wildfly context: docker-k8s-lab spec: replicas: 1 template: metadata: labels: name: wildfly spec: containers: - name: wildfly-rc-pod image: arungupta/wildfly-mysql- javaee7:k8s ports: - containerPort: 8080
  • 42. 42 nginx-pod.yaml apiVersion: v1 kind: Pod metadata: name: mysql-pod labels: name: mysql-pod context: docker-k8s-lab spec: containers: - name: mysql image: mysql:latest env: - name: "MYSQL_USER" value: "mysql" - name: "MYSQL_PASSWORD" value: "mysql" - name: "MYSQL_DATABASE" value: "sample" - name: "MYSQL_ROOT_PASSWORD" value: "supersecret" ports: - containerPort: 3306
  • 43. 43 Ephemereal Docker container are ephemeral, You can use a persistent volume, but if a POD is removed the persistent volume will be deleted. On AWS we can use Elastic Block Store
  • 44. 44 Volumes apiVersion: v1 kind: Pod metadata: name: test-aws Spec: containers: - image: nginx:latest ports: - containerPort: 80 name: test-aws volumeMounts: - mountPath: /usr/share/nginx/html name: aws-pd volumes: - name: aws-pd awsElasticBlockStore: volumeID: aws://<availability-zone>/<volume-id> fsType: ext4 Volume types available : EmptyDir, hostPath, gcePersistentDisk, awsElasticBlockStore, nfs, iscsi, flocker, glusterfs, rbd, GitRepo, secret, persistentVolumeClaim
  • 45. 45 Multitenancy By default the namespaces created in kubernetes are kube-system for system level containers default for the containers created by the user We can create other namespaces with apiVersion: v1 kind: Namespace metadata: name: test
  • 46. 46 Multitenancy Now we can use this fresh namespace for new pods apiVersion: v1 kind: Pod metadata: name: utility namespace: test spec: containers: - image: debian:latest command: - sleep - "3600" name: utility <service-name>.<namespace-name>.cluster.local The pod can access services in other namespace but with using this naming
  • 47. 47 Scaling When your application needs more resources you can Add resources, not deleting Replication controller and related pods, but adding other pods. First we ask number of the pods kubectl get pods-l name=<pod_name> And then increase kubectl scale –replicas=<desidered-number> rc/<pod-name>
  • 48. 48 Dev on K8s Write code Put code/artifact into docker image Write kubernetes metadata Apply the metadata Choose size and updates when you need
  • 50. 50 Pro of Kubernetes: ● Open Source (Golang)/Community ● Tested (former Google Borg Project) ● Deployable on bare metal or public Cloud public (AWS, GCE, Azure) or private Cloud or virtualized env with VMWare vSphere
  • 51. 51 Pro of Kubernetes (continuation): ● Testable locally with Vagrant and virtual machines ● Portable configurations (pods/service/controllers) ● Dashboard, Grafana, Metrics
  • 52. 52 Pro of Kubernetes: Under control of two foundations i.e standard (containers) (orchestration)
  • 53. 53 The Open Container Initiative is a lightweight, open governance structure, formed under the auspices of the Linux Foundation, for the express purpose of creating open industry standards around container formats and runtime. ... Docker is donating its container format and runtime, runC, to the OCI to serve as the cornerstone of this new effort. It is available now at https://github.com/opencontainers/runc. Open Container initiative (OCI) https://www.opencontainers.org/ https://github.com/opencontainers/specs
  • 54. 54 The Cloud Native Computing Foundation’s mission is to create and drive the adoption of a new computing paradigm that is optimized for modern distributed systems environments. Cloud native Initiative Foundation (CNCF) https://cncf.io
  • 55. 55 K8s add on Ok I like Docker and K8s but I want more
  • 56. 56 K8s add on Docker & K8s with Devops tool, deployable everywhere, included notebook with Vagrant and Virtualbox (included a commercial version)
  • 59. 59 Deployable on your local machine
  • 60. 60 Openshift commons http://commons.openshift.org/index.html#colleagues “Commons builds connections and collaboration across OpenShift communities, projects and stakeholders. In doing so we'll enable the success of customers, users, partners, and contributors as we deepen our knowledge and experiences together. Our goals go beyond code contributions. Commons is a place for companies using OpenShift to accelerate its success and adoption. To do this we'll act as resources for each other, share best practices and provide a forum for peer-to-peer communication.”
  • 66. 66 Fabric8 Ok I like Docker and K8s and Openshift but… I want a ready Paas DevOps
  • 74. 74 Thanks! ROME 18-19 MARCH 2016 @desmax74 http://slideshare.net/desmax74 All pictures belong to their respective authors