Package your

Java EE applications

using

Docker and Kubernetes

Arun Gupta, @arungupta
Red Hat
Arun Gupta
Director, Developer Advocacy
@arungupta
blog.arungupta.me
arungupta@redhat.com
What is Docker?
What is Docker?
• Open source project and company











What is Docker?
• Open source project and company











• Used to create containers for software applications
What is Docker?
• Open source project and company











• Used to create containers for software applications
• Packa...
Advantages
Advantages
• Faster deployments
Advantages
• Faster deployments
• Isolation
Advantages
• Faster deployments
• Isolation
• Portability - “it works
on my machine”
Advantages
• Faster deployments
• Isolation
• Portability - “it works
on my machine”
• Snapshotting
Advantages
• Faster deployments
• Isolation
• Portability - “it works
on my machine”
• Snapshotting
• Security sandbox
Advantages
• Faster deployments
• Isolation
• Portability - “it works
on my machine”
• Snapshotting
• Security sandbox
• L...
Advantages
• Faster deployments
• Isolation
• Portability - “it works
on my machine”
• Snapshotting
• Security sandbox
• L...
Advantages
• Faster deployments
• Isolation
• Portability - “it works
on my machine”
• Snapshotting
• Security sandbox
• L...
Underlying Technology
Underlying Technology
• Written in Go

Underlying Technology
• Written in Go

• Uses several Linux features
Underlying Technology
• Written in Go

• Uses several Linux features
• Namespaces to provide isolation
Underlying Technology
• Written in Go

• Uses several Linux features
• Namespaces to provide isolation
• Control groups to...
Underlying Technology
• Written in Go

• Uses several Linux features
• Namespaces to provide isolation
• Control groups to...
Underlying Technology
• Written in Go

• Uses several Linux features
• Namespaces to provide isolation
• Control groups to...
Is it only Linux?
Is it only Linux?
• Natively supported in Linux
Is it only Linux?
• Natively supported in Linux
• Can be installed on Mac or Windows using
boot2docker
Is it only Linux?
• Natively supported in Linux
• Can be installed on Mac or Windows using
boot2docker
• Tiny Core Linux VM
• Image defined in text-based Dockerfile
• Image defined in text-based Dockerfile
• List of commands to build the image







FROM fedora:latest



CMD echo “Hello ...
• Image defined in text-based Dockerfile
• List of commands to build the image







• docker build or pull
FROM fedora:lat...
• Images shared using registry
• Images shared using registry
• Docker Hub is public SaaS













• Images shared using registry
• Docker Hub is public SaaS













• Private registries can be setup inside firewall
• Images shared using registry
• Docker Hub is public SaaS













• Private registries can be setup inside firewall
•...
• Container built from the image













• Container built from the image













• Runtime representation of the image
• Container built from the image













• Runtime representation of the image
• Self contained execution environment
• Container built from the image













• Runtime representation of the image
• Self contained execution environment...
Docker commands
• docker ps: List running containers
• docker stop: Stop a running container
• docker rm: Remove a running...
Docker

Hub

Docker

Host

DaemonDocker

Client
Docker Workflow
Docker

Hub

Docker

Host

DaemonDocker

Client
docker run <image>
docker …
Docker Workflow
Docker

Hub

Docker

Host

DaemonDocker

Client
docker run <image>
docker …
Docker Workflow
Docker

Hub

Image 1
Image 2
Image 3
Image M
Docker

Host

DaemonDocker

Client
docker run <image>
docker …
Docker Workflow
Docker

Hub

Image 1
Image 2
Image 3
Image M
Docker

Host

Image 1
Image 2
Image 3
Image N
DaemonDocker

Client
docker run...
Docker

Hub

Image 1
Image 2
Image 3
Image M
Docker

Host

Image 1
Image 2
Image 3
Image N
Daemon
Container 1
Container 2
...
Recipe #1.1
FROM jboss/wildfly
RUN curl -L https://github.com/javaee-samples/javaee7-hol/raw/master/solution/
movieplex7-1...
Recipe #1.2
Host

Application
Server
Database
http://blog.arungupta.me/wildfly-javaee7-mysql-link-two-docker-container-tech...
Recipe #1.3
Host

Application
Server
Database
http://blog.arungupta.me/docker-orchestration-fig-techtip67/
Recipe #1.4
Host

