How can Liferay Developers, Deployers move to the Cloud


Published on


Published in: Technology
1 Like
  • Be the first to comment

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

No notes for slide
  • Situation:      -  App Developers/Organizations would like to take applications to the market quicker Complication:      - Complicated technologies, maintain infrastructure that includes hardware, software, os blah Implication      - Costly over-runs, very complicated deployment models, complicated build models - bug filled apps. All costing $$
  • Quick 30s on the slide
  • (IaaS). The capability provided to the consumer is to provision processing, storage, networks, and other fundamental computing resources where the consumer is able to deploy and run arbitrary software, which can include operating systems and applications. The consumer does not manage or control the underlying cloud infrastructure but has control over operating systems, storage, deployed applications, and possibly limited control of select networking components (e.g., host firewalls). (PaaS). The capability provided to the consumer is to deploy onto the cloud infrastructure consumer-created or acquired applications created using programming languages and tools supported by the provider. The consumer does not manage or control the underlying cloud infrastructure including network, servers, operating systems, or storage, but has control over the deployed applications and possibly application hosting environment configurations. The capability provided to the consumer is to use the provider’s applications running on a cloud infrastructure. The applications are accessible from various client devices through a Tthin client interface such as a web browser (e.g., web-based email). The consumer does not manage or control the underlying cloud infrastructure including network, servers, operating systems, storage, or even individual application capabilities, with the possible exception of limited user-specific application configuration settings
  • IaaS: Lego blocks of fundamental Services, Very flexible. Built your own stack.
  • Consumer does not care about IaaS, PaaS, SaaS. App developer – then should really care about the fastest time to market with the least amount of work. It is clearly then the SaaS. However how do you differentiate yourself. As an app developer – you need to build custom apps. Well these questions have been asked by developers since a long time and I am certainly not the first one.
  • Well not quite. There is the Multi-tenancy thing…
  • AWS and Azure show “naïve” approach to PaaS i.e. IaaS+middleware Modern approach provide infrastructure abstraction and favor APPS and DEV Some platforms (like GAE) restrict developer’s ability to do what they need, hence reduce application “ migrability ” from traditional AS
  • Coding in the cloud
  • Situation Complication Implication {Rephrase} -1 slide Situation: The traditional software development process includes coding, some more coding, ad-hoc testing, rapid commits before start of the testing phase. Tests are run nightly, weekly or sometimes even less frequently. Compllication This is a flawed process - usually results in inefficient testing, long difficult integration process, poor visibility into development process, raised issues are harder to fix. The setup is a like a house of cards all ready to fall. Implication The implication is that either organizations end up shipping buggy product and suffer a loss of reputation and revenue in the market or delivery runs into costly overruns and delays and the organization loses revenue in the market. Position Opening Action Benefit - (slide 1) Position Tests should be run as often as possible if not sooner, integration should be continuous not discrete, reports should be available available per commit Opening Action To bring the desired continuity to the software development/software factory life-cycle - a CI server should be made a core part of the development process Benefit Issues are found faster, integrations are quicker, fixes are fixed almost as they are found - resulting in a better tested software that is released on time in the market.
  • You can think of CI as a factory that takes 3 functions and spits out quality software and some residual. Those three functions are the repository, build process, testing process: as always source repository is the most important piece of all – developers commit code to the repository. uberSVN makes the coding environment more social – so you can see who has made what commits and follow a discussion. This facility is not available in plain jane svn – so it is a huge step forward in helping people collaborate. Once the code is committed – CI detects it – picks up the associated build scripts, builds all components and sub-components. If there is a failure, you can see who broke the build and go into uberSVN and follow or initiate the discussion. As part of the build process – you can run things like static code analysis, code coverage tests etc Talk about running tests Sets of reports are generated. If you are happy – you can continuous deploy from here to the application server of your choice and anywhere else.
  • Question 1) So Harpreet – how has the community split played out? Where do you see that developers have moved to? Answer) some stats here on thriving community. Wandisco is doing the right thing by voting with the community and offering Jenkins as a solution Users chose Jenkins – 13k downloads/week; 1500 members on the jenkins-users list and 4700 followers on twitter (vs 570 followers); apache, nasa, jrbuy, scala others have moved to Jenkins Developers chose Jenkins – 900 members on jenkins-dev; 48 active contribtors; of top 25 plugin 21 moved to Jenkisn; 11.3 chanes/release vs 6.3 pre-fork Jenkins user conference – announced 3 weeks ago: 250+ registrants; 30 talk submissions Question 2) 500+ plugins sound nice – who maintains them? Answer) The community contributes these plugins and plugin developers maintain them Question 3) So if I as a serious enterprise user want to get support – where do I go? Should I be chasing these developers? Answer) (Not bashing the community). Well Tim – you could file a bug report in the open source community. But your biz priority might be quite different than what the communities priority. What we see is that in your audience case they would come to Wandisco for support as they get an integrated product and making sure your biz runs makes wandisco pay its mortgage – so they will support it as a commercial product. Question 4) Any plugins that you like Answer) Chuck Norris is quite popular
  • We compress your development to deployment so that you can take better tested applications to market faster without maintenance headaches.
  • As cloud service provider we provide On-demand and self service of resources in our platform. So for e.g: if you will like to scale applications, adding servers is as easy going to our web console and adding more instances of servers. Rapid Elasticity: you could if you wanted to provision more servers – set it up to automatically increase capacity based on our “ Measured?monitor Service ” – basically we track resource usage and increase capacity or cool down based on some criteria The core platform has run time services that we use ourselves and provide to customers. DBMS, NoSQL DB (CouchDB), Logging services. We have built our own background services around Provisioning. We have added some nifty functionality Forge usage within Jenkins Delta war uploader. So if you are uploading MBs – you pay the price only once. We provide a SDK that a) wraps some essential functionality for deploying apps etc. It wraps it around a Rest like API. This api is used by our web ui as well.
  • Closing Position      PaaS offers deliverance from management headaches Core Message:      However while choosing a solution clearly put down a criteria - in our opinion moving the entire development lifecycle to the cloud is the key Closing Action:      Open an account on CloudbEes
  • How can Liferay Developers, Deployers move to the Cloud

    1. 1. Potential Paths to using Liferay in the cloud Liferay West Coast Symposium, 2011 Harpreet Singh Senior Director, Product Management CloudBees ©2011 Cloud Bees, Inc. All Rights Reserved
    2. 2. <ul><li>I work for CloudBees </li></ul><ul><ul><li>CloudBees is the top Platform-as-a-Service company for Java </li></ul></ul><ul><li>My background is </li></ul><ul><ul><li>in PaaS </li></ul></ul><ul><ul><li>development, deployment in the cloud </li></ul></ul><ul><ul><li>Jenkins Continuous Integration and </li></ul></ul><ul><ul><li>Java EE & Application Servers </li></ul></ul><ul><li>Invited here to speak about Jenkins and the cloud – topics that Liferay thinks would be very interesting & pertinent to Liferay developers </li></ul>Who am I and What am I doing here? ©2011 CloudBees, Inc. All Rights Reserved * Safe Harbor slide 
    3. 3. About CloudBees ©2011 Cloud Bees, Inc. All Rights Reserved The leading Platform as a Service (PaaS) for Java™ CloudBees services the complete lifecycle of Cloud application development and deployment. No Servers. No Virtual Machines. No IT. <ul><li>Nectar – CloudBees pro version of Jenkins </li></ul><ul><li>[email_address] – Cloud Services for Developers </li></ul><ul><ul><li>We are the Jenkins experts </li></ul></ul><ul><ul><li>Core service of DEV@cloud with “Jenkins-as-a-Service” </li></ul></ul><ul><ul><li>Kohsuke Kawaguchi part of the team </li></ul></ul><ul><li>RUN@cloud – Frictionless runtime PaaS for Java apps </li></ul>
    4. 5. <ul><li>Our Position </li></ul><ul><ul><li>Liferay developers/administrators should explore moving their development and deployment to the cloud </li></ul></ul>What is the talk about? ©2011 CloudBees, Inc. All Rights Reserved <ul><li>Your Action </li></ul><ul><ul><li>Plugin developers </li></ul></ul><ul><ul><ul><li>move plugin development to the cloud through services like CloudBees </li></ul></ul></ul><ul><ul><li>Administrators </li></ul></ul><ul><ul><ul><li>explore moving your deployments to a PaaS today </li></ul></ul></ul><ul><li>Implication </li></ul><ul><ul><li>Productivity and Cost Benefits </li></ul></ul>
    5. 6. <ul><li>What is the cloud? </li></ul><ul><ul><li>IaaS/PaaS/SaaS </li></ul></ul><ul><ul><li>What does a PaaS bring? </li></ul></ul><ul><ul><li>PaaS solutions in the market </li></ul></ul><ul><li>Moving plugin development to the cloud </li></ul><ul><li>Moving Liferay installation to the cloud </li></ul>Agenda ©2011 CloudBees, Inc. All Rights Reserved
    6. 7. What is the cloud? <ul><li>Show me the layered cake </li></ul>
    7. 8. Traditional Software Stack
    8. 9. Outsourcing headaches Cloud Provider
    9. 10. 3 Cloud Services Model: The layered Cake
    10. 11. Cloud Service Provider View IaaS Build Your Own Stack Manage stack Build app Manage app Consumer Concern Provider Concern PaaS Pre-built Platform Managed stack SaaS Pre-built app Use App
    11. 12. App Consumer View
    12. 13. Isn't this hosting? <ul><li>You own resources </li></ul><ul><ul><li>Pay for what you use and not use </li></ul></ul><ul><li>No sharing </li></ul><ul><li>No elasticity </li></ul><ul><li>Renting resources </li></ul><ul><ul><li>Pay for what you use </li></ul></ul><ul><li>Sharing </li></ul><ul><ul><li>Multi-tenant </li></ul></ul><ul><li>Elasticity </li></ul>Hosting = Cloud =
    13. 15. PaaS: Services that you care about Provisioning Billing Monitoring SLA Policy Core Platform Services IaaS Virtualization/OS Metering App Server Mail Logging DBMS/NoSQL Middleware Services Messaging Auto Scaling CI HA Runtime Services SCM ALM Services UI IDE Dev Services SDK APIs
    14. 16. PaaS Landscape Flexibility Compatibility SaaS-like IaaS-like OS Flex is server-centric Basic orchestration of AWS blocks .Net-on-a-Server, with only … more constraints Spring-centric offering, focused on vCloud JVM-based offering fully server-agnostic Oldest SaaS-like offering but with lots of env. constraints
    15. 17. <ul><li>What is the cloud? </li></ul><ul><li>Moving plugin development to the cloud </li></ul><ul><ul><li>Why CI? Why Jenkins? </li></ul></ul><ul><ul><li>Dev-to-deploy lifecycle today & tomorrow </li></ul></ul><ul><ul><li>Where does cloud help? </li></ul></ul><ul><ul><li>CloudBees: Jenkins in the cloud? </li></ul></ul><ul><li>Moving Liferay installation to the cloud </li></ul>Agenda ©2011 CloudBees, Inc. All Rights Reserved
    16. 18. Moving development to the cloud <ul><li>Code, Build, Test in the cloud </li></ul>©2011 CloudBees, Inc. All Rights Reserved
    17. 19. <ul><li>Why? </li></ul><ul><ul><li>Teams are increasingly distributed </li></ul></ul><ul><ul><ul><li>Being on the same page is a problem </li></ul></ul></ul><ul><ul><li>Maintaining a repo requires </li></ul></ul><ul><ul><ul><li>Administrative skills </li></ul></ul></ul><ul><ul><ul><li>Repo machines </li></ul></ul></ul><ul><li>Suggestions </li></ul><ul><ul><li>Github: watch projects, follow colleagues </li></ul></ul><ul><ul><li>CloudBees forge: development, ci and build in one place </li></ul></ul><ul><ul><ul><li>Maven repositories in the cloud as well </li></ul></ul></ul>Moving code to the cloud ©2011 CloudBees, Inc. All Rights Reserved
    18. 20. ©2011 CloudBees, Inc. All Rights Reserved Coding in the Cloud GitHub & CloudBees
    19. 21. What is CI? ©2011 CloudBees, Inc. All Rights Reserved The Problem The Solution <ul><li>Traditional Development </li></ul><ul><ul><li>Infrequent commits </li></ul></ul><ul><ul><li>Ad-hoc testing </li></ul></ul><ul><ul><li>Difficult integration process </li></ul></ul><ul><ul><li>Infrequent releases </li></ul></ul><ul><ul><li>Testing @ end </li></ul></ul><ul><li>Leads to </li></ul><ul><ul><li>Inefficient testing </li></ul></ul><ul><ul><li>Long, difficult, error-prone integration </li></ul></ul><ul><ul><li>Low visibility on development </li></ul></ul><ul><ul><li>Harder to fix issues </li></ul></ul><ul><li>Development with CI </li></ul><ul><ul><li>frequent commits </li></ul></ul><ul><ul><li>Dedicated build server </li></ul></ul><ul><ul><li>Automatic builds </li></ul></ul><ul><ul><li>Automatic tests </li></ul></ul><ul><ul><li>Automatic reporting </li></ul></ul><ul><ul><li>Regular testing </li></ul></ul><ul><ul><li>Regular releases </li></ul></ul><ul><ul><li>Continuous deployment </li></ul></ul><ul><ul><li>Less bugs </li></ul></ul><ul><li>Core best practice in modern s/w development </li></ul>
    20. 22. Principal Components of CI ©2011 CloudBees, Inc. All Rights Reserved
    21. 23. What is Jenkins? ©2011 CloudBees, Inc. All Rights Reserved About <ul><li>History </li></ul><ul><ul><li>Kohsuke starts Hudson @Sun </li></ul></ul><ul><ul><li>Hudson 1.0 as part of GlassFish </li></ul></ul><ul><ul><li>Oracle acquires Sun </li></ul></ul><ul><ul><li>Community moves away from Oracle </li></ul></ul><ul><ul><li>Thriving Jenkins community today </li></ul></ul><ul><li>Releases: Weekly, LTS </li></ul><ul><li>Adoption </li></ul><ul><ul><li>25k+ sites using Jenkins </li></ul></ul><ul><ul><ul><li>YHOO, RHAT, GS… </li></ul></ul></ul>Plugins <ul><li>Extensible Architecture </li></ul><ul><li>500+ plugins </li></ul><ul><li>Categories </li></ul><ul><ul><li>SCM </li></ul></ul><ul><ul><ul><li>Subversion, CVS, Git… </li></ul></ul></ul><ul><ul><li>Build Tools </li></ul></ul><ul><ul><ul><li>Gradle, Groovy, Promoted builds, </li></ul></ul></ul><ul><ul><li>Build Wrappers </li></ul></ul><ul><ul><ul><li>Selenium, Artifactory, AWS </li></ul></ul></ul><ul><ul><li>Build Notifiers </li></ul></ul><ul><ul><ul><li>IRC, Jabber, Lavalamp </li></ul></ul></ul><ul><ul><li>Build Reports </li></ul></ul><ul><ul><ul><li>Clover, Emma, PMD, Sonar… </li></ul></ul></ul><ul><ul><li>… </li></ul></ul>#1 OSS Continuous Integration Server
    22. 24. ©2011 CloudBees, Inc. All Rights Reserved CI on your server CI on the Cloud
    23. 25. <ul><li>Move code to the cloud </li></ul><ul><li>Setup Jenkins online </li></ul><ul><ul><li>Install SDK as part of build process </li></ul></ul><ul><li>Code commit hooks </li></ul><ul><ul><li>Builds code automatically </li></ul></ul><ul><ul><li>Runs your tests </li></ul></ul><ul><ul><li>Runs code coverage </li></ul></ul><ul><ul><li>Runs cross browser tests </li></ul></ul><ul><li>Setup Liferay online </li></ul><ul><ul><li>Deploy to Liferay instance </li></ul></ul>What does it mean for plugin developers? ©2011 CloudBees, Inc. All Rights Reserved
    24. 26. Deploying Liferay to the cloud
    25. 27. What deployment should be? Manage Application Environment Manage CI Environment Manage Server Environment Configure OS Secure OS Setup JVM Install AS on OS Configure AS Secure AS  provision nodes Install load-balancer (LB) Configure LB Secure LB Setup BC for cluster QA cluster Configure DNS Provision node: Provision cluster:  Provision node Install DB Configure DB Secure DB Setup BC for DB Provision DB:  Provision cluster Provision DB Deploy schema Deploy App to each node Deploy App: (not a transparent update process) Analyse sec. bulletins Analyse QA bulletins Analyse AS/OS logs maintain OS maintain JVM maintain AS maintain DB Manage environment ( recurring ) maintain FW Validate/QA stack Measure App performance Acquire Hardware Provision node Update Cluster Update LB Metering/Scaling ( recurring ) Update Security Install Plugins Manage Plugins Apply Patches Manage CI Environment:  Setup Master Setup Slaves Setup CI Environment Deploy Build Continuous Deployment
    26. 28. CloudBees Platform as a Service Cloud Management / Virtualization / OS ©2011 CloudBees, Inc. All Rights Reserved Continuous Deployment Production Build Test Provisioning Maintenance Elasticity/HA Jenkins JVM – Java EE Java, Python, Scala, … CloudBees Core Platform Services RUN DEV Repositories Data Services RDBMS, NoSQL Metering Billing Monitoring Management Messaging Identity Logging/ Auditing Back-end services Runtime services GIT Maven … SVN APIs Web UI, CLI, HTTP API, Eclipse, Maven, Ant, etc. Databases Other SaaS On Premise
    27. 29. ©2011 CloudBees, Inc. All Rights Reserved
    28. 30. <ul><li>Why deploy in the cloud? </li></ul><ul><ul><li>Outsource to PaaS provider – no more maintenance headaches </li></ul></ul><ul><ul><li>Start out quickly – up and running very very quickly – great for POC’s </li></ul></ul><ul><ul><li>Plugin developers -> deploy -> to their own instances, bring them and down once testing is done </li></ul></ul><ul><ul><li>Scale up and down </li></ul></ul>Deploying Liferay in the cloud: Today ©2011 CloudBees, Inc. All Rights Reserved
    29. 31. <ul><li>Create a new database </li></ul><ul><li>Repackage standalone war </li></ul><ul><ul><li>Bundle libs into war instead of dropping in Tomcat directory </li></ul></ul><ul><ul><li>Edit to add database information </li></ul></ul><ul><li>Choose medium plan on CloudBees </li></ul><ul><li>Download CloudBees SDK </li></ul><ul><li>Deploy application </li></ul><ul><ul><li>bees app:deploy </li></ul></ul><ul><li>Detailed Steps: pca8Qc </li></ul><ul><li>Steps for Amzn Beanstalk (James Falkner’s blog): </li></ul><ul><ul><li> </li></ul></ul>Steps to deploy Liferay to CloudBees ©2011 CloudBees, Inc. All Rights Reserved
    30. 32. Liferay on CloudBees <ul><li>How does this look? </li></ul>©2011 CloudBees, Inc. All Rights Reserved
    31. 33. ©2011 CloudBees, Inc. All Rights Reserved
    32. 34. <ul><li>Delivered through Liferay </li></ul><ul><ul><li> </li></ul></ul><ul><ul><li>Choose a plan: starter/medium/heavy </li></ul></ul><ul><ul><ul><li>Auto-migrate from starter->heavy based on traffic </li></ul></ul></ul><ul><ul><ul><li>Liferay SaaS administrators handle the underlying migration magic for you </li></ul></ul></ul><ul><li>Delivered through 3 rd party (say CloudBees) </li></ul><ul><ul><li>Liferay as an ecosystem provider </li></ul></ul><ul><ul><li>You get to choose amongst PaaS services </li></ul></ul>Liferay as a SaaS Application: Tomorrow ©2011 CloudBees, Inc. All Rights Reserved
    33. 35. ©2011 CloudBees, Inc. All Rights Reserved
    34. 36. <ul><li>Our Position </li></ul><ul><ul><li>Liferay developers/administrators should explore moving their development and deployment to the cloud </li></ul></ul>Conclusion ©2011 CloudBees, Inc. All Rights Reserved <ul><li>Your Action </li></ul><ul><ul><li>Plugin developers </li></ul></ul><ul><ul><ul><li>move plugin development to the cloud through services like CloudBees </li></ul></ul></ul><ul><ul><li>Administrators </li></ul></ul><ul><ul><ul><li>explore moving your deployments to a cloud today </li></ul></ul></ul><ul><li>Implication </li></ul><ul><ul><li>Productivity and Cost Benefits </li></ul></ul>