The Lazy Developer’s Guide to Cloud Foundry

A presentation at Devoxx UK 2014 in June 2014 in London, UK by Holly Cummins

Slide 1

Slide 1

The Lazy Developer’s Guide to Cloud Foundry Holly Cummins @holly_cummins Document number © 2014 IBM Corporation

Slide 2

Slide 2

@holly_cummins © 2014 IBM Corporation

Slide 3

Slide 3

@holly_cummins ? © 2014 IBM Corporation

Slide 4

Slide 4

@holly_cummins © 2014 IBM Corporation

Slide 5

Slide 5

@holly_cummins © 2014 IBM Corporation

Slide 6

Slide 6

@holly_cummins © 2014 IBM Corporation

Slide 7

Slide 7

@holly_cummins © 2014 IBM Corporation

Slide 8

Slide 8

@holly_cummins © 2014 IBM Corporation

Slide 9

Slide 9

@holly_cummins © 2014 IBM Corporation

Slide 10

Slide 10

@holly_cummins © 2014 IBM Corporation

Slide 11

Slide 11

@holly_cummins © 2014 IBM Corporation

Slide 12

Slide 12

@holly_cummins © 2014 IBM Corporation

Slide 13

Slide 13

@holly_cummins A model for excellence in public speaking © 2014 IBM Corporation

Slide 14

Slide 14

@holly_cummins Cloud Foundry

cf push © 2014 IBM Corporation

Slide 15

Slide 15

Any questions? © 2014 IBM Corporation

Slide 16

Slide 16

@holly_cummins ? © 2014 IBM Corporation

Slide 17

Slide 17

@holly_cummins © 2014 IBM Corporation

Slide 18

Slide 18

@holly_cummins IaaS © 2014 IBM Corporation

Slide 19

Slide 19

@holly_cummins PaaS © 2014 IBM Corporation

Slide 20

Slide 20

@holly_cummins SaaS © 2014 IBM Corporation

Slide 21

Slide 21

@holly_cummins The joy of cloud © 2014 IBM Corporation

Slide 22

Slide 22

@holly_cummins Introducing Cloud Foundry © 2014 IBM Corporation

Slide 23

Slide 23

@holly_cummins The Cloud Foundry Foundation © 2014 IBM Corporation

Slide 24

Slide 24

@holly_cummins The Cloud Foundry Foundation © 2014 IBM Corporation

Slide 25

Slide 25

@holly_cummins Public or private cloud? © 2014 IBM Corporation

Slide 26

Slide 26

@holly_cummins Public cloud © 2014 IBM Corporation

Slide 27

Slide 27

@holly_cummins Public cloud © 2014 IBM Corporation

Slide 28

Slide 28

@holly_cummins Public cloud This is supposed to show it’s easy to get going. © 2014 IBM Corporation

Slide 29

Slide 29

@holly_cummins Public cloud This is supposed to show it’s easy to get going. It’s a bad graphic but a great benefit. © 2014 IBM Corporation

Slide 30

Slide 30

@holly_cummins © 2014 IBM Corporation

Slide 31

Slide 31

@holly_cummins © 2014 IBM Corporation

Slide 32

Slide 32

@holly_cummins © 2014 IBM Corporation

Slide 33

Slide 33

@holly_cummins © 2014 IBM Corporation

Slide 34

Slide 34

@holly_cummins System capacity still matters © 2014 IBM Corporation

Slide 35

Slide 35

@holly_cummins © 2014 IBM Corporation

Slide 36

Slide 36

@holly_cummins © 2014 IBM Corporation

Slide 37

Slide 37

@holly_cummins © 2014 IBM Corporation

Slide 38

Slide 38

@holly_cummins Security © 2014 IBM Corporation

Slide 39

Slide 39

@holly_cummins Security is not just physical ▪Who has access to the data? ▪Who manages the servers? ▪What’s the patching policy? © 2014 IBM Corporation

Slide 40

Slide 40

@holly_cummins Hybrid cloud © 2014 IBM Corporation

Slide 41

Slide 41

@holly_cummins Public or private cloud? © 2014 IBM Corporation

Slide 42

Slide 42

@holly_cummins How big is your organisation? © 2014 IBM Corporation

Slide 43

Slide 43

@holly_cummins How big is your organisation? © 2014 IBM Corporation

Slide 44

Slide 44

@holly_cummins How big is your organisation? © 2014 IBM Corporation

Slide 45

Slide 45

@holly_cummins © 2014 IBM Corporation

Slide 46

Slide 46

@holly_cummins Can we hear more about Cloud Foundry now, please? © 2014 IBM Corporation

Slide 47

Slide 47

@holly_cummins Public or private Cloud Foundry? © 2014 IBM Corporation

Slide 48

Slide 48

@holly_cummins Public or private Cloud Foundry? © 2014 IBM Corporation

Slide 49

Slide 49

@holly_cummins Public or private Cloud Foundry? © 2014 IBM Corporation

Slide 50

Slide 50

@holly_cummins Cloud Foundry

cf push © 2014 IBM Corporation

Slide 51

Slide 51

