Build Your Own PaaS, Just like Red Hat's OpenShift from LinuxCon 2013 New Orleans CloudOpen

8,441 views
8,151 views

Published on

Learn how to build your platform as a service just like RedHat's OpenShift PaaS - covers all the architecture & internals of OpenShift Origin OpenSource project, how to deploy it & configure it for bare metal, AWS, OpenStack, CloudStack or any IaaS, and the community that's collaborating on the project to deliver the next-generation of secure, scale-able PaaS visit: openshift.com for more information

presented at LinuxCon by Diane Mueller in the CloudOpen track

Published in: Technology

Build Your Own PaaS, Just like Red Hat's OpenShift from LinuxCon 2013 New Orleans CloudOpen

  1. 1. Build Your Own PaaS, Just Like Red Hat's OpenShift Diane Mueller dmueller@redhat.com Cloud Ecosystem Evangelist & Origin Community Manager dmueller@redhat.com Twitter: @pythondj http://openshift.github.io
  2. 2. 2 Agenda ● Cloud Vision @ RedHat ● Why PaaS Matters ● What is OpenShift? ● OpenShift Architecture & Internals ● Extending OpenShift with Cartridges ● How do you like your PaaS? ● The Road Ahead ● HP & Red Hat Collaboration
  3. 3. 5
  4. 4. 6 How to Build an App Old School vs. Today with PaaS
  5. 5. 7 PaaS is the Future *http://www.gartner.com/technology/research/cloud-computing/report/paas-cloud.jsp
  6. 6. 8 Focus is still on delivering Cloud Infrastructure
  7. 7. 9 and managing expectations in the Cloud
  8. 8. 10 New Cloud World Order
  9. 9. 11 Infrastructure as a Service gives you • Network, storage & compute as an on-demand service • Basically, servers in the cloud • You’re still on the hook to configure & manage the cloud & stack “How do I use this?”
  10. 10. 12 Software as a Service gives you • An on-demand application • Nothing to install or configure “This is all my customers and users care about!”
  11. 11. 13 Platform as a Service delivers • Application run-time environment in the cloud • Configures & manages both the cloud & stack for your application “The cloud is now useful!”
  12. 12. 14 What is OpenShift? ` The Next Generation Open Source Platform as a Service for Applications in the Cloud
  13. 13. 15 origin Public Cloud Service On- premise or Private Cloud Software Open Source Project FLAVORS OF OPENSHIFT
  14. 14. 16 OpenShift Online (http://openshift.com)
  15. 15. 17 We're not the only ones using OpenShift ● On Premise Private Clouds ● Public Clouds – For Enterprises – For SaaS providers – For Developers ● Other Public PaaSes Https://github.com/getupcloud/origin-server
  16. 16. 18 OpenShift Origin on Github http://openshift.github.io/
  17. 17. 19 OpenShift Enterprise ENTERPRISE IT MANAGED ● Let developers have the benefits of self-service PaaS while IT retains control for governance and compliance in a Private or Hybrid Cloud ● OpenShift Enterprise is designed to be deployed on top of and run on Red Hat Enterprise Linux (RHEL).
  18. 18. 20 What makes OpenShift different? ● RHEL Platform Support ● SELinux-based Secure Containers for multi-tenancy ● Extensible Architecture ● System Component Redundancy for High Availability ● Automatic Application Stack Provisioning ● Support for Java EE 6 ● Choice of Cloud Infrastructure, Bare Metal, or Desktop ● Configurable Deployment to Support Enterprise Requirements ● Automatic Application Scaling
  19. 19. 21
  20. 20. 22 http://openshift.github.io/
  21. 21. 23
  22. 22. 24 Multiple, Diverse, Complex Application Use Cases ● Require more than just “Infrastructure” ● Run on a diverse eco-system of application stacks ● Need to be secure, compliant and well-managed ● Scale or Fail
  23. 23. 25 Infrastructure Layer SaaS/Applications Layer Infrastructure LayerInfrastructure Layer Platform as a Service fills out the Cloud Layer Cake
  24. 24. 26 Infrastructure Layer SaaS/Applications Layer Infrastructure LayerInfrastructure Layer Extend OpenShift with Cartridges
  25. 25. 27 ● Expectation Management ● Add a PaaS Layer to your Cloud – Increases Interoperability – Adds On-Demand, Self Service – (Security+Privacy+Control ) = Compliance PaaS Languages, frameworks, web servers Services: Data, Messaging, others IaaS Hypervisor/Infrastructure
  26. 26. 28 OpenShift Architecture & Internals
  27. 27. 29 Summary of Key Terms Broker – Management host, orchestration of Nodes Node – Compute host containing Gears Gear – Allocation of fxed memory, compute, and storage resources for running applications Cartridge – A technology/framework (PHP, Perl, Java/JEE, Ruby, Python, MySQL, etc.) to build applications Application – Instantiation of a Cartridge 29
  28. 28. 3030 Amazon EC2 Rackspace Bare Metal OpenStack RHEV CloudStack OpenShift Origin PaaS Runs on IaaS
  29. 29. 3131 OpenShift Origin Machines Node Broker Broker Broker Node Nodes are where User applications live. An OpenShift Origin Broker can manage multiple nodes
  30. 30. 3232 Broker
  31. 31. 3333 Container Architecture Gear Node Gear Gear Gear CPU/Memory - C-Groups Network - IPTables / Traffic control policies Filesystem - Quota Security - Unix permissions + SELinux policies Filesystem - pam_namespace + Bind mounts
  32. 32. 3434 Container Architecture Gear Node Gear Gear Gear CPU/Memory - C-Groups Network - IPTables / Traffic control policies Filesystem - Quota Security - Unix permissions + SELinux policies Filesystem - pam_namespace + Bind mounts Pushed upstream: libvirt-lxc libvirt-sandbox-service
  33. 33. 3535 Applications and Gears Gear Node Gear Jboss MariaDB Jboss Gear Node Gear User application
  34. 34. 3636 Cartridges JBoss PHP Python Ruby MariaDB MongoDB PostgreSQL Community Cartridges Your cartridge here Etc.
  35. 35. 3737 Scaling JBoss JBoss MariaDB HAProxy
  36. 36. 3838 Not yet HA but... JBoss JBoss MariaDB HAProxy
  37. 37. 3939 Pushing Updates JBoss JBoss HAProxy Git + SSH
  38. 38. 4040 Origin Release 2 Fedora 19 or RHEL 6.x Get up and running Vagrant Puppet Comprehensive guide Ansible http://openshift.github.io
  39. 39. 41 Cartridges Gear Node Gear Gear Gear Application JBoss MySql
  40. 40. 42 • Database • Language • Daemon • Load-balancer • Key-value store 42 ... on OpenShift I want to run a ...
  41. 41. 43 •Ability to act on cartridge lifecycle events •Expose HTTP/Web-socket ports •Run your own binaries •Communicate with other instances •Create configuration files •Access and create to environment variables •Act on user specifies modes of operation •Provide user a starting point 43 Cartridge API
  42. 42. 44 More Complex Examples 44 • http://tinyurl.com/online-cartridges • JBoss EWS: • multiple versions of packaged software • support for multiple java versions • MySQL • pub/sub database connections • PHP My Admin • one cartridge dependent on another
  43. 43. Deploying your own OpenShift where you want it when you want it! We have a pre-built VM for you to check out today, and an installer is in the works for Origin 3.0 that will enable you to install Origin on your own systems or confgure multiple Origin VMs into a distributed PaaS
  44. 44. 46 How do you you like your PaaS? http://openshift.github.io/documentation/oo_deployment_guide_puppet.html https://mirror.openshift.com/pub/origin-server/release/2/images/openshift-origin.zip
  45. 45. 47
  46. 46. 48
  47. 47. 49
  48. 48. 50 "this isn't Gospel, but this is the gist" https://github.com/openshift/origin-install
  49. 49. 51 51 Amazon EC2 Rackspace Bare Metal OpenStack RHEV CloudStack OpenShift Origin PaaS OpenShift Runs on IaaS https://github.com/openshift/origin-dev-tools
  50. 50. 52 OpenShift on OpenStack
  51. 51. 53 OpenShift on OpenStack with Heat ● Disk Image Builder – to build the image ● Heat – to orchestrate the resources ● OpenStack – to run the infrastructure
  52. 52. 54 Disk Image Builder ● Produces images for a specific purpose ● Uses a chroot and bind mounted /proc /sys /dev ● Uses “elements” to alter how the image is built ● Supports Ubuntu, Fedora, RHEL
  53. 53. 55 Heat ● An orchestration service to build multiple composite cloud applications ● Uses AWS CloudFormation template format ● Interacts with OpenStack using native ReST API to create infrastructure resources – Instances, foating ips, volumes, security groups, users, etc
  54. 54. 56 Heat References ● http://github.com/openstack/heat ● http://github.com/openstack/diskimage-builder ● http://wiki.openstack.org/wiki/Heat
  55. 55. The Road Ahead It's all about Collaboration & Community
  56. 56. 58 Some of us are @RedHat ● GitHub Avatars here..
  57. 57. 59 Some are online..
  58. 58. 60 Some are building clouds ● On Premise/Private and Public Clouds – For Enterprises – For SaaS providers – For Developers ● Public Https://github.com/getupcloud/origin-server
  59. 59. 61 OpenShift: Community of Collaborators ● Contributors ● Developers ● Cloud Architects ● DevOps ● IT Managers ● Partners ● Solution Architects ● Fellow Evangelists + = ? ● Nex Gen PaaS ● Heat Templates ● Cartridges ● UX ● Documentation
  60. 60. 62 And all of us are in this together
  61. 61. 63 Hanging Out on Google+
  62. 62. 64 Contributing on Github ● https://github.com/openshift/origin-server/network/members
  63. 63. 65 OpenShift Contributor Guidelines ● https://github.com/openshift/origin- server/blob/master/CONTRIBUTING.md ● Apache V2 License ● It's a Meritocracy – Start with Bug Fixes – Volunteer to do Code Reviews – Extend the ecosystem with Cartridges & Quick Starts – Test! – Document – Evangelize!
  64. 64. 66 66 It's Open Source! Get Involved! Github: openshift/origin-server openshift/rhc openshift/puppet-openshift_origin openshift/openshift-pep openshift/openshift-extras Quickstarts & Cartridges Mailing Lists: dev@lists.openshift.redhat.com IRC freenode.net, #openshift-dev Deploy, Extend, Contribute!
  65. 65. 67 ● Google+ Community https://plus.google.com/communities/114361859072744017486 ● E-Mail ● OpenShift Users: users@lists.openshift.redhat.com ● Origin Developers: dev@lists.openshift.redhat.com ● IRC: irc.freenode.net ● OpenShift Users: #openshift ● Origin Developers: #openshift-dev Communication Channels
  66. 66. Questions? Thank you! For more information: http://openshift.com dmueller@redhat.com

×