continuous delivery & integration with jboss fuse on openshift
TRANSCRIPT
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
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
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