Putting your demo where your mouth is © 2014 IBM Corporation

Slide 52

Slide 52

@holly_cummins No really, that was cool © 2014 IBM Corporation

Slide 53

Slide 53

@holly_cummins No really, that was cool © 2014 IBM Corporation

Slide 54

Slide 54

@holly_cummins © 2014 IBM Corporation

Slide 55

Slide 55

@holly_cummins © 2014 IBM Corporation

Slide 56

Slide 56

@holly_cummins Remember that I said it was easy to get going? © 2014 IBM Corporation

Slide 57

Slide 57

@holly_cummins Buildpacks © 2014 IBM Corporation

Slide 58

Slide 58

@holly_cummins Buildpacks © 2014 IBM Corporation

Slide 59

Slide 59

@holly_cummins Out of the box © 2014 IBM Corporation

Slide 60

Slide 60

@holly_cummins Out of the box ▪Java © 2014 IBM Corporation

Slide 61

Slide 61

@holly_cummins Out of the box ▪Java ▪Node.js © 2014 IBM Corporation

Slide 62

Slide 62

@holly_cummins Out of the box ▪Java ▪Node.js ▪PHP © 2014 IBM Corporation

Slide 63

Slide 63

@holly_cummins Out of the box ▪Java ▪Node.js ▪PHP ▪Python © 2014 IBM Corporation

Slide 64

Slide 64

@holly_cummins Out of the box ▪Java ▪Node.js ▪PHP ▪Python ▪Ruby © 2014 IBM Corporation

Slide 65

Slide 65

@holly_cummins Out of the box ▪Java ▪Node.js ▪PHP ▪Python ▪Ruby ▪Go © 2014 IBM Corporation

Slide 66

Slide 66

@holly_cummins Bring your own © 2014 IBM Corporation

Slide 67

Slide 67

@holly_cummins Bring your own ▪Your preferred app server flavour © 2014 IBM Corporation

Slide 68

Slide 68

@holly_cummins Bring your own ▪Your preferred app server flavour – WebSphere Liberty Profile (of course!) © 2014 IBM Corporation

Slide 69

Slide 69

@holly_cummins Bring your own ▪Your preferred app server flavour – WebSphere Liberty Profile (of course!) – Jetty © 2014 IBM Corporation

Slide 70

Slide 70

@holly_cummins Bring your own ▪Your preferred app server flavour – WebSphere Liberty Profile (of course!) – Jetty – nginx © 2014 IBM Corporation

Slide 71

Slide 71

@holly_cummins Bring your own ▪Your preferred app server flavour – WebSphere Liberty Profile (of course!) – Jetty – nginx ▪The functional language to impress your colleagues with © 2014 IBM Corporation

Slide 72

Slide 72

@holly_cummins Bring your own ▪Your preferred app server flavour – WebSphere Liberty Profile (of course!) – Jetty – nginx ▪The functional language to impress your colleagues with – Haskell © 2014 IBM Corporation

Slide 73

Slide 73

@holly_cummins Bring your own ▪Your preferred app server flavour – WebSphere Liberty Profile (of course!) – Jetty – nginx ▪The functional language to impress your colleagues with – Haskell – Clojure © 2014 IBM Corporation

Slide 74

Slide 74

@holly_cummins Bring your own ▪Your preferred app server flavour – WebSphere Liberty Profile (of course!) – Jetty – nginx ▪The functional language to impress your colleagues with – Haskell – Clojure – Scala © 2014 IBM Corporation

Slide 75

Slide 75

@holly_cummins Bring your own ▪Your preferred app server flavour – WebSphere Liberty Profile (of course!) – Jetty – nginx ▪The functional language to impress your colleagues with – Haskell – Clojure – Scala ▪That thing you saw Greg Young talk about yesterday © 2014 IBM Corporation

Slide 76

Slide 76

@holly_cummins Bring your own ▪Your preferred app server flavour – WebSphere Liberty Profile (of course!) – Jetty – nginx ▪The functional language to impress your colleagues with – Haskell – Clojure – Scala ▪That thing you saw Greg Young talk about yesterday – Erlang © 2014 IBM Corporation

Slide 77

Slide 77

@holly_cummins Bring your own ▪Your preferred app server flavour – WebSphere Liberty Profile (of course!) – Jetty – nginx ▪The functional language to impress your colleagues with – Haskell – Clojure – Scala ▪That thing you saw Greg Young talk about yesterday – Erlang ▪The dark side © 2014 IBM Corporation

Slide 78

Slide 78

@holly_cummins Bring your own ▪Your preferred app server flavour – WebSphere Liberty Profile (of course!) – Jetty – nginx ▪The functional language to impress your colleagues with – Haskell – Clojure – Scala ▪That thing you saw Greg Young talk about yesterday – Erlang ▪The dark side – .NET © 2014 IBM Corporation

Slide 79

Slide 79

@holly_cummins Bring your own ▪Your preferred app server flavour – WebSphere Liberty Profile (of course!) – Jetty – nginx ▪The functional language to impress your colleagues with – Haskell – Clojure – Scala ▪That thing you saw Greg Young talk about yesterday – Erlang ▪The dark side – .NET ▪…. © 2014 IBM Corporation

