SlideShare a Scribd company logo
• Tom Collings
Cloud Architect, ECSTeam
@tomcollings303
tcollings@ecsteam.com
• Dustin Ruehle
Cloud Architect, ECSTeam
@dustinruehle
druehle@ecsteam.com
Custom Tile
Generation in PCF
What are you going to see?
What are you going to see?
What are you going to see?
Feedback control– Memory based auto-scaling
memory-based-autoscaler nozzle
firehose
Pivotal
Cloud
Foundry
misbehaving
memory app
Feedback control– Memory based auto-scaling
memory-based-autoscaler nozzle
firehose
Pivotal
Cloud
Foundry
misbehaving
memory app
Feedback control– Memory based auto-scaling
memory-based-autoscaler nozzle
firehose
Pivotal
Cloud
Foundry
misbehaving
memory app
Feedback control– Memory based auto-scaling
memory-based-autoscaler nozzle
firehose
Pivotal
Cloud
Foundry
misbehaving
memory app
What does this nozzle app do?
Turn app into service broker
Turn app into service broker
Step 1: Turn into a Service Broker
• Had to implement the five endpoints
• Need a dashboard to start/stop
scaling, set parameters
• Need endpoint in the app to
provide/update that data
• Need a way to link to that
dashboard from PCF ecosystem
Step 1: Dashboard
Step 1: Attaching to Apps Console
• Return a specific field in the JSON on the create service instance
method:
{“dashboard_url”:”http://memory-based-autoscaler-web.apps.labb.ecsteam.io/{service
instance guid}/{app name}”}
• This links the dashboard to the apps console “Manage” link
• With single-tenant, app failures not
a problem
• With multi-tenant, need to protect
against app failures, updates, etc…
• My-sql database
• Need to create tables if they don’t
exist
• Initialize app based on state in db
• New dependency for broker
Step 1: Persistence
So why not just a Service Broker?
Tile Definition
• .pivotal file
• A zip containing the executables and bosh manifest
• Self-Contained functionality
• Can include
• Bosh-managed VMs
• Applications
• Service brokers
• Buildpacks
• Combination of all
• Managed through Ops Manager console
• Configured, deployed, upgraded, etc…
When to Develop a Custom Tile
• Need to provision services for the system
• Self-contained custom functionality
• May have a different lifecycle than applications
• May have different use permissions than other applications
• Integrate third-party functionality
• Databases, message brokers, etc…
• New VMs inside the foundation
• bosh can manage these
Current method of generating a tile
• Generate a bosh manifest
• Create a product template
• Add lifecycle errands (more bosh)
• Package up applications, manifests, etc… into .pivotal tile
• (optional) migration file
• bosh
• Very manual, difficult to automate
• No syntax checking, have to deploy
to find errors
Issues with Current Method
Learning curves of popular technologies
Skill
Time
Java Spring
Spring Boot Bosh
Tile-Generator
Step 2: begin tile generation
• Install tile utility
• pip install –r requirements.txt
• May need to install pip
• bosh cli is also a requirement
• tile init – create shell tile.yml file
• Modify tile.yml
Step 2: Header
# The high-level description of your tile.
# Replace these properties with real values.
#
name: memory-based-autoscaler # By convention lowercase with dashes
icon_file: resources/icon.jpeg
label: Memory Based Autoscaler
description: Performs an automatic scaling of apps based on the memory usage of a bound
application.
Step 2: Orgs and Spaces
org: p-scaling-org
org_quota: 4096
space: p-scaling-space
apply_open_security_group: true
Step 2: packages
packages:
- name: memory-based-autoscaler
type: app-broker
manifest:
path: memory-based-autoscaler.zip
command: memory-based-autoscaler
memory: 512M
buildpack: https://github.com/cloudfoundry/go-buildpack.git
needs_cf_credentials: true
auto_services:
- name: p-mysql
plan: 100mb-dev
enable_global_access_to_plans: true
Packages notes
• Several types of packages are available:
• app
• app-broker
• external-broker
• buildpack
• docker-bosh
• docker-app
• docker-app-broker
• blob
• bosh-release
Step 2: stemcell
stemcell_criteria:
os: ubuntu-trusty
requires_cpi: false
version: '3232'
Step 2: properties
properties:
- name: example_property
type: string
default: specify a value
label: Label for the field on the GUI
description: Longer description of the field's purpose
Step 2: forms
forms:
- name: security
label: Security
description: Connection Security Parameters
properties:
- name: skip_ssl_validation
type: boolean
default: false
label: Skip SSL Validation for self-signed certificates when connecting to the firehose
description: Skip SSL Validation for self-signed certificates when connecting to the
firehose
Step 2: dependencies
requires_product_versions:
- name: p-mysql
version: '~> 1.7'
Step 3: build the tile
tile build
• Creates the .pivotal file
• Updates tile-version.yml
Step 4: Upload, configure, and apply changes
• What happens:
• Org and space get created
• New admin user gets created
• Application gets deployed
• p-mysql service gets created and bound to the app
• App is registered as a service broker and enabled for all orgs, putting it in the
marketplace
• Environment variables (including admin user/password) are bound to the
application
• Now apps can bind to instantiated services
Demo – Create a tile
Demo – Use the tile
Where to go for more info
• Our sample
https://github.com/ECSTeam/memory-based-autoscaler
https://github.com/ECSTeam/memoryautoscaler-web
• Tile Generator
https://github.com/cf-platform-eng/tile-generator
• Pivotal Ecosystem
https://network.pivotal.io/ecosystem
Questions?