Application
Server
http://blog.arungupta.me/docker-container-linking-across-multiple-hosts-techtip69/
Ho...
Recipe #1.4
Host

Application
Server
http://blog.arungupta.me/docker-container-linking-across-multiple-hosts-techtip69/
Ho...
Recipe #1.4
Host

Application
Server
http://blog.arungupta.me/docker-container-linking-across-multiple-hosts-techtip69/
Ho...
Recipe #1.4
Host

Application
Server
http://blog.arungupta.me/docker-container-linking-across-multiple-hosts-techtip69/
Ho...
Arquillian Cube
• Controls the lifecycle of Docker images as part of
test cycle - automatically or manually
• Uses Docker ...
Docker: Pros and Cons
Docker: Pros and Cons
• PROS
• Extreme application portability
• Very easy to create and work with derivative
• Fast boot ...
Docker: Pros and Cons
• PROS
• Extreme application portability
• Very easy to create and work with derivative
• Fast boot ...
Application Operating
Environment
Kubernetes
Kubernetes
• Open source orchestration system for Docker
containers
Kubernetes
• Open source orchestration system for Docker
containers
• Provide declarative primitives for the “desired stat...
Concepts
Concepts
• Pods: collocated group of
Docker containers that
share an IP and storage
volume
Docker
Pod 1 Pod 2
C1 C2 C3
Concepts
• Pods: collocated group of
Docker containers that
share an IP and storage
volume
• Service: Single, stable
name ...
Concepts
• Pods: collocated group of
Docker containers that
share an IP and storage
volume
• Service: Single, stable
name ...
Concepts
• Pods: collocated group of
Docker containers that
share an IP and storage
volume
• Service: Single, stable
name ...
kubectl
kubectl
• Controls the Kubernetes cluster manager
kubectl
• Controls the Kubernetes cluster manager
• kubectl get pods or minions
kubectl
• Controls the Kubernetes cluster manager
• kubectl get pods or minions
• kubectl create -f <filename>
kubectl
• Controls the Kubernetes cluster manager
• kubectl get pods or minions
• kubectl create -f <filename>
• kubectl u...
kubectl
• Controls the Kubernetes cluster manager
• kubectl get pods or minions
• kubectl create -f <filename>
• kubectl u...
export KUBERNETES_PROVIDER=vagrant
./cluster/kube-up.sh
Mac OS X
Kubernetes (Vagrant)
Master Minion
Recipe #2.1
Mac OS X
Kubernetes (Vagrant)
Master
Minion
Pod
Docker

(WildFly)
http://blog.arungupta.me/javaee7-wildfly-kube...
Services
• Abstract a set of pods as a single IP and port
• Simple TCP/UDP load balancing
• Creates environment variables ...
Recipe #2.2
Minion
Pod
Docker

(WildFly)
Pod
Docker

(MySQL)
MySQL
Service
http://blog.arungupta.me/mysql-kubernetes-servi...
Minion 2
Recipe #2.3
Minion 1
Pod
Docker

(WildFly)
Pod
Docker

(MySQL)
MySQL
Service
Replication Controller
Replication Controller
• Ensures specified number of pod “replicas” are
running
Replication Controller
• Ensures specified number of pod “replicas” are
running
• Pod templates are cookie cutters
Replication Controller
• Ensures specified number of pod “replicas” are
running
• Pod templates are cookie cutters
• Resche...
Replication Controller
• Ensures specified number of pod “replicas” are
running
• Pod templates are cookie cutters
• Resche...
Replication Controller
• Ensures specified number of pod “replicas” are
running
• Pod templates are cookie cutters
• Resche...
Recipe #2.4
Recipe #2.4
Recipe #2.4
Minion 2
Minion 1
Pod
Docker

(WildFly)
Pod
Docker

(MySQL)
MySQL
Service
Pod
Docker

(WildFly)
WildFly
Service
Recipe #2.4
Minion 2
Minion 1
Pod
Docker

(WildFly)
Pod
Docker

(MySQL)
MySQL
Service
Pod
Docker

