OpenShift
                              State of the Union
                                 Devoxx 2012


Marco Rietveld
JBoss Software Engineer
http://mriet.wordpress.com/
@marcorietveld
14 Nov 2012, Antwerp
Sign up (It’s free!)      Sorry spam bots!
                          No OpenShift for you!




Got a laptop?
(Why not?!?)

Promo code:
DEVOXX2012
http://openshift.com/

This way you can follow
along with the demos.
OpenShift status

“A speech given by
the US President to
Congress every
year describing the
condition of the
country...”
History Lesson
  •   November 2010: Makara acquired by Red Hat

  •   2011: Makara merged into the OpenShift
      project

  •   May 2012: OpenShift open sourced!
      •   Live CD launched for local PaaS

      •   GitHub code base

      •   Activity: blogs, howto’s, quickstarts, webinars...

  •   June 2012: JBoss World, OpenShift Enterprise
      PaaS announced.
Getting started
You start with 3
And you never look back



          Tekst
PaaS?!?




Widescreen.. <drool>
STOP DORKING WITH THE STACK

Time spent setting up the server:
14 hours

Time spent finding
and fixing the problem:
45 minutes

There are some things that you
can spend all day(s) on.

This is NOT ONE OF THEM!
HOW-TO
         1. Sign Up
         2. Install Client Tools
         3. Create Domain
         4. Create Application
         5. Deploy Application (GIT)
         6. ROCK OUT!
Sign up (It’s free!)      Sorry spam bots!
                          No OpenShift for you!




Got a laptop?
(Why not?!?)

Promo code:
DEVOXX2012
http://openshift.com/