More Related Content

PDF
Custom Tile Generation in PCF
PDF
Preparing your dockerised application for production deployment
PDF
How to Package & Deploy Microservices
PDF
HOW TO DRONE.IO IN CI/CD WORLD
PDF
Docker Meetup Rosenheim: Package & deploy Microservices
PPT
IBM WebSphere Application Server traditional and Docker
PDF
Git and Github - a 90 Minute interactive workshop
PDF
The Dark Side of Single Page Applications
Custom Tile Generation in PCF
Preparing your dockerised application for production deployment
How to Package & Deploy Microservices
HOW TO DRONE.IO IN CI/CD WORLD
Docker Meetup Rosenheim: Package & deploy Microservices
IBM WebSphere Application Server traditional and Docker
Git and Github - a 90 Minute interactive workshop
The Dark Side of Single Page Applications

What's hot (19)

PPTX
A (XPages) developers guide to Cloudant - MeetIT
PPTX
Altoros Cloud Foundry Training: hands-on workshop for DevOps, Architects and ...
KEY
20120317 CloudFoundry #pyfes
PPTX
Era of server less computing
PPTX
Putting the 'ctions' in Azure Fun-ctions
PDF
AEM - A Collection of developer friendly tools
PDF
DCSF 19 Modernizing Insurance with Docker Enterprise: The Physicians Mutual ...
PPTX
Moving wf applications to the cloud
PDF
Node.js to the rescue
PDF
One Neos CMS - many websites
PPTX
Implementation of the Continuous Integration based on Atlassian Bamboo
PPTX
Docker With Asp.net Core
PPTX
Serverless Summit India 2017: Fission
PPTX
Jenkins as a Service - Code all the way down
PDF
Iguazú: A Long-Running Job Scheduler using Docker and Mesos
PPTX
Debugging the Web with Fiddler
PPTX
CI/CD for Asp.net core apps using Docker
PPTX
Containers, Serverless and Functions in a nutshell
PDF
Ansible for Drupal infrastructure and deployments
A (XPages) developers guide to Cloudant - MeetIT
Altoros Cloud Foundry Training: hands-on workshop for DevOps, Architects and ...
20120317 CloudFoundry #pyfes
Era of server less computing
Putting the 'ctions' in Azure Fun-ctions
AEM - A Collection of developer friendly tools
DCSF 19 Modernizing Insurance with Docker Enterprise: The Physicians Mutual ...
Moving wf applications to the cloud
Node.js to the rescue
One Neos CMS - many websites
Implementation of the Continuous Integration based on Atlassian Bamboo
Docker With Asp.net Core
Serverless Summit India 2017: Fission
Jenkins as a Service - Code all the way down
Iguazú: A Long-Running Job Scheduler using Docker and Mesos
Debugging the Web with Fiddler
CI/CD for Asp.net core apps using Docker
Containers, Serverless and Functions in a nutshell
Ansible for Drupal infrastructure and deployments
Ad

