SlideShare a Scribd company logo
1 of 37
Download to read offline
• 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
Operational Concerns
• Its just code
• Concourse pipelines can generate and upload new versions
• In the foundation, so the foundation manages this just like other tiles
• Can attach vms/processes/apps to other offline metrics gathering tools
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

What's hot

Create or Modify Virtual system Patterns using IBM Cloud Orchestrator v2.5
Create or Modify Virtual system Patterns using  IBM Cloud Orchestrator v2.5Create or Modify Virtual system Patterns using  IBM Cloud Orchestrator v2.5
Create or Modify Virtual system Patterns using IBM Cloud Orchestrator v2.5Paulraj Pappaiah
 
Jenkins as a Service - Code all the way down
Jenkins as a Service - Code all the way downJenkins as a Service - Code all the way down
Jenkins as a Service - Code all the way downSteve Mactaggart
 
Tame your test environment with Docker Compose
Tame your test environment with Docker ComposeTame your test environment with Docker Compose
Tame your test environment with Docker ComposeKevin Bell
 
Rule jenkins with configuration as code
Rule jenkins with configuration as codeRule jenkins with configuration as code
Rule jenkins with configuration as codeChristian Rasp
 
Iguazú: A Long-Running Job Scheduler using Docker and Mesos
Iguazú: A Long-Running Job Scheduler using Docker and MesosIguazú: A Long-Running Job Scheduler using Docker and Mesos
Iguazú: A Long-Running Job Scheduler using Docker and MesosColleen Lee
 
AWS Developer Fundamentals
AWS Developer FundamentalsAWS Developer Fundamentals
AWS Developer FundamentalsJosh Padnick
 
Simple ways to deploy VM Images from Self Service UI in IBM Cloud Orchestrato...
Simple ways to deploy VM Images from Self Service UI in IBM Cloud Orchestrato...Simple ways to deploy VM Images from Self Service UI in IBM Cloud Orchestrato...
Simple ways to deploy VM Images from Self Service UI in IBM Cloud Orchestrato...Paulraj Pappaiah
 
Webcast - Making kubernetes production ready
Webcast - Making kubernetes production readyWebcast - Making kubernetes production ready
Webcast - Making kubernetes production readyApplatix
 
Continuously deploy a containerized app to “Azure App Service”
Continuously deploy a containerized app to “Azure App Service”Continuously deploy a containerized app to “Azure App Service”
Continuously deploy a containerized app to “Azure App Service”Seven Peaks Speaks
 
Michael North "Ember.js 2 - Future-friendly ambitious apps, that scale!"
Michael North "Ember.js 2 - Future-friendly ambitious apps, that scale!"Michael North "Ember.js 2 - Future-friendly ambitious apps, that scale!"
Michael North "Ember.js 2 - Future-friendly ambitious apps, that scale!"Fwdays
 
Era of server less computing
Era of server less computingEra of server less computing
Era of server less computingBaskar rao Dsn
 
WinOps Conf 2016 - Jeffrey Snover - The DevOpsification of Windows Server
WinOps Conf 2016 - Jeffrey Snover - The DevOpsification of Windows ServerWinOps Conf 2016 - Jeffrey Snover - The DevOpsification of Windows Server
WinOps Conf 2016 - Jeffrey Snover - The DevOpsification of Windows ServerWinOps Conf
 
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...Edureka!
 
All the troubles you get into when setting up a production ready Kubernetes c...
All the troubles you get into when setting up a production ready Kubernetes c...All the troubles you get into when setting up a production ready Kubernetes c...
All the troubles you get into when setting up a production ready Kubernetes c...Jimmy Lu
 
Chef Actions: Delightful near real-time activity tracking!
Chef Actions: Delightful near real-time activity tracking!Chef Actions: Delightful near real-time activity tracking!
Chef Actions: Delightful near real-time activity tracking!James Casey
 
Packing It In: Images, Containers, and Config Management
Packing It In: Images, Containers, and Config ManagementPacking It In: Images, Containers, and Config Management
Packing It In: Images, Containers, and Config ManagementMichael Goetz
 
