SlideShare a Scribd company logo
1 of 47
Download to read offline
Pivotal Cloud Platform Deep Dive 
Part 3: Custom Buildpacks and Data Services 
Pivotal CF Team 
© Copyright 2014 Pivotal. All rights reserved. 
1
Buildpacks and Services 
• Buildpacks 
• Java Buildpack Deep Dive 
• User-Provided Services 
• Managed Services 
• DEMO: Deploy and Test HaaSh (HashMap as a Service) 
© Copyright 2014 Pivotal. All rights reserved. 
2
REVIEW: Deploying Applications to Cloud Foundry Runtime 
© Copyright 2014 Pivotal. All rights reserved. 
3 
Router 
Blobstore DB 
Cloud Controller Service Broker 
Node(s) 
DEA 
DEA 
DEA 
DEA 
Runtime 
push app 
+ app MD 
1. Upload bits/metadata 
2. Bind services 
3. Stage app 
4. Deploy app 
SC 
+ =
REVIEW: Stage an App 
Blobstore DB 
© Copyright 2014 Pivotal. All rights reserved. 
4 
Router 
Cloud Controller 
DEA 
Runtime 
Detect Compile Upload 
No 
System 
Buildpacks 
+ = 
Yes
Staging and Buildpacks 
Buildpacks are responsible for preparing the machine 
image for an application. 
Buildpack }Droplet 
© Copyright 2014 Pivotal. All rights reserved. 
5 
Application 
Container 
Runtime 
Libraries 
Operating System 
DEA
Types of Buildpacks 
System 
– deployed with Cloud Foundry 
Admin 
– uploaded to Cloud Foundry 
BYO 
– specified at app push 
© Copyright 2014 Pivotal. All rights reserved. 
6
Managing Admin Buildpacks 
© Copyright 2014 Pivotal. All rights reserved. 
7 
! 
$ cf buildpacks 
$ cf create-buildpack <name> <path to bits> <position> 
$ cf update-buildpack <name> [-p <path>] [-i <position>] 
$ cf delete-buildpack <name>
© Copyright 2014 Pivotal. All rights reserved. 
$ cf push -b 
<url> 
! 
The buildpack is 
referenced by a Git 
URL 
! 
$ cf push -b 
<name> 
! 
The admin 
buildpack is 
referenced by 
name 
Buildpack selection 
$ cf push 
! 
The application is 
tested against 
admin then system 
buildpacks. 
8
Tested Buildpacks 
https://github.com/cloudfoundry-community/cf-docs-contrib/wiki/Buildpacks 
© Copyright 2014 Pivotal. All rights reserved. 
9 
Containers Languages 
Haskell
Buildpack API 
/bin/detect app_directory 
Inspect app bits to determine buildpack applicability 
/bin/compile app_directory cache_directory 
Download and install runtime, container, packages, libraries; 
install app bits as necessary 
/bin/release app_directory 
Build app start command 
© Copyright 2014 Pivotal. All rights reserved. 
10
/bin/detect 
Inspect the app bits to determine if the buildpack knows how to 
handle the application 
Gemfile exists 
package.json exists 
setup.py exists 
On match, return exit code 0 and 
write to STDOUT a string identifying the buildpack 
(often just the name of the language supported) 
© Copyright 2014 Pivotal. All rights reserved. 11
/bin/detect 
$ cf push 
© Copyright 2014 Pivotal. All rights reserved. 
! 
DEA iterates over admin and 
system buildpacks calling 
/bin/detect scripts 
until one of them returns exit 
code 0 
12 
$ cf push -b <url|name> 
! 
/bin/detect is 
not called
/bin/compile 
Download and install any necessary 
runtime (Java VM, Ruby interpreter, JavaScript interpreter) 
container (web server) 
support libraries, packages, modules (Ruby gems, NPM 
packages) 
… and then installing the app bits into the runtime or container 
© Copyright 2014 Pivotal. All rights reserved. 
13
/bin/compile Caching 
Runtime, container, and support packages are downloaded 
from sources external to Cloud Foundry 
! 
DEA provides a location for storing downloaded artifacts to 
speed subsequent staging operations 
© Copyright 2014 Pivotal. All rights reserved. 
14
/bin/release 
Build a YAML-formatted hash with three possible keys 
© Copyright 2014 Pivotal. All rights reserved. 
15 
addons: [] 
config_vars: {} 
default_process_types: 
web: <start command> 
On Cloud Foundry, currently only the web: value is 
used to get the start command for the app
Buildpacks and Services 
• Buildpacks 
• Java Buildpack Deep Dive 
• User-Provided Services 
• Managed Services 
• DEMO: Deploy and Test HaaSh (HashMap as a Service) 
© Copyright 2014 Pivotal. All rights reserved. 
16
Java Buildpack 
Supports a variety of JVM languages, containers, and frameworks 
with a modular, configurable, and extensible design 
© Copyright 2014 Pivotal. All rights reserved. 
17
Java Buildpack Concepts 
© Copyright 2014 Pivotal. All rights reserved. 
18 
Containers 
! 
How an application is run 
Frameworks 
! 
Additional application 
transformations 
JREs 
Java Runtimes
Java Buildpack Concepts 
© Copyright 2014 Pivotal. All rights reserved. 
19 
Containers Frameworks 
JREs 
OpenJDK 
Java main() 
Tomcat 
Groovy 
Spring Boot CLI 
Play 
Spring config 
Play config 
Play JPA config 
New Relic agent 
AppDynamics agent
Container Detection Criteria 
© Copyright 2014 Pivotal. All rights reserved. 
20 
Java main() META-INF/MANIFEST.MF exists with Main-class attribute set 
Tomcat WEB-INF directory exists 
Groovy 
.groovy file with a main() method, or 
.groovy file with no classes, or 
.groovy file with a shebang (#!) declaration 
Spring Boot CLI one or more POGO .groovy files with no main() method, and 
no WEB-INF directory 
Spring Boot Embedded start script and lib/spring-boot-*.jar exist 
Play start script and lib/play.play_*.jar exist 
Ratpack start script and ratpack-core-*.jar exist 
Choose zero or one
Framework Detection Criteria 
© Copyright 2014 Pivotal. All rights reserved. 
21 
Spring spring-core*.jar exists 
Play config Play application detected 
Play JPA config play-java-jpa plugin exists in app 
Spring Insight Insight service bound to app 
New Relic agent New Relic service bound to app 
AppDynamics agent AppDynamics service bound to app 
Choose all that apply
/bin/compile Output Example 
© Copyright 2014 Pivotal. All rights reserved. 
DEA 
! 
! 
Buildpack 
! 
! 
DEA 
-----> Downloaded app package (18M) 
-----> Downloading OpenJDK 1.7.0_21 JRE (17.5s) 
Expanding JRE to .java (1.4s) 
-----> Downloading Auto Reconfiguration 0.7.1 (1.4s) 
Modifying /WEB-INF/web.xml for Auto Reconfig 
-----> Downloading Tomcat 7.0.42 (3.5s) 
Expanding Tomcat to .tomcat (0.2s) 
Downloading Buildpack Tomcat Support 1.1.1 (0.0s) 
-----> Uploading droplet (55M) 
22
See What’s Going On 
$ cf files <app-name> app 
! 
.buildpack-diagnostics/ 
.java/ 
.lib/ 
.tomcat/ 
META-INF/ 
WEB-INF/ 
assets/ 
© Copyright 2014 Pivotal. All rights reserved. 
23 
Buildpack-installed runtime 
Buildpack-installed support libraries 
Buildpack-installed container 
! 
DEA-downloaded application files
See What’s Going On 
$ cf files <app-name> staging_info.yml 
! 
detected_buildpack: openjdk=1.7.0_45 tomcat=7.0.47 
spring-auto-reconfiguration=0.7.2 
tomcat-buildpack-support=1.1.1 
start_command: JAVA_HOME=.java 
JAVA_OPTS="-Dhttp.port=$PORT 
-Djava.io.tmpdir=$TMPDIR -XX:MaxPermSize=52428K 
-XX:OnOutOfMemoryError=./.buildpack-diagnostics/killjava 
-Xmx384M -Xss1M" .tomcat/bin/catalina.sh run 
© Copyright 2014 Pivotal. All rights reserved. 
24
Customization 
Two ways to customize the Java buildpack 
! 
Configure artifacts used by standard JREs, Containers, and 
Frameworks 
! 
Extend the buildpack with your own JREs, Containers, and 
Frameworks 
! 
Customization is done by forking the buildpack 
© Copyright 2014 Pivotal. All rights reserved. 25
Customization by Configuration 
Configuration files in java-buildpack/config determine the behavior of a JRE, 
Container, or Framework 
© Copyright 2014 Pivotal. All rights reserved. 
26 
# http://download.pivotal.io.s3.amazonaws.com/openjdk/lucid/x86_64/index.yml 
--- 
1.6.0_27: http://download.pivotal.io.s3.amazonaws.com/openjdk/lucid/x86_64/openjdk-1.6.0_27.tar.gz 
1.7.0_21: http://download.pivotal.io.s3.amazonaws.com/openjdk/lucid/x86_64/openjdk-1.7.0_21.tar.gz 
1.7.0_25: http://download.pivotal.io.s3.amazonaws.com/openjdk/lucid/x86_64/openjdk-1.7.0_25.tar.gz 
1.8.0_M6: http://download.pivotal.io.s3.amazonaws.com/openjdk/lucid/x86_64/openjdk-1.8.0_M6.tar.gz 
1.8.0_M7: http://download.pivotal.io.s3.amazonaws.com/openjdk/lucid/x86_64/openjdk-1.8.0_M7.tar.gz 
# cloudfoundry/java-buildpack/config/openjdk.yml 
--- 
version: 1.7.0_+! 
repository_root: "http://download.pivotal.io.s3.amazonaws.com/openjdk/{platform}/{architecture}" 
memory_sizes: 
memory_heuristics: 
heap: 0.75 
permgen: 0.1 
stack: 0.05 
native: 0.1
Customization by Extension 
Implement a JRE, Container, or Framework support class as one Ruby file in 
the appropriate directory 
! 
! 
© Copyright 2014 Pivotal. All rights reserved. 
! 
! 
(with additional support classes as necessary) 
27 
cloudfoundry/java-buildpack/lib/java_buildpack 
jre 
container 
framework
Customization by Extension 
Support class types have similar interfaces, following the buildpack scripts 
naming conventions 
© Copyright 2014 Pivotal. All rights reserved. 
28 
# initialize the support class with platform information provided in context 
# context includes app_dir, lib_dir, environment, java_home, java_opts, 
# vcap_application, vcap_services 
def initialize(context) ! 
# return a String or an Array<String> that uniquely identifies the container/framework/jre, 
# or nil 
def detect ! 
# download and unpack the container/framework/jre, and transform the application as necessary 
def compile ! 
# create and return the command to run the application with (containers) or add 
# options to context[:java_opts] (frameworks) 
def release
Customization by Extension 
Add new support class to config/components.yml 
© Copyright 2014 Pivotal. All rights reserved. 
29 
--- 
containers: 
- "JavaBuildpack::Container::Groovy" 
- "JavaBuildpack::Container::JavaMain" 
- "JavaBuildpack::Container::SpringBootCLI" 
- "JavaBuildpack::Container::Tomcat" 
- "JavaBuildpack::Container::PlayFramework" 
jres: 
- "JavaBuildpack::Jre::OpenJdk" 
frameworks: 
- "JavaBuildpack::Framework::AppDynamicsAgent" 
- "JavaBuildpack::Framework::JavaOpts" 
- "JavaBuildpack::Framework::NewRelicAgent" 
- "JavaBuildpack::Framework::PlayAutoReconfiguration" 
- "JavaBuildpack::Framework::PlayJpaPlugin" 
- "JavaBuildpack::Framework::SpringAutoReconfiguration"
Customization 
Much more information and documentation included in 
the GitHub repository 
! 
https://github.com/cloudfoundry/java-buildpack 
© Copyright 2014 Pivotal. All rights reserved. 
30
Buildpacks and Services 
• Buildpacks 
• Java Buildpack Deep Dive 
• User-Provided Services 
• Managed Services 
• DEMO: Deploy and Test HaaSh (HashMap as a Service) 
© Copyright 2014 Pivotal. All rights reserved. 
31
Use Cases: User Provided Service Instances 
• Typically legacy or existing instances of a service (databases, 
queues, mail, etc) where applications connect to the same instance 
• Credential passing when you need to inject the same credential set 
into an application 
© Copyright 2014 Pivotal. All rights reserved. 
32
$ cf cups 
FAILED 
Incorrect Usage. ! 
NAME: 
create-user-provided-service - Make a user-provided service instance available to cf apps ! 
ALIAS: 
cups ! 
USAGE: 
cf create-user-provided-service SERVICE_INSTANCE [-p PARAMETERS] [-l SYSLOG-DRAIN-URL] ! 
Pass comma separated parameter names to enable interactive mode: 
cf create-user-provided-service SERVICE_INSTANCE -p "comma, separated, parameter, names" ! 
Pass parameters as JSON to create a service non-interactively: 
cf create-user-provided-service SERVICE_INSTANCE -p '{"name":"value","name":"value"}' ! 
EXAMPLE: 
cf create-user-provided-service oracle-db-mine -p "host, port, dbname, username, password" 
cf create-user-provided-service oracle-db-mine -p '{"username":"admin","password":"pa55woRD"}' 
cf create-user-provided-service my-drain-service -l syslog://example.com !! 
OPTIONS: 
-p Parameters 
-l Syslog Drain Url 
© Copyright 2014 Pivotal. All rights reserved. 33
Buildpacks and Services 
• Buildpacks 
• Java Buildpack Deep Dive 
• User-Provided Services 
• Managed Services 
• Choose Your Own Lab: 
• Customize Java Buildpack 
• Deploy and Test HaaSh (HashMap as a Service) 
© Copyright 2014 Pivotal. All rights reserved. 
34
Managed Services 
Managed Services are integrated with Cloud Foundry by implementing 
a documented API for which the cloud controller is the client 
Service Broker is a component which implements the required API. 
• Service brokers advertise a catalog of service offerings and service 
plans to Cloud Foundry, and receive calls from the Cloud Controller for 
five functions: fetch catalog, create, bind, unbind, and delete. 
© Copyright 2014 Pivotal. All rights reserved. 
35
REVIEW: Create and Bind Services 
© Copyright 2014 Pivotal. All rights reserved. 
DB 
Router 
36 
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)
© Copyright 2014 Pivotal. All rights reserved. 37
Server Broker API 
• GET /v2/catalog – List services and plans available from this broker. 
• PUT /v2/service_instances/:id – Create a new service instance. 
• PUT /v2/service_instances/:instance_id/service_bindings/:id – Create a new 
binding to a service instance. 
• DELETE /v2/service_instances/:instance_id/service_bindings/:id – Unbind from 
a service instance. 
• DELETE /v2/service_instances/:id – Delete a service instance. 
© Copyright 2014 Pivotal. All rights reserved. 
38
Server Broker Registration 
• Make the service broker known to the Cloud Controller 
– cf create service-broker <broker name> <username> <password> <broker base URI> 
– Broker should ONLY allow access to those requestors it shared its credential with (Basic Auth) 
– See: http://docs.gopivotal.com/pivotalcf/services/managing-service-brokers.html#register-broker 
• Make ‘plans’ accessible to users in a specific org/space 
– Somewhat cumbersome: need to “hand parse” JSON to find service plan UUID as registered 
with the CC 
– See: http://docs.gopivotal.com/pivotalcf/services/access-control.html#make-plans-public 
! 
Need admin creds/role in order to introduce a service broker to the Cloud Controller! 
© Copyright 2014 Pivotal. All rights reserved. 
39
Service Broker Implementation 
• Service implementation is up to the service provider/developer. 
• Cloud Foundry only requires that the service provider implement the service 
broker API. 
• A broker can be implemented as a separate application, or by adding the 
required http endpoints to an existing service. 
© Copyright 2014 Pivotal. All rights reserved. 
40
Service Broker Implementation 
• Best Practice: Each binding is represented by its own credentials => 
– T=1: create service instance 
▪ Neither App-1 or App-2 has access to the service instance 
– T=2: bind App-1 to service instance 
▪ Only App-1 can access the service instance 
– T=3: bind App-2 to service instance 
▪ Both App-1 and App-2 have access to the service instance 
– T=4 unbind App-1 from service instance 
▪ Only App-2 can access the service instance 
© Copyright 2014 Pivotal. All rights reserved. 
41
Service Instance Provisioning Examples 
The result of provisioning varies by service type, although there are a few common actions that 
work for many services. For a MySQL service, provisioning could result in: 
• An empty dedicated mysqld process running on its own VM. 
• An empty dedicated mysqld process running in a lightweight container on a shared VM. 
• An empty dedicated mysqld process running on a shared VM. 
• An empty dedicated database, on an existing shared running mysqld. 
• A database with business schema already there. 
• A copy of a full database, for example a QA database that is a copy of the production 
database. 
• For non-data services, provisioning could just mean getting an account on an existing system. 
© Copyright 2014 Pivotal. All rights reserved. 
42
Service Broker Deployment Models 
Because Cloud Foundry only requires that a service implements the broker API in 
order to be available to Cloud Foundry end users, many deployment models are 
possible. The following are examples of valid deployment models: 
• Entire service (service backend + broker) packaged and deployed by BOSH 
alongside Cloud Broker packaged and deployed by BOSH alongside Cloud 
Foundry, rest of the service deployed and maintained by other means 
• Broker (and optionally service) pushed as an application to Cloud Foundry user 
space Foundry (this is the approach we’ll take in the lab…) 
• Entire service, including broker, deployed and maintained outside of Cloud 
Foundry by other means 
© Copyright 2014 Pivotal. All rights reserved. 
43
Resources 
• Service Broker API: http://docs.gopivotal.com/pivotalcf/services/ 
api.html 
• Managing Service Brokers: http://docs.gopivotal.com/pivotalcf/ 
services/managing-service-brokers.html 
• Binding Credentials: http://docs.gopivotal.com/pivotalcf/services/ 
binding-credentials.html 
• Tiny sample application: https://github.com/cloudfoundry-samples/ 
spring-hello-env 
© Copyright 2014 Pivotal. All rights reserved. 
44
Buildpacks and Services 
• Buildpacks 
• Java Buildpack Deep Dive 
• User-Provided Services 
• Managed Services 
• DEMO: Deploy and Test HaaSh (HashMap as a Service) 
• https://github.com/cf-platform-eng/cf-workshop-sb-module 
© Copyright 2014 Pivotal. All rights reserved. 
45
THANK YOU! 
Pivotal CF Team 
© Copyright 2014 Pivotal. All rights reserved. 
46
A NEW PLATFORM FOR A NEW ERA