(WildFly)
WildFly
Service
Kubernetes: Pros and Cons
• PROS
• Manage related Docker containers as a unit
• Container communication across hosts
• Ava...
Kubernetes: Pros and Cons
• CONS
• Lifecycle of applications - build, deploy, manage, promote
• Port existing source code ...
Pod 7
ActiveMQ
Pod 8
ActiveMQ
“mq”
port 8161 port 8161
Pod 1
Apache
Pod 2
Apache
“web”
port 80 port 80
Pod 5
MySQL
Pod 6
M...
Pod 7
ActiveMQ
Pod 8
ActiveMQ
“mq”
port 8161 port 8161
Pod 1
Apache
Pod 2
Apache
“web”
port 80 port 80
Pod 5
MySQL
Pod 6
M...
Container Host
Container
Cluster Management
User Experience
OpenShift 3 Features
OpenShift 3 Features
• Push to production - full DevOps
OpenShift 3 Features
• Push to production - full DevOps
• Client tools for building web applications
OpenShift 3 Features
• Push to production - full DevOps
• Client tools for building web applications
• Centralized adminis...
OpenShift 3 Features
• Push to production - full DevOps
• Client tools for building web applications
• Centralized adminis...
Recipe #3.1
• Start OpenShift as Docker container





• Or run natively
• Use osc (OpenShift Client) instead of kubectl
w...
Recipe #3.2
• (Alpha) tools generate project JSON configuration
file that provide build/deployment
40
Recipe #3.3
• Integration with JBoss Developer Studio (cooking)
Summary
• Container runtime and image distribution
• Roll your own solutions for everything
• Runtime and operational mana...
References
• blog.arungupta.me/topics/containers/
• github.com/openshift/origin
 Package Java EE applications using Docker
 Package Java EE applications using Docker
 Package Java EE applications using Docker
 Package Java EE applications using Docker
 Package Java EE applications using Docker
 Package Java EE applications using Docker
 Package Java EE applications using Docker
Nächste SlideShare
Wird geladen in …5
×

Package Java EE applications using Docker

1.105 Aufrufe

Veröffentlicht am

Docker simplifies software delivery by making it easy to build and share images that contain your application’s operating system. It packages your application and infrastructure together, managed as one component. These images are then used to create Docker containers which run on the container virtualization platform, provided by Docker. These images can be distributed using Docker Registry. Docker gives PODA or Package Once Deploy Anywhere.

This talk will provide an introduction to Docker images (build time), containers (run time), and registry (distribution). Java EE application require operating system, JDK, database, application server, tuning of different parts of the stack, WAR file, and much more. The talk will explain how to create and publish your Docker images that package all of these components together. This will overall simplify replicating your development, test, and production environments. Attendees will be productive by applying these concepts in their daily work.

The talk will also discuss how to setup an internal registry to share private Docker images.

Session at the IndicThreads.com Confence held in Pune, India on 27-28 Feb 2015

http://www.indicthreads.com
http://pune15.indicthreads.com

Veröffentlicht in: Software
  • Als Erste(r) kommentieren

