fabric8 ci/cd

28
Fabric8 CI/CD

Upload: izzet-mustafaiev

Post on 11-Jan-2017

343 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Fabric8 CI/CD

Fabric8CI/CD

Page 2: Fabric8 CI/CD

● happy father

● SA in EPAM Systems

● Java is my primary language

● hands-on-coding with Groovy, Ruby

● exploring FP with Erlang/Elixir

● passionate about agile, clean code and devops

Page 3: Fabric8 CI/CD

Agenda● What is CI/CD?● Foundation● Fabric8● Demo● Takeaways● References● Q&A

Page 4: Fabric8 CI/CD

What...is

CI/CD?

Page 5: Fabric8 CI/CD

CI/CD

Page 6: Fabric8 CI/CD

Foundation

Page 7: Fabric8 CI/CD
Page 8: Fabric8 CI/CD

Architecture

Page 9: Fabric8 CI/CD

● Image○ Read-only FS○ Deploy & Share○ Blueprint for a

container

Concepts● Container

○ Read-write FS○ Image Instance○ Has a lifecycle

● Volume○ External storage○ Share data○ Persist data

● Registry○ Image Repository

Storage

Page 10: Fabric8 CI/CD

Docker CLI● docker search #search for images in a registry● docker pull #downloads image from a registry● docker images #displays existing images on a machine● docker run #creates and runs container from an image● docker ps #displayes all containers● docker start/stop #starts/stops containers● docker rm #removes containers● docker rmi #removes images

Page 11: Fabric8 CI/CD
Page 12: Fabric8 CI/CD

Concepts● Pod (collection of one or more Docker containers)

● Replication Controller (creates and cares about PODs)

● Service (proxy for a collection of PODs with single IP)

● Namespaces (divide cluster resources between multiple uses)

● Nodes (worker machine)

● Secret (holds sensitive information)

Page 13: Fabric8 CI/CD

Concepts● Labels (used to specify identifying attributes of objects)

● Volume (volume with POD’ lifecycle)

● Persistent Volumes (networked storage in the cluster)

● Persistent Volume Claim (a request for storage)

● etc

Page 14: Fabric8 CI/CD

Architecture

Page 15: Fabric8 CI/CD

K8s CLI● kubectl get pods #displayes PODs● kubectl get services #displayes services● kubectl get rc #displayes replication controllers● kubectl get nodes #displayes nodes● kubectl create #creates objects ● kubectl delete #deletes objects● kubectl edit #allows to modify resource on the server● kubectl scale #sets a new size for RC or DC● kubectl autoscale #auto sets a new size for RC or DC based on metrics

Page 16: Fabric8 CI/CD
Page 17: Fabric8 CI/CD

Concepts● Build (transformation of input parameters into a resulting object)

● Image Stream (automatically performs image build on events)

● Route (exposes service by externally-reachable name)

● Template (describes a set of objects that can be parameterized and processed to

produce a list of objects for creation by OpenShift)

● Deployment Config (adds support for software deployments concept)

● Project (is a Kubernetes namespace with additional annotations)

Page 18: Fabric8 CI/CD

Architecture

Page 19: Fabric8 CI/CD

OpenShift CLI● oc project #switches between projects● oc get routes #displayes routes● oc rsh $cnt #ssh into container● oc new-app #creates new application● oc new-build #creates new build● oc deploy #views, starts, cancels, or retries a deployment● oc rollback #reverts part of an application back to a previous deployment● oc import-image #import Docker image from registry

Page 20: Fabric8 CI/CD
Page 21: Fabric8 CI/CD

History● Fuse ESB (Open Source integration platform by FuseSource)

● Fabric (extension for managing many ESBs)

● Fabric8 1.x (Red Hat acquired FuseSource in 2012; Fuse ESB => JBoss Fuse; Fabric

closed; based on Zookeeper)

● Fabric8 2.x (on top of Kubernetes, 1.x become Jube - pure Java implementation of

Kubernetes API)

Page 22: Fabric8 CI/CD

Architecture

Page 23: Fabric8 CI/CD

Services & Tools● Fabric8 Console (management console for Kubernetes)

● CD Pipeline (set of CI/CD and infra mgm apps baked into Docker images)

● DevOps Tools (set of tools to deal with k8s and OpenShift)

● iPaaS (set of apps to provide orchestration of messaging, API and integration

svcs)

Page 24: Fabric8 CI/CD

Demo

Page 25: Fabric8 CI/CD

Takeaways- Docker is cool for light-weight v12n and simplifies things

- Kubernetes is powerful container orchestration platform

- OpenShift enhances “Build” capabilities on top of k8s

- Fabric8 enables CI/CD to shine with less effort

- Explore technologies to move faster

Page 26: Fabric8 CI/CD

References- Fabric8 http://fabric8.io

- Kubernetes http://k8s.io/

- OpenShift https://www.openshift.org/

- Jenkins Job DSL https://jenkinsci.github.io/job-dsl-plugin/

- Source Code https://github.com/webdizz/fabric8-ci-cd

Page 27: Fabric8 CI/CD

Q&A

Page 28: Fabric8 CI/CD

[email protected] @webdizz webdizz izzetmustafaiev http://webdizz.name

Thanks