Accelerating Application
Delivery with OpenShift
Isaac Christoffersen
Bit Herder & Cloud Wrangler
@ichristo
Agenda
 Platform as a Service Overview
 OpenShift Overview
 Developer Workflow
Platform as a Service
The Path to Developer Self-Service
Cloud Service Models
STORAGE
(RHS)
HARDWARE
(x86)
VIRTUALIZATION
(RHEV)
OPERATING SYSTEM
(RHEL)
APPLICATION PLATFORM
(JBOSS, PHP, RUBY, ETC)
APPLICATION
Automated and
Managed by the Public
or Private Cloud Offering
Managed and
Controlled by Customer
(IT, Dev, or User)
IaaS PaaS SaaS
Increased Control
Increased Automation
A Cloud Application Platform
Code Deploy Run
Save Time and Money
Code your app
Push-button
Deploy, and
your App is
running in
the Cloud!
Challenge: Accelerating Delivery to Meet Demands
The transformation to IT as Manufacturing
Optimal
How to Build an App:
1. Have Idea
2. Get Budget
3. Code
4. Test
5. Launch
6. Automatically Scale
How to Build an App:
1. Have Idea
2. Get Budget
3. Submit VM Request request
4. Wait
5. Deploy framework/appserver
6. Deploy testing tools
7. Code
8. Test
9. Configure Prod VMs
10. Push to Prod
11. Launch
12. Request More Prod VMs to
meet demand
13. Wait
14. Deploy app to new VMs
15. Etc.
Virtualized
How to Build an App:
1. Have Idea
2. Get Budget
3. Submit acquisition request
4. Wait
5. Get Hardware
6. Rack and Stack Hardware
7. Install Operating System
8. Install OS Patches/Fix-Packs
9. Create user Accounts
10. Deploy framework/appserver
11. Deploy testing tools
12. Code
13. Test
14. Configure Prod servers (and buy
them if needed)
15. Push to Prod
16. Launch
17. Order more servers to meet demand
18. Wait…
19. Deploy new servers
20. Etc.
Physical
Code Deploy Enjoy
PaaS leverages automation technologies
and a cloud architecture…
…to drive Velocity, Efficiency, and Scalability in IT
Accelerate IT Service Delivery
Multi-language,
Auto-Scaling,
Self-service,
Elastic,
Cloud Application Platform
OpenShift Overview
Understanding How it Works
origin
Public
Cloud
Service
On-
premise
or Private
Cloud
Software
Open
Source
Project
The Three Forms of Red Hat’s PaaS
Developer IDE
Integrations
Web Browser
Console
Command Line
Tooling
REST APIs
Multiple ways to interact with OpenShift
The foundation of OpenShift Enterprise is Red Hat Enterprise Linux
RHEL RHELRHEL
RHEL RHEL RHEL
OpenShift Enterprise is a PaaS that runs on top of..... Infrastructure
OpenStack RHEV VMWare
Amazon EC2 Rackspace Bare Metal
The foundation of OpenShift Enterprise is Red Hat Enterprise Linux
RHEL RHELRHEL
RHEL RHEL RHEL
RHEL RHEL
A Developer creates a
new application
OpenShift creates a
GEAR
Web Console
Eclipse IDE
Cmd Line
Broker Node Node Node
RHEL
OpenShift
Gear
AWS / CloudForms / OpenStack (IaaS) / RHEV (Virt) / Bare Metal
Developer Workflow
Automates Gear Configuration via Cartridges
RHEL RHEL
CARTRIDGES are how
OpenShift installs
Languages & Middleware
Web Console
Eclipse IDE
Cmd Line
Broker Node Node Node
RHEL
AWS / CloudForms / OpenStack (IaaS) / RHEV (Virt) / Bare Metal
JBoss MySQL
Developers can add custom
language, data-store, or
middleware with with a custom
Cartridge.
CUSTOMEtc.
Etc.
Ruby
Python
PHP
Java
Postgres
MySQL
OpenShift Default
Cartridges
AWS / CloudForms / OpenStack (IaaS) / RHEV (Virt) / Bare Metal
RHEL RHEL
Developer pushes
application code via
GIT source code
management system
Git Protocol / ssh
Broker Node Node Node
RHEL
Push
AWS / CloudForms / OpenStack (IaaS) / RHEV (Virt) / Bare Metal
JBoss
Code
Git
Repo MySQL
OpenShift Automates Build, Test, Publish
RHEL RHEL
Broker Node Node Node
RHEL
AWS / CloudForms / OpenStack (IaaS) / RHEV (Virt) / Bare Metal
Jenkins
(CI)
Maven
(Builds) Apache
(HTTP)
Code
JBoss
Git
Repo
MySQL
OpenShift Automates Application Scaling!
Broker Node Node Node
RHEL
HA-Proxy MySQLJava
Co
de
Java
Co
de
Java
Code
AWS / CloudForms / OpenStack (IaaS) / RHEV (Virt) / Bare Metal
Real-world App Dev
– Multi Environments, Single PaaS
Brokers
Nodes
RHEL
Dev DISTRICT
Nodes
QA DISTRICT
Nodes
Prod DISTRICT
Dev QA Release Mgmt
Real-world App Dev
– Multi Environments, multiple PaaSes
Nodes
Dev
Dev QA Release Mgmt
Nodes
QA
Nodes
Prod
Developer Work Flow
Choice meets Standardization
Developer IDE
Integrations
Web Browser
Console
Command Line
Tooling
REST APIs
Multiple ways to interact with OpenShift
RHEL RHEL
Developer pushes
application code via
GIT source code
management system
Git Protocol / ssh
Broker Node Node Node
RHEL
Push
JBoss
Code
Git
Repo MySQL
Web Console That Runs on Any Device
OpenShift’s RHC CLI Tools
Deploying a Spring Java Web Application
1. Create App
rhc app create springmlb tomcat7 mongodb-2.4 -g medium -n
vizuricloud
2. Add code
cd springmlb
cp -rf ../CODE/mlbparks-spring/* .
3. Add the code to source repository
git add .
git commit -m ”Spring MLB Parks Test”
5. Push your code
git push
6. Enjoy
OpenShift’s RHC CLI Tools
Deploying a JBoss Java Web Application
1. Create App
rhc app create jbossmlb jbosseap-6 -g medium -n vizuricloud
2. Add MongoDB
rhc cartridge add mongodb-2.4 -a mlbparks -n vizuricloud
3. Add code
cd jbossmlb
cp -rf ../CODE/mlbparks-jboss/* .
4. Add the code to source repository
git add .
git commit -m "JBoss MLB Parks Test”
5. Push your code
git push
6. Enjoy
IDE Integration with Eclipse and IntelliJ
Choice of Languages, Frameworks and Middleware

Accelerating Application Delivery with OpenShift

  • 1.
    Accelerating Application Delivery withOpenShift Isaac Christoffersen Bit Herder & Cloud Wrangler @ichristo
  • 2.
    Agenda  Platform asa Service Overview  OpenShift Overview  Developer Workflow
  • 3.
    Platform as aService The Path to Developer Self-Service
  • 4.
    Cloud Service Models STORAGE (RHS) HARDWARE (x86) VIRTUALIZATION (RHEV) OPERATINGSYSTEM (RHEL) APPLICATION PLATFORM (JBOSS, PHP, RUBY, ETC) APPLICATION Automated and Managed by the Public or Private Cloud Offering Managed and Controlled by Customer (IT, Dev, or User) IaaS PaaS SaaS Increased Control Increased Automation
  • 5.
    A Cloud ApplicationPlatform Code Deploy Run Save Time and Money Code your app Push-button Deploy, and your App is running in the Cloud!
  • 6.
  • 7.
    The transformation toIT as Manufacturing Optimal How to Build an App: 1. Have Idea 2. Get Budget 3. Code 4. Test 5. Launch 6. Automatically Scale How to Build an App: 1. Have Idea 2. Get Budget 3. Submit VM Request request 4. Wait 5. Deploy framework/appserver 6. Deploy testing tools 7. Code 8. Test 9. Configure Prod VMs 10. Push to Prod 11. Launch 12. Request More Prod VMs to meet demand 13. Wait 14. Deploy app to new VMs 15. Etc. Virtualized How to Build an App: 1. Have Idea 2. Get Budget 3. Submit acquisition request 4. Wait 5. Get Hardware 6. Rack and Stack Hardware 7. Install Operating System 8. Install OS Patches/Fix-Packs 9. Create user Accounts 10. Deploy framework/appserver 11. Deploy testing tools 12. Code 13. Test 14. Configure Prod servers (and buy them if needed) 15. Push to Prod 16. Launch 17. Order more servers to meet demand 18. Wait… 19. Deploy new servers 20. Etc. Physical
  • 8.
    Code Deploy Enjoy PaaSleverages automation technologies and a cloud architecture… …to drive Velocity, Efficiency, and Scalability in IT Accelerate IT Service Delivery
  • 9.
  • 10.
  • 11.
  • 12.
    Developer IDE Integrations Web Browser Console CommandLine Tooling REST APIs Multiple ways to interact with OpenShift
  • 13.
    The foundation ofOpenShift Enterprise is Red Hat Enterprise Linux RHEL RHELRHEL RHEL RHEL RHEL OpenShift Enterprise is a PaaS that runs on top of..... Infrastructure OpenStack RHEV VMWare Amazon EC2 Rackspace Bare Metal
  • 14.
    The foundation ofOpenShift Enterprise is Red Hat Enterprise Linux RHEL RHELRHEL RHEL RHEL RHEL
  • 15.
    RHEL RHEL A Developercreates a new application OpenShift creates a GEAR Web Console Eclipse IDE Cmd Line Broker Node Node Node RHEL OpenShift Gear AWS / CloudForms / OpenStack (IaaS) / RHEV (Virt) / Bare Metal Developer Workflow
  • 16.
    Automates Gear Configurationvia Cartridges RHEL RHEL CARTRIDGES are how OpenShift installs Languages & Middleware Web Console Eclipse IDE Cmd Line Broker Node Node Node RHEL AWS / CloudForms / OpenStack (IaaS) / RHEV (Virt) / Bare Metal JBoss MySQL
  • 17.
    Developers can addcustom language, data-store, or middleware with with a custom Cartridge. CUSTOMEtc. Etc. Ruby Python PHP Java Postgres MySQL OpenShift Default Cartridges AWS / CloudForms / OpenStack (IaaS) / RHEV (Virt) / Bare Metal
  • 18.
    RHEL RHEL Developer pushes applicationcode via GIT source code management system Git Protocol / ssh Broker Node Node Node RHEL Push AWS / CloudForms / OpenStack (IaaS) / RHEV (Virt) / Bare Metal JBoss Code Git Repo MySQL
  • 19.
    OpenShift Automates Build,Test, Publish RHEL RHEL Broker Node Node Node RHEL AWS / CloudForms / OpenStack (IaaS) / RHEV (Virt) / Bare Metal Jenkins (CI) Maven (Builds) Apache (HTTP) Code JBoss Git Repo MySQL
  • 20.
    OpenShift Automates ApplicationScaling! Broker Node Node Node RHEL HA-Proxy MySQLJava Co de Java Co de Java Code AWS / CloudForms / OpenStack (IaaS) / RHEV (Virt) / Bare Metal
  • 21.
    Real-world App Dev –Multi Environments, Single PaaS Brokers Nodes RHEL Dev DISTRICT Nodes QA DISTRICT Nodes Prod DISTRICT Dev QA Release Mgmt
  • 22.
    Real-world App Dev –Multi Environments, multiple PaaSes Nodes Dev Dev QA Release Mgmt Nodes QA Nodes Prod
  • 23.
    Developer Work Flow Choicemeets Standardization
  • 24.
    Developer IDE Integrations Web Browser Console CommandLine Tooling REST APIs Multiple ways to interact with OpenShift
  • 25.
    RHEL RHEL Developer pushes applicationcode via GIT source code management system Git Protocol / ssh Broker Node Node Node RHEL Push JBoss Code Git Repo MySQL
  • 26.
    Web Console ThatRuns on Any Device
  • 27.
    OpenShift’s RHC CLITools Deploying a Spring Java Web Application 1. Create App rhc app create springmlb tomcat7 mongodb-2.4 -g medium -n vizuricloud 2. Add code cd springmlb cp -rf ../CODE/mlbparks-spring/* . 3. Add the code to source repository git add . git commit -m ”Spring MLB Parks Test” 5. Push your code git push 6. Enjoy
  • 28.
    OpenShift’s RHC CLITools Deploying a JBoss Java Web Application 1. Create App rhc app create jbossmlb jbosseap-6 -g medium -n vizuricloud 2. Add MongoDB rhc cartridge add mongodb-2.4 -a mlbparks -n vizuricloud 3. Add code cd jbossmlb cp -rf ../CODE/mlbparks-jboss/* . 4. Add the code to source repository git add . git commit -m "JBoss MLB Parks Test” 5. Push your code git push 6. Enjoy
  • 29.
    IDE Integration withEclipse and IntelliJ
  • 30.
    Choice of Languages,Frameworks and Middleware