1156515 Logo RH RGB Reverse

Continuous Delivery with JBoss Fuse & Openshift

Christian Posta & Charles Moulliard
DevNation - 23th of June 2015

Who

christian-posta

Principal Middleware Specialist/Architect

Blog: http://christianposta.com/blog

Twitter: @christianposta

Email: christian@redhat.com

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

  • Author: Essential Camel Components DZone Refcard

  • Frequent blogger and speaker about open-source technology!

Who

cmoulliard

Principal Solution Architect & Fuse Expert

Blog: http://cmoulliard.github.io

Twitter: @cmoulliard

Email: cmoulliard@redhat.com

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

  • Technology evangelist

  • Mountain Biker, Belgian Beer Fan, Blogger

Agenda

  • The cost of change

  • CI/CD

  • Technology

  • OpenShift

  • Fabric8

  • Demo

 

1156515 Logo RH RGB Reverse

Cost of change

Cost of change

  • Development

  • Operational

  • Infrastructure

  • Business requirements

change

Integration costs

  • Integration is Hard!

  • Different system vintages

  • Mainframe, EAI Hub, MOM, EJB, Web Services

  • Evolving business processes

  • Systems must collaborate

esb

Integration costs

  • Platforms, Protocols

  • Data Formats

  • Organizational mismatch

  • Timing, Communication

integration-1

integration 2

 

1156515 Logo RH RGB Reverse

Continuous Delivery/Integration

 

worked-fine-in-dev

“WTF is DevOps?”

  • IT is a core competency

  • Set of principles

  • There’s more to applications than coding!

  • Feedback, Repetition

  • Communication

  • People!

wtf-dev-ops

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

 

1156515 Logo RH RGB Reverse

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!

fabric8-cd-tools

 

1156515 Logo RH RGB Reverse

Linux containers

Process

docker-animated-1

Docker

  • Container runtime, image distribution, Process launcher

docker-animated-2

docker-logo

Docker

docker filesystems multilayer
  • Top of a Union FS mounted with immutable images

  • Benefits: portability, reusability, versioning, application-centric

dockerfile

 

1156515 Logo RH RGB Reverse

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 logo

Kubernetes

kubernetes-platform

Pod & docker

fabric8 pod
  • Communicate to each other using skyDNS to resolve hostname

Pods & port

fabric8 pod port
  • Ports can be exposed

Pods & volume

fabric8 pod volume
  • Share data using mounted volume between host & container

Kubernetes Service

fabric8 service pod
  • Kube Service loadbalanced through the pods using HA-Proxy & Routes

Kube Application JSon

kubernetes-json-1

kubernetes-json-2

 

1156515 Logo RH RGB Reverse

Cloud Platform

Openshift v3

  • Designed around Kubernetes, Docker & Fabric8

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

openshift logo

Platform as a Service

  • Flexible technology options

  • Developer self service

  • Automation, DevOps philosophy

  • Decoupling between operations and developers, reduces coordination

openshift logo

OS3 Architecture

ose-v3

 

1156515 Logo RH RGB Reverse

Tooling, prepackaged apps

 

fabric8

 

fabric8-diagram1

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

 

fabric8-cdci

 

1156515 Logo RH RGB Reverse

Demo

jenkins pipeline

Questions

questions

  • Twitter : @cmoulliard @christianposta