Accelerrate your PaaS to the Mobile World


Published on

Mobile Development and Deployment on PaaS

Published in: Technology
  • Be the first to comment

  • Be the first to like this

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

No notes for slide
  • Demo the signup process
  • Ask the audienceWindows is a platform, Java is a platform, Android, EC2
  • OK, actually do the demo
  • If you’re like CloudBees…
  • Lat: 29.742131 Long:-95.377207 telnetlocalhost 5554geo fix -95.377207 29.742131
  • A key part of this demo is mobile push: what is it?Register mobile endpointsTrack notification keys
  • SNS – simple notification serviceGeneral purpose messaging, like JMSSeveral delivery endpoints: https, sms, email, mobileSNS is like topics, SQS is like queuesSNS Mobile PushGCMRegistrationService:
  • GCM – for androidSplit between two apps – server and weaveGasp-gcm-server allows registrations listens for notification from WAVE has the device tokens – all notifications go to every device - this is where the PaaS is so valueable – controlling who gets what notifiactions - for instance, only send notifications to people in Houston
  • - App registereswi
  • Not showing
  • Not showing proper maps due to VM limitationWould love to have people involved in improving thisWe plan to have a Push connector for Amazon SNS for WEAVE
  • Lat: 29.742131 Long:-95.377207 telnetlocalhost 5554geo fix -95.377207 29.742131
  • A service like testflight for a/b testing of mobile apps – used to be called zuhbium
  • Loading testnig service
  • run ios application in aninteratctivesimilatorWhen the build succeeds, the similated app is deployed to app.io source plugin written This is where we’d like to get people involved
  • It records your gestures and re-runs them against your buildsIt’s a graphical way to build those acceptance testsGood for UAT teamsWe have a plugin for SOASTA in Jenkins/ DEV@cloud
  • HS: if somebody misses the CoW concept, he’d be lost for the next two slides
  • 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 Austin, TX 2
    3. 3. Resources 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 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 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: – 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 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? 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 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 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: unity/gasp-push-server • Compare GCM and APNS native versions: ©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. 33
    34. 34. plugin 34
    35. 35. BlazeMeter plugin 35
    36. 36. 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. 44
    45. 45. 45
    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