Your SlideShare is downloading. ×
Accelerate your PaaS to the Mobile World: Silicon Valley Code Camp 2012
Upcoming SlideShare
Loading in...5

Thanks for flagging this SlideShare!

Oops! An error has occurred.


Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Accelerate your PaaS to the Mobile World: Silicon Valley Code Camp 2012


Published on

Mark Prichard's presentation from Silicon Valley Code Camp 2012

Mark Prichard's presentation from Silicon Valley Code Camp 2012

Published in: Technology

  • Be the first to comment

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

No notes for slide
  • Let’s start by a quick overview of how you experience the CloudBees PaaS today. We host and deliver a complete Java platform as a service to support you from development all the way through deployment of production applications. <Build> As a developer or person charged with operations of production applications, your unified view is through our GrandCentral web console. GrandCentral is really just a user interface on top of our rich API, which developers also access through our SDK or through our Eclipse plugin. <Build> For developers, we host a set of development services. These include the Jenkins Continuous Integration Server, used to drive builds, testing, and promoting or staging of your application as you check code and artifacts in to either our hosted Forge repositories. A unique feature of our hosted CI service is that we make use of cloud resources on-demand to speed up your builds and take care of the spiky nature of continuous integration at a very low cost. You can of course use your own source code control system, or an external one like GitHub. <Build> We then also provide a set of Runtime Services so you can deploy your application on your choice of JVM runtimes, and a hosted MySQL database service. Our session clustering service makes it simple to maintain Java session state between application instance, to ensure no loss of transactions in the event of failure, and make scale-out seamless. You can access your deployed application instantly, for testing or internal evaluation, or you can map your own domain names and URLs to your end users interact with the hosted application in the way you and they would normally expect. Both Development and Runtime Services are integrated with many hosted partner services, so fpr example, you get built-in access to best-of-breed monitoring, logging, and testing tools just by selecting them in Grand Central.Now, let’s step back and see what things look like under the covers – a peek into what we call our AnyCloud architecture that lets us really deliver this platform as a service.
  • Transcript

    • 1. Accelerate Your PaaS to the Mobile WorldSilicon Valley Code Camp, October 2012Mark Prichard, CloudBees ©2011 Cloud Bees, Inc. All Rights Reserved
    • 2. Mark Prichard – My Back Pages • Cambridge University Computer Lab, 1990-1991 • Logica/SHL/CSC: 1991-2000 – Integration/Middleware Specialist – Managing Consultant • BEA Systems, 2000-2008 – Senior Architect, EMEA – Director, Java Virtualization@mqprichard • Oracle, 2008 – WebLogic Platform PM – FMW Web Tier PMblogs.cloudbees.comClouds, Bees and Blogs • CloudBees, 2012 – Senior Director of Product Management ©2011 CloudBees, Inc. All Rights Reserved 2
    • 3. Source Code Links for Today‟s Session• Mobile CI – GitHub: MongoChess Server – GitHub: StockFish for iOS – GitHub: DroidFish for Android – Jenkins Configuration for Mobile CI• Google App Engine CI – GitHub: Java Example for App Engine – GitHub: Python Example for App Engine 3
    • 4. Agenda• PaaS - Quick Overview• Continuous Integration - Jenkins• Mobile CI with Jenkins in the Cloud• Demos (Android/iOS plus REST server)• Demos (Google App Engine builds w/ Jenkins)• Hands-On Lab: – Try out my examples or build your own – Cloud ClickStarts: Scala, Lift, Play! And more – BYO App ©2011 CloudBees, Inc. All Rights Reserved 4
    • 5. Step 1: Sign Up with CloudBees• Free and complete for developers• One click to get started with Jenkins, Play!, Lift, Scala, Sencha, Clojure, Backbone.js and more: all you need is a browser 5
    • 6. Architectural Overview of the CloudBees
    • 7. External Overview of CloudBees PaaS Partner Test Ecosystem Forge Repositories Git Grand Session Central Clustering Web Jenkins SVN Code Stage Console Master SDK mvn Router CloudBees Build API Application Jenkins Executor MySQL Developer and Development Runtime End User Operations Services Services Interaction Interaction 7
    • 8. ClickStarts – Defining Service Composition Partner Test Ecosystem Forge Repositories Git Grand Session Central Clustering Web Jenkins SVN Code Stage Console Master SDK Router mvn CloudBees Build API Application Jenkins Executor MySQL • Reusable templates specifying any or all of the information needed to build an application from source code, deploy it to ClickStarts: CloudBees, and connect it to other runtime services • Specifies the named runtime that will be used for the app ©2012 CloudBees, Inc. All rights reserved 8
    • 9. ClickStacks – Defining Application Runtimes Partner Test Ecosystem Forge Repositories Git Grand Session Central Clustering Web Jenkins SVN Code Stage Console Master SDK Router mvn CloudBees Build API Application Jenkins Executor MySQL • Reusable templates specifying the set of server-side components that will be assembled and managed as a runtime to support your app • One ClickStack runtime is expected to be re-used by many apps ClickStacks: • Examples – Tomcat, JBoss, Java, Play!, LifeRay, ColdFusion; … • Open model for creating new named runtimes for your use and to share with others ©2012 CloudBees, Inc. Confidential, Provided Under NDA 9
    • 10. Continuous Integration and Jenkins in the
    • 11. Continuous Integration• What is Continuous Integration?• What is Jenkins?• What‟s needed for CI of Mobile Apps?• Demos – iOS Build, Test, Distribution – Android Build, Test, Distribution – Multi-device Matrixed Builds• Try it: set up your own builds ©2011 CloudBees, Inc. All Rights 11 Reserved
    • 12. So what‟s Jenkins?• Community-driven OSS project – – Used to be called Hudson• A member project of SPI*• Webapp written in Java• Actively developed – Over 7 years of history, 440+ releases – 600+ plugins, 300+ developers * Software in Public Interest, NPO. 12
    • 13. Sample tasting on things you do w/Jenkins• Build your Maven projects every time someone commits a change• FindBugs metric tracking. Ensure that # of defects goes down• Multi-platform concurrent Selenium test execution• IRC/jabber/campfire bot/notification interface• Emulator-based Android testing with automatic emulator management 13
    • 14. What makes Jenkins so popular?• Community and its 600+ plugins – Integrates Jenkins to just about any tools you can imagine – Or more precisely, the ecosystem and the community that‟s capable of producing it• Ease of installation, ease of use• Distributed builds – As a means to deal with abundance of computing power 14
    • 15. Continuous Integration for Mobile
    • 16. Why Jenkins in the Cloud for mobile CI?• To let developers focus on developing – Leave building, packaging, testing, distributing to a computer – Make the right thing the easiest thing• Many, well-adopted mobile development plugins – Safety in numbers• “Distributed builds” for scaling with workload• “Matrix project” for easy cross device testing 16
    • 17. Demo: Chess Server with Mobile Clients• iOS mobile app – Build/test using Jenkins – MacOS slaves for builds – TestFlight push to beta testers• Android mobile app – Build/test using Jenkins – Matrixed builds for multiple device configs• Java + MongoDB server – Running on CloudBees PaaS – Build/test/deploy via Jenkins 17
    • 18. Fun App – but „Real‟ Java Development• Built using Eclipse, Maven, Junit, JAX-RS, JAX-B, gson …• Git repository, Jenkins build/test and app deployment all running on AWS using CloudBees PaaS• Free to develop: enterprise-grade runtime services 18
    • 19. Jenkins to the Rescue iOS Packaging/Distri Source Code bution Repository iOS TouchTest iOS Development (Xcode)Integration/Func tional Testing Jenkins iOS App Build/Unit Test Services Services Deployment Development Services (Eclipse) Build/Unit Test 19
    • 20. Jenkins in the Cloud: Android• Android App built from GitHub – Build/test by Jenkins entirely in the cloud – Matrixed build supports multiple device configs – Build slaves for tethered devices 20
    • 21. Jenkins in the Cloud: iOS Builds• iOS App built from GitHub – Jenkins Xcode builds/tests run on MacOS slaves – Scripted integration tests – iOS app archive/packaging/distribution via TestFlight using Jenkins plug-in• Mobile CI Examples and Blogs online – – Full details on 21
    • 22. Continuous Delivery for Google App Engine with CloudBees and
    • 23. 1. You write the code2. Jenkins builds and tests yourapp in the cloud… 3. …and automatically deploys to Google App Engine 23
    • 24. Step 1. Link your Google Account 24
    • 25. Step 2. Start Using Jenkins for AppEngine 25
    • 26. Step 3. Build and Deploy to App Engine 26
    • 27. THANK YOU Twitter: