36
1 by Syed M Shaaf Solution Architect Red Hat [email protected]

OpenShift and next generation application development

Embed Size (px)

DESCRIPTION

OpenShift and next generation application development

Citation preview

Page 1: OpenShift and next generation application development

1 by

Syed M ShaafSolution Architect

Red Hat [email protected]

Page 2: OpenShift and next generation application development

2 by

Cloud Service Models

STORAGE(RHS)

HARDWARE(x86, Power, S/390)

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 3: OpenShift and next generation application development

3 by

PaaS = Platform as a Service

A Cloud Application Platform

Code Deploy Enjoy

Save Time and MoneyCode your app

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

Page 4: OpenShift and next generation application development

4 by

Page 5: OpenShift and next generation application development

5 by

Today’s IT Challenge

Page 6: OpenShift and next generation application development

6 by

OpenShiftis

PaaS by Red Hat

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

Elastic,Cloud Application Platform

Page 7: OpenShift and next generation application development

7 by

Developers Choose How To Work with OpenShift

Developer IDEIntegrations

Web BrowserConsole

Command LineTooling

REST APIs

Page 8: OpenShift and next generation application development

8 by

OpenShift’s Intuitive and “Responsive” Web Console Runs on Any Device

Page 9: OpenShift and next generation application development

9 by

Are You a Command-Line Fan?OpenShift’s RHC CLI Tools

1.Create Apprhc app create -a javasample -t jbossas-7

2.Add MongoDBrhc app cartridge add -a javasample –c mongodb-2.0

3.Add add EAR file to your deployments directory

cd javasample

cp /path/to/ear/earfilename.ear ./deployments

1.Add the EAR file to gitgit add ./deployments/earfilename.ear

2.Push your codegit push

3.Done

Page 10: OpenShift and next generation application development

10 by

And, of Course, a Powerful JBoss Dev Studio IDE Integration

Page 11: OpenShift and next generation application development

11 by

Developers Choose Languages, Frameworks and Middleware

Page 12: OpenShift and next generation application development

12 by

Page 13: OpenShift and next generation application development

13 by

Why OpenShift?1. Strength. OpenShift is built on proven Red Hat

technologies.

2. Freedom. In OpenShift, work the way you want.• Choice of Interface: Web Console, Command-line, or IDE• Choice of Middleware: Java(EE6), Ruby, Node.js, PHP, Python, and

Perl• Choice of Cloud: Public, Private, or Hybrid Cloud• Choice of Elasticity: Automatic application scaling when needed

1. Openness. OpenShift’s open source software stack ensures application portability and No Lock-In.

Page 14: OpenShift and next generation application development

14 by

Let’s Take a Look…

Page 15: OpenShift and next generation application development

15 by

How OpenShift Works

POWERED BY

OPENSHIFT

Page 16: OpenShift and next generation application development

16 by

OpenShift is a PaaS on top of… Infrastructure

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

Page 17: OpenShift and next generation application development

17 by

The Foundation of OpenShift is Red Hat Enterprise Linux

RHEL RHEL RHEL

OpenShift is Built on Instances of Red Hat Enterprise Linux (RHEL)

RHEL

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

Page 18: OpenShift and next generation application development

18 by

An OpenShift Broker Manages Multiple OpenShift Nodes

Nodes are where User Applications live.Brokers keep OpenShift running.

Brokers Node Node Node

RHEL RHEL RHELRHEL

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

Page 19: OpenShift and next generation application development

19 by

Unique SELinux Approach Enables Security and Multi-tenancy

RHEL RHEL

SELinux Policies securely subdividethe Node instances.

Broker Node Node Node

RHEL

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

Page 20: OpenShift and next generation application development

20 by

OpenShift User Applications Run in OpenShift Gears

RHEL RHEL

OpenShift GEARS represent secure containers in RHEL

Broker Node Node Node

RHEL

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

Page 21: OpenShift and next generation application development

21 by

RHEL RHEL

Broker Node Node

RHEL

AWS / CloudForms / OpenStack / Any VIRT Hyper-visor! / Bare Metal

Page 22: OpenShift and next generation application development

22 by

DeveloperWorkflow

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

Page 23: OpenShift and next generation application development

23 by

OpenShift AutomatesGear Configurationvia 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 24: OpenShift and next generation application development

24 by

OpenShift Cartridge System Enables User-Built Cartridges

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 25: OpenShift and next generation application development

25 by

Now, Code and Push

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 26: OpenShift and next generation application development

26 by

OpenShift AutomatesBuild, Test, Publish

RHEL RHEL

Broker Node Node Node

RHEL

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

Jenkins(CI)

Maven(Builds) Apache

(HTTP)

CodeJBoss

GitRepo

MySQL

Page 27: OpenShift and next generation application development

27 by

OpenShift AutomatesApplication Scaling!

Broker Node Node Node

RHEL

HA-Proxy MySQLJava

Code

Java

Code

Java

Code

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

Page 28: OpenShift and next generation application development

28 by

Real-world App Dev – Multi Environments, Single PaaS

Brokers

NodesRHEL

Dev DISTRICT

Nodes

QA DISTRICT

Nodes

Prod DISTRICT

Dev QA Release Mgmt

Git GitGit Git

Git

Page 29: OpenShift and next generation application development

29 by

Real-world App Dev – Multi Environments, multiple PaaSes

Nodes

Dev

Dev QA Release Mgmt

Nodes

QA

Nodes

Prod

Git GitGit Git

Git

Page 30: OpenShift and next generation application development

30 by

OpenShift Automates the

IT Assembly Line

POWERED BY

OPENSHIFT

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

Page 31: OpenShift and next generation application development

31 by

[stack@localhost openshift-origin-cartridge-nodejs]$ find -type f./hooks/{ pre, post}./env/OPENSHIFT_NODEJS_PID_DIR.erb./env/OPENSHIFT_NODEJS_LOG_DIR.erb./logs/.gitkeep./openshift-origin-cartridge-nodejs.spec./usr/template/index.html./usr/template/server.js./usr/template/.openshift/action_hooks/README.md./usr/template/package.json./usr/template/README.md./usr/template/node_modules/.gitkeep./usr/template/deplist.txt./metadata/locked_files.yml./metadata/manifest.yml./metadata/jenkins_shell_command.erb./versions/0.6/configuration/node.env./versions/0.6/configuration/npm_global_module_list./bin/setup./bin/control./bin/install

Demystified: Cartridge structure: Can I make my own?

Page 32: OpenShift and next generation application development

32 by

Choice of Public, Private, or Open Hybrid Clouds

Page 33: OpenShift and next generation application development

33 by

Choice of Public, Private, or Open Hybrid Clouds

Page 34: OpenShift and next generation application development

34 by

Choice of Public, Private, or Open Hybrid Clouds

Page 35: OpenShift and next generation application development

35 by

References

- http://www.openshift.com- http://www.redhat.com/products/cloud-computing/openshift-enterprise/- https://www.openshift.com/developers/cartridge-authors-guide

Contributions: Part of slide deck originally presented by Dan Juengst – Product Marketing, Red Hat

Page 36: OpenShift and next generation application development

36 by

Thank You

Questions?