30
Accelerating Application Delivery with OpenShift Isaac Christoffersen Bit Herder & Cloud Wrangler @ichristo

Accelerating Application Delivery with OpenShift

  • Upload
    posscon

  • View
    149

  • Download
    4

Embed Size (px)

Citation preview

Page 1: Accelerating Application Delivery with OpenShift

Accelerating Application

Delivery with OpenShift

Isaac Christoffersen

Bit Herder & Cloud Wrangler

@ichristo

Page 2: Accelerating Application Delivery with OpenShift

Agenda

Platform as a Service Overview

OpenShift Overview

Developer Workflow

Page 3: Accelerating Application Delivery with OpenShift

Platform as a Service

The Path to Developer Self-Service

Page 4: Accelerating Application Delivery with OpenShift

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

Page 5: Accelerating Application Delivery with OpenShift

A Cloud Application Platform

Code Deploy Run

Save Time and MoneyCode your app

Push-button Deploy, and your App is running in the Cloud!

Page 6: Accelerating Application Delivery with OpenShift

Challenge: Accelerating Delivery to Meet Demands

Page 7: Accelerating Application Delivery with OpenShift

The transformation to IT as Manufacturing

Optimal

How to Build an App:1. Have Idea2. Get Budget3. Code4. Test5. Launch6. Automatically Scale

How to Build an App:1. Have Idea2. Get Budget3. Submit VM Request request4. Wait5. Deploy framework/appserver6. Deploy testing tools7. Code8. Test9. Configure Prod VMs10. Push to Prod11. Launch12. Request More Prod VMs to

meet demand13. Wait14. Deploy app to new VMs15. Etc.

VirtualizedHow to Build an App:1. Have Idea2. Get Budget3. Submit acquisition request4. Wait5. Get Hardware6. Rack and Stack Hardware7. Install Operating System8. Install OS Patches/Fix-Packs9. Create user Accounts10. Deploy framework/appserver11. Deploy testing tools12. Code13. Test14. Configure Prod servers (and buy

them if needed)15. Push to Prod16. Launch17. Order more servers to meet demand18. Wait…19. Deploy new servers20. Etc.

Physical

Page 8: Accelerating Application Delivery with OpenShift

Code Deploy Enjoy

PaaS leverages automation technologies and a cloud architecture…

…to drive Velocity, Efficiency, and Scalability in IT

Accelerate IT Service Delivery

Page 9: Accelerating Application Delivery with OpenShift

Multi-language,Auto-Scaling,Self-service,

Elastic,Cloud Application Platform

Page 10: Accelerating Application Delivery with OpenShift

OpenShift Overview

Understanding How it Works

Page 11: Accelerating Application Delivery with OpenShift

origin

Public

Cloud

Service

On-

premise

or Private

Cloud

Software

Open

Source

Project

The Three Forms of Red Hat’s PaaS

Page 12: Accelerating Application Delivery with OpenShift

Developer IDE

Integrations

Web Browser

Console

Command Line

Tooling

REST APIs

Multiple ways to interact with OpenShift

Page 13: Accelerating Application Delivery 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

Page 14: Accelerating Application Delivery with OpenShift

The foundation of OpenShift Enterprise is Red Hat Enterprise Linux

RHEL RHELRHEL

RHEL RHEL RHEL

Page 15: Accelerating Application Delivery with OpenShift

RHEL RHEL

A Developer creates a new application OpenShift creates a GEAR

Web ConsoleEclipse IDECmd Line

Broker Node Node Node

RHEL

OpenShiftGear

AWS / CloudForms / OpenStack (IaaS) / RHEV (Virt) / Bare Metal

Developer Workflow

Page 16: Accelerating Application Delivery with OpenShift

Automates Gear Configuration via Cartridges

RHEL RHEL

CARTRIDGES are how OpenShift installs Languages & Middleware

Web ConsoleEclipse IDECmd Line

Broker Node Node Node

RHEL

AWS / CloudForms / OpenStack (IaaS) / RHEV (Virt) / Bare Metal

JBoss MySQL

Page 17: Accelerating Application Delivery with OpenShift

Developers can add custom language, data-store, or

middleware with with a custom Cartridge.

CUSTOMEtc.

Etc.

Ruby

Python

PHP

Java

Postgres

MySQL

OpenShift DefaultCartridges

AWS / CloudForms / OpenStack (IaaS) / RHEV (Virt) / Bare Metal

Page 18: Accelerating Application Delivery with OpenShift

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

GitRepo MySQL

Page 19: Accelerating Application Delivery with OpenShift

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

GitRepo

MySQL

Page 20: Accelerating Application Delivery with OpenShift

OpenShift Automates Application Scaling!

Broker Node Node Node

RHEL

HA-Proxy MySQLJava

Code

Java

Code

Java

Code

AWS / CloudForms / OpenStack (IaaS) / RHEV (Virt) / Bare Metal

Page 21: Accelerating Application Delivery with OpenShift

Real-world App Dev– Multi Environments, Single PaaS

Brokers

NodesRHEL

Dev DISTRICT

Nodes

QA DISTRICT

Nodes

Prod DISTRICT

Dev QA Release Mgmt

Page 22: Accelerating Application Delivery with OpenShift

Real-world App Dev– Multi Environments, multiple PaaSes

Nodes

Dev

Dev QA Release Mgmt

Nodes

QA

Nodes

Prod

Page 23: Accelerating Application Delivery with OpenShift

Developer Work Flow

Choice meets Standardization

Page 24: Accelerating Application Delivery with OpenShift

Developer IDE

Integrations

Web Browser

Console

Command Line

Tooling

REST APIs

Multiple ways to interact with OpenShift

Page 25: Accelerating Application Delivery 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

Page 26: Accelerating Application Delivery with OpenShift

Web Console That Runs on Any Device

Page 27: Accelerating Application Delivery with OpenShift

OpenShift’s RHC CLI Tools

Deploying a Spring Java Web Application

1. Create Apprhc 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 codegit push

6. Enjoy

Page 28: Accelerating Application Delivery with OpenShift

OpenShift’s RHC CLI Tools

Deploying a JBoss Java Web Application

1. Create Apprhc app create jbossmlb jbosseap-6 -g medium -n vizuricloud

2. Add MongoDBrhc 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 codegit push

6. Enjoy

Page 29: Accelerating Application Delivery with OpenShift

IDE Integration with Eclipse and IntelliJ

Page 30: Accelerating Application Delivery with OpenShift

Choice of Languages, Frameworks and Middleware