Slide 80

Slide 80

@holly_cummins Bring someone else’s © 2014 IBM Corporation

Slide 81

Slide 81

@holly_cummins Bring someone else’s © 2014 IBM Corporation

Slide 82

Slide 82

@holly_cummins No really, bring your own ▪Start with someone else’s. ▪Cut, paste, fork. © 2014 IBM Corporation

Slide 83

Slide 83

@holly_cummins buildpack: http:// my.cool.pack.git © 2014 IBM Corporation

Slide 84

Slide 84

@holly_cummins Life of a buildpack © 2014 IBM Corporation

Slide 85

Slide 85

@holly_cummins Life of a buildpack ▪Detect © 2014 IBM Corporation

Slide 86

Slide 86

@holly_cummins Life of a buildpack ▪Detect – Do I understand this application? © 2014 IBM Corporation

Slide 87

Slide 87

@holly_cummins Life of a buildpack ▪Detect – Do I understand this application? ▪Compile © 2014 IBM Corporation

Slide 88

Slide 88

@holly_cummins Life of a buildpack ▪Detect – Do I understand this application? ▪Compile – I do understand this application! Let’s package it up into a selfcontained unit (“droplet”) © 2014 IBM Corporation

Slide 89

Slide 89

@holly_cummins Life of a buildpack ▪Detect – Do I understand this application? ▪Compile – I do understand this application! Let’s package it up into a selfcontained unit (“droplet”) ▪Release © 2014 IBM Corporation

Slide 90

Slide 90

@holly_cummins Life of a buildpack ▪Detect – Do I understand this application? ▪Compile – I do understand this application! Let’s package it up into a selfcontained unit (“droplet”) ▪Release – Ok, let’s go! © 2014 IBM Corporation

Slide 91

Slide 91

@holly_cummins Services © 2014 IBM Corporation

Slide 92

Slide 92

@holly_cummins Services ▪You didn’t want to provide an app server … © 2014 IBM Corporation

Slide 93

Slide 93

@holly_cummins Services ▪You didn’t want to provide an app server … ▪… so you don’t want to provide the database … © 2014 IBM Corporation

Slide 94

Slide 94

@holly_cummins Services ▪You didn’t want to provide an app server … ▪… so you don’t want to provide the database … ▪… or the email provider … © 2014 IBM Corporation

Slide 95

Slide 95

@holly_cummins Services ▪You didn’t want to provide an app server … ▪… so you don’t want to provide the database … ▪… or the email provider … ▪… or the monitoring © 2014 IBM Corporation

Slide 96

Slide 96

@holly_cummins Some are generic © 2014 IBM Corporation

Slide 97

Slide 97

@holly_cummins Some are not … © 2014 IBM Corporation

Slide 98

Slide 98

@holly_cummins … and there are a lot © 2014 IBM Corporation

Slide 99

Slide 99

@holly_cummins Binding services services:! - instance_ABC! - instance_XYZ © 2014 IBM Corporation

Slide 100

Slide 100

@holly_cummins Using a bound service © 2014 IBM Corporation

Slide 101

Slide 101

@holly_cummins Using a bound service System.getProperty(VCAP_SERVICES);! ! {! sqldb”: [! {! “name”: “SQLDB-myDB”,! “label”: “sqldb”! “plan”: “sqldb_small”! “credentials”: {! “hostname”: “75.126.155.139”,! “host”: “75.126.155.139”,! “port”: 50000,! “username”: “u123456”,! “password”: “CasDQ5v72u”,! “db”: “I_012345”,! “jdbcurl”: “jdbc:db2://75.126.155.139:50000/I_012345”,! “uri”: “db2://u123:CasD@75.126.155.139:50000/I_012345”! }! }! ]! }! © 2014 IBM Corporation

Slide 102

Slide 102

@holly_cummins Docker © 2014 IBM Corporation

Slide 103

Slide 103

@holly_cummins Decker © 2014 IBM Corporation

Slide 104

Slide 104

@holly_cummins Decker + © 2014 IBM Corporation

Slide 105

Slide 105

@holly_cummins Decker

cf push © 2014 IBM Corporation

Slide 106

Slide 106

@holly_cummins Decker

cf push © 2014 IBM Corporation

Slide 107

Slide 107

@holly_cummins Decker

cf push © 2014 IBM Corporation

Slide 108

Slide 108

@holly_cummins In the future © 2014 IBM Corporation

Slide 109

Slide 109

@holly_cummins In the future ▪More convergence © 2014 IBM Corporation

Slide 110

Slide 110

@holly_cummins In the future ▪More convergence ▪Cloud Foundry will have first class support for pushing docker images © 2014 IBM Corporation

Slide 111

Slide 111

@holly_cummins In the future ▪More convergence ▪Cloud Foundry will have first class support for pushing docker images ▪Cloud Foundry will use Docker’s lib container internally © 2014 IBM Corporation

Slide 112

Slide 112

Thank you. Any questions? @holly_cummins © 2014 IBM Corporation