More Related Content

What's hot

Cloud Foundry Technical Overview at IBM Interconnect 2016
Cloud Foundry Technical Overview at IBM Interconnect 2016Cloud Foundry Technical Overview at IBM Interconnect 2016
Cloud Foundry Technical Overview at IBM Interconnect 2016Stormy Peters
 
Monitoring Cloud Native Apps on Pivotal Cloud Foundry with AppDynamics
Monitoring Cloud Native Apps on Pivotal Cloud Foundry with AppDynamicsMonitoring Cloud Native Apps on Pivotal Cloud Foundry with AppDynamics
Monitoring Cloud Native Apps on Pivotal Cloud Foundry with AppDynamicsNima Badiey
 
Cloud Foundry and Microservices: A Mutualistic Symbiotic Relationship
Cloud Foundry and Microservices: A Mutualistic Symbiotic RelationshipCloud Foundry and Microservices: A Mutualistic Symbiotic Relationship
Cloud Foundry and Microservices: A Mutualistic Symbiotic RelationshipMatt Stine
 
Introduction to Platform-as-a-Service and Cloud Foundry
Introduction to Platform-as-a-Service and Cloud FoundryIntroduction to Platform-as-a-Service and Cloud Foundry
Introduction to Platform-as-a-Service and Cloud FoundryManuel Silveyra
 
