ci/cd the future of cloud nativefiles.informatandm.com/uploads/2019/5/apr_18_dan_lorenc...@tektoncd...
TRANSCRIPT
@tektoncd
The Future of Cloud Native CI/CD
Dan LorencStaff Software Engineer, Google
@tektoncd
Hello!
Dan LorencStaff Software Engineer @ Google Cloud
@tektoncd
Audience Poll
@tektoncd
Kubernetes / Cloud Native / Containers
CI/CD
Cloud Native for CI/CD
Tekton + Architecture
What is?
Tekton Demos
DEMOS
Tekton Roadmaps
Takeaways
What’s ahead
CDF
CD.Foundation
Agenda
@tektoncd
What is Cloud Native?
● Microservices in containers
● Dynamically orchestrated
● Optimized resource utilization
@tektoncd
● Platform for managing containers
● Tell Kubernetes how to deploy your services and it does it
● Abstracts away the underlying cloud
● Cloud agnostic
What is kubernetes?
@tektoncd
Cloud Native: Containers + Kubernetes
Microservices in containers Images / Containers
Dynamically orchestrated
Optimized resource utilizationKubernetes
@tektoncd
What is CI/CD?Continuous Integration & Delivery
@tektoncd
Cloud Native CI/CDThe good
Containers Reproducible and reusable
Dynamic orchestration Increased reliability
Serverless resource utilization Reduced cost
Conformant APIs Portability
@tektoncd
Cloud Native and CI/CD The challenges
● Same old problems in a different form
○ Images instead of binaries
○ Clusters / many environments
● Some things more challenging
○ Microservices instead of monoliths
● Many deployment targets
● Confusing terminology
@tektoncd
@tektoncd
Core CI/CD components
@tektoncd
@tektoncd
Tekton: History
2018 2019
Knative build
Tekton Pipelines
Knative build-pipelines Tekton ++
@tektoncd
Composable
Tekton: Vision
Declarative
Reproducible Cloud Native
@tektoncd
Tekton: Who
● Contributors from:○ Google○ CloudBees○ Red Hat○ IBM○ … and more!
● New contributor friendly!● github.com/tektoncd
@tektoncd
@tektoncd
Tekton Pipelines:the parts
CRDs
Extending Kubernetes with custom types
Controllers act on Resources
= CI/CD platform on Kubernetes
@tektoncd
Custom Resource DefinitionsHey kubernetes! Please create this cat for me.
Sorry, I only speak yaml.
Ah right. kubectl create -f mycat.yaml
Hmm, I don't know about the type "Cat".
Cat's have paws, they're fluffy, they have claws...
Now we're talking. Ah, that's what a "Cat" is.
Here's my cat: kubectl create -f mycat.yaml
YAML!
Ahhh! kubectl create -f cat-definition.yaml
OK, I'll keep that over here next to the Pods and Services.
@tektoncd
Custom Resource ControllersHey kubernetes! Do you have any cats?
Nope, no cats.
Hey kubernetes! How about now?
Nope, still none.
How about now?
OK, just got a cat, it's here:
Thanks, I'll do some cat stuff with it.
Dude… This is Kubernetes. I'll tell you when I get one.
OK, thanks!
You do you.
@tektoncd
CRD StandardsHey kubernetes! Do you have any cats?
Sure, I have k8s.io/cat, whizzbang.com/cat, mypets.info/cat, foobar.com/cat, google.com/cat,...
Whoa, what's the difference?
k8s.io/cat has paws and fur, whizzbang.com/cat has a tail and color,...
Can I have them all?
No, they don't get along with each other
EXPLOSION
@tektoncd
Step
● Kubernetes container spec
● Container image with all the info you need to run it
- name: run-ko image: gcr.io/tekton-releases/ko-ci env: - name: KO_DOCKER_REPO value: gcr.io/my-registry - name: GOPATH value: /workspace/go command: - /bin/sh args: - -c - ko resolve -f my-src > release.yam volumeMounts: - name: gcp-secret mountPath: /secret
@tektoncd
Task CRD
● New CRD
● Sequence of steps
● Run in sequential order
● Run on the same k8s node
@tektoncd
Pipeline CRD
● Express Tasks order
○ Sequentially
○ Concurrently
○ (Graph)
● Execute Tasks on different nodes
● Typed inputs and outputs
@tektoncd
Tekton Pipelines: example
@tektoncd
Tekton Pipelines: example
@tektoncd
Runtime CRDs
● Instances of Pipeline/Task:
○ PipelineRun
○ TaskRun
○ PipelineResource
● Runtime info like image registry,git repo, etc.
@tektoncd
Tekton Pipelines : the good parts
@tektoncd
Tekton Pipelines: usage
@tektoncd
Tekton Pipelines : architecture
@tektoncd
DEMO
Tasks/TaskRunsPipelines/PipelineRunsTask Interchange-ability
A Neutral Home for the Next Generationof Continuous Delivery Collaboration
The CDF
Initial Projects
Premier Members General & End User Members
Join the community building the future of Continuous Deliveryhttps://cd.foundation@CDeliveryFdn
Roadmap
● CDF○ KubeCon Barcelona summit on May 20○ Industry standard CICD "levels" for security and
compliance● Tekton
○ Shared Catalog!○ More features in Pipelines:
■ Event triggering■ Conditional execution■ PullRequest/SCM support■ And more!
○ More projects, with Pipelines at the core!
@tektoncd
Takeaways
Interested in contributing?Integrating?
CONTRIBUTING guide at github.com/tektoncd/pipeline/
End user? jenkins-x.iogithub.com/triggermesh/aktionWatch this space!
@tektoncd