CloudBees - A Technical Introduction


Published on

Technical overview of the CloudBees Platform-as-a-Service (PaaS) by Mark Prichard, Evangelist and Senior Director at CloudBees. Covers ClickStarts (pre-configured cloud-ready projects) and ClickStacks (custom runtimes)

Published in: Technology
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • Lose It!1.5M customers, 25,000 tx/min, 4 developersAdeoLed by marketing, through SIBullhornDelivered 60 customized, cloud-based application implementations
  • CloudBees - A Technical Introduction

    1. 1. CloudBees: A Technical OverviewMark Prichard
    2. 2. • Founded in April 2010• Headquartered in MA (USA)• Deep roots in Middleware and Open Source• Award-winning platform in production today• More than 15,000 Java accountsAbout CloudBees2©2012 CloudBees, Inc.All rights reserved
    3. 3. Overview of CloudBees PaaScloudbees.comJenkinsMasterTestStageBuildCodeJenkinsExecutorForgeRepositoriesGitSVNmvnDevelopmentServices(DEV@cloud)Developer andOperationsInteractionEnd UserInteractionRuntimeServices(RUN@cloud)CloudBeesAPIGrandCentralWebConsoleSDKSessionClusteringMySQLRouterApplicationPartnerEcosystem3©2012 CloudBees, Inc.All rights reserved
    4. 4. cloudbees.comInternal Overview of CloudBees PaaSService-Based PaaS ArchitectureAgents…DB AgentAS AgentMessage BusShared ServicesIdentity ProvisioningScalingAlertingMonitoringAuditingCloudBeesAPIGrandCentralWebConsoleSDKJenkinsMasterTestStageBuildCodeJenkinsExecutorForgeRepositoriesGitSVNmvnSessionClusteringMySQLRouterApplicationPartnerEcosystem4©2012 CloudBees, Inc.All rights reserved
    5. 5. ClickStarts and ClickStacksExtending the Platform5
    6. 6. ClickStarts – Defining Service Composition inPaaScloudbees.comJenkinsMasterTestStageBuildCodeJenkinsExecutorForgeRepositoriesGitSVNmvnCloudBeesAPIGrandCentralWebConsoleSDKSessionClusteringMySQLRouterApplicationPartnerEcosystem• Reusable templates specifying any or all of theinformation needed to build an application fromsource code, deploy it to CloudBees, and connect itto other runtime services• Specifies the named runtime that will be used forthe appClickStarts:6©2012 CloudBees, Inc.All rights reserved
    7. 7. ClickStacks – Defining Application Runtimescloudbees.comJenkinsMasterTestStageBuildCodeJenkinsExecutorForgeRepositoriesGitSVNmvnCloudBeesAPIGrandCentralWebConsoleSDKSessionClusteringMySQLRouterApplicationPartnerEcosystem• Reusable templates specifying the set of server-side components thatwill be assembled and managed as a runtime to support your app• One ClickStack runtime is expected to be re-used by many apps• Examples – Tomcat, JBoss, Java, Play!, LifeRay, ColdFusion; …• Open model for creating new named runtimes for your use and toshare with othersClickStacks:7©2012 CloudBees, Inc.All rights reserved
    8. 8. ClickStart Gallery – Choose Your App!8©2012 CloudBees, Inc.All rights reserved
    9. 9. ClickStart - Provide The Minimum Required Info9©2012 CloudBees, Inc.All rights reserved
    10. 10. ClickStart – Done!CompleteSource CodeWorking AppContinuousIntegrationandDeploymentWorkingDatabase10©2012 CloudBees, Inc.All rights reserved
    11. 11. Inside a ClickStartclickstart.jsonidnamedescriptionsourceiconruntimedatabasesbuild-with-jenkinsdoc-urlSource code11©2012 CloudBees, Inc.All rights reservedFor more details, see: How to make your own ClickStart
    12. 12. cloudbees.comUse thisclickstart.json tocreate a working app!The Magic Behind ClickStarts12CloudBeesGitRepoDatabaseBuild/Testdb:createAppPartnerServicePartnerServiceCloudBeesAPIGrandCentralWebConsoleBindBindTriggerDeployWow! At yourservice©2013 CloudBees, Inc. All rights reserved
    13. 13. cloudbees.comModifying an App after ClickStarting13©2013 CloudBees, Inc. All rights reservedCloudBeesGitRepoDatabaseBuild/TestAppPartnerServicePartnerServiceBindBindTriggerDeployI want to make somechanges!Local GitRepogitcommitChangesWow! At yourservice
    14. 14. Frictionless Extension and ReuseCustomerManagedCommunityManagedCloudBeesCuratedForkPush Push Clone14©2012 CloudBees, Inc.All rights reserved
    15. 15. Customized RuntimeStacksExtending the Platform15
    16. 16. • A runtime stack is more than just a language• Runtimes require support for interactions that are“native” for the developer and ops audience• You can extend and customize runtime stacks onCloudBees• Continuous integration and delivery are instantlyavailable in all casesCustomizing Runtime Stacks16©2013 CloudBees, Inc. All rights reserved
    17. 17. How an App Becomes a Stack– Java Example17Java App (jar)InfrastructureJava VMJava APICloudBees-CuratedStackUser-CreatedCloudBees-CuratedJava EE App (war)InfrastructureJava VMJava APICloudBees-CuratedStackUser-CreatedCloudBees-CuratedJava EE (jars)• Interaction is with the JavaVM and API• Deployment unit is jar file• Interaction is with the Java EE Server• Deployment unit is war file• Extensions thru container contract andvendor facilitiesJava Runtime Stack Java EE Runtime Stack©2013 CloudBees, Inc. All rights reserved
    18. 18. How an App Becomes a Stack– PHP/DrupalExample18PHP App (php)InfrastructurePHP InterpreterApacheCloudBees-CuratedStackUser-CreatedCloudBees-CuratedSite Profile (zip)InfrastructurePHP InterpreterApacheCloudBees-CuratedStackUser-CreatedCloudBees-CuratedDrupal (zip)• Interaction is with Apache and PHP• Deployment unit is PHP and HTMLfiles• Interaction is with Drupal CMS• Deployment unit is a web site Profile• Extensions thru modules, librariesPHP Runtime Stack Drupal Runtime Stack©2013 CloudBees, Inc. All rights reserved
    19. 19. Inside a ClickStacksetup (shell script)Source codeZipclickstack.zip19©2012 CloudBees, Inc.All rights reservedSee: ClickStack – Application Containers
    20. 20. ClickStackAgentClickStacksClickStack CompositionsTomcatsetupNewRelicsetupPapertrailsetupCreateApp(packageURL,appMetadata)App Working Directory.genapp/starttomcat/bin/server.xmlapp/index.jspWEB-INF/web.xmlnewrelic.jarNewrelic.yml• Install tomcat bits• Setup config files• Generate start script• Install newrelic agent jar• Generate newrelic.yml• Augment java args• Generate syslog config syslog.conf.genapp/startApp Metadata{ plugins:[“tomcat”“newrelic”,“papertrail”],“newrelic” : {“license”: “…”}“papertrail” : {“host”:”…”}}20©2012 CloudBees, Inc.All rights reserved
    21. 21. ClickStackAgentClickStacksCustomer Managed ClickStack CompositionsTomcatsetupNewRelicsetupsetupCreateApp(packageURL,appMetadata)App Working Directory.genapp/starttomcat/bin/server.xmlapp/index.jspWEB-INF/web.xmlnewrelic.jarNewrelic.yml• Install tomcat bits• Setup config files• Generate start script• Install newrelic agent jar• Generate newrelic.yml• Augment java args• Generate syslog config.genapp/startMyPlugin• Install binaries• Generate configuration• Augment java argsframework.jarruntime.jarnativecode.execonfig.xmlApp Metadata{ plugins:[“tomcat”“newrelic”,“myplugin”],“newrelic” : {“license”: “…”}“myplugin” : {“myparm”:”…”}}21©2012 CloudBees, Inc.All rights reserved
    22. 22. • CloudBees delivers an integrated, extensible openJava PaaS• ClickStarts get you up and going quickly and cancapture your common use cases for re-use.• ClickStacks let you customize application runtimes forre-use and mix with CloudBees-curated plugins• CloudBees manages the platform for you in all cases,reducing cost and improving efficiencySummary22©2012 CloudBees, Inc.All rights reserved
    23. 23. 23©2012 CloudBees, Inc.All rights reserved