Package Java EE applications using Docker

  1. 1. Package your
 Java EE applications
 using
 Docker and Kubernetes
 Arun Gupta, @arungupta Red Hat
  2. 2. Arun Gupta Director, Developer Advocacy @arungupta blog.arungupta.me arungupta@redhat.com
  3. 3. What is Docker?
  4. 4. What is Docker? • Open source project and company
 
 
 
 
 

  5. 5. What is Docker? • Open source project and company
 
 
 
 
 
 • Used to create containers for software applications
  6. 6. What is Docker? • Open source project and company
 
 
 
 
 
 • Used to create containers for software applications • Package Once Deploy Anywhere (PODA)
  7. 7. Advantages
  8. 8. Advantages • Faster deployments
  9. 9. Advantages • Faster deployments • Isolation
  10. 10. Advantages • Faster deployments • Isolation • Portability - “it works on my machine”
  11. 11. Advantages • Faster deployments • Isolation • Portability - “it works on my machine” • Snapshotting
  12. 12. Advantages • Faster deployments • Isolation • Portability - “it works on my machine” • Snapshotting • Security sandbox
  13. 13. Advantages • Faster deployments • Isolation • Portability - “it works on my machine” • Snapshotting • Security sandbox • Limit resource usage
  14. 14. Advantages • Faster deployments • Isolation • Portability - “it works on my machine” • Snapshotting • Security sandbox • Limit resource usage • Simplified dependency
  15. 15. Advantages • Faster deployments • Isolation • Portability - “it works on my machine” • Snapshotting • Security sandbox • Limit resource usage • Simplified dependency • Sharing
  16. 16. Underlying Technology
  17. 17. Underlying Technology • Written in Go

  18. 18. Underlying Technology • Written in Go
 • Uses several Linux features
  19. 19. Underlying Technology • Written in Go
 • Uses several Linux features • Namespaces to provide isolation
  20. 20. Underlying Technology • Written in Go
 • Uses several Linux features • Namespaces to provide isolation • Control groups to share/limit hardware resources
  21. 21. Underlying Technology • Written in Go
 • Uses several Linux features • Namespaces to provide isolation • Control groups to share/limit hardware resources • Union File System makes it light and fast
  22. 22. Underlying Technology • Written in Go
 • Uses several Linux features • Namespaces to provide isolation • Control groups to share/limit hardware resources • Union File System makes it light and fast • libcontainer defines container format
  23. 23. Is it only Linux?
  24. 24. Is it only Linux? • Natively supported in Linux
  25. 25. Is it only Linux? • Natively supported in Linux • Can be installed on Mac or Windows using boot2docker
  26. 26. Is it only Linux? • Natively supported in Linux • Can be installed on Mac or Windows using boot2docker • Tiny Core Linux VM
  27. 27. • Image defined in text-based Dockerfile
  28. 28. • Image defined in text-based Dockerfile • List of commands to build the image
 
 
 
 FROM fedora:latest
 
 CMD echo “Hello world”
  29. 29. • Image defined in text-based Dockerfile • List of commands to build the image
 
 
 
 • docker build or pull FROM fedora:latest
 
 CMD echo “Hello world”
  30. 30. • Images shared using registry
  31. 31. • Images shared using registry • Docker Hub is public SaaS
 
 
 
 
 
 

  32. 32. • Images shared using registry • Docker Hub is public SaaS
 
 
 
 
 
 
 • Private registries can be setup inside firewall
  33. 33. • Images shared using registry • Docker Hub is public SaaS
 
 
 
 
 
 
 • Private registries can be setup inside firewall • docker push or pull <IMAGE_ID>
  34. 34. • Container built from the image
 
 
 
 
 
 

  35. 35. • Container built from the image
 
 
 
 
 
 
 • Runtime representation of the image
  36. 36. • Container built from the image
 
 
 
 
 
 
 • Runtime representation of the image • Self contained execution environment
  37. 37. • Container built from the image
 
 
 
 
 
 
 • Runtime representation of the image • Self contained execution environment • docker run <IMAGE_ID>
  38. 38. Docker commands • docker ps: List running containers • docker stop: Stop a running container • docker rm: Remove a running container • docker rmi: Remove an image • … https://docs.docker.com/reference/commandline/cli/
  39. 39. Docker
 Hub
 Docker
 Host
 DaemonDocker
 Client Docker Workflow
  40. 40. Docker
 Hub
 Docker
 Host
 DaemonDocker
 Client docker run <image> docker … Docker Workflow
  41. 41. Docker
 Hub
 Docker
 Host
 DaemonDocker
 Client docker run <image> docker … Docker Workflow
  42. 42. Docker
 Hub
 Image 1 Image 2 Image 3 Image M Docker
 Host
 DaemonDocker
 Client docker run <image> docker … Docker Workflow
  43. 43. Docker
 Hub
 Image 1 Image 2 Image 3 Image M Docker
 Host
 Image 1 Image 2 Image 3 Image N DaemonDocker
 Client docker run <image> docker … Docker Workflow
  44. 44. Docker
 Hub
 Image 1 Image 2 Image 3 Image M Docker
 Host
 Image 1 Image 2 Image 3 Image N Daemon Container 1 Container 2 Container O Docker
 Client docker run <image> docker … Docker Workflow
  45. 45. Recipe #1.1 FROM jboss/wildfly RUN curl -L https://github.com/javaee-samples/javaee7-hol/raw/master/solution/ movieplex7-1.0-SNAPSHOT.war -o /opt/jboss/wildfly/standalone/deployments/ movieplex7-1.0-SNAPSHOT.war docker run -it -p 8080:8080 arungupta/javaee7-hol Host
 Application Server Database
  46. 46. Recipe #1.2 Host
 Application Server Database http://blog.arungupta.me/wildfly-javaee7-mysql-link-two-docker-container-techtip65/ data-source add --name=mysqlDS --driver-name=mysql --jndi-name=java:jboss/ datasources/ExampleMySQLDS --connection-url=jdbc:mysql://$DB_PORT_3306_TCP_ADDR: $DB_PORT_3306_TCP_PORT/sample?useUnicode=true&amp;characterEncoding=UTF-8 -- user-name=mysql --password=mysql --use-ccm=false --max-pool-size=25 --blocking- timeout-wait-millis=5000 --enabled=true
  47. 47. Recipe #1.3 Host
 Application Server Database http://blog.arungupta.me/docker-orchestration-fig-techtip67/
  48. 48. Recipe #1.4 Host
 Application Server http://blog.arungupta.me/docker-container-linking-across-multiple-hosts-techtip69/ Host
 Database
  49. 49. Recipe #1.4 Host
 Application Server http://blog.arungupta.me/docker-container-linking-across-multiple-hosts-techtip69/ Host
 Database
  50. 50. Recipe #1.4 Host
 Application Server http://blog.arungupta.me/docker-container-linking-across-multiple-hosts-techtip69/ Host
 Database
  51. 51. Recipe #1.4 Host
 Application Server http://blog.arungupta.me/docker-container-linking-across-multiple-hosts-techtip69/ Host
 Database
  52. 52. Arquillian Cube • Controls the lifecycle of Docker images as part of test cycle - automatically or manually • Uses Docker REST API to talk to container • Talk using WildFly remote adapter (in container) • Try it out http://blog.arungupta.me/run-javaee-tests-wildfly-docker-arquillian-cube/
  53. 53. Docker: Pros and Cons
  54. 54. Docker: Pros and Cons • PROS • Extreme application portability • Very easy to create and work with derivative • Fast boot on containers
  55. 55. Docker: Pros and Cons • PROS • Extreme application portability • Very easy to create and work with derivative • Fast boot on containers • CONS • Host-centric solution • No higher-level provisioning • No usage tracking/reporting
  56. 56. Application Operating Environment
  57. 57. Kubernetes
  58. 58. Kubernetes • Open source orchestration system for Docker containers
  59. 59. Kubernetes • Open source orchestration system for Docker containers • Provide declarative primitives for the “desired state” • Self-healing • Auto-restarting • Schedule across hosts • Replicating
  60. 60. Concepts
  61. 61. Concepts • Pods: collocated group of Docker containers that share an IP and storage volume Docker Pod 1 Pod 2 C1 C2 C3
  62. 62. Concepts • Pods: collocated group of Docker containers that share an IP and storage volume • Service: Single, stable name for a set of pods, also acts as LB Docker Pod 1 Pod 2 C1 C2 C3 Pod 1 JBoss Pod 2 JBoss Service “web” port 8080 port 8080
  63. 63. Concepts • Pods: collocated group of Docker containers that share an IP and storage volume • Service: Single, stable name for a set of pods, also acts as LB • Replication Controller: manages the lifecycle of pods and ensures specified number are running Docker Pod 1 Pod 2 C1 C2 C3 Pod 1 JBoss Pod 2 JBoss Service “web” port 8080 port 8080
  64. 64. Concepts • Pods: collocated group of Docker containers that share an IP and storage volume • Service: Single, stable name for a set of pods, also acts as LB • Replication Controller: manages the lifecycle of pods and ensures specified number are running • Label: used to organize and select group of objects Docker Pod 1 Pod 2 C1 C2 C3 Pod 1 JBoss Pod 2 JBoss Service “web” port 8080 port 8080
  65. 65. kubectl
  66. 66. kubectl • Controls the Kubernetes cluster manager
  67. 67. kubectl • Controls the Kubernetes cluster manager • kubectl get pods or minions
  68. 68. kubectl • Controls the Kubernetes cluster manager • kubectl get pods or minions • kubectl create -f <filename>
  69. 69. kubectl • Controls the Kubernetes cluster manager • kubectl get pods or minions • kubectl create -f <filename> • kubectl update or delete
  70. 70. kubectl • Controls the Kubernetes cluster manager • kubectl get pods or minions • kubectl create -f <filename> • kubectl update or delete • kubectl resize —replicas=3 replicationcontrollers <name>
  71. 71. export KUBERNETES_PROVIDER=vagrant ./cluster/kube-up.sh Mac OS X Kubernetes (Vagrant) Master Minion
  72. 72. Recipe #2.1 Mac OS X Kubernetes (Vagrant) Master Minion Pod Docker
 (WildFly) http://blog.arungupta.me/javaee7-wildfly-kubernetes-mac-vagrant/
  73. 73. Services • Abstract a set of pods as a single IP and port • Simple TCP/UDP load balancing • Creates environment variables in other pods • Like “Docker links” but across hosts • Stable endpoint for pods to reference • Allows list of pods to change dynamically
  74. 74. Recipe #2.2 Minion Pod Docker
 (WildFly) Pod Docker
 (MySQL) MySQL Service http://blog.arungupta.me/mysql-kubernetes-service-access-wildfly-pod-techtip72/
  75. 75. Minion 2 Recipe #2.3 Minion 1 Pod Docker
 (WildFly) Pod Docker
 (MySQL) MySQL Service
  76. 76. Replication Controller
  77. 77. Replication Controller • Ensures specified number of pod “replicas” are running
  78. 78. Replication Controller • Ensures specified number of pod “replicas” are running • Pod templates are cookie cutters
  79. 79. Replication Controller • Ensures specified number of pod “replicas” are running • Pod templates are cookie cutters • Rescheduling
  80. 80. Replication Controller • Ensures specified number of pod “replicas” are running • Pod templates are cookie cutters • Rescheduling • Manual or auto-scale replicas
  81. 81. Replication Controller • Ensures specified number of pod “replicas” are running • Pod templates are cookie cutters • Rescheduling • Manual or auto-scale replicas • Rolling updates
  82. 82. Recipe #2.4
  83. 83. Recipe #2.4
  84. 84. Recipe #2.4 Minion 2 Minion 1 Pod Docker
 (WildFly) Pod Docker
 (MySQL) MySQL Service Pod Docker
 (WildFly) WildFly Service
  85. 85. Recipe #2.4 Minion 2 Minion 1 Pod Docker
 (WildFly) Pod Docker
 (MySQL) MySQL Service Pod Docker
 (WildFly) WildFly Service
  86. 86. Kubernetes: Pros and Cons • PROS • Manage related Docker containers as a unit • Container communication across hosts • Availability and scalability through automated deployment and monitoring of pods and their replicas, across hosts
  87. 87. Kubernetes: Pros and Cons • CONS • Lifecycle of applications - build, deploy, manage, promote • Port existing source code to run in Kubernetes • DevOps: Dev -> Test -> Production • No multi-tenancy • On-premise (available on GCE) • Assumes inter-pod networking as part of infrastructure • Requires explicit load balancer
  88. 88. Pod 7 ActiveMQ Pod 8 ActiveMQ “mq” port 8161 port 8161 Pod 1 Apache Pod 2 Apache “web” port 80 port 80 Pod 5 MySQL Pod 6 MySQL “db” port 3306 port 3306 Pod 3 JBoss Pod 4 JBoss “javaee” port 8080 port 8080
  89. 89. Pod 7 ActiveMQ Pod 8 ActiveMQ “mq” port 8161 port 8161 Pod 1 Apache Pod 2 Apache “web” port 80 port 80 Pod 5 MySQL Pod 6 MySQL “db” port 3306 port 3306 Pod 3 JBoss Pod 4 JBoss “javaee” port 8080 port 8080
  90. 90. Container Host Container Cluster Management User Experience
  91. 91. OpenShift 3 Features
  92. 92. OpenShift 3 Features • Push to production - full DevOps
  93. 93. OpenShift 3 Features • Push to production - full DevOps • Client tools for building web applications
  94. 94. OpenShift 3 Features • Push to production - full DevOps • Client tools for building web applications • Centralized administration and management of application component libraries
  95. 95. OpenShift 3 Features • Push to production - full DevOps • Client tools for building web applications • Centralized administration and management of application component libraries • Team and user isolation of containers, builds, and network communication in an easy multi-tenancy system
  96. 96. Recipe #3.1 • Start OpenShift as Docker container
 
 
 • Or run natively • Use osc (OpenShift Client) instead of kubectl with Kubernetes configuration file
  97. 97. Recipe #3.2 • (Alpha) tools generate project JSON configuration file that provide build/deployment
  98. 98. 40
  99. 99. Recipe #3.3 • Integration with JBoss Developer Studio (cooking)
  100. 100. Summary • Container runtime and image distribution • Roll your own solutions for everything • Runtime and operational management of containers
 • Lifecycle of applications - build, deploy, manage, promote • Manage tens of thousands of applications with teams
  101. 101. References • blog.arungupta.me/topics/containers/ • github.com/openshift/origin

×