Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Jenkins x gitops

457 views

Published on

This year, Geko has been invited by Dataops Barcelona 2019 to participate as a speaker in one of the several sessions available this year. Because Geko is a specialized company in CI/CD and Devops, the session offered by Geko was dedicated to Gitops and Jenkins X. In this session we talked about the importance of Gitops, IaC and how Jenkins X can help us with the CD part with a Kubernetes cluster. With Jankins X we can deploy an entire Kubernetes cluster just executing one command. Jenkins X helps us to start to develop and deploy our applications in Kubernetes in an easy way and without any strong knowledge about Docker and Kubernetes. But not only that, with Jenkins X we can define any kind of complex CI/CD pipeline in order to boost our application deployment and reliability.

Published in: Internet
  • Login to see the comments

Jenkins x gitops

  1. 1. CI/CD with GitOps and Jenkins X Marc López David Pujadas © 2019 Binlogic.
  2. 2. Agenda ● Feel the Geko way! ● What is GitOps and why ● Kubernetes challenges ● Jenkins X: the easiest CD for Kubernetes ● Demo time! ● Q&A © 2019 Binlogic.
  3. 3. Feel The Geko Way! ● Startup company based in Barcelona ● Focused on Internet Companies ○ Cloud management and automation tools ○ DevOps implementation ○ CI/CD Pipelines and tools (travis, spinnaker, jenkins…) ○ Container Platform implementation (K8S expertise) ○ Platform reliability, observability and maintenance 24x7 ○ Security / Chat / Dev / Ops © 2019 Binlogic. https://geko.cloud/
  4. 4. What is GitOps ● Is a method used for Continuous Delivery ● Git as a single source of truth for infrastructure management where we: ○ Create, change and destroy for all environments ● Accelerate and simplify the application deployments and the operations tasks ● All the changes are traceable, verifiable and reproducible IaC: Infrastructure as Code © 2019 Binlogic.
  5. 5. Why GitOps ● Fast development: GitOps manages all the updates and new features. Continuously pushing new features and updates. Responding quickly to business and customer needs. ● Better Ops: GitOps completes the CI/CD pipeline with pull requests and operations tasks fully reproducible. ● More control and security: all changes have an owner and we know when they are made. There is an immutable and auditable source of truth: Git. You can recover totally or partially your infrastructure with ‘one button’. © 2019 Binlogic.
  6. 6. GitOps: IaC tools © 2019 Binlogic.
  7. 7. Some Kubernetes challenges... ● Learn a new way to do things ● Setup the infrastructure: cloud+kubernetes ● Deploy containers into K8s ● Change/create the Continuous Delivery pipeline for K8s ● Automate everything and improve reliability and observability ● … And keep giving value to our customers! © 2019 Binlogic.
  8. 8. Jenkins X is here to help us! :) © 2019 Binlogic. Project hosted by:
  9. 9. How does Jenkins X help us? ● Automates the installation, configuration and upgrade of Jenkins + other tools (helm, skaffold, nexus, monocular, prow, tekton, etc…) ● Automates CI/CD for your applications on K8s: ○ Creates docker images ○ Creates helm charts ○ Creates pipelines ○ ...even creates an entire K8s cluster! ● Uses GitOps methodology to manage promotion between environments: ○ Preview (temporary) > Staging > Production ● Lots of feedback in PR: integration with Github and Bitbucket Cloud © 2019 Binlogic.
  10. 10. How do I setup Jenkins X? © 2019 Binlogic.
  11. 11. Installing Jenkins X CLI Linux curl -L https://github.com/jenkins-x/jx/releases/download/v2.0.278/jx-darwin-amd64.tar.gz | tar xzv sudo mv jx /usr/local/bin macOS brew tap jenkins-x/jx brew install jx https://jenkins-x.io/getting-started/install © 2019 Binlogic.
  12. 12. Setup Jenkins X on Kubernetes Create a cluster in the public cloud ● jx create cluster eks ● jx create cluster gke ● jx create cluster aks Installing on a existing cluster (RBAC must be enabled) ● jx install https://jenkins-x.io/getting-started © 2019 Binlogic.
  13. 13. Demo time © 2019 Binlogic.
  14. 14. Demo time - Steps already done © 2019 Binlogic. ● Install jx cli mkdir -p ~/.jx/bin && curl -L https://github.com/jenkins-x/jx/releases/download/v2.0.272/jx-linux-amd64.tar.gz | tar xzv -C ~/.jx/bin ● Create GKE cluster jx create cluster gke --skip-login --default-admin-password=XXXXX -n dataops --zone europe-west1-b --domain dataops.geko.cloud --long-term-storage --static-jenkins --git-username david-geko --git-api-token XXXXXXX ● Create DNS entry for *.dataops.geko.cloud
  15. 15. What we get from Jenkins X © 2019 Binlogic. ● Development tools environment ○ Jenkins master ○ Elastic pool of Jenkins agents (slaves) ○ Tools: Helm,Skaffold, Tekton, Prow,... ○ Nexus+Monocular (artifact repository), ChartMuseum ● Two permanent environments ○ Staging ○ Production ● Two Git repositories (one per environment) for CD management
  16. 16. Demo time! © 2019 Binlogic.
  17. 17. Q&A © 2019 Binlogic.
  18. 18. Hiring! © 2019 Binlogic. tasks: - name: "Geko Hiring task" command: /sbin/joinus -t now when: (geko_facts['DevOps'] == "Pipelines, CI/CD, deployment tools, lambda, microservices") and (geko_facts['Container-Platforms'] == "Docker-Compose,Swarm,K8S,Istio,Helm") and (geko_facts['Orchestration-tools'] == "Ansible,CloudFormation,Terraform") and (geko_facts['OS'] == "Linux Open Source Ninja") and (geko_facts['Development'] == "Bash,Python,PHP,Go,Java") and (geko_facts[Cloud] == "AWS, GC, Azure") - shell: echo "Geko wants you! send email to rrhh@geko.cloud" when: goodpeople when: teammate when: self-management when: english joinus@geko.cloud
  19. 19. © 2019 Binlogic.

×