Continuous Delivery & Integration with JBoss Fuse on Openshift

Post on 12-Aug-2015

352 views 1 download

Tags:

Transcript of Continuous Delivery & Integration with JBoss Fuse on Openshift

 

Continuous Delivery withJBoss Fuse & Openshift

Christian Posta & Charles MoulliardDevNation - 23th of June 2015

WhoPrincipal Middleware Specialist/Architect

Blog:

Twitter: @christianposta

Email:

Committer on Apache Camel, ActiveMQ, Fabric8, PMC on ActiveMQ

Author: Essential Camel Components DZone Refcard

Frequent blogger and speaker about open-source technology!

http://christianposta.com/blog

christian@redhat.com

WhoPrincipal Solution Architect & Fuse Expert

Blog:

Twitter: @cmoulliard

Email:

Committer on Apache Camel, Karaf, Fabric8, Hawtio … & PMC

Technology evangelist

Mountain Biker, Belgian Beer Fan, Blogger

http://cmoulliard.github.io

cmoulliard@redhat.com

Agenda

The cost of change

CI/CD

Technology

OpenShift

Fabric8

Demo

 

Cost of change

Cost of change

Development

Operational

Infrastructure

Business requirements

Microservices reducing the Cost of Change

Integration costs

Integration is Hard!

Different system vintages

Mainframe, EAI Hub, MOM, EJB, WebServices

Evolving business processes

Systems must collaborate

Integration costs

Platforms, Protocols

Data Formats

Organizational mismatch

Timing, Communication

 

ContinuousDelivery/Integration

 

“WTF is DevOps?”

IT is a core competency

Set of principles

There’s more to applications thancoding!

Feedback, Repetition

Communication

People!

Continuous Delivery

Objective Continuous Integration strategy

Establish a concrete pipeline to production

Build/Test/Release often!

Bottlenecks?

Involves Dev and Ops to be successful

Every build is a “release candidate”

Automate everything!

Developers

Unit tests

Integration tests

Builds

Deployments in dev

Operations

VMs

Provisioning software

Deployments in QA/UAT/PROD

 

Requirements to support CD

Tools, tools

Git for SCM

Gerrit for code review

Gitlab/Gogs for git projects mngt

Apache Maven - build

Jenkins + plugins - automate

Linux containers

and of course… Fabric8!

 

Linux containers

Process

Docker

Container runtime, image distribution, Process launcher

Docker

Top of a Union FS mounted with immutable images

Benefits: portability, reusability, versioning, application-centric

 

Management platform

Kubernetes

Runtime & Operational management of containers

ApiServer (event, status), Scheduler, Controller & State Storage

Agent - Kubelet - manage containers on host

Containers pods (= shared docker containers)

Kubernetes

Pod & docker

Communicate to each other using skyDNS to resolve hostname

Pods & port

Ports can be exposed

Pods & volume

Share data using mounted volume between host & container

Kubernetes Service

Kube Service loadbalanced through the pods using HA-Proxy & Routes

Kube Application JSon

 

Cloud Platform

Openshift v3

Designed around Kubernetes, Docker & Fabric8

Provide additional features : build (STI), deploy, manage & promote

Platform as a Service

Flexible technology options

Developer self service

Automation, DevOps philosophy

Decoupling between operations and developers, reduces coordination

OS3 Architecture

 

Tooling, prepackaged apps

 

 

Fabric8 Maven Plugin

docker:build Build image of app

fabric8:json generates Kube MetaData App

fabric8:apply deploy/redeploy on Openshift

and more to create env, delete pods, create routes

 

 

Demo

Questions

Twitter : @cmoulliard@christianposta

More info

www.jboss.org/products/fuse.html

http://www.redhat.com/en/technologies/jboss-middleware