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.

CI/CD with Kubernetes

639 views

Published on

Delivered at the Kubernetes San Antonio meetup. Overview of continuous integration & delivery platforms and how to use them with Kubernetes.

Published in: Technology
  • Be the first to comment

CI/CD with Kubernetes

  1. 1. CI/CD with Kubernetes Hart Hoover @hhoover
  2. 2. The opinions expressed in this talk are my own and not necessarily those of my employer
  3. 3. https://coreos.com/tectonic/
  4. 4. Agenda: The Hero’s Journey • The Ordinary World: You, before this meetup. • The Call to Adventure: Your invite to k8s SATX • Refusal of the Call: Meh, traffic. IDK if I want to go. Will there be food? • Meeting with the Mentor: Hi, that’s me. You are here. • Crossing the Threshold: You decide to stay, in spite of my slides.
  5. 5. The Hero’s Journey, cont. • Challenges and Temptations: I’ll say some controversial things, and discuss your options for CI/CD. Sort out your alliances and enemies here. What works for you? • The Ordeal: A LIVE DEMO! • The Reward: You overcome all doubts and gain knowledge on CI/CD
  6. 6. The Hero’s Journey, cont. • The Road Back: You take this knowledge back to your job/team. • The Resurrection: Your team will not want to change their ways, which may require some sacrifice, by you. By your action, the polarities in conflict at the beginning will be resolved. • The Master of Two Worlds: You now have the power to transform your company with your knowledge, as you yourself have been transformed.
  7. 7. A QUICK NOTE ON HOW BUSINESS WORKS
  8. 8. ALL CI/CD IS BASICALLY THE SAME
  9. 9. CI/CD IS NOT “DEVOPS”
  10. 10. Code
  11. 11. The “Unit of Deployment”?
  12. 12. Code You have two jobs manifests
  13. 13. Code Your CI/CD system has two jobs manifests
  14. 14. Some opinions on Services vs. Self-Hosted
  15. 15. – Unknown “DevOps is YAML over SSH”
  16. 16. Some Options: Services
  17. 17. Cloud Provider Services .vsts-ci.yml Visual Studio Team Services CodeBuild CodePipeline Lambda(?) Google Cloud Container Builder cloudbuild.yml AWS re:Invent - Nov 27
  18. 18. https://semaphoreci.com/community/tutorials/continuous-deployment-with-google-container-engine-and-kubernetes CUSTOM YAML FILES https://semaphoreci.com/docs/adding-custom- configuration-files.html
  19. 19. codeship-steps.yml https://documentation.codeship.com/pro/builds- and-configuration/steps/
  20. 20. http://docs.shippable.com/ci/yml-structure/ http://docs.shippable.com/platform/integration/ kubernetes/ shippable.yml
  21. 21. .travis.yml https://docs.travis-ci.com/user/getting-started/ NO OFFICIAL SUPPORT FOR KUBERNETES (OpenShift doesn’t count)
  22. 22. .circleci/config.yml  https://circleci.com/docs/2.0/sample-config/ NO OFFICIAL SUPPORT FOR KUBERNETES (GKE doesn’t count)
  23. 23. Some Options: Self-Hosted
  24. 24.  ¯_(ツ)_/¯
  25. 25. DEPLOYMENT ONLY Depends on TravisCI or Jenkins for testing
  26. 26. DEPLOYMENT ONLY Only Kubernetes Manifests
  27. 27. https://draft.sh/ FOR , NOT CI/CD
  28. 28. https://confluence.atlassian.com/bitbucket/ deploy-to-kubernetes-892623297.html bitbucket-pipelines.yml
  29. 29. DEMO TIME
  30. 30. Appendix: Multi-Stage Builds FROM golang:1.7.3 as builder WORKDIR /go/src/github.com/alexellis/href-counter/ RUN go get -d -v golang.org/x/net/html COPY app.go . RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o app . FROM alpine:latest RUN apk --no-cache add ca-certificates WORKDIR /root/ COPY --from=builder /go/src/github.com/alexellis/href-counter/app . CMD ["./app"] TINY IMAGES FTW
  31. 31. Hart Hoover @hhoover

×