• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Accelerate your PaaS to the Mobile World: Silicon Valley Code Camp 2012
 

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

on

  • 1,497 views

Mark Prichard's presentation from Silicon Valley Code Camp 2012

Mark Prichard's presentation from Silicon Valley Code Camp 2012

Statistics

Views

Total Views
1,497
Views on SlideShare
1,470
Embed Views
27

Actions

Likes
6
Downloads
0
Comments
0

3 Embeds 27

https://twitter.com 21
https://fr.twitter.com 5
https://si0.twimg.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • 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. 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. 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. 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.

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

  • Accelerate Your PaaS to the Mobile WorldSilicon Valley Code Camp, October 2012Mark Prichard, CloudBees ©2011 Cloud Bees, Inc. All Rights Reserved
  • 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 -2012mprichard@cloudbees.com – 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
  • 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
  • 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
  • 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 www.cloudbees.com/signup 5
  • Architectural Overview of the CloudBees PaaSblog.cloudbees.com
  • External Overview of CloudBees PaaS cloudbees.com 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
  • ClickStarts – Defining Service Composition cloudbees.com 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
  • ClickStacks – Defining Application Runtimes cloudbees.com 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
  • Continuous Integration and Jenkins in the Cloudblog.cloudbees.com
  • 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
  • So what‟s Jenkins?• Community-driven OSS project – http://jenkins-ci.org/ – 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. http://spi-inc.org/ 12
  • 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
  • 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
  • Continuous Integration for Mobile Appsblog.cloudbees.com
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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 – https://partnerdemo.ci.cloudbees.com/ – Full details on http://blog.cloudbees.com/ 21
  • Continuous Delivery for Google App Engine with CloudBees and Jenkinsblog.cloudbees.com
  • 1. You write the code2. Jenkins builds and tests yourapp in the cloud… 3. …and automatically deploys to Google App Engine 23
  • Step 1. Link your Google Account http://appengine.cloudbees.com/ 24
  • Step 2. Start Using Jenkins for AppEngine http://appengine.cloudbees.com/ 25
  • Step 3. Build and Deploy to App Engine 26
  • THANK YOU mprichard@cloudbees.com Twitter: @mqprichardblog.cloudbees.com