Build Your Own PaaS with OpenShift


Presented by:

Steven Citron-Pousty

@TheSteve0 on Twitter, IRC, and Github

 

Grant Shipley

@gshipley on Twitter, IRC, and Github

 

Talks are at http://talks.thesteve0.com

Agenda

  1. Learn a bit about PaaS
  2. Understand OpenShift Architecture
  3. See how to install on Your Own Machine

Assumptions

  1. You write web code or are a devops person
  2. You can use command line, git, and ssh
  3. You want to see what is involved in running a PaaS
  4. You will ask questions

But I know OpenStack...

What problems does it solve

Let's see from a developer AND sysadmin perspective

Assume on linux

  1. Install Apache with Mod_WSGI
  2. Make sure we have all the Python extensions set so Apache can see them
  3. Configure firewall so that only http, https, and ssh are available to outside world
  4. Install Postgresql
  5. PG_hba.conf, create db user, create db user password, set up access privs, and test account
  6. Create DB, give user permissions to the DB
  7. Set up a git repository and then figure out how to structure and deploy
  8. Now I can write code - hello world, then database connection, then real app
  9. Get it working with a public DNS
  10. Now I am stuck maintaining the machine

OR

  • Fill out a mile high stack of request forms for a VM from Ops and wait
  • Then realize it's not configured properly, submit ticket and wait
  • Repeat same information, and wait
  • Your ops person moves to a different group, GOTO Line 1....

DEMO

As a sysadmin

  1. First off, every time that developer reqests development machines, I am busy with real problems
  2. They always want to try some new language with some new datastore that they don't even know how to install, let alone manage
  3. There is whole bunch of account creation and lockdown I need to remember for each VM or they get Sudo or they annoy me all the time
  4. Each one of them ends up configuring their machine wildly differently
  5. They never give up the resources from their VMs - spreadsheets and emails
  6. If there is a security fix I need to go into each VM and update it
  7. I don't want to spend my time updating DNS tables

DEMO some more

OpenShift Enterprise or Origin creates a peaceful environment for Devs AND SysAdmins

  • Operations care about stability and performance
  • Developers just want environments without waiting
  • And neither wants to talk to each other

One Source to Bind Them All


 

 

 

On to Construction

Where to get the code++

  1. Code is available at http://openshift.github.io
  2. Current work and roadmap is on Trello https://trello.com/openshift
  3. A whole bunch of slide decks are up on slideshare

Terminology

  • Broker – Management host, orchestration of Nodes
  • Node – Compute host containing Gears
  • Gear – Allocation of fixed memory, compute, and storage resources for running applications
  • Cartridge – A technology/framework (PHP, Perl, Java/JEE, Ruby, Python, MySQL, etc.) to build applications
  • Client Tools – CLI, Eclipse, Web Console for creating and managing applications

Each OpenShift Origin server will be one of the following types

  • Broker Host
  • Node Host

Node Types II

The Broker is responsible for state, DNS, and authentication.

Now configure an application on a Node

What is a gear

What is a cartridge

Flow of request

Multi-tenant networking

Whole Stack

Easy to install on Fedora 18/19

  • Using Vagrant and Puppet
  •  

    And instructions for OpenStack and Heat

  • Install Instructions
  •  

    And instructions here for CloudStack

  • Install Instructions
  • What does it look like under the hoods

    Back to the VM!!

    Let's talk about community

    • Friday G+ hangouts
    • Community Days
    • Engineers in the IRC channel
    • Many ways for you to be invloved

    How about our commitment to FOSS

    Let's wrap it up

    1. Openshift makes life great for you
    2. Adds a covering of Awesome Sauce on any servers, cloudy or otherwise
    3. Free and in Beer and as in Apache Freedom
    4. We LOVE pull requests http://openshift.github.io

    Come hang out with us:
    #openshift-dev on freenode irc
    OR
    dev@lists.openshift.redhat.com