Sv jug - mar 2013 - sl


Published on

  • Be the first to comment

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

No notes for slide
  • Sv jug - mar 2013 - sl

    1. 1. Next Generation SoftwareDevelopment:Continuous Cloud Deployment @SachaLabourey CEO, CloudBees, Inc. Photo credit: @romainguy March 20, 2013 – Silicon Valley JUG ©2013 CloudBees, Inc. All Rights Reserved
    2. 2. Introduction – Sacha Labourey • Born in 1975 in Switzerland • JBoss – Clustering lead – 2001 – GM Europe - 2003 – CTO - 2005 • Red Hat – JBoss acquisition in June 2006 – co-GM of Red Hat’s middleware division – Left Red Hat in April 2009 • CloudBees – Started in April 2010 – About 35 bees in 7 countries X ©2012 CloudBees, Inc. All Rights 2 Reserved
    3. 3. Agenda• What’s the life of a developer today?• Challenges ahead…• Solution!• Cloud 101• Read my lips: SERVICE• Quick demos ©2012 CloudBees, Inc. All Rights 3 Reserved
    4. 4. Life of a Developer Today ©2013 CloudBees, Inc. All Rights Reserved
    5. 5. Typical Software Development Packaged Software • Months/Years Release v1.0 • Gather requirements for v2.0  • Work on v2.0  • Release v2.0 don’t screw it up: once it is out, it is out. • Have your customer upgrade – Support v1.0 for years • Support and patch dozen of “branches” in parallel • Gather requirements for v3.0  • Work on v3.0  ©2013 CloudBees, Inc. All rights 5 reserved
    6. 6. Developers vs. Sys Admins (aka LoveStory) Photo Credit: Joseph Viles/ The CW Photo Credit: 6
    7. 7. <sarcastic mode=“on” /> M. Developer M. Sys Admin/opsInterests & Hobbies: Interests and Hobbies:• Give a try to the last framework • Not to be beeped at 2am in the• Put in the production application morning the last shiny object seen at a • Not to be beeped at 4am in the conference morning• Participate to the Scala vs. Ceylon • Participate to the Debian vs. debate, static vs. dynamic typing, Fedora vs. Ubuntu debate etc. • Dream of meeting with Linus• Dream of meeting with James Torvald Gosling 7 7
    8. 8. Development? Friction! Unit Test Functional Test Source Jenkins Code Continuous Load Managemnt Integration TestDeveloper IT “Cloud you please provision a server for me?” Integration“Could I get X, Y and Z installed on that server?” Test “Could you please patch my server?” “Could I please get a database dump?” Could I get a new Git server?Where could I run my Jenkins integration tests? 8
    9. 9. Deployment? Friction!Deploy App:  Provision Deploy Provision DB cluster schema Deploy App to (not a transparent update process) each node Provision cluster: provision Install load- Configure LB nodes balancer (LB) Setup BC for Secure LB QA cluster cluster Configure DNS Provision DB:  Provision Install DB Configure DB node Setup BC for Secure DB DB Provision node: Configure OS Secure OS Setup JVM Install AS on Configure AS Secure AS OS Manage environment (recurring) Analyse sec. Analyse QA Analyse bulletins bulletins AS/OS logs maintain OS maintain JVM maintain AS maintain DB Validate/QA maintain FW stackMetering/Scaling (recurring) Measure App Acquire Provision performance Hardware node Update Update Update LB Cluster Security 9
    10. 10. Friction, friction, frictionDeploy App:  Provision Deploy cluster Provision DB schema Deploy App: Deploy App to (not a transparent update process) each node Provision cluster: provision Install load- Configure LB  Provision Provision Deploy nodes balancer (LB) cluster DB schema Setup BC for Secure LB QA cluster cluster Configure DNS Deploy App (not a transparent update Provision DB: to each node process)  Provision Install DB Configure DB node Provision cluster: Setup BC for Secure DB DB Install load- Provision node: provision Configure Configure OS Secure OS Setup JVM balancer nodes LB (LB) Install AS on Configure AS Secure AS OS Manage environment (recurring) Setup BC for Secure LB QA cluster Analyse sec. Analyse QA Analyse cluster bulletins bulletins AS/OS logs maintain OS maintain JVM maintain AS Configure maintain DB Validate/QA maintain FW DNS stackMetering/Scaling (recurring) Measure App Acquire Provision performance Hardware node Update Update Update LB Cluster Security 10 10
    11. 11. Why do we do software developmentagain? 11 11
    12. 12. To serve the BUSINESS obviously!Business Implementa- Specification Deployment Needs tion 12 12
    13. 13. IT serves the BUSINESS? JVM? Ruby? PHP? Java? AMD/Intel? HP? DELL? SPARC? Scala? UX? AWS? Linux? Windows? Play? Groovy? Lift? Jruby? Solaris? RHEL? Ubuntu? Debian? CFML? Grails? Spring? EE6? Implement JBoss? Tomcat? Glassfish? Arch? EXT2/3? NFS/CIFS?Increase Jetty? MySQL? MongoDB? Backup? Chef? Puppet? Continuous Deployment? Apache e-commerce CouchDB? Cassandra? JMS? HTTPD? Mod_jk? Mod_proxy?Revenues AMQP? Memcache? Ehcache? Nginx? Haproxy? Firewall? SSL? site Quartz? Lucene? Solr? Jquery? GWT? iPhone? Android? JIRA? Server provisioing? Load- balancing? Failover? Monitoring? Redmine? SVN? Git? Maven?15 seconds Ant/Ivy? Jenkins? Management? Alerting? Escalation procedure? etc. Artifactory/Nexus? etc. 2 weeks    18 months  13 13
    14. 14. Didn’t we simply ask him to build an e- commerce site? 14 14
    15. 15. Software Development got Difficult• Lots of FRICTION• Less time spent on DELIVERING VALUEAnd that’s about to get worse… ©2013 CloudBees, Inc. All Rights 15 Reserved
    16. 16. Challenges ahead! ©2013 CloudBees, Inc. All Rights Reserved
    17. 17. At the same time…• In parallel, demand for new needs are growing fast! – Mobile – Big Data – Social – Local –… 17
    18. 18. Entering the post-PC era Thanks to Mary Meeker and Matt Murphy, From David Skok presentation @ MassTLC 18
    19. 19. Source: Mary Meeker , 2011, 19
    20. 20. Source: Mary Meeker , 2011, 20
    21. 21. Mobile Internet - 10x bigger! Thanks to Mary Meeker and Matt Murphy, From David Skok presentation @ MassTLC 21
    22. 22. Small but big! Source: Mary Meeker , 2012, ©2013 CloudBees, Inc. All Rights 22 Reserved
    23. 23. India just made the switch! Source: Mary Meeker , 2012, ©2013 CloudBees, Inc. All Rights 23 Reserved
    24. 24. Drivers & Acceleration• Drivers are accelerating the need for NEW applications – Mobile, Mobile, Mobile, Social, Big Data, Etc.• Time-to-market is more important than ever! – “I need it for yesterday!” – Can’t afford 18m cyclesPlus, you must be in DISCOVER MODE, since …You don’t really know what’s needed! ©2012 CloudBees, Inc. All Rights 24 Reserved
    25. 25. Impact• You are (t)asked – To do many more new applications – To deliver them much earlier – To deliver incremental changes very quickly – To measure whether what you are doing works – To scale quickly the few apps that will be successful – To have them interact with an increasing number of different devices… Yet, nothing else should change? ©2013 CloudBees, Inc. All Rights 25 Reserved
    26. 26. Looking For a Solution? ©2013 CloudBees, Inc. All Rights Reserved
    27. 27. Cloud 101Read my lips: A-S A S-E-R-V-I-C-E ©2013 CloudBees, Inc. All Rights Reserved
    28. 28. Easy: « Just use a XaaS! » ©2012 CloudBees, Inc. All Rights 28 Reserved
    29. 29. Traditional software stackWe have done this for 20 years! validate setup update monitor Patch ©2012 CloudBees, Inc. All Rights 29 Reserved
    30. 30. Cloud Computing: How to do it? Who does what? Validate setup Cloud Provider Update Monitor ? Patch ©2012 CloudBees, Inc. All Rights 30 Reserved
    31. 31. SaaS•, Zendesk, NetSuite, etc.• Development environment – Rigid – mostly through CONFIGURATION – When available “development” takes place within the SaaS itself• THINK – Standard applications ©2012 CloudBees, Inc. All Rights 31 Reserved
    32. 32. IaaS – Let’s try not to change too much… SUN/HP/IBM/XYZ ? AWS/Rackspace/etc.Must probably be the same… ©2012 Cloud Bees, Inc. All Rights 32 Reserved
    33. 33. IaaS• AWS – the most popular example• Server Lego blocks – VM, storage, IP, etc.• Development environment: – “Give me a server, an OS, a virtualization layer, an application server, a firewall, a database, I’ll deal with it! And patch it. And monitor it. And…” – Flexible but cOmpLiCaTed• THINK – Custom-built systems ©2012 CloudBees, Inc. All Rights 33 Reserved
    34. 34. IaaS – Congratulations!“Great” news: you have now become responsible for the data-center! ©2012 Cloud Bees, Inc. All Rights 34 Reserved
    35. 35. IaaS – Consequences Directly managing your IaaS resources provides you with resource elasticity (CAPEX-free), but… The amount of soft-IT typically required to do so is … higher! – All of the traditional IT activities remain (maintain/patch/monitor OS+JVM+AS+DB++, etc.) – + cloud-specific items: elasticity/security/automation• I can read your mind: this is where you will start• My advice? Do it and then move on… ©2012 CloudBees, Inc. All Rights 35 Reserved
    36. 36. PaaS• Cloud concepts are applied to Applications – On-demand, pay-as-you-go, elasticity, etc. – No need to handle updates, patches, scalability, failover, etc.• Development environment – “Give me my typical development environment and manage everything else for me – servers, scalability, etc.”• THINK – Custom applications – Harder to “grasp” initially ©2012 CloudBees, Inc. All Rights 36 Reserved
    37. 37. The Cloud is refocusing IT roles• We focus a lot on the P/I/S on XaaS• But not enough on the … S!• We are entering a SERVICE-ERA – IaaS - You are CONSUMING IT resources – SaaS - You are CONSUMING an online Service – PaaS - You are CONSUMING development servicesThis is not about software anymore! ©2012 CloudBees, Inc. All Rights 37 Reserved
    38. 38. Again: Looking For a Solution?Read my lips: A-S A S-E-R-V-I-C-E ©2013 CloudBees, Inc. All Rights Reserved
    39. 39. To Be Or Not To Be… Packaged Software As-A-Service • • Days/WeeksMonths/Years Release v1.0 Release v0.1 • Implement micro-feature, • Gather requirements for v2.0  deploy, measure success, keep • Work on v2.0  or kill  • Release v2.0 • Implement micro-feature, don’t screw it up: once it is out, it is out. deploy, measure success, keep • Have your customer upgrade or kill  – Support v1.0 for years • Patch a bug • Support and patch dozen of • Implement micro-feature, “branches” in parallel deploy, measure success, keep or kill  • Gather requirements for v3.0  • Implement micro-feature, • Work on v3.0  deploy, measure success, keep or kill  • Implement micro-feature, deploy, measure success, keep ©2013 CloudBees, Inc. All rights 39 reserved or kill 
    40. 40. Software vs. Service• What’s the big difference? – They’re just a long series of 1 and 0 at the end of the day, right?• A Services is not just “hosted software” – i.e. take your current software, host it, and keep doing what you’ve been doing to date ©2012 CloudBees, Inc. All Rights 40 Reserved
    41. 41. Software != Service Not the same … [ requirement gathering | development | QA | success measurement | release | support ] … processes ©2012 CloudBees, Inc. All Rights 41 Reserved
    42. 42. Packaged Software vs Cloud SoftwareDelivery Version • Shipped May 1 2011 Version • Shipped May 2012 2 Version • Shipped May 2013 3 Development Methodology Varies Unachievable without Continuous Bonus: “We use CI” Integration and Continuous Delivery ©2013 CloudBees, Inc. All rights 42 42 reserved
    43. 43. Lower Risk and Cheap Experimentation Packaged Software As-A-Service v1.0.x v1.0 v2.0 ContinuousRi Release Release Ri Releasessk/ sk/Co Cost st Time Time Same basic value prop as agile, but code is being released continuously 43
    44. 44. Fast Iteration is good, but…• In theory, fast-iteration is great! But… FAST_ITERATION + FRICTION => HEAT! You need a no-friction environment ©2012 CloudBees, Inc. All Rights 44 Reserved
    45. 45. Continuous Cloud Deployment Code Build Test Stage Deploy #Fail #Fail #Fail #Fail• Integrated & automated “pipeline”• Always be in a “release-ready” state ©2012 CloudBees, Inc. All Rights 45 Reserved
    46. 46. Complex Scenarios are possible! Developer Org Developer TestsDeveloper Job Functional Tests Security Tests X-Team Tests Access Tests QA Org Database Tests SQE Job Compliance Tests Production Org Stress Tests Backup Production Production Job Deploy 4 Monitor 6 ©2012 CloudBees, Inc. All Rights 46 Reserved
    47. 47. Continuous Cloud Deployment• Your Code ~= Your Service• Always be in a release-ready state – This requires a NO-friction environment• Enables high-frequency iterations – Code, test, deploy, measure, keep-or-kill ©2012 CloudBees, Inc. All Rights 47 Reserved
    48. 48. Why am I telling you all of this?Enter into the world of CloudBees! ©2012 Cloud Bees, Inc. All Rights Reserved
    49. 49. CloudBees Platform as a Service Development SaaS Vendor Enterprise User Projects Applications Applications Test DEV@ RUN@ CloudBees Ecosystem Deploy Code Continuous JVM – Java EE Build Jenkins Deployment Stage Deploy Java, Python, Scala, … Scale Production Test Build Maintenance Repositories GIT SVN Maven … Iterate APIs CloudBees Core Platform Services CloudBees Smart Databases Logging/ Runtime services Data Services Messaging Identity Auditing Plugins Other SaaS Metering Back-end services Provisioning Management Monitoring Billing On Premise Public Edition - IaaS Providers Private Edition - On-Premise ©2012 CloudBees, Inc. 49 All Rights Reserved
    50. 50. What You Interact With When You UseCloudBeesCLI/SDK GrandCentral Web Console IDE ©2013 CloudBees, Inc. All rights 50 50 reserved
    51. 51. Development? No friction!Developer CloudBees PaaS ©2012 CloudBees, Inc. All Rights 51 Reserved
    52. 52. Deployment? No Friction! Deploy app to traditional Java Deploy app to CloudBees platformDeploy App:  Provision cluster Provision DB Deploy schema Deploy App to each (not a transparent update process) nodeProvision cluster: (transparent, provision nodes Install load- balancer (LB) Configure LB DEPLOY multi-version, HA, scalable) Setup BC for Secure LB QA cluster cluster Configure DNSProvision DB: • No need to care about servers, load-  Provision node Install DB Configure DB balancers, firewalls, backups, etc. Secure DB Setup BC for DBProvision node: • The environment is constantly managed Configure OS Secure OS Setup JVM and monitored Install AS on OS Configure AS Secure ASManage environment (recurring) • Scalability happens in realtime Analyse sec. Analyse QA Analyse AS/OS bulletins bulletins logs • Integrated failover/HA maintain OS maintain JVM maintain AS maintain DB maintain FW Validate/QA stack • We do « Ops », you do « Dev »Metering/Scaling (recurring) Measure App Acquire Hardware Provision node performance Update Cluster Update LB Update Security ©2012 CloudBees, Inc. All Rights 52 Reserved
    53. 53. Value à la carte – NO FRICTION Deploy Code YOUR TEAM OUR YOUR PROJECT Test Build ©2012 CloudBees, Inc. All Rights 53 Reserved
    54. 54. Example: Lose it!• Lose it! – Mobile application – >> millions of users – > 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? 54
    55. 55. Continuous Cloud Delivery at CloudBees Web Console API SDK Staging Identity Provisioning Monitoring Messaging Services Platform Unit Cross Service Tests Stage UAT Prod Git Tests SVN Forge Jenkins Core Jenkins Plugins As needed,Generic App Container multiple times Production Router Database per day Curated Stack 55
    56. 56. Typical Mobile App with Java back-end Custom ??? Mobile Back-end Fast-Iteration Stable Discovery NO-discovery 56
    57. 57. First Demo• Complete Java Server Application… • (Backbone.js front-end, REST back-end, DB)• … with full lifecycle automation … • (Code, build, test, deploy)• … and do it in a single click!  ClickStart
    58. 58. Get started in a snap! “ClickStart” Partner Partner Service Grand Service Central Web Console db:create Database CloudBees Bind API Bind App What’s up with this Deploy CloudBees Wow! Build/Test At your new framework! Git Trigger Repo service ©2013 CloudBees, Inc. All rights 58 58 reserved
    59. 59. Continous Delivery at work Partner Partner Service Service Local Git Database Repo Bind git commit Bind Changes App I want to make some CloudBees Deploy Wow! Trigger Build/Test At your changes! Git Repo service 59
    60. 60. Mobile! • Build on several • Deploy in the Deploy Code targets: iOS, field on real users Android, etc. • Gather input • If it fails, stop • Retrieve dumps • Etc. • If it fails, stop Test Build Beta GA Build Code Test Deplo Deplo App y y #fail #fail #fail #fail• Get started fast! • Test is costly! • D-Day!• Team Work • Easy-first, then • Push apps to• Automatically increase! real-life users! push new code to • Basic test • If it fails, stop test • Multi-device • Gesture • Etc. • If it fails, stop
    61. 61. Build Matrix• Testing mobile application requires testing on lots of different devices, form factors, etc.• Create one build job per form factor/generation?• No!• Jenkins Build Matrix!
    62. 62. Jenkins Build Matrix
    63. 63. So much more!
    64. 64. Getting started• Lots of new things to learn! • (delegation of trust, access to legacy data, latency, elasticity, iterativity, etc.)• Identify an application • Start small & Non-critical • Focus on « Learning » • And extend from there • (and enjoy!)
    65. 65. TIME TO WAKE-UP!• We are entering a SERVICE-era• Packaged software is dead – Too long cycles, no ability to measure, etc.• How can you remain competitive? I’m ready to deploy! Are you? ©2012 CloudBees, Inc. All Rights 65 Reserved
    66. 66. Thank you“It is easier to ask forgiveness than it is to ask permission” -- Grace Hopper @SachaLabourey