Making maven and grunt play nice
Making maven and grunt play niceMaking maven and grunt play nice
Making maven and grunt play niceZoran Nikolovski
 
PowerShell for SharePoint Developers
PowerShell for SharePoint DevelopersPowerShell for SharePoint Developers
PowerShell for SharePoint DevelopersBoulos Dib
 
Configuration As Code - Adoption of the Job DSL Plugin at Netflix
Configuration As Code - Adoption of the Job DSL Plugin at NetflixConfiguration As Code - Adoption of the Job DSL Plugin at Netflix
Configuration As Code - Adoption of the Job DSL Plugin at NetflixJustin Ryan
 

What's hot (20)

Create or Modify Virtual system Patterns using IBM Cloud Orchestrator v2.5
Create or Modify Virtual system Patterns using  IBM Cloud Orchestrator v2.5Create or Modify Virtual system Patterns using  IBM Cloud Orchestrator v2.5
Create or Modify Virtual system Patterns using IBM Cloud Orchestrator v2.5
 
Jenkins as a Service - Code all the way down
Jenkins as a Service - Code all the way downJenkins as a Service - Code all the way down
Jenkins as a Service - Code all the way down
 
Tame your test environment with Docker Compose
Tame your test environment with Docker ComposeTame your test environment with Docker Compose
Tame your test environment with Docker Compose
 
Rule jenkins with configuration as code
Rule jenkins with configuration as codeRule jenkins with configuration as code
Rule jenkins with configuration as code
 
Iguazú: A Long-Running Job Scheduler using Docker and Mesos
Iguazú: A Long-Running Job Scheduler using Docker and MesosIguazú: A Long-Running Job Scheduler using Docker and Mesos
Iguazú: A Long-Running Job Scheduler using Docker and Mesos
 
AWS Developer Fundamentals
AWS Developer FundamentalsAWS Developer Fundamentals
AWS Developer Fundamentals
 
Simple ways to deploy VM Images from Self Service UI in IBM Cloud Orchestrato...
Simple ways to deploy VM Images from Self Service UI in IBM Cloud Orchestrato...Simple ways to deploy VM Images from Self Service UI in IBM Cloud Orchestrato...
Simple ways to deploy VM Images from Self Service UI in IBM Cloud Orchestrato...
 
Webcast - Making kubernetes production ready
Webcast - Making kubernetes production readyWebcast - Making kubernetes production ready
Webcast - Making kubernetes production ready
 
Infrastructure as Code
Infrastructure as CodeInfrastructure as Code
Infrastructure as Code
 
Continuously deploy a containerized app to “Azure App Service”
Continuously deploy a containerized app to “Azure App Service”Continuously deploy a containerized app to “Azure App Service”
Continuously deploy a containerized app to “Azure App Service”
 
Michael North "Ember.js 2 - Future-friendly ambitious apps, that scale!"
Michael North "Ember.js 2 - Future-friendly ambitious apps, that scale!"Michael North "Ember.js 2 - Future-friendly ambitious apps, that scale!"
Michael North "Ember.js 2 - Future-friendly ambitious apps, that scale!"
 
Era of server less computing
Era of server less computingEra of server less computing
Era of server less computing
 
WinOps Conf 2016 - Jeffrey Snover - The DevOpsification of Windows Server
WinOps Conf 2016 - Jeffrey Snover - The DevOpsification of Windows ServerWinOps Conf 2016 - Jeffrey Snover - The DevOpsification of Windows Server
WinOps Conf 2016 - Jeffrey Snover - The DevOpsification of Windows Server
 
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...
 
All the troubles you get into when setting up a production ready Kubernetes c...
All the troubles you get into when setting up a production ready Kubernetes c...All the troubles you get into when setting up a production ready Kubernetes c...
All the troubles you get into when setting up a production ready Kubernetes c...
 
