Slide 1

Slide 1 text

1 Pivotal Confidential–Internal Use Only 1 Pivotal Confidential–Internal Use Only CF & Docker Better Together Wang Yi [email protected] Creating A True PaaS (Platform As a Service)

Slide 2

Slide 2 text

2 Pivotal Confidential–Internal Use Only Docker joins the Cloud Foundry Foundation in May 2014 to support Cloud Foundry open governance and advance the state of containers in Platform as a Service

Slide 3

Slide 3 text

3 Pivotal Confidential–Internal Use Only Cloud Foundry is… The world’s leading open source platform-as-a-service. Ÿ  Supported by dozens of major organizations Ÿ  Language and framework agnostic Ÿ  Manages both VMs and containers Ÿ  Orchestrates both applications and data services Ÿ  Abstracts Infrastructure Founded and commercialized by Pivotal, Inc.

Slide 4

Slide 4 text

4 Pivotal Confidential–Internal Use Only Open Source Micro   Clouds   Private   Clouds   Public   Clouds   CUSTOM SERVICES What does “Open” PaaS means? Choice! CUSTOM RUNTIMES

Slide 5

Slide 5 text

5 Pivotal Confidential–Internal Use Only Docker Is Cool

Slide 6

Slide 6 text

6 Pivotal Confidential–Internal Use Only BUT…

Slide 7

Slide 7 text

7 Pivotal Confidential–Internal Use Only While Provisioning Multiple Layers App apps apps services routing

Slide 8

Slide 8 text

8 Pivotal Confidential–Internal Use Only Do It With Docker Alone docker run --name mysqldb -e MYSQL_USER=mysql -e MYSQL_PASSWORD=mysql -e MYSQL_DATABASE=sample -e MYSQL_ROOT_PASSWORD=supersecret -p 5306:3306 -d mysql data-source add --name=mysqlDS --driver-name=mysql --jndi-name=java:jboss/ datasources/ExampleMySQLDS --connection-url=jdbc:mysql://$MYSQL_HOST: $MYSQL_PORT/sample?useUnicode=true&characterEncoding=UTF-8 -- user-name=mysql --password=mysql --use-ccm=false --max-pool-size=25 -- blocking-timeout-wait-millis=5000 --enabled=true docker run --name mywildfly -e MYSQL_HOST= -e MYSQL_PORT=5306 -p 8080:8080 -d arungupta/wildfly-mysql-javaee7 Database Datasource App server

Slide 9

Slide 9 text

9 Pivotal Confidential–Internal Use Only here is my source code I do not care how run it on the cloud for me What Developer Want

Slide 10

Slide 10 text

10 Pivotal Confidential–Internal Use Only 12 Factor Apps I. Codebase II. Dependencies III. Configuration IV. Backing services V. Build, release, run VI. Process VII. Port binding VIII. Concurrency IX. Disposability X. Dev/Prod parity XI. Logs XII. Admin Process

Slide 11

Slide 11 text

11 Pivotal Confidential–Internal Use Only Do It With CF --- applications: - name: spring-music memory: 512M instances: 1 host: spring-music-${random-word} domain: cfapps.io path: build/libs/spring-music.war services: - music-mysql-db

Slide 12

Slide 12 text

12 Pivotal Confidential–Internal Use Only Buildpack V.S. Docker runtime layer OS image application layer Docker system brings fixed host OS Kernel * Devs may bring a custom buildpack runtime layer* OS image application layer Buildpack system brings fixed host OS Kernel App container System Provides Dev Provides

Slide 13

Slide 13 text

13 Pivotal Confidential–Internal Use Only DB Router Service credentials reserve resources obtain connection data CLI Cloud Controller Service Broker Data Service Runtime create service (HTTP) bind service (HTTP) create service (HTTP) bind service (HTTP) Service create and bind

Slide 14

Slide 14 text

A NEW PLATFORM FOR A NEW ERA