Pivotal cf for_devops_mkim_20141209
Pivotal cf for_devops_mkim_20141209Pivotal cf for_devops_mkim_20141209
Pivotal cf for_devops_mkim_20141209minseok kim
 
Cloud foundry presentation
Cloud foundry presentation Cloud foundry presentation
Cloud foundry presentation Vivek Parihar
 
Architecture & Operations
Architecture & OperationsArchitecture & Operations
Architecture & OperationsVMware Tanzu
 
Introducing Cloud Native, Event Driven, Serverless, Micrsoservices Framework ...
Introducing Cloud Native, Event Driven, Serverless, Micrsoservices Framework ...Introducing Cloud Native, Event Driven, Serverless, Micrsoservices Framework ...
Introducing Cloud Native, Event Driven, Serverless, Micrsoservices Framework ...Animesh Singh
 
Dissecting The PaaS Landscape
Dissecting The PaaS LandscapeDissecting The PaaS Landscape
Dissecting The PaaS LandscapeRishidot Research
 
Cloud Foundry Introduction (w Demo) at Silicon Valley Code Camp
Cloud Foundry Introduction (w Demo) at Silicon Valley Code CampCloud Foundry Introduction (w Demo) at Silicon Valley Code Camp
Cloud Foundry Introduction (w Demo) at Silicon Valley Code Campcornelia davis
 
Cloud Foundry Technical Overview
Cloud Foundry Technical OverviewCloud Foundry Technical Overview
Cloud Foundry Technical Overviewcornelia davis
 
As a Service: Cloud Foundry on OpenStack - Lessons Learnt
As a Service: Cloud Foundry on OpenStack - Lessons LearntAs a Service: Cloud Foundry on OpenStack - Lessons Learnt
As a Service: Cloud Foundry on OpenStack - Lessons LearntAnimesh Singh
 
Cloud Foundry: Hands-on Deployment Workshop
Cloud Foundry: Hands-on Deployment WorkshopCloud Foundry: Hands-on Deployment Workshop
Cloud Foundry: Hands-on Deployment WorkshopManuel Garcia
 
Cloud Foundry Platform Operations - CF Summit 2015
Cloud Foundry Platform Operations - CF Summit 2015Cloud Foundry Platform Operations - CF Summit 2015
Cloud Foundry Platform Operations - CF Summit 2015cornelia davis
 
Moving at the speed of startup with Pivotal Cloud Foundry 1.11
Moving at the speed of startup with Pivotal Cloud Foundry 1.11Moving at the speed of startup with Pivotal Cloud Foundry 1.11
Moving at the speed of startup with Pivotal Cloud Foundry 1.11VMware Tanzu
 
Cloud Foundry Bootcamp
Cloud Foundry BootcampCloud Foundry Bootcamp
Cloud Foundry BootcampJoshua Long
 
Devops: Enabled Through a Recasting of Operational Roles
Devops: Enabled Through a Recasting of Operational RolesDevops: Enabled Through a Recasting of Operational Roles
Devops: Enabled Through a Recasting of Operational Rolescornelia davis
 
Deploy your Multi-tier Application in Cloud Foundry
Deploy your Multi-tier Application in Cloud FoundryDeploy your Multi-tier Application in Cloud Foundry
Deploy your Multi-tier Application in Cloud Foundrycornelia davis
 

What's hot (20)

Cloud Foundry Technical Overview at IBM Interconnect 2016
Cloud Foundry Technical Overview at IBM Interconnect 2016Cloud Foundry Technical Overview at IBM Interconnect 2016
Cloud Foundry Technical Overview at IBM Interconnect 2016
 
Monitoring Cloud Native Apps on Pivotal Cloud Foundry with AppDynamics
Monitoring Cloud Native Apps on Pivotal Cloud Foundry with AppDynamicsMonitoring Cloud Native Apps on Pivotal Cloud Foundry with AppDynamics
Monitoring Cloud Native Apps on Pivotal Cloud Foundry with AppDynamics
 
Cloud Foundry and Microservices: A Mutualistic Symbiotic Relationship
Cloud Foundry and Microservices: A Mutualistic Symbiotic RelationshipCloud Foundry and Microservices: A Mutualistic Symbiotic Relationship
Cloud Foundry and Microservices: A Mutualistic Symbiotic Relationship
 
Introduction to Platform-as-a-Service and Cloud Foundry
Introduction to Platform-as-a-Service and Cloud FoundryIntroduction to Platform-as-a-Service and Cloud Foundry
Introduction to Platform-as-a-Service and Cloud Foundry
 
Pivotal cf for_devops_mkim_20141209
Pivotal cf for_devops_mkim_20141209Pivotal cf for_devops_mkim_20141209
Pivotal cf for_devops_mkim_20141209
 
Cloud foundry presentation
Cloud foundry presentation Cloud foundry presentation
Cloud foundry presentation
 
Architecture & Operations
Architecture & OperationsArchitecture & Operations
Architecture & Operations
 
Introducing Cloud Native, Event Driven, Serverless, Micrsoservices Framework ...
Introducing Cloud Native, Event Driven, Serverless, Micrsoservices Framework ...Introducing Cloud Native, Event Driven, Serverless, Micrsoservices Framework ...
Introducing Cloud Native, Event Driven, Serverless, Micrsoservices Framework ...
 
Dissecting The PaaS Landscape
Dissecting The PaaS LandscapeDissecting The PaaS Landscape
Dissecting The PaaS Landscape
 
Cloud Foundry Introduction (w Demo) at Silicon Valley Code Camp
Cloud Foundry Introduction (w Demo) at Silicon Valley Code CampCloud Foundry Introduction (w Demo) at Silicon Valley Code Camp
Cloud Foundry Introduction (w Demo) at Silicon Valley Code Camp
 
Cloud Foundry Technical Overview
Cloud Foundry Technical OverviewCloud Foundry Technical Overview
Cloud Foundry Technical Overview
 
As a Service: Cloud Foundry on OpenStack - Lessons Learnt
As a Service: Cloud Foundry on OpenStack - Lessons LearntAs a Service: Cloud Foundry on OpenStack - Lessons Learnt
As a Service: Cloud Foundry on OpenStack - Lessons Learnt
 
Cloud foundry
Cloud foundryCloud foundry
Cloud foundry
 
Cloud Foundry: Hands-on Deployment Workshop
Cloud Foundry: Hands-on Deployment WorkshopCloud Foundry: Hands-on Deployment Workshop
Cloud Foundry: Hands-on Deployment Workshop
 
