Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Accelerrate your PaaS to the Mobile World

600 views

Published on

CloudBees
Mobile Development and Deployment on PaaS

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Accelerrate your PaaS to the Mobile World

  1. 1. Accelerate your PaaS to the Mobile World Ryan Campbell @CloudBees @recampbell
  2. 2. Today‟s Presenter Ryan Campbell Engineer, DEV@cloud rcampbell@cloudbees.com Austin, TX 2
  3. 3. Resources http://bit.ly/17Km8QC 3
  4. 4. What we‟ll cover • What is a PaaS? • What is CloudBees? – What is WEAVE? • Demo – Mobile Push for Android • Demo – iOS build in the cloud 4
  5. 5. Warm up Jenkins 1. Sign up at cloudbees.com/signup 2. Subscribe to Jenkins ©2013 CloudBees, Inc. All Rights Reserved 5
  6. 6. What‟s a Platform? • Something you can use to – Run your apps – Build your apps – Add services to your apps – Manage your apps • Plaform-as-a-Service (PaaS) uses elastic, on-demand Cloud resources to do this 6
  7. 7. CloudBees Is a Platform Delivered As A Service Git Grand Central Web Console SVN SDK mvn CloudBees API Forge Repositories cloudbees.com Session Clustering Code Jenkins Master Stage Router Build Application Jenkins Executor Developer and Operations Interaction Partner Ecosystem Test Development Services (DEV@cloud) MySQL Runtime Services (RUN@cloud) End User Interaction 7 ©CloudBees, Inc. All Rights Reserved 7
  8. 8. Cloud Terminology • Infrastructure-as-a-Service (IaaS) – Think: Amazon Web Services – What: Server Instances, Storage Buckets etc • Software-as-a-Service (SaaS) – Think: Salesforce.com – What: Packaged Applications (in the Cloud) • Plaform-as-a-Service (PaaS) – What: Managed Service for Custom Apps 8
  9. 9. What is Platform-as-a-Service? • We run your applications for you • We provide and manage all the supporting infrastructure needed to run your apps • We monitor and can scale out your apps • We provide a full, enterprise-class build environment using Jenkins CI – the world‟s #1 OSS continuous integration server • You write the code and we do all the rest 9
  10. 10. Have You Met Jenkins? • • • • #1 OSS CI server Easy to install/use Extensible via 600+ plugins Very widely adopted – 47K+ installations • Very active community – Over 7 years of history, 440+ releases – 600+ plugins, 300+ developers • CloudBees adds plugins for cloud builds 10
  11. 11. CloudBees Step-by-Step cloudbees.com Grand Central Web Console SVN SDK CloudBees API mvn Partner Ecosystem Test Forge Repositories Git Session Clustering Code Jenkins Master Stage Router Build Application Jenkins Executor Developer and Operations Interaction Development Services (DEV@cloud) MySQL Runtime Services (RUN@cloud) MultiTenanted End User Interaction Dedicated Amazon Web Services 11 11 ©CloudBees, Inc. All Rights Reserved
  12. 12. What Platform-as-a-Service Is Not • Commercial, packaged applications don‟t usually run on a PaaS • You don‟t need to purchase any hardware or software licenses • You won‟t have to install anything – you just deploy your Java apps to the platform • If you need to run your applications in your own data center, PaaS is the wrong model 12
  13. 13. How Do You Use CloudBees? CLI/SDK GrandCentral Web Console IDE 13 13 ©CloudBees, Inc. All Rights Reserved
  14. 14. What Does It Cost? • Your app always runs in secure, isolated containers to which only you have access • We can run those containers for you using shared resources or dedicated resources • You pay only for what you need: a fixed subscription or “pay as you go” pricing • FREE and COMPLETE for developers: no credit card required 14
  15. 15. Example: Lose it! • Lose it! – Mobile application – Millions of users – More than 30,000 transactions per minute, at peak time • And… only 4 employees and …2 developers! – No IT, no servers, no DevOps – Complete focus on SOFTWARE DEVELOPMENT – Anything else is handled by CloudBees • Unmatched productivity level! – This is possible TODAY – Will you wait for your competitors to shoot first? 15
  16. 16. Getting Started: CloudBees ClickStarts The easiest way to get started – and learn new technologies ©2012 CloudBees, Inc. All Rights Reserved 16
  17. 17. What Did I Just Do? cloudbees.com Partner Partner Service Service Grand Central Web Consol e Database db:create Bind CloudBees API Bind App What’s up with this new framework! Wow! CloudBees Git Repo ©2013 CloudBees, Inc. All rights reserved Deploy Trigger Build/Test At your service 17 17
  18. 18. Develop Locally, Build in the Cloud cloudbees.com Partner Partner Service Service Local Git Repo Database Bind I want to make some changes! git commit Changes Bind Wow! App CloudBees Git Repo Trigger Build/Test Deploy At your service 18
  19. 19. Gasp! Demo Mobile Data Sync and Notification Services with PaaS ©2013 Cloud Bees, Inc. All Rights Reserved
  20. 20. What is WEAVE@cloud? (formerly « FoxWeave ») A Cloud-Based Data Integration Service In-Cloud On-Premise ©2013 CloudBees, Inc. All Rights Reserved 20 20
  21. 21. AppCentric Integration Application Running on CloudBees Create New Prospect in Salesforce.com Review Restaurant App Logic Find Location and Places/Events Update Gasp! Database Update Marketing Update Mobile Device Databases Tweet ©2013 CloudBees, Inc. All rights 21 reserved 21
  22. 22. Who am I? Where am I? Am I interested? What am I doing? ©2013 CloudBees, Inc. All Rights Reserved 22
  23. 23. Application Architecture reviews Database REST JPA/JDBC notifications gasp! registers polls WEAVE@cloud Sync Service (gasp-gcm-server) notifications Google Cloud Messaging 23
  24. 24. Push Notification: The Details PaaS manages user-to-device mapping and registration Register device and user Register mobile endpoint Push APIs PaaS maps relevant updates to interested users DB update triggers async notification Send push notifications ©2013 CloudBees, Inc. All Rights Reserved Push APIs 24
  25. 25. Amazon SNS Mobile Push • One API to handle – Google Cloud Messaging: Android – Apple Push Notification: iOS – Amazon Device Messaging: Kindle • Gasp SNS Mobile Push example: https://github.com/CloudBees-comm unity/gasp-push-server • Compare GCM and APNS native versions: https://github.com/CloudBees-community/gasp-gcm-server https://github.com/CloudBees-community/gasp-apns-server ©2013 CloudBees, Inc. All Rights Reserved 25
  26. 26. Gasp! - Google Cloud Messaging (GCM) • GCM Push Server (partnerdemo/gasp-gcmserver) – – – – Android devices register for updates REST API for FoxWeave update via WebHook GCM notifications sent to all registered devices Async notifications; device pulls the actual data • Data sync (WEAVE@cloud) – Updates triggered using „where id > ##id‟ – Calls gasp-gcm-server REST API – Updates are pushed out to registered devices and trigger refresh of on-device SQLite database via async REST calls ©2013 CloudBees, Inc. All Rights Reserved 26
  27. 27. GCM Server: Registration and Push • App/Device automatically registers with OTA service (e.g. GCM) to get device token • Sends device token to Gasp Push Server (REST API), running on CloudBees PaaS • Gasp Push Server controls notifications – who gets what ©2013 CloudBees, Inc. All Rights Reserved 27
  28. 28. Weave@cloud Integration • Event model: cloudbees-app-model.json • WEAVE filter: web.xml ©2013 CloudBees, Inc. All Rights Reserved 28
  29. 29. Weave@cloud Integration • End-to-end integration from any WEAVE service direct to the app/device via push notification: • Android client: com/cloudbees/gasp/gcm ©2013 CloudBees, Inc. All Rights Reserved 29
  30. 30. Gasp! - Android Clients and CI Builds • Android client application (gasp-gcm-client) – – – – – Runs on AVD (Google APIs:18 platform) Async Intent Services handle sync/update GCM notifications handled asynchronously Gasp! data stored in Android SQLite database Separate demo has Maps activity (needs device) ©2013 CloudBees, Inc. All Rights Reserved 30
  31. 31. Application Architecture reviews Database REST JPA/JDBC notifications gasp! registers polls WEAVE@cloud Sync Service (gasp-gcm-server) notifications Google Cloud Messaging 31
  32. 32. ♥ 32
  33. 33. cloudbees.com/mobile-paas 33
  34. 34. Vessel.io plugin 34
  35. 35. BlazeMeter plugin 35
  36. 36. App.io plugin 36
  37. 37. SOASTA CloudTest plugin 37
  38. 38. 38
  39. 39. 39
  40. 40. 40
  41. 41. 41
  42. 42. XCode plugin improvement x.developerprofile 42
  43. 43. 43
  44. 44. cloudbees.com/osx 44
  45. 45. 45 http://www.flickr.com/photos/66598477@N07/6065295630/
  46. 46. Mansion Slave Slave Slave Slave 46
  47. 47. Linux Container = zero cost virtualization Subversion Gradle Mercurial Ant Git Maven Linux Kernel Hardware 47
  48. 48. For OSX Subversion XCode Git XCode Git Maven OS X OS X OS X QEMU QEMU QEMU Linux Kernel Apple Hardware 48
  49. 49. Kernel Same-page Merging OS X OS X OS X 49
  50. 50. 50
  51. 51. Mansion Workspace 1 Slave Workspace 2 Slave Workspace 3 Slave Workspace 4 51
  52. 52. Workspace’ Slave Workspace Workspace’’ Slave 52
  53. 53. ~/.m2/repository Slave ~/.m2/repository ~/.m2/repository Slave 53
  54. 54. Questions? 54

×