Chef Actions: Delightful near real-time activity tracking!
Chef Actions: Delightful near real-time activity tracking!Chef Actions: Delightful near real-time activity tracking!
Chef Actions: Delightful near real-time activity tracking!
 
Packing It In: Images, Containers, and Config Management
Packing It In: Images, Containers, and Config ManagementPacking It In: Images, Containers, and Config Management
Packing It In: Images, Containers, and Config Management
 
Making maven and grunt play nice
Making maven and grunt play niceMaking maven and grunt play nice
Making maven and grunt play nice
 
PowerShell for SharePoint Developers
PowerShell for SharePoint DevelopersPowerShell for SharePoint Developers
PowerShell for SharePoint Developers
 
Configuration As Code - Adoption of the Job DSL Plugin at Netflix
Configuration As Code - Adoption of the Job DSL Plugin at NetflixConfiguration As Code - Adoption of the Job DSL Plugin at Netflix
Configuration As Code - Adoption of the Job DSL Plugin at Netflix
 

Similar to Custom Tile Generation in PCF

DockerCon 15 Keynote - Day 2
DockerCon 15 Keynote - Day 2DockerCon 15 Keynote - Day 2
DockerCon 15 Keynote - Day 2Docker, Inc.
 
Build pipelines with bitbucket for Magento
Build pipelines with bitbucket for MagentoBuild pipelines with bitbucket for Magento
Build pipelines with bitbucket for MagentoRrap Software Pvt Ltd
 
Build Your First SharePoint Framework Webpart
Build Your First SharePoint Framework WebpartBuild Your First SharePoint Framework Webpart
Build Your First SharePoint Framework WebpartEric Overfield
 
Moving a Monolith to Kubernetes
Moving a Monolith to KubernetesMoving a Monolith to Kubernetes
Moving a Monolith to KubernetesM. Scott Ford
 
Sitecore development approach evolution – destination helix
Sitecore development approach evolution – destination helixSitecore development approach evolution – destination helix
Sitecore development approach evolution – destination helixPeter Nazarov
 
4Developers 2018: Zero-Downtime deployments with Kubernetes (Mateusz Dymiński)
4Developers 2018: Zero-Downtime deployments with Kubernetes (Mateusz Dymiński)4Developers 2018: Zero-Downtime deployments with Kubernetes (Mateusz Dymiński)
4Developers 2018: Zero-Downtime deployments with Kubernetes (Mateusz Dymiński)PROIDEA
 
Puppet overview
Puppet overviewPuppet overview
Puppet overviewjoshbeard
 
Migrating Enterprise Microservices From Cloud Foundry to Kubernetes
Migrating Enterprise Microservices From Cloud Foundry to KubernetesMigrating Enterprise Microservices From Cloud Foundry to Kubernetes
Migrating Enterprise Microservices From Cloud Foundry to KubernetesTony Erwin
 
Preparing your dockerised application for production deployment
Preparing your dockerised application for production deploymentPreparing your dockerised application for production deployment
Preparing your dockerised application for production deploymentDave Ward
 
Server deployment
Server deploymentServer deployment
Server deploymentbsadd
 
Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018
Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018
Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018Mandi Walls
 
Anna Fedoruk.Theworkflow.DrupalCamp Kyiv 2011
Anna Fedoruk.Theworkflow.DrupalCamp Kyiv 2011Anna Fedoruk.Theworkflow.DrupalCamp Kyiv 2011
Anna Fedoruk.Theworkflow.DrupalCamp Kyiv 2011camp_drupal_ua
 
Reactive summit 2020 microsoft orleans the easy way
Reactive summit 2020   microsoft orleans the easy wayReactive summit 2020   microsoft orleans the easy way
Reactive summit 2020 microsoft orleans the easy wayJohn Azariah
 
Wellington MuleSoft Meetup 2021-02-18
Wellington MuleSoft Meetup 2021-02-18Wellington MuleSoft Meetup 2021-02-18
Wellington MuleSoft Meetup 2021-02-18Mary Joy Sabal
 
Application Lifecycle Management
Application Lifecycle ManagementApplication Lifecycle Management
Application Lifecycle ManagementAmazon Web Services
 
10 tips for Cloud Native Security
10 tips for Cloud Native Security10 tips for Cloud Native Security
10 tips for Cloud Native SecurityKarthik Gaekwad
 

Similar to Custom Tile Generation in PCF (20)

Ember - introduction
Ember - introductionEmber - introduction
Ember - introduction
 
Power of Azure Devops
Power of Azure DevopsPower of Azure Devops
Power of Azure Devops
 
DockerCon 15 Keynote - Day 2
DockerCon 15 Keynote - Day 2DockerCon 15 Keynote - Day 2
DockerCon 15 Keynote - Day 2
 
Build pipelines with bitbucket for Magento
Build pipelines with bitbucket for MagentoBuild pipelines with bitbucket for Magento
Build pipelines with bitbucket for Magento
 
Build Your First SharePoint Framework Webpart
Build Your First SharePoint Framework WebpartBuild Your First SharePoint Framework Webpart
Build Your First SharePoint Framework Webpart
 
Moving a Monolith to Kubernetes
Moving a Monolith to KubernetesMoving a Monolith to Kubernetes
Moving a Monolith to Kubernetes
 
Sitecore development approach evolution – destination helix
Sitecore development approach evolution – destination helixSitecore development approach evolution – destination helix
Sitecore development approach evolution – destination helix
 
4Developers 2018: Zero-Downtime deployments with Kubernetes (Mateusz Dymiński)
4Developers 2018: Zero-Downtime deployments with Kubernetes (Mateusz Dymiński)4Developers 2018: Zero-Downtime deployments with Kubernetes (Mateusz Dymiński)
4Developers 2018: Zero-Downtime deployments with Kubernetes (Mateusz Dymiński)
 
Puppet overview
Puppet overviewPuppet overview
Puppet overview
 
Migrating Enterprise Microservices From Cloud Foundry to Kubernetes
Migrating Enterprise Microservices From Cloud Foundry to KubernetesMigrating Enterprise Microservices From Cloud Foundry to Kubernetes
Migrating Enterprise Microservices From Cloud Foundry to Kubernetes
 
Preparing your dockerised application for production deployment
Preparing your dockerised application for production deploymentPreparing your dockerised application for production deployment
Preparing your dockerised application for production deployment
 
Server deployment
Server deploymentServer deployment
Server deployment
 
Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018
Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018
Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018
 
Anna Fedoruk.Theworkflow.DrupalCamp Kyiv 2011
Anna Fedoruk.Theworkflow.DrupalCamp Kyiv 2011Anna Fedoruk.Theworkflow.DrupalCamp Kyiv 2011
Anna Fedoruk.Theworkflow.DrupalCamp Kyiv 2011
 
Kubernetes @ meetic
Kubernetes @ meeticKubernetes @ meetic
Kubernetes @ meetic
 
Reactive summit 2020 microsoft orleans the easy way
Reactive summit 2020   microsoft orleans the easy wayReactive summit 2020   microsoft orleans the easy way
Reactive summit 2020 microsoft orleans the easy way
 
Wellington MuleSoft Meetup 2021-02-18
Wellington MuleSoft Meetup 2021-02-18Wellington MuleSoft Meetup 2021-02-18
Wellington MuleSoft Meetup 2021-02-18
 
Application Lifecycle Management
Application Lifecycle ManagementApplication Lifecycle Management
Application Lifecycle Management
 
10 tips for Cloud Native Security
10 tips for Cloud Native Security10 tips for Cloud Native Security
10 tips for Cloud Native Security
 
DevOps in Silos
DevOps in SilosDevOps in Silos
DevOps in Silos
 

Recently uploaded

GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 

Recently uploaded (20)

GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 

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. Operational Concerns • Its just code • Concourse pipelines can generate and upload new versions • In the foundation, so the foundation manages this just like other tiles • Can attach vms/processes/apps to other offline metrics gathering tools
  • 36. 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