Similar to Custom Tile Generation in PCF (20)

PDF
Introduction into Cloud Foundry and Bosh | anynines
PDF
Rami Sayar - Node microservices with Docker
PPTX
Cloud Foundry a Developer's Perspective
PPTX
Microservices with Docker
PDF
SaltConf14 - Eric johnson, Google - Orchestrating Google Compute Engine with ...
PDF
Microservices. Microservices everywhere! (At OSCON 2015)
PPTX
GCP-design.pptx
PPTX
Workbooks_Testings_Designs_&_Process.pptx
PPTX
Cf summit2014 roadmap
PPTX
Ibm cloud nativenetflixossfinal
PPTX
Netflix0SS Services on Docker
PDF
What they don't tell you about micro-services
PPTX
Cloud Foundry Vancouver Meetup July 2016
PDF
A Pluggable Autoscaling System @ UCC
PPT
Docker Service Broker for Cloud Foundry
PDF
Develop and Deploy Cloud-Native Apps as Resilient Microservice Architectures
PPTX
Cloud Foundry Roadmap (Cloud Foundry Summit 2014)
PPTX
Microservices approach for Websphere commerce
PPTX
Docker and Microservice
PDF
introduction to micro services
Introduction into Cloud Foundry and Bosh | anynines
Rami Sayar - Node microservices with Docker
Cloud Foundry a Developer's Perspective
Microservices with Docker
SaltConf14 - Eric johnson, Google - Orchestrating Google Compute Engine with ...
Microservices. Microservices everywhere! (At OSCON 2015)
GCP-design.pptx
Workbooks_Testings_Designs_&_Process.pptx
Cf summit2014 roadmap
Ibm cloud nativenetflixossfinal
Netflix0SS Services on Docker
What they don't tell you about micro-services
Cloud Foundry Vancouver Meetup July 2016
A Pluggable Autoscaling System @ UCC
Docker Service Broker for Cloud Foundry
Develop and Deploy Cloud-Native Apps as Resilient Microservice Architectures
Cloud Foundry Roadmap (Cloud Foundry Summit 2014)
Microservices approach for Websphere commerce
Docker and Microservice
introduction to micro services
Ad

More from VMware Tanzu (20)

PDF
Spring into AI presented by Dan Vega 5/14
PDF
What AI Means For Your Product Strategy And What To Do About It
PDF
Make the Right Thing the Obvious Thing at Cardinal Health 2023
PPTX
Enhancing DevEx and Simplifying Operations at Scale
PDF
Spring Update | July 2023
PPTX
Platforms, Platform Engineering, & Platform as a Product
PPTX
Building Cloud Ready Apps
PDF
Spring Boot 3 And Beyond
PDF
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
PDF
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
PDF
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
PPTX
tanzu_developer_connect.pptx
PDF
Tanzu Virtual Developer Connect Workshop - French
PDF
Tanzu Developer Connect Workshop - English
PDF
Virtual Developer Connect Workshop - English
PDF
Tanzu Developer Connect - French
PDF
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
PDF
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
PDF
SpringOne Tour: The Influential Software Engineer
PDF
SpringOne Tour: Domain-Driven Design: Theory vs Practice
Spring into AI presented by Dan Vega 5/14
What AI Means For Your Product Strategy And What To Do About It
Make the Right Thing the Obvious Thing at Cardinal Health 2023
Enhancing DevEx and Simplifying Operations at Scale
Spring Update | July 2023
Platforms, Platform Engineering, & Platform as a Product
Building Cloud Ready Apps
Spring Boot 3 And Beyond
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 | Seattle 2023
tanzu_developer_connect.pptx
Tanzu Virtual Developer Connect Workshop - French
Tanzu Developer Connect Workshop - English
Virtual Developer Connect Workshop - English
Tanzu Developer Connect - French
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: The Influential Software Engineer
SpringOne Tour: Domain-Driven Design: Theory vs Practice