PCF Architecture
PCF Architecture PCF Architecture
PCF Architecture
 
Cloud Foundry Platform Operations - CF Summit 2015
Cloud Foundry Platform Operations - CF Summit 2015Cloud Foundry Platform Operations - CF Summit 2015
Cloud Foundry Platform Operations - CF Summit 2015
 
Moving at the speed of startup with Pivotal Cloud Foundry 1.11
Moving at the speed of startup with Pivotal Cloud Foundry 1.11Moving at the speed of startup with Pivotal Cloud Foundry 1.11
Moving at the speed of startup with Pivotal Cloud Foundry 1.11
 
Cloud Foundry Bootcamp
Cloud Foundry BootcampCloud Foundry Bootcamp
Cloud Foundry Bootcamp
 
Devops: Enabled Through a Recasting of Operational Roles
Devops: Enabled Through a Recasting of Operational RolesDevops: Enabled Through a Recasting of Operational Roles
Devops: Enabled Through a Recasting of Operational Roles
 
Deploy your Multi-tier Application in Cloud Foundry
Deploy your Multi-tier Application in Cloud FoundryDeploy your Multi-tier Application in Cloud Foundry
Deploy your Multi-tier Application in Cloud Foundry
 

Viewers also liked

Keynote: Architecting for Continuous Delivery (Pivotal Cloud Platform Roadshow)
Keynote: Architecting for Continuous Delivery (Pivotal Cloud Platform Roadshow)Keynote: Architecting for Continuous Delivery (Pivotal Cloud Platform Roadshow)
Keynote: Architecting for Continuous Delivery (Pivotal Cloud Platform Roadshow)VMware Tanzu
 
Part 3: Enabling Continuous Delivery (Pivotal Cloud Platform Roadshow)
Part 3: Enabling Continuous Delivery (Pivotal Cloud Platform Roadshow)Part 3: Enabling Continuous Delivery (Pivotal Cloud Platform Roadshow)
Part 3: Enabling Continuous Delivery (Pivotal Cloud Platform Roadshow)VMware Tanzu
 
Cloud Foundry | How it works
Cloud Foundry | How it worksCloud Foundry | How it works
Cloud Foundry | How it worksKazuto Kusama
 
Pivotal Cloud Foundry: A Technical Overview
Pivotal Cloud Foundry: A Technical OverviewPivotal Cloud Foundry: A Technical Overview
Pivotal Cloud Foundry: A Technical OverviewVMware Tanzu
 
Python on Cloud Foundry
Python on Cloud FoundryPython on Cloud Foundry
Python on Cloud FoundryIan Huston
 
IDSA2015 - Designing Industry
IDSA2015 - Designing IndustryIDSA2015 - Designing Industry
IDSA2015 - Designing IndustryDavid Bingham
 
Using Data Science for Cybersecurity
Using Data Science for CybersecurityUsing Data Science for Cybersecurity
Using Data Science for CybersecurityVMware Tanzu
 
Introduction to the EDF Innovation Exchange
Introduction to the EDF Innovation ExchangeIntroduction to the EDF Innovation Exchange
Introduction to the EDF Innovation Exchangeedf_innovex
 
Présentation edf pulse 2017 (1)
Présentation edf pulse 2017 (1)Présentation edf pulse 2017 (1)
Présentation edf pulse 2017 (1)🚀Yan Thoinet
 
Speeding up Development with Cloud Foundry
Speeding up Development with Cloud FoundrySpeeding up Development with Cloud Foundry
Speeding up Development with Cloud FoundryAltoros
 
The Internet of Very Big Things
The Internet of Very Big ThingsThe Internet of Very Big Things
The Internet of Very Big ThingsDavid Bingham
 
GE Predix Transform 2016 - UX & Customer Engagement
GE Predix Transform 2016 - UX & Customer EngagementGE Predix Transform 2016 - UX & Customer Engagement
GE Predix Transform 2016 - UX & Customer EngagementDavid Bingham
 
Deview 2013 :: Backend PaaS, CloudFoundry 뽀개기
Deview 2013 :: Backend PaaS, CloudFoundry 뽀개기Deview 2013 :: Backend PaaS, CloudFoundry 뽀개기
Deview 2013 :: Backend PaaS, CloudFoundry 뽀개기Nanha Park
 
Pivotal Big Data Roadshow
Pivotal Big Data Roadshow Pivotal Big Data Roadshow
Pivotal Big Data Roadshow VMware Tanzu
 
Shakr - Container CI/CD with Google Cloud Platform
Shakr - Container CI/CD with Google Cloud PlatformShakr - Container CI/CD with Google Cloud Platform
Shakr - Container CI/CD with Google Cloud PlatformMinku Lee
 
Event Driven Microservices with Spring Cloud Stream #jjug_ccc #ccc_ab3
Event Driven Microservices with Spring Cloud Stream #jjug_ccc #ccc_ab3Event Driven Microservices with Spring Cloud Stream #jjug_ccc #ccc_ab3
Event Driven Microservices with Spring Cloud Stream #jjug_ccc #ccc_ab3Toshiaki Maki
 
Cloud Foundry Compared With Other PaaSes (Cloud Foundry Summit 2014)
Cloud Foundry Compared With Other PaaSes (Cloud Foundry Summit 2014)Cloud Foundry Compared With Other PaaSes (Cloud Foundry Summit 2014)
Cloud Foundry Compared With Other PaaSes (Cloud Foundry Summit 2014)VMware Tanzu
 
Software Architecture Document Final
Software Architecture Document FinalSoftware Architecture Document Final
Software Architecture Document FinalAli Ahmed
 

Viewers also liked (19)

Keynote: Architecting for Continuous Delivery (Pivotal Cloud Platform Roadshow)
Keynote: Architecting for Continuous Delivery (Pivotal Cloud Platform Roadshow)Keynote: Architecting for Continuous Delivery (Pivotal Cloud Platform Roadshow)
Keynote: Architecting for Continuous Delivery (Pivotal Cloud Platform Roadshow)
 
Part 3: Enabling Continuous Delivery (Pivotal Cloud Platform Roadshow)
Part 3: Enabling Continuous Delivery (Pivotal Cloud Platform Roadshow)Part 3: Enabling Continuous Delivery (Pivotal Cloud Platform Roadshow)
Part 3: Enabling Continuous Delivery (Pivotal Cloud Platform Roadshow)
 
Cloud Foundry | How it works
Cloud Foundry | How it worksCloud Foundry | How it works
Cloud Foundry | How it works
 
Pivotal Cloud Foundry: A Technical Overview
Pivotal Cloud Foundry: A Technical OverviewPivotal Cloud Foundry: A Technical Overview
Pivotal Cloud Foundry: A Technical Overview
 
Python on Cloud Foundry
Python on Cloud FoundryPython on Cloud Foundry
Python on Cloud Foundry
 
IDSA2015 - Designing Industry
IDSA2015 - Designing IndustryIDSA2015 - Designing Industry
IDSA2015 - Designing Industry
 
Using Data Science for Cybersecurity
Using Data Science for CybersecurityUsing Data Science for Cybersecurity
Using Data Science for Cybersecurity
 
Introduction to the EDF Innovation Exchange
Introduction to the EDF Innovation ExchangeIntroduction to the EDF Innovation Exchange
Introduction to the EDF Innovation Exchange
 
Présentation edf pulse 2017 (1)
Présentation edf pulse 2017 (1)Présentation edf pulse 2017 (1)
Présentation edf pulse 2017 (1)
 
Speeding up Development with Cloud Foundry
Speeding up Development with Cloud FoundrySpeeding up Development with Cloud Foundry
Speeding up Development with Cloud Foundry
 
The Internet of Very Big Things
The Internet of Very Big ThingsThe Internet of Very Big Things
The Internet of Very Big Things
 
GE Predix Transform 2016 - UX & Customer Engagement
GE Predix Transform 2016 - UX & Customer EngagementGE Predix Transform 2016 - UX & Customer Engagement
GE Predix Transform 2016 - UX & Customer Engagement
 
Deview 2013 :: Backend PaaS, CloudFoundry 뽀개기
Deview 2013 :: Backend PaaS, CloudFoundry 뽀개기Deview 2013 :: Backend PaaS, CloudFoundry 뽀개기
Deview 2013 :: Backend PaaS, CloudFoundry 뽀개기
 
Pivotal hawq internals
Pivotal hawq internalsPivotal hawq internals
Pivotal hawq internals
 
Pivotal Big Data Roadshow
Pivotal Big Data Roadshow Pivotal Big Data Roadshow
Pivotal Big Data Roadshow
 
Shakr - Container CI/CD with Google Cloud Platform
Shakr - Container CI/CD with Google Cloud PlatformShakr - Container CI/CD with Google Cloud Platform
Shakr - Container CI/CD with Google Cloud Platform
 