This way you can follow
along with the demos.
Install Client Tools
 Command line (https://openshift.redhat.com/community/developers/install-the-client-tools)
Fedora                                                                    Ubuntu
$ sudo yum install rubygem-rhc
                                  Windows
                                  Install Ruby (RubyInstaller 1.9)        $ sudo apt-get instal
$ rhc
                                  Install Git for Windows (1.8.0)         $ ruby -e ‘puts “Test
$ sudo gem update rhc                                                     Test
                                  C:Program Files> gem install rhc      $ git --version
                                  C:Program Files> rhc                  git version 1.8.0
                                                                          $ sudo getm install r
         Other                                                            $ rhc
         See link above
                             Mac OS X
                             $ ruby -e ‘puts “Ruby is installed”’
                             Ruby is installed
                             $ git --version
                             git version 1.8.0
                             $ sudo gem install rhc
                             $ rhc
Create your Domain
- Use the rhc command
$ rhc domain create -n mydomain -l openshiftlogin




 - Use the
 admin console
Web Cartridges
Currently:
JBoss EAP 6.0,
JBoss AS 7.1,
Tomcat,
Zend 5.6,
Node.js 0.6,
PHP 5.3,
Perl 5.10,
Python 2.6, Ruby 1.9,
Jenkins, DIY...
Instant applications
Creating an Application
• Web Cartridge   • Choose a name




• Create!
Ready, Set, Code!
Extend... (or start over!)
Gears


    • 500 Mb memory
    • 1 Gb Storage    Tekst
Embedded Gears:
MySQL,
PostgreSQL,
MongoDB,
PHPMyAdmin,
RockMongo,
Jenkins,
HAProxy,
Metrics,
Cron,
Gen-MMS-Agent
And Now with the
Command Line
 • Name app and define type
$ rhc app create -a <appname> -t <apptype> -l <openshiftlogin>

 •   Add application to local repo
$ cd <appname>
$ # add files, change them, etc!
$ git add .

 •   Commit changes
$ git commit -m “Initial app import.”
DEPLOY
$ git push            (Git hooks)

In your git repository:
.openshift/action_hooks/pre_build
.openshift/action_hooks/build
.openshift/action_hooks/deploy
.openshift/action_hooks/post_deploy
EASY!
Oh yeah, Developer Studio!
1, 2, 3, Go
Tips &                   No More Passwords! (bash)
                         Save password in ~/.openshift/.pwd

Tricks                   $ chmod 600 ~/.openshift/.pwd
                         $ function rhc() {
                           `which rhc` “$@” -p “`cat ~/.openshift/.pwd`”
                           # -l $login also, if you want
                         }

Hot Deployments!
Works for JBoss AS7, PHP and Ruby.                   Git Config
Add marker file:                                      autosetuprebase=true
$ touch .openshift/markers/hot_deploy
                                                     can cause problems...
... remember, you still have to live inside the      unless you’re a git guru!
memory footprint -- there’s also Jenkins!
DEMO TIME!
Designer
$ rhc app create -a editor -t jbossas-7
$ cd editor
$ git remote add upstream -m master
  git://github.com/eschabell/openshift-webdesigner-
jbpmmigration.git
$ git pull -s recursive -X theirs upstream master
$ git push

http://editor-$yourDomain.rhcloud.com/designer/editor?profile=jbpm&uuid=123
$ rhc app create -a swyesb -t jbossas-7
$ cd swyesb
$ git remote add upstream -m master
  git://github.com/eschabell/switchyard-openshift.git
$ git pull -s recursive -X theirs upstream master
$ git apply standalone.diff
$ git push

http://swyesb-$yourDomain.rhcloud.com/swydws/OrderService?wsdl
$ rhc app create -a ceylon -t jbossas-7
$ cd ceylon
$ git remote add upstream -m master
  git://github.com/eschabell/ceylon-openshift.git
$ git pull -s recursive -X theirs upstream master
$ git push
http://ceylon-$yourDomain.rhcloud.com
Redmine
$ rhc app create -a redmine -t ruby-1.9
$ rhc app cartridge add -a redmine -c mysql-5.1
$ cd redmine
$ git remote add upstream -m master
  git://github.com/openshift/redmine-2.0-openshift-
quickstart.git
$ git pull -s recursive -X theirs upstream master
$ git push

http://portal-$yourDomain.rhcloud.com/portal
$ rhc app create -a capedwarf -t jbossas-7
$ cd capedwarf
$ git remote add upstream
  git://github.com/openshift/capedwarf-example.git
$ git pull -s recursive -X theirs upstream master
$ git push

http://capedwarf-$yourDomain.rhcloud.com/
$ rhc app create -a nodejs -t nodejs-0.6
$ cd nodejs
$ git remote add upstream
  git://github.com/openshift/nodejs-example.git
$ git pull -s recursive -X theirs upstream master
$ git push

http://nodejs-$yourDomain.rhcloud.com/
DIY: Do It Yourself
$ rhc app create -a diy -t diy-0.1
$ cd diy
$ git remote add upstream
  git://github.com/openshift/openshift-diy-java-demo.git
$ git pull -s recursive -X theirs upstream master
# modify html/index.html and commit
$ git push

http://diy-$yourDomain.rhcloud.com/
Getting
 finished
Local PaaS
Runs on Virtual Box
(or virtmanager on linux)

Amazon AMI’s can also
be created.

Open Source
Oct 17, 2011
Progress
Nov 15, 2011
Dec 9, 2011
Dec 20, 2011     • Frequent releases
Jan 17, 2012
Feb 7, 2012      • Vote on Features
                 https://openshift.redhat.com/community/ideas
Feb 21, 2012
March 5, 2012
March 22, 2012
                 • Get involved
                 https://openshift.redhat.com/community/get-involved
May 15, 2012
June 26, 2012
July 18, 2012
Aug 8, 2012
Aug 28, 2012
Sep 18, 2012
Oct 21, 2012
Links, Info, IRC, email, ...
  Openshift                             http://openshift.redhat.com

  Example projects you can deploy now https://www.github.com/openshift
  as in -- during this talk -- but, you wouldn’t right? I’m still talking!



  Help?
  IRC                                   freenode #openshift

                                        http://www.redhat.com/openshift/
  Forums                                community/forums

  Email                                 openshift at redhat dot
Questions?
Credits:
Photos/Images:
all. OpenShift http://www.openshift.com

5, 34. “The Endeavor Lifts Off” http://www.flickr.com/photos/stuckincustoms/5896504098/
6. “Hammers” http://www.nytimes.com/2011/08/11/garden/roy-mackeys-hammer-art.html
7. “Warp Speed” http://www.flickr.com/photos/19942094@N00/4937185452/ (Randy Le’Moine Photography)
8. “NEC wide screen” http://www.finalsense.com/news/image/display/nec-crvd-lcd.jpg
9. “Damn!” (borking) http://www.flickr.com/photos/lore/431644237/
19. “Inner Gears” http://terrifyingteddy.deviantart.com/art/Inner-Gears-185076865
21. “Happy Dance” http://www.flickr.com/photos/jefito/2926851715/
26. “Blue Explosion” http://kyoakuno.deviantart.com/art/Blue-Explosion-93694376
27, 28, 29, 31. Logo’s (various projects) http://design.jboss.org/
30. “Ruby on Rails logo” http://media.smashingmagazine.com/images/introduction-to-rails/rails.jpg
32. “Node.js logo” http://nodejs.org/logos/
38. “Wat” http://knowyourmeme.com/photos/173583, http://knowyourmeme.com/photos/195379



                                                                                             THANKS:
                                                                                             Eric D. Schabell, John Graham, Devoxx, JBoss, the convenience
                                                                                             store around the corner, Linux, Eclipse, Staffworld (UMD CS),
                                                                                             “Steal This Presentation!”, Noise Pop, Skip Grant, and last, but
                                                                                             not least, the OpenShift team!

Open shift

  • 1.
    OpenShift State of the Union Devoxx 2012 Marco Rietveld JBoss Software Engineer http://mriet.wordpress.com/ @marcorietveld 14 Nov 2012, Antwerp
  • 2.
    Sign up (It’sfree!) Sorry spam bots! No OpenShift for you! Got a laptop? (Why not?!?) Promo code: DEVOXX2012 http://openshift.com/ This way you can follow along with the demos.
  • 3.
    OpenShift status “A speechgiven by the US President to Congress every year describing the condition of the country...”
  • 4.
    History Lesson • November 2010: Makara acquired by Red Hat • 2011: Makara merged into the OpenShift project • May 2012: OpenShift open sourced! • Live CD launched for local PaaS • GitHub code base • Activity: blogs, howto’s, quickstarts, webinars... • June 2012: JBoss World, OpenShift Enterprise PaaS announced.
  • 5.
  • 6.
  • 7.
    And you neverlook back Tekst
  • 8.
  • 9.
    STOP DORKING WITHTHE STACK Time spent setting up the server: 14 hours Time spent finding and fixing the problem: 45 minutes There are some things that you can spend all day(s) on. This is NOT ONE OF THEM!
  • 10.
    HOW-TO 1. Sign Up 2. Install Client Tools 3. Create Domain 4. Create Application 5. Deploy Application (GIT) 6. ROCK OUT!
  • 11.
    Sign up (It’sfree!) Sorry spam bots! No OpenShift for you! Got a laptop? (Why not?!?) Promo code: DEVOXX2012 http://openshift.com/ This way you can follow along with the demos.
  • 12.
    Install Client Tools Command line (https://openshift.redhat.com/community/developers/install-the-client-tools) Fedora Ubuntu $ sudo yum install rubygem-rhc Windows Install Ruby (RubyInstaller 1.9) $ sudo apt-get instal $ rhc Install Git for Windows (1.8.0) $ ruby -e ‘puts “Test $ sudo gem update rhc Test C:Program Files> gem install rhc $ git --version C:Program Files> rhc git version 1.8.0 $ sudo getm install r Other $ rhc See link above Mac OS X $ ruby -e ‘puts “Ruby is installed”’ Ruby is installed $ git --version git version 1.8.0 $ sudo gem install rhc $ rhc
  • 13.
    Create your Domain -Use the rhc command $ rhc domain create -n mydomain -l openshiftlogin - Use the admin console
  • 14.
    Web Cartridges Currently: JBoss EAP6.0, JBoss AS 7.1, Tomcat, Zend 5.6, Node.js 0.6, PHP 5.3, Perl 5.10, Python 2.6, Ruby 1.9, Jenkins, DIY...
  • 15.
  • 16.
    Creating an Application •Web Cartridge • Choose a name • Create!
  • 17.
  • 18.
  • 19.
    Gears • 500 Mb memory • 1 Gb Storage Tekst Embedded Gears: MySQL, PostgreSQL, MongoDB, PHPMyAdmin, RockMongo, Jenkins, HAProxy, Metrics, Cron, Gen-MMS-Agent
  • 20.
    And Now withthe Command Line • Name app and define type $ rhc app create -a <appname> -t <apptype> -l <openshiftlogin> • Add application to local repo $ cd <appname> $ # add files, change them, etc! $ git add . • Commit changes $ git commit -m “Initial app import.”
  • 21.
    DEPLOY $ git push (Git hooks) In your git repository: .openshift/action_hooks/pre_build .openshift/action_hooks/build .openshift/action_hooks/deploy .openshift/action_hooks/post_deploy
  • 22.
  • 23.
  • 24.
  • 25.
    Tips & No More Passwords! (bash) Save password in ~/.openshift/.pwd Tricks $ chmod 600 ~/.openshift/.pwd $ function rhc() { `which rhc` “$@” -p “`cat ~/.openshift/.pwd`” # -l $login also, if you want } Hot Deployments! Works for JBoss AS7, PHP and Ruby. Git Config Add marker file: autosetuprebase=true $ touch .openshift/markers/hot_deploy can cause problems... ... remember, you still have to live inside the unless you’re a git guru! memory footprint -- there’s also Jenkins!
  • 26.
  • 27.
    Designer $ rhc appcreate -a editor -t jbossas-7 $ cd editor $ git remote add upstream -m master git://github.com/eschabell/openshift-webdesigner- jbpmmigration.git $ git pull -s recursive -X theirs upstream master $ git push http://editor-$yourDomain.rhcloud.com/designer/editor?profile=jbpm&uuid=123
  • 28.
    $ rhc appcreate -a swyesb -t jbossas-7 $ cd swyesb $ git remote add upstream -m master git://github.com/eschabell/switchyard-openshift.git $ git pull -s recursive -X theirs upstream master $ git apply standalone.diff $ git push http://swyesb-$yourDomain.rhcloud.com/swydws/OrderService?wsdl
  • 29.
    $ rhc appcreate -a ceylon -t jbossas-7 $ cd ceylon $ git remote add upstream -m master git://github.com/eschabell/ceylon-openshift.git $ git pull -s recursive -X theirs upstream master $ git push http://ceylon-$yourDomain.rhcloud.com
  • 30.
    Redmine $ rhc appcreate -a redmine -t ruby-1.9 $ rhc app cartridge add -a redmine -c mysql-5.1 $ cd redmine $ git remote add upstream -m master git://github.com/openshift/redmine-2.0-openshift- quickstart.git $ git pull -s recursive -X theirs upstream master $ git push http://portal-$yourDomain.rhcloud.com/portal
  • 31.
    $ rhc appcreate -a capedwarf -t jbossas-7 $ cd capedwarf $ git remote add upstream git://github.com/openshift/capedwarf-example.git $ git pull -s recursive -X theirs upstream master $ git push http://capedwarf-$yourDomain.rhcloud.com/
  • 32.
    $ rhc appcreate -a nodejs -t nodejs-0.6 $ cd nodejs $ git remote add upstream git://github.com/openshift/nodejs-example.git $ git pull -s recursive -X theirs upstream master $ git push http://nodejs-$yourDomain.rhcloud.com/
  • 33.
    DIY: Do ItYourself $ rhc app create -a diy -t diy-0.1 $ cd diy $ git remote add upstream git://github.com/openshift/openshift-diy-java-demo.git $ git pull -s recursive -X theirs upstream master # modify html/index.html and commit $ git push http://diy-$yourDomain.rhcloud.com/
  • 34.
  • 35.
    Local PaaS Runs onVirtual Box (or virtmanager on linux) Amazon AMI’s can also be created. Open Source
  • 36.
    Oct 17, 2011 Progress Nov15, 2011 Dec 9, 2011 Dec 20, 2011 • Frequent releases Jan 17, 2012 Feb 7, 2012 • Vote on Features https://openshift.redhat.com/community/ideas Feb 21, 2012 March 5, 2012 March 22, 2012 • Get involved https://openshift.redhat.com/community/get-involved May 15, 2012 June 26, 2012 July 18, 2012 Aug 8, 2012 Aug 28, 2012 Sep 18, 2012 Oct 21, 2012
  • 37.
    Links, Info, IRC,email, ... Openshift http://openshift.redhat.com Example projects you can deploy now https://www.github.com/openshift as in -- during this talk -- but, you wouldn’t right? I’m still talking! Help? IRC freenode #openshift http://www.redhat.com/openshift/ Forums community/forums Email openshift at redhat dot
  • 38.
  • 39.
    Credits: Photos/Images: all. OpenShift http://www.openshift.com 5,34. “The Endeavor Lifts Off” http://www.flickr.com/photos/stuckincustoms/5896504098/ 6. “Hammers” http://www.nytimes.com/2011/08/11/garden/roy-mackeys-hammer-art.html 7. “Warp Speed” http://www.flickr.com/photos/19942094@N00/4937185452/ (Randy Le’Moine Photography) 8. “NEC wide screen” http://www.finalsense.com/news/image/display/nec-crvd-lcd.jpg 9. “Damn!” (borking) http://www.flickr.com/photos/lore/431644237/ 19. “Inner Gears” http://terrifyingteddy.deviantart.com/art/Inner-Gears-185076865 21. “Happy Dance” http://www.flickr.com/photos/jefito/2926851715/ 26. “Blue Explosion” http://kyoakuno.deviantart.com/art/Blue-Explosion-93694376 27, 28, 29, 31. Logo’s (various projects) http://design.jboss.org/ 30. “Ruby on Rails logo” http://media.smashingmagazine.com/images/introduction-to-rails/rails.jpg 32. “Node.js logo” http://nodejs.org/logos/ 38. “Wat” http://knowyourmeme.com/photos/173583, http://knowyourmeme.com/photos/195379 THANKS: Eric D. Schabell, John Graham, Devoxx, JBoss, the convenience store around the corner, Linux, Eclipse, Staffworld (UMD CS), “Steal This Presentation!”, Noise Pop, Skip Grant, and last, but not least, the OpenShift team!