Recently uploaded (20)

PPTX
Machine Learning_overview_presentation.pptx
PPTX
Tartificialntelligence_presentation.pptx
PDF
Getting Started with Data Integration: FME Form 101
PDF
cuic standard and advanced reporting.pdf
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PPTX
A Presentation on Artificial Intelligence
PDF
A comparative analysis of optical character recognition models for extracting...
PPTX
SOPHOS-XG Firewall Administrator PPT.pptx
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Approach and Philosophy of On baking technology
Machine Learning_overview_presentation.pptx
Tartificialntelligence_presentation.pptx
Getting Started with Data Integration: FME Form 101
cuic standard and advanced reporting.pdf
Advanced methodologies resolving dimensionality complications for autism neur...
Dropbox Q2 2025 Financial Results & Investor Presentation
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
MYSQL Presentation for SQL database connectivity
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Reach Out and Touch Someone: Haptics and Empathic Computing
Group 1 Presentation -Planning and Decision Making .pptx
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
A Presentation on Artificial Intelligence
A comparative analysis of optical character recognition models for extracting...
SOPHOS-XG Firewall Administrator PPT.pptx
The Rise and Fall of 3GPP – Time for a Sabbatical?
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Approach and Philosophy of On baking technology

Custom Tile Generation in PCF

  • 1. • Tom Collings Cloud Architect, ECSTeam @tomcollings303 tcollings@ecsteam.com • Dustin Ruehle Cloud Architect, ECSTeam @dustinruehle druehle@ecsteam.com Custom Tile Generation in PCF
  • 2. What are you going to see?
  • 3. What are you going to see?
  • 4. What are you going to see?
  • 5. Feedback control– Memory based auto-scaling memory-based-autoscaler nozzle firehose Pivotal Cloud Foundry misbehaving memory app
  • 6. Feedback control– Memory based auto-scaling memory-based-autoscaler nozzle firehose Pivotal Cloud Foundry misbehaving memory app
  • 7. Feedback control– Memory based auto-scaling memory-based-autoscaler nozzle firehose Pivotal Cloud Foundry misbehaving memory app
  • 8. Feedback control– Memory based auto-scaling memory-based-autoscaler nozzle firehose Pivotal Cloud Foundry misbehaving memory app
  • 9. What does this nozzle app do?
  • 10. Turn app into service broker
  • 11. Turn app into service broker
  • 12. Step 1: Turn into a Service Broker • Had to implement the five endpoints
  • 13. • Need a dashboard to start/stop scaling, set parameters • Need endpoint in the app to provide/update that data • Need a way to link to that dashboard from PCF ecosystem Step 1: Dashboard
  • 14. Step 1: Attaching to Apps Console • Return a specific field in the JSON on the create service instance method: {“dashboard_url”:”http://memory-based-autoscaler-web.apps.labb.ecsteam.io/{service instance guid}/{app name}”} • This links the dashboard to the apps console “Manage” link
  • 15. • With single-tenant, app failures not a problem • With multi-tenant, need to protect against app failures, updates, etc… • My-sql database • Need to create tables if they don’t exist • Initialize app based on state in db • New dependency for broker Step 1: Persistence
  • 16. So why not just a Service Broker?
  • 17. Tile Definition • .pivotal file • A zip containing the executables and bosh manifest • Self-Contained functionality • Can include • Bosh-managed VMs • Applications • Service brokers • Buildpacks • Combination of all • Managed through Ops Manager console • Configured, deployed, upgraded, etc…
  • 18. When to Develop a Custom Tile • Need to provision services for the system • Self-contained custom functionality • May have a different lifecycle than applications • May have different use permissions than other applications • Integrate third-party functionality • Databases, message brokers, etc… • New VMs inside the foundation • bosh can manage these
  • 19. Current method of generating a tile • Generate a bosh manifest • Create a product template • Add lifecycle errands (more bosh) • Package up applications, manifests, etc… into .pivotal tile • (optional) migration file
  • 20. • bosh • Very manual, difficult to automate • No syntax checking, have to deploy to find errors Issues with Current Method Learning curves of popular technologies Skill Time Java Spring Spring Boot Bosh
  • 22. Step 2: begin tile generation • Install tile utility • pip install –r requirements.txt • May need to install pip • bosh cli is also a requirement • tile init – create shell tile.yml file • Modify tile.yml
  • 23. Step 2: Header # The high-level description of your tile. # Replace these properties with real values. # name: memory-based-autoscaler # By convention lowercase with dashes icon_file: resources/icon.jpeg label: Memory Based Autoscaler description: Performs an automatic scaling of apps based on the memory usage of a bound application.
  • 24. Step 2: Orgs and Spaces org: p-scaling-org org_quota: 4096 space: p-scaling-space apply_open_security_group: true
  • 25. Step 2: packages packages: - name: memory-based-autoscaler type: app-broker manifest: path: memory-based-autoscaler.zip command: memory-based-autoscaler memory: 512M buildpack: https://github.com/cloudfoundry/go-buildpack.git needs_cf_credentials: true auto_services: - name: p-mysql plan: 100mb-dev enable_global_access_to_plans: true
  • 26. Packages notes • Several types of packages are available: • app • app-broker • external-broker • buildpack • docker-bosh • docker-app • docker-app-broker • blob • bosh-release
  • 27. Step 2: stemcell stemcell_criteria: os: ubuntu-trusty requires_cpi: false version: '3232'
  • 28. Step 2: properties properties: - name: example_property type: string default: specify a value label: Label for the field on the GUI description: Longer description of the field's purpose
  • 29. Step 2: forms forms: - name: security label: Security description: Connection Security Parameters properties: - name: skip_ssl_validation type: boolean default: false label: Skip SSL Validation for self-signed certificates when connecting to the firehose description: Skip SSL Validation for self-signed certificates when connecting to the firehose
  • 30. Step 2: dependencies requires_product_versions: - name: p-mysql version: '~> 1.7'
  • 31. Step 3: build the tile tile build • Creates the .pivotal file • Updates tile-version.yml
  • 32. Step 4: Upload, configure, and apply changes • What happens: • Org and space get created • New admin user gets created • Application gets deployed • p-mysql service gets created and bound to the app • App is registered as a service broker and enabled for all orgs, putting it in the marketplace • Environment variables (including admin user/password) are bound to the application • Now apps can bind to instantiated services
  • 33. Demo – Create a tile
  • 34. Demo – Use the tile
  • 35. Where to go for more info • Our sample https://github.com/ECSTeam/memory-based-autoscaler https://github.com/ECSTeam/memoryautoscaler-web • Tile Generator https://github.com/cf-platform-eng/tile-generator • Pivotal Ecosystem https://network.pivotal.io/ecosystem

Editor's Notes

  • #13: App originally was only able to scale one app at a time Store key/instance values in a map Follow the autoscaler approach with explicit start/stop scaling operations
  • #14: Old, single-tenant scaler was based on env variables for the single app
  • #17: Deployment/management of a service broker is somewhat manual Gets even more manual when dependent services (mySQL, Rabbit) are involved Lifecycle (including deletion of services) gets even trickier to manage
  • #22: New utility from pivotal https://github.com/cf-platform-eng/tile-generator Takes a lot of the manual steps out of the equation Makes pipelining easier