Event Driven Microservices with Spring Cloud Stream #jjug_ccc #ccc_ab3
Event Driven Microservices with Spring Cloud Stream #jjug_ccc #ccc_ab3Event Driven Microservices with Spring Cloud Stream #jjug_ccc #ccc_ab3
Event Driven Microservices with Spring Cloud Stream #jjug_ccc #ccc_ab3
 
Cloud Foundry Compared With Other PaaSes (Cloud Foundry Summit 2014)
Cloud Foundry Compared With Other PaaSes (Cloud Foundry Summit 2014)Cloud Foundry Compared With Other PaaSes (Cloud Foundry Summit 2014)
Cloud Foundry Compared With Other PaaSes (Cloud Foundry Summit 2014)
 
Software Architecture Document Final
Software Architecture Document FinalSoftware Architecture Document Final
Software Architecture Document Final
 

Similar to Pivotal Cloud Platform Deep Dive on Custom Buildpacks and Data Services

Custom Buildpacks and Data Services
Custom Buildpacks and Data ServicesCustom Buildpacks and Data Services
Custom Buildpacks and Data ServicesTom Kranz
 
A Deep Dive into the Liberty Buildpack on IBM BlueMix
A Deep Dive into the Liberty Buildpack on IBM BlueMix A Deep Dive into the Liberty Buildpack on IBM BlueMix
A Deep Dive into the Liberty Buildpack on IBM BlueMix Rohit Kelapure
 
K8s, Amazon EKS - 유재석, AWS 솔루션즈 아키텍트
K8s, Amazon EKS - 유재석, AWS 솔루션즈 아키텍트K8s, Amazon EKS - 유재석, AWS 솔루션즈 아키텍트
K8s, Amazon EKS - 유재석, AWS 솔루션즈 아키텍트Amazon Web Services Korea
 
Introduction to JIB and Google Cloud Run
Introduction to JIB and Google Cloud RunIntroduction to JIB and Google Cloud Run
Introduction to JIB and Google Cloud RunSaiyam Pathak
 
Apigee deploy grunt plugin.1.0
Apigee deploy grunt plugin.1.0Apigee deploy grunt plugin.1.0
Apigee deploy grunt plugin.1.0Diego Zuluaga
 
Kubernetes for the PHP developer
Kubernetes for the PHP developerKubernetes for the PHP developer
Kubernetes for the PHP developerPaul Czarkowski
 
AWS 고객사를 위한 ‘AWS 컨테이너 교육’ - 유재석, AWS 솔루션즈 아키텍트
AWS 고객사를 위한 ‘AWS 컨테이너 교육’ - 유재석, AWS 솔루션즈 아키텍트AWS 고객사를 위한 ‘AWS 컨테이너 교육’ - 유재석, AWS 솔루션즈 아키텍트
AWS 고객사를 위한 ‘AWS 컨테이너 교육’ - 유재석, AWS 솔루션즈 아키텍트Amazon Web Services Korea
 
Extending Build to the Client: A Maven User's Guide to Grunt.js
Extending Build to the Client: A Maven User's Guide to Grunt.jsExtending Build to the Client: A Maven User's Guide to Grunt.js
Extending Build to the Client: A Maven User's Guide to Grunt.jsPetr Jiricka
 
Docker module 1
Docker module 1Docker module 1
Docker module 1Liang Bo
 
AWS Container Services – 유재석 (AWS 솔루션즈 아키텍트)
AWS Container Services – 유재석 (AWS 솔루션즈 아키텍트)AWS Container Services – 유재석 (AWS 솔루션즈 아키텍트)
AWS Container Services – 유재석 (AWS 솔루션즈 아키텍트)Amazon Web Services Korea
 
Amazon Container Services – 유재석 (AWS 솔루션즈 아키텍트)
 Amazon Container Services – 유재석 (AWS 솔루션즈 아키텍트) Amazon Container Services – 유재석 (AWS 솔루션즈 아키텍트)
Amazon Container Services – 유재석 (AWS 솔루션즈 아키텍트)Amazon Web Services Korea
 
BBL Premiers pas avec Docker
BBL Premiers pas avec DockerBBL Premiers pas avec Docker
BBL Premiers pas avec Dockerkanedafromparis
 
Pivotal CenturyLink Cloud Platform Seminar Presentations: Architecture & Oper...
Pivotal CenturyLink Cloud Platform Seminar Presentations: Architecture & Oper...Pivotal CenturyLink Cloud Platform Seminar Presentations: Architecture & Oper...
Pivotal CenturyLink Cloud Platform Seminar Presentations: Architecture & Oper...VMware Tanzu
 
WebSphere and Docker
WebSphere and DockerWebSphere and Docker
WebSphere and DockerDavid Currie
 
Meetup 2022 - APIs with Quarkus.pdf
Meetup 2022 - APIs with Quarkus.pdfMeetup 2022 - APIs with Quarkus.pdf
Meetup 2022 - APIs with Quarkus.pdfLuca Mattia Ferrari
 
Development on Cloud,PaaS and SDDC
Development on Cloud,PaaS and SDDCDevelopment on Cloud,PaaS and SDDC
Development on Cloud,PaaS and SDDCseungdon Choi
 

Similar to Pivotal Cloud Platform Deep Dive on Custom Buildpacks and Data Services (20)

Custom Buildpacks and Data Services
Custom Buildpacks and Data ServicesCustom Buildpacks and Data Services
Custom Buildpacks and Data Services
 
A Deep Dive into the Liberty Buildpack on IBM BlueMix
A Deep Dive into the Liberty Buildpack on IBM BlueMix A Deep Dive into the Liberty Buildpack on IBM BlueMix
A Deep Dive into the Liberty Buildpack on IBM BlueMix
 
K8s, Amazon EKS - 유재석, AWS 솔루션즈 아키텍트
K8s, Amazon EKS - 유재석, AWS 솔루션즈 아키텍트K8s, Amazon EKS - 유재석, AWS 솔루션즈 아키텍트
K8s, Amazon EKS - 유재석, AWS 솔루션즈 아키텍트
 
Introduction to JIB and Google Cloud Run
Introduction to JIB and Google Cloud RunIntroduction to JIB and Google Cloud Run
Introduction to JIB and Google Cloud Run
 
Apigee deploy grunt plugin.1.0
Apigee deploy grunt plugin.1.0Apigee deploy grunt plugin.1.0
Apigee deploy grunt plugin.1.0
 
Kubernetes for the PHP developer
Kubernetes for the PHP developerKubernetes for the PHP developer
Kubernetes for the PHP developer
 
Environment
EnvironmentEnvironment
Environment
 
Core Android
Core AndroidCore Android
Core Android
 
AWS 고객사를 위한 ‘AWS 컨테이너 교육’ - 유재석, AWS 솔루션즈 아키텍트
AWS 고객사를 위한 ‘AWS 컨테이너 교육’ - 유재석, AWS 솔루션즈 아키텍트AWS 고객사를 위한 ‘AWS 컨테이너 교육’ - 유재석, AWS 솔루션즈 아키텍트
AWS 고객사를 위한 ‘AWS 컨테이너 교육’ - 유재석, AWS 솔루션즈 아키텍트
 
Extending Build to the Client: A Maven User's Guide to Grunt.js
Extending Build to the Client: A Maven User's Guide to Grunt.jsExtending Build to the Client: A Maven User's Guide to Grunt.js
Extending Build to the Client: A Maven User's Guide to Grunt.js
 
Docker module 1
Docker module 1Docker module 1
Docker module 1
 
AWS Container Services – 유재석 (AWS 솔루션즈 아키텍트)
AWS Container Services – 유재석 (AWS 솔루션즈 아키텍트)AWS Container Services – 유재석 (AWS 솔루션즈 아키텍트)
AWS Container Services – 유재석 (AWS 솔루션즈 아키텍트)
 
Amazon Container Services – 유재석 (AWS 솔루션즈 아키텍트)
 Amazon Container Services – 유재석 (AWS 솔루션즈 아키텍트) Amazon Container Services – 유재석 (AWS 솔루션즈 아키텍트)
Amazon Container Services – 유재석 (AWS 솔루션즈 아키텍트)
 
BBL Premiers pas avec Docker
BBL Premiers pas avec DockerBBL Premiers pas avec Docker
BBL Premiers pas avec Docker
 
Pivotal CenturyLink Cloud Platform Seminar Presentations: Architecture & Oper...
Pivotal CenturyLink Cloud Platform Seminar Presentations: Architecture & Oper...Pivotal CenturyLink Cloud Platform Seminar Presentations: Architecture & Oper...
Pivotal CenturyLink Cloud Platform Seminar Presentations: Architecture & Oper...
 
Container BoM Inspection with TERN
Container BoM Inspection with TERNContainer BoM Inspection with TERN
Container BoM Inspection with TERN
 
WebSphere and Docker
WebSphere and DockerWebSphere and Docker
WebSphere and Docker
 
2012 09-08-josug-jeff
2012 09-08-josug-jeff2012 09-08-josug-jeff
2012 09-08-josug-jeff
 
Meetup 2022 - APIs with Quarkus.pdf
Meetup 2022 - APIs with Quarkus.pdfMeetup 2022 - APIs with Quarkus.pdf
Meetup 2022 - APIs with Quarkus.pdf
 
Development on Cloud,PaaS and SDDC
Development on Cloud,PaaS and SDDCDevelopment on Cloud,PaaS and SDDC
Development on Cloud,PaaS and SDDC
 

More from VMware Tanzu

What AI Means For Your Product Strategy And What To Do About It
What AI Means For Your Product Strategy And What To Do About ItWhat AI Means For Your Product Strategy And What To Do About It
What AI Means For Your Product Strategy And What To Do About ItVMware Tanzu
 
Make the Right Thing the Obvious Thing at Cardinal Health 2023
Make the Right Thing the Obvious Thing at Cardinal Health 2023Make the Right Thing the Obvious Thing at Cardinal Health 2023
Make the Right Thing the Obvious Thing at Cardinal Health 2023VMware Tanzu
 
Enhancing DevEx and Simplifying Operations at Scale
Enhancing DevEx and Simplifying Operations at ScaleEnhancing DevEx and Simplifying Operations at Scale
Enhancing DevEx and Simplifying Operations at ScaleVMware Tanzu
 
Spring Update | July 2023
Spring Update | July 2023Spring Update | July 2023
Spring Update | July 2023VMware Tanzu
 
Platforms, Platform Engineering, & Platform as a Product
Platforms, Platform Engineering, & Platform as a ProductPlatforms, Platform Engineering, & Platform as a Product
Platforms, Platform Engineering, & Platform as a ProductVMware Tanzu
 
Building Cloud Ready Apps
Building Cloud Ready AppsBuilding Cloud Ready Apps
Building Cloud Ready AppsVMware Tanzu
 
Spring Boot 3 And Beyond
Spring Boot 3 And BeyondSpring Boot 3 And Beyond
Spring Boot 3 And BeyondVMware Tanzu
 
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdfSpring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdfVMware Tanzu
 
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023VMware Tanzu
 
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023VMware Tanzu
 
tanzu_developer_connect.pptx
tanzu_developer_connect.pptxtanzu_developer_connect.pptx
tanzu_developer_connect.pptxVMware Tanzu
 
Tanzu Virtual Developer Connect Workshop - French
Tanzu Virtual Developer Connect Workshop - FrenchTanzu Virtual Developer Connect Workshop - French
Tanzu Virtual Developer Connect Workshop - FrenchVMware Tanzu
 
Tanzu Developer Connect Workshop - English
Tanzu Developer Connect Workshop - EnglishTanzu Developer Connect Workshop - English
Tanzu Developer Connect Workshop - EnglishVMware Tanzu
 
Virtual Developer Connect Workshop - English
Virtual Developer Connect Workshop - EnglishVirtual Developer Connect Workshop - English
Virtual Developer Connect Workshop - EnglishVMware Tanzu
 
Tanzu Developer Connect - French
Tanzu Developer Connect - FrenchTanzu Developer Connect - French
Tanzu Developer Connect - FrenchVMware Tanzu
 
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023VMware Tanzu
 
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring BootSpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring BootVMware Tanzu
 
SpringOne Tour: The Influential Software Engineer
SpringOne Tour: The Influential Software EngineerSpringOne Tour: The Influential Software Engineer
SpringOne Tour: The Influential Software EngineerVMware Tanzu
 
SpringOne Tour: Domain-Driven Design: Theory vs Practice
SpringOne Tour: Domain-Driven Design: Theory vs PracticeSpringOne Tour: Domain-Driven Design: Theory vs Practice
SpringOne Tour: Domain-Driven Design: Theory vs PracticeVMware Tanzu
 
SpringOne Tour: Spring Recipes: A Collection of Common-Sense Solutions
SpringOne Tour: Spring Recipes: A Collection of Common-Sense SolutionsSpringOne Tour: Spring Recipes: A Collection of Common-Sense Solutions
SpringOne Tour: Spring Recipes: A Collection of Common-Sense SolutionsVMware Tanzu
 

More from VMware Tanzu (20)

What AI Means For Your Product Strategy And What To Do About It
What AI Means For Your Product Strategy And What To Do About ItWhat AI Means For Your Product Strategy And What To Do About It
What AI Means For Your Product Strategy And What To Do About It
 
Make the Right Thing the Obvious Thing at Cardinal Health 2023
Make the Right Thing the Obvious Thing at Cardinal Health 2023Make the Right Thing the Obvious Thing at Cardinal Health 2023
Make the Right Thing the Obvious Thing at Cardinal Health 2023
 
Enhancing DevEx and Simplifying Operations at Scale
Enhancing DevEx and Simplifying Operations at ScaleEnhancing DevEx and Simplifying Operations at Scale
Enhancing DevEx and Simplifying Operations at Scale
 
Spring Update | July 2023
Spring Update | July 2023Spring Update | July 2023
Spring Update | July 2023
 
Platforms, Platform Engineering, & Platform as a Product
Platforms, Platform Engineering, & Platform as a ProductPlatforms, Platform Engineering, & Platform as a Product
Platforms, Platform Engineering, & Platform as a Product
 
Building Cloud Ready Apps
Building Cloud Ready AppsBuilding Cloud Ready Apps
Building Cloud Ready Apps
 
Spring Boot 3 And Beyond
Spring Boot 3 And BeyondSpring Boot 3 And Beyond
Spring Boot 3 And Beyond
 
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdfSpring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
 
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
 
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
 
tanzu_developer_connect.pptx
tanzu_developer_connect.pptxtanzu_developer_connect.pptx
tanzu_developer_connect.pptx
 
Tanzu Virtual Developer Connect Workshop - French
Tanzu Virtual Developer Connect Workshop - FrenchTanzu Virtual Developer Connect Workshop - French
Tanzu Virtual Developer Connect Workshop - French
 
Tanzu Developer Connect Workshop - English
Tanzu Developer Connect Workshop - EnglishTanzu Developer Connect Workshop - English
Tanzu Developer Connect Workshop - English
 
Virtual Developer Connect Workshop - English
Virtual Developer Connect Workshop - EnglishVirtual Developer Connect Workshop - English
Virtual Developer Connect Workshop - English
 
Tanzu Developer Connect - French
Tanzu Developer Connect - FrenchTanzu Developer Connect - French
Tanzu Developer Connect - French
 
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
 
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring BootSpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
 
SpringOne Tour: The Influential Software Engineer
SpringOne Tour: The Influential Software EngineerSpringOne Tour: The Influential Software Engineer
SpringOne Tour: The Influential Software Engineer
 
SpringOne Tour: Domain-Driven Design: Theory vs Practice
SpringOne Tour: Domain-Driven Design: Theory vs PracticeSpringOne Tour: Domain-Driven Design: Theory vs Practice
SpringOne Tour: Domain-Driven Design: Theory vs Practice
 
SpringOne Tour: Spring Recipes: A Collection of Common-Sense Solutions
SpringOne Tour: Spring Recipes: A Collection of Common-Sense SolutionsSpringOne Tour: Spring Recipes: A Collection of Common-Sense Solutions
SpringOne Tour: Spring Recipes: A Collection of Common-Sense Solutions
 

Recently uploaded

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
 
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
 
Effectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorEffectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorTier1 app
 
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptxThe Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptxRTS corp
 
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...Bert Jan Schrijver
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZABSYZ Inc
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfDrew Moseley
 
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonLeveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonApplitools
 
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...OnePlan Solutions
 
SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?Alexandre Beguel
 
Osi security architecture in network.pptx
Osi security architecture in network.pptxOsi security architecture in network.pptx
Osi security architecture in network.pptxVinzoCenzo
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsChristian Birchler
 
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...OnePlan Solutions
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLionel Briand
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Rob Geurden
 
Introduction to Firebase Workshop Slides
Introduction to Firebase Workshop SlidesIntroduction to Firebase Workshop Slides
Introduction to Firebase Workshop Slidesvaideheekore1
 
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingOpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingShane Coughlan
 
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfkalichargn70th171
 
Not a Kubernetes fan? The state of PaaS in 2024
Not a Kubernetes fan? The state of PaaS in 2024Not a Kubernetes fan? The state of PaaS in 2024
Not a Kubernetes fan? The state of PaaS in 2024Anthony Dahanne
 
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilitiesAmazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilitiesKrzysztofKkol1
 

Recently uploaded (20)

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...
 
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...
 
Effectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorEffectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryError
 
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptxThe Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
 
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZ
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdf
 
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonLeveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
 
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
 
SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?
 
Osi security architecture in network.pptx
Osi security architecture in network.pptxOsi security architecture in network.pptx
Osi security architecture in network.pptx
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
 
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and Repair
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...
 
Introduction to Firebase Workshop Slides
Introduction to Firebase Workshop SlidesIntroduction to Firebase Workshop Slides
Introduction to Firebase Workshop Slides
 
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingOpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
 
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
 
Not a Kubernetes fan? The state of PaaS in 2024
Not a Kubernetes fan? The state of PaaS in 2024Not a Kubernetes fan? The state of PaaS in 2024
Not a Kubernetes fan? The state of PaaS in 2024
 
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilitiesAmazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
 

Pivotal Cloud Platform Deep Dive on Custom Buildpacks and Data Services

  • 1. Pivotal Cloud Platform Deep Dive Part 3: Custom Buildpacks and Data Services Pivotal CF Team © Copyright 2014 Pivotal. All rights reserved. 1
  • 2. Buildpacks and Services • Buildpacks • Java Buildpack Deep Dive • User-Provided Services • Managed Services • DEMO: Deploy and Test HaaSh (HashMap as a Service) © Copyright 2014 Pivotal. All rights reserved. 2
  • 3. REVIEW: Deploying Applications to Cloud Foundry Runtime © Copyright 2014 Pivotal. All rights reserved. 3 Router Blobstore DB Cloud Controller Service Broker Node(s) DEA DEA DEA DEA Runtime push app + app MD 1. Upload bits/metadata 2. Bind services 3. Stage app 4. Deploy app SC + =
  • 4. REVIEW: Stage an App Blobstore DB © Copyright 2014 Pivotal. All rights reserved. 4 Router Cloud Controller DEA Runtime Detect Compile Upload No System Buildpacks + = Yes
  • 5. Staging and Buildpacks Buildpacks are responsible for preparing the machine image for an application. Buildpack }Droplet © Copyright 2014 Pivotal. All rights reserved. 5 Application Container Runtime Libraries Operating System DEA
  • 6. Types of Buildpacks System – deployed with Cloud Foundry Admin – uploaded to Cloud Foundry BYO – specified at app push © Copyright 2014 Pivotal. All rights reserved. 6
  • 7. Managing Admin Buildpacks © Copyright 2014 Pivotal. All rights reserved. 7 ! $ cf buildpacks $ cf create-buildpack <name> <path to bits> <position> $ cf update-buildpack <name> [-p <path>] [-i <position>] $ cf delete-buildpack <name>
  • 8. © Copyright 2014 Pivotal. All rights reserved. $ cf push -b <url> ! The buildpack is referenced by a Git URL ! $ cf push -b <name> ! The admin buildpack is referenced by name Buildpack selection $ cf push ! The application is tested against admin then system buildpacks. 8
  • 9. Tested Buildpacks https://github.com/cloudfoundry-community/cf-docs-contrib/wiki/Buildpacks © Copyright 2014 Pivotal. All rights reserved. 9 Containers Languages Haskell
  • 10. Buildpack API /bin/detect app_directory Inspect app bits to determine buildpack applicability /bin/compile app_directory cache_directory Download and install runtime, container, packages, libraries; install app bits as necessary /bin/release app_directory Build app start command © Copyright 2014 Pivotal. All rights reserved. 10
  • 11. /bin/detect Inspect the app bits to determine if the buildpack knows how to handle the application Gemfile exists package.json exists setup.py exists On match, return exit code 0 and write to STDOUT a string identifying the buildpack (often just the name of the language supported) © Copyright 2014 Pivotal. All rights reserved. 11
  • 12. /bin/detect $ cf push © Copyright 2014 Pivotal. All rights reserved. ! DEA iterates over admin and system buildpacks calling /bin/detect scripts until one of them returns exit code 0 12 $ cf push -b <url|name> ! /bin/detect is not called
  • 13. /bin/compile Download and install any necessary runtime (Java VM, Ruby interpreter, JavaScript interpreter) container (web server) support libraries, packages, modules (Ruby gems, NPM packages) … and then installing the app bits into the runtime or container © Copyright 2014 Pivotal. All rights reserved. 13
  • 14. /bin/compile Caching Runtime, container, and support packages are downloaded from sources external to Cloud Foundry ! DEA provides a location for storing downloaded artifacts to speed subsequent staging operations © Copyright 2014 Pivotal. All rights reserved. 14
  • 15. /bin/release Build a YAML-formatted hash with three possible keys © Copyright 2014 Pivotal. All rights reserved. 15 addons: [] config_vars: {} default_process_types: web: <start command> On Cloud Foundry, currently only the web: value is used to get the start command for the app
  • 16. Buildpacks and Services • Buildpacks • Java Buildpack Deep Dive • User-Provided Services • Managed Services • DEMO: Deploy and Test HaaSh (HashMap as a Service) © Copyright 2014 Pivotal. All rights reserved. 16
  • 17. Java Buildpack Supports a variety of JVM languages, containers, and frameworks with a modular, configurable, and extensible design © Copyright 2014 Pivotal. All rights reserved. 17
  • 18. Java Buildpack Concepts © Copyright 2014 Pivotal. All rights reserved. 18 Containers ! How an application is run Frameworks ! Additional application transformations JREs Java Runtimes
  • 19. Java Buildpack Concepts © Copyright 2014 Pivotal. All rights reserved. 19 Containers Frameworks JREs OpenJDK Java main() Tomcat Groovy Spring Boot CLI Play Spring config Play config Play JPA config New Relic agent AppDynamics agent
  • 20. Container Detection Criteria © Copyright 2014 Pivotal. All rights reserved. 20 Java main() META-INF/MANIFEST.MF exists with Main-class attribute set Tomcat WEB-INF directory exists Groovy .groovy file with a main() method, or .groovy file with no classes, or .groovy file with a shebang (#!) declaration Spring Boot CLI one or more POGO .groovy files with no main() method, and no WEB-INF directory Spring Boot Embedded start script and lib/spring-boot-*.jar exist Play start script and lib/play.play_*.jar exist Ratpack start script and ratpack-core-*.jar exist Choose zero or one
  • 21. Framework Detection Criteria © Copyright 2014 Pivotal. All rights reserved. 21 Spring spring-core*.jar exists Play config Play application detected Play JPA config play-java-jpa plugin exists in app Spring Insight Insight service bound to app New Relic agent New Relic service bound to app AppDynamics agent AppDynamics service bound to app Choose all that apply
  • 22. /bin/compile Output Example © Copyright 2014 Pivotal. All rights reserved. DEA ! ! Buildpack ! ! DEA -----> Downloaded app package (18M) -----> Downloading OpenJDK 1.7.0_21 JRE (17.5s) Expanding JRE to .java (1.4s) -----> Downloading Auto Reconfiguration 0.7.1 (1.4s) Modifying /WEB-INF/web.xml for Auto Reconfig -----> Downloading Tomcat 7.0.42 (3.5s) Expanding Tomcat to .tomcat (0.2s) Downloading Buildpack Tomcat Support 1.1.1 (0.0s) -----> Uploading droplet (55M) 22
  • 23. See What’s Going On $ cf files <app-name> app ! .buildpack-diagnostics/ .java/ .lib/ .tomcat/ META-INF/ WEB-INF/ assets/ © Copyright 2014 Pivotal. All rights reserved. 23 Buildpack-installed runtime Buildpack-installed support libraries Buildpack-installed container ! DEA-downloaded application files
  • 24. See What’s Going On $ cf files <app-name> staging_info.yml ! detected_buildpack: openjdk=1.7.0_45 tomcat=7.0.47 spring-auto-reconfiguration=0.7.2 tomcat-buildpack-support=1.1.1 start_command: JAVA_HOME=.java JAVA_OPTS="-Dhttp.port=$PORT -Djava.io.tmpdir=$TMPDIR -XX:MaxPermSize=52428K -XX:OnOutOfMemoryError=./.buildpack-diagnostics/killjava -Xmx384M -Xss1M" .tomcat/bin/catalina.sh run © Copyright 2014 Pivotal. All rights reserved. 24
  • 25. Customization Two ways to customize the Java buildpack ! Configure artifacts used by standard JREs, Containers, and Frameworks ! Extend the buildpack with your own JREs, Containers, and Frameworks ! Customization is done by forking the buildpack © Copyright 2014 Pivotal. All rights reserved. 25
  • 26. Customization by Configuration Configuration files in java-buildpack/config determine the behavior of a JRE, Container, or Framework © Copyright 2014 Pivotal. All rights reserved. 26 # http://download.pivotal.io.s3.amazonaws.com/openjdk/lucid/x86_64/index.yml --- 1.6.0_27: http://download.pivotal.io.s3.amazonaws.com/openjdk/lucid/x86_64/openjdk-1.6.0_27.tar.gz 1.7.0_21: http://download.pivotal.io.s3.amazonaws.com/openjdk/lucid/x86_64/openjdk-1.7.0_21.tar.gz 1.7.0_25: http://download.pivotal.io.s3.amazonaws.com/openjdk/lucid/x86_64/openjdk-1.7.0_25.tar.gz 1.8.0_M6: http://download.pivotal.io.s3.amazonaws.com/openjdk/lucid/x86_64/openjdk-1.8.0_M6.tar.gz 1.8.0_M7: http://download.pivotal.io.s3.amazonaws.com/openjdk/lucid/x86_64/openjdk-1.8.0_M7.tar.gz # cloudfoundry/java-buildpack/config/openjdk.yml --- version: 1.7.0_+! repository_root: "http://download.pivotal.io.s3.amazonaws.com/openjdk/{platform}/{architecture}" memory_sizes: memory_heuristics: heap: 0.75 permgen: 0.1 stack: 0.05 native: 0.1
  • 27. Customization by Extension Implement a JRE, Container, or Framework support class as one Ruby file in the appropriate directory ! ! © Copyright 2014 Pivotal. All rights reserved. ! ! (with additional support classes as necessary) 27 cloudfoundry/java-buildpack/lib/java_buildpack jre container framework
  • 28. Customization by Extension Support class types have similar interfaces, following the buildpack scripts naming conventions © Copyright 2014 Pivotal. All rights reserved. 28 # initialize the support class with platform information provided in context # context includes app_dir, lib_dir, environment, java_home, java_opts, # vcap_application, vcap_services def initialize(context) ! # return a String or an Array<String> that uniquely identifies the container/framework/jre, # or nil def detect ! # download and unpack the container/framework/jre, and transform the application as necessary def compile ! # create and return the command to run the application with (containers) or add # options to context[:java_opts] (frameworks) def release
  • 29. Customization by Extension Add new support class to config/components.yml © Copyright 2014 Pivotal. All rights reserved. 29 --- containers: - "JavaBuildpack::Container::Groovy" - "JavaBuildpack::Container::JavaMain" - "JavaBuildpack::Container::SpringBootCLI" - "JavaBuildpack::Container::Tomcat" - "JavaBuildpack::Container::PlayFramework" jres: - "JavaBuildpack::Jre::OpenJdk" frameworks: - "JavaBuildpack::Framework::AppDynamicsAgent" - "JavaBuildpack::Framework::JavaOpts" - "JavaBuildpack::Framework::NewRelicAgent" - "JavaBuildpack::Framework::PlayAutoReconfiguration" - "JavaBuildpack::Framework::PlayJpaPlugin" - "JavaBuildpack::Framework::SpringAutoReconfiguration"
  • 30. Customization Much more information and documentation included in the GitHub repository ! https://github.com/cloudfoundry/java-buildpack © Copyright 2014 Pivotal. All rights reserved. 30
  • 31. Buildpacks and Services • Buildpacks • Java Buildpack Deep Dive • User-Provided Services • Managed Services • DEMO: Deploy and Test HaaSh (HashMap as a Service) © Copyright 2014 Pivotal. All rights reserved. 31
  • 32. Use Cases: User Provided Service Instances • Typically legacy or existing instances of a service (databases, queues, mail, etc) where applications connect to the same instance • Credential passing when you need to inject the same credential set into an application © Copyright 2014 Pivotal. All rights reserved. 32
  • 33. $ cf cups FAILED Incorrect Usage. ! NAME: create-user-provided-service - Make a user-provided service instance available to cf apps ! ALIAS: cups ! USAGE: cf create-user-provided-service SERVICE_INSTANCE [-p PARAMETERS] [-l SYSLOG-DRAIN-URL] ! Pass comma separated parameter names to enable interactive mode: cf create-user-provided-service SERVICE_INSTANCE -p "comma, separated, parameter, names" ! Pass parameters as JSON to create a service non-interactively: cf create-user-provided-service SERVICE_INSTANCE -p '{"name":"value","name":"value"}' ! EXAMPLE: cf create-user-provided-service oracle-db-mine -p "host, port, dbname, username, password" cf create-user-provided-service oracle-db-mine -p '{"username":"admin","password":"pa55woRD"}' cf create-user-provided-service my-drain-service -l syslog://example.com !! OPTIONS: -p Parameters -l Syslog Drain Url © Copyright 2014 Pivotal. All rights reserved. 33
  • 34. Buildpacks and Services • Buildpacks • Java Buildpack Deep Dive • User-Provided Services • Managed Services • Choose Your Own Lab: • Customize Java Buildpack • Deploy and Test HaaSh (HashMap as a Service) © Copyright 2014 Pivotal. All rights reserved. 34
  • 35. Managed Services Managed Services are integrated with Cloud Foundry by implementing a documented API for which the cloud controller is the client Service Broker is a component which implements the required API. • Service brokers advertise a catalog of service offerings and service plans to Cloud Foundry, and receive calls from the Cloud Controller for five functions: fetch catalog, create, bind, unbind, and delete. © Copyright 2014 Pivotal. All rights reserved. 35
  • 36. REVIEW: Create and Bind Services © Copyright 2014 Pivotal. All rights reserved. DB Router 36 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)
  • 37. © Copyright 2014 Pivotal. All rights reserved. 37
  • 38. Server Broker API • GET /v2/catalog – List services and plans available from this broker. • PUT /v2/service_instances/:id – Create a new service instance. • PUT /v2/service_instances/:instance_id/service_bindings/:id – Create a new binding to a service instance. • DELETE /v2/service_instances/:instance_id/service_bindings/:id – Unbind from a service instance. • DELETE /v2/service_instances/:id – Delete a service instance. © Copyright 2014 Pivotal. All rights reserved. 38
  • 39. Server Broker Registration • Make the service broker known to the Cloud Controller – cf create service-broker <broker name> <username> <password> <broker base URI> – Broker should ONLY allow access to those requestors it shared its credential with (Basic Auth) – See: http://docs.gopivotal.com/pivotalcf/services/managing-service-brokers.html#register-broker • Make ‘plans’ accessible to users in a specific org/space – Somewhat cumbersome: need to “hand parse” JSON to find service plan UUID as registered with the CC – See: http://docs.gopivotal.com/pivotalcf/services/access-control.html#make-plans-public ! Need admin creds/role in order to introduce a service broker to the Cloud Controller! © Copyright 2014 Pivotal. All rights reserved. 39
  • 40. Service Broker Implementation • Service implementation is up to the service provider/developer. • Cloud Foundry only requires that the service provider implement the service broker API. • A broker can be implemented as a separate application, or by adding the required http endpoints to an existing service. © Copyright 2014 Pivotal. All rights reserved. 40
  • 41. Service Broker Implementation • Best Practice: Each binding is represented by its own credentials => – T=1: create service instance ▪ Neither App-1 or App-2 has access to the service instance – T=2: bind App-1 to service instance ▪ Only App-1 can access the service instance – T=3: bind App-2 to service instance ▪ Both App-1 and App-2 have access to the service instance – T=4 unbind App-1 from service instance ▪ Only App-2 can access the service instance © Copyright 2014 Pivotal. All rights reserved. 41
  • 42. Service Instance Provisioning Examples The result of provisioning varies by service type, although there are a few common actions that work for many services. For a MySQL service, provisioning could result in: • An empty dedicated mysqld process running on its own VM. • An empty dedicated mysqld process running in a lightweight container on a shared VM. • An empty dedicated mysqld process running on a shared VM. • An empty dedicated database, on an existing shared running mysqld. • A database with business schema already there. • A copy of a full database, for example a QA database that is a copy of the production database. • For non-data services, provisioning could just mean getting an account on an existing system. © Copyright 2014 Pivotal. All rights reserved. 42
  • 43. Service Broker Deployment Models Because Cloud Foundry only requires that a service implements the broker API in order to be available to Cloud Foundry end users, many deployment models are possible. The following are examples of valid deployment models: • Entire service (service backend + broker) packaged and deployed by BOSH alongside Cloud Broker packaged and deployed by BOSH alongside Cloud Foundry, rest of the service deployed and maintained by other means • Broker (and optionally service) pushed as an application to Cloud Foundry user space Foundry (this is the approach we’ll take in the lab…) • Entire service, including broker, deployed and maintained outside of Cloud Foundry by other means © Copyright 2014 Pivotal. All rights reserved. 43
  • 44. Resources • Service Broker API: http://docs.gopivotal.com/pivotalcf/services/ api.html • Managing Service Brokers: http://docs.gopivotal.com/pivotalcf/ services/managing-service-brokers.html • Binding Credentials: http://docs.gopivotal.com/pivotalcf/services/ binding-credentials.html • Tiny sample application: https://github.com/cloudfoundry-samples/ spring-hello-env © Copyright 2014 Pivotal. All rights reserved. 44
  • 45. Buildpacks and Services • Buildpacks • Java Buildpack Deep Dive • User-Provided Services • Managed Services • DEMO: Deploy and Test HaaSh (HashMap as a Service) • https://github.com/cf-platform-eng/cf-workshop-sb-module © Copyright 2014 Pivotal. All rights reserved. 45
  • 46. THANK YOU! Pivotal CF Team © Copyright 2014 Pivotal. All rights reserved. 46
  • 47. A NEW PLATFORM FOR A NEW ERA