fabric8 ci/cd
TRANSCRIPT
![Page 1: Fabric8 CI/CD](https://reader030.vdocuments.net/reader030/viewer/2022020119/5875874d1a28ab901c8b500b/html5/thumbnails/1.jpg)
Fabric8CI/CD
![Page 2: Fabric8 CI/CD](https://reader030.vdocuments.net/reader030/viewer/2022020119/5875874d1a28ab901c8b500b/html5/thumbnails/2.jpg)
● 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](https://reader030.vdocuments.net/reader030/viewer/2022020119/5875874d1a28ab901c8b500b/html5/thumbnails/3.jpg)
Agenda● What is CI/CD?● Foundation● Fabric8● Demo● Takeaways● References● Q&A
![Page 4: Fabric8 CI/CD](https://reader030.vdocuments.net/reader030/viewer/2022020119/5875874d1a28ab901c8b500b/html5/thumbnails/4.jpg)
What...is
CI/CD?
![Page 5: Fabric8 CI/CD](https://reader030.vdocuments.net/reader030/viewer/2022020119/5875874d1a28ab901c8b500b/html5/thumbnails/5.jpg)
CI/CD
![Page 6: Fabric8 CI/CD](https://reader030.vdocuments.net/reader030/viewer/2022020119/5875874d1a28ab901c8b500b/html5/thumbnails/6.jpg)
Foundation
![Page 7: Fabric8 CI/CD](https://reader030.vdocuments.net/reader030/viewer/2022020119/5875874d1a28ab901c8b500b/html5/thumbnails/7.jpg)
![Page 8: Fabric8 CI/CD](https://reader030.vdocuments.net/reader030/viewer/2022020119/5875874d1a28ab901c8b500b/html5/thumbnails/8.jpg)
Architecture
![Page 9: Fabric8 CI/CD](https://reader030.vdocuments.net/reader030/viewer/2022020119/5875874d1a28ab901c8b500b/html5/thumbnails/9.jpg)
● 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](https://reader030.vdocuments.net/reader030/viewer/2022020119/5875874d1a28ab901c8b500b/html5/thumbnails/10.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020119/5875874d1a28ab901c8b500b/html5/thumbnails/11.jpg)
![Page 12: Fabric8 CI/CD](https://reader030.vdocuments.net/reader030/viewer/2022020119/5875874d1a28ab901c8b500b/html5/thumbnails/12.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020119/5875874d1a28ab901c8b500b/html5/thumbnails/13.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020119/5875874d1a28ab901c8b500b/html5/thumbnails/14.jpg)
Architecture
![Page 15: Fabric8 CI/CD](https://reader030.vdocuments.net/reader030/viewer/2022020119/5875874d1a28ab901c8b500b/html5/thumbnails/15.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020119/5875874d1a28ab901c8b500b/html5/thumbnails/16.jpg)
![Page 17: Fabric8 CI/CD](https://reader030.vdocuments.net/reader030/viewer/2022020119/5875874d1a28ab901c8b500b/html5/thumbnails/17.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020119/5875874d1a28ab901c8b500b/html5/thumbnails/18.jpg)
Architecture
![Page 19: Fabric8 CI/CD](https://reader030.vdocuments.net/reader030/viewer/2022020119/5875874d1a28ab901c8b500b/html5/thumbnails/19.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020119/5875874d1a28ab901c8b500b/html5/thumbnails/20.jpg)
![Page 21: Fabric8 CI/CD](https://reader030.vdocuments.net/reader030/viewer/2022020119/5875874d1a28ab901c8b500b/html5/thumbnails/21.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020119/5875874d1a28ab901c8b500b/html5/thumbnails/22.jpg)
Architecture
![Page 23: Fabric8 CI/CD](https://reader030.vdocuments.net/reader030/viewer/2022020119/5875874d1a28ab901c8b500b/html5/thumbnails/23.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020119/5875874d1a28ab901c8b500b/html5/thumbnails/24.jpg)
Demo
![Page 25: Fabric8 CI/CD](https://reader030.vdocuments.net/reader030/viewer/2022020119/5875874d1a28ab901c8b500b/html5/thumbnails/25.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020119/5875874d1a28ab901c8b500b/html5/thumbnails/26.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020119/5875874d1a28ab901c8b500b/html5/thumbnails/27.jpg)
Q&A