SlideShare a Scribd company logo
1 of 20
Download to read offline
Designing a Complete CI/CD Pipeline
Using Argo Events, Workflows, and CD
Julian Mazzitelli, CTO BioBox Analytics Inc.
$ whoami
● BioBox Analytics Inc.
● Early stage startup, incorporated April 2019
● 3 full time
○ 2x developers
○ 1x developer + operations “full stack”
● 2 part time
○ Quality Assurance / Product Officer
● Cloud native stack - API talks to K8s
● WE NEED TO MOVE FAST!
○ Want a robust and flexible CI/CD process
○ Want Kubernetes native
https://www.synopsys.com/blogs/software-security/agile-cicd-devops-difference/
Agility + CI/CD + DevOps = success
CI/CD Stakeholders
Developers Operations
+
Security
QA
+
Product Officer
+
Users
CI/CD Stakeholder Concerns
Devs Ops QA/PO
● Don’t write CI pipelines
● Don’t like application manifests
● Don’t like yaml!
● Want visibility into CI/CD
process
● Don’t like difficult to understand
CI configuration
● Don’t like difficult to reuse CI
pipelines
● Don’t like inflexible CI/CD
● Don’t like yaml!
● Want K8s native CI pipelines
● Want robust application lifecycle
management
● Don’t like not knowing what
version of which app they just
tested out
● Don’t like not having a list of all
deployed applications
● Don’t like incorrectly informing
users which features are
available on prod
Issues BioBox had with existing tools
● Drone
○ Can achieve modular pipelines via jsonnet plugin...but jsonnet is unfamiliar to developers
○ There was alpha support for Kubernetes runtime, however not configurable from CI config...Drone
internally was creating Jobs/Pods, was later deprecated - drone/drone-runtime/issues/69
● GitLab
○ K8s GitLab runner a huge blackbox, don’t want to maintain a fork, also different scope
○ Reusability via YAML DSL (“.partial: &partial”, “<<: *partial” !?) is annoying for Ops, difficult for Devs
● Tektoncd/pipeline
○ Was seen as alternative to Argo Workflows, which we already had operational experience with
Objectives - Things We Knew We Wanted
● Developers should feel comfortable reading and writing CI configuration
● CI pipelines should be kept DRY and modularized
● Flexible CI/CD configuration
● Audit log from Git event to deployed resources
● CI/CD observability tooling consistent with primary application
● Manual, schedule, or event-based triggering of CI pipelines
● Support many 3rd party dependencies (many Dockerfiles)
● Preview application for all PRs, easily accessible to QA/PO
Architecture overview: CI workflows
● Like Job on steroids
● Parameters, Artifacts (Git, S3, +)
● Linear sequence of steps
● DAG of steps
● Retry-able
Architecture overview: Git webhooks
● Push
● Tag
● New branch
● MR
open/close/update
● MR comments
Architecture overview: Webhook to Workflow
“Argo Events is an
event-based dependency
manager for Kubernetes
which helps you define
multiple dependencies from a
variety of event sources like
webhook, s3, schedules,
streams etc. and trigger
Kubernetes objects after
successful event
dependencies resolution.”
Architecture overview: GitOps “Application”
● GitOps “Application” CRD
● Defines git source and tracking
● Defines destination cluster
● Optionally defines tool settings -
helm values, jsonnet top-level
params, etc
https://www.weave.works/blog/automate-kubernetes-with-gitops
Architecture overview: What is a CI/CD software?
Technical Architecture: Gateway and Sensors
Sensor Spec
Sensor Designs
BioBox Monorepo CI/CD
● Each merge request is annotated with labels specifying
which services to deploy in a monorepo
● Developer can test one or more altered services in the
context of the entire stack (the rest deployed from whichever
was latest release)
Results
● CI logic can be written in any language that developers are comfortable with, breaking down
divisional roles between Dev and Ops
● Kubernetes CI Workflows can be labeled/annotated with repo/branch/tag etc
(templateParameters)
● GitOps for CD via ArgoCD enables visibility for QA/PO as well as robustness for Ops
● Flexibility - receive a webhook (or event!), code process payload, pick Sensor design that fits task
● Reuse of observability stack for metrics and logging on CI workflows
● CI workflows autoscaling via K8s resource requests, scheduling via tolerations and node taints
● Consistent tooling - developers can get familiar with K8s through CI/CD, same K8s for primary app
● Arbitrary notifications (slack, PR comments, email) written as Argo Workflow steps
● CI workflows can be manually triggered via kubectl/argo CLI, or by Argo Events (e.g. GCR PubSub)
Future Objectives
● Improve multi-event multi-sensor Workflow visibility
● Argo Workflows still in YAML… working on K8s TypeScript client implementation
● Argo Workflows 2.4 release will bring “Template CRD” - reuse workflow steps across Workflows!
● Argo Events has support for NATS instead of HTTP streaming for Gateway
○ Kafka is a supported event source, but have to use NATS for Gateway-Sensor streaming?
○ Event replayability, long term storage, audit logging
● Special pipelines for PRs which are WIP - bring up web IDE, run apps in debug mode
Questions & demo!
● Intuit + Blackrock
● Argo slack
● Devfest organizers!
Thank you!

More Related Content

What's hot

Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...
Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...
Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...
Gibran Badrulzaman
 
WTF is GitOps and Why You Should Care?
WTF is GitOps and Why You Should Care?WTF is GitOps and Why You Should Care?
WTF is GitOps and Why You Should Care?
Weaveworks
 

What's hot (20)

Argocd up and running
Argocd up and runningArgocd up and running
Argocd up and running
 
CI/CD with GitHub Actions
CI/CD with GitHub ActionsCI/CD with GitHub Actions
CI/CD with GitHub Actions
 
CD using ArgoCD(KnolX).pdf
CD using ArgoCD(KnolX).pdfCD using ArgoCD(KnolX).pdf
CD using ArgoCD(KnolX).pdf
 
Devops Porto - CI/CD at Gitlab
Devops Porto - CI/CD at GitlabDevops Porto - CI/CD at Gitlab
Devops Porto - CI/CD at Gitlab
 
CI:CD in Lightspeed with kubernetes and argo cd
CI:CD in Lightspeed with kubernetes and argo cdCI:CD in Lightspeed with kubernetes and argo cd
CI:CD in Lightspeed with kubernetes and argo cd
 
GitOps with ArgoCD
GitOps with ArgoCDGitOps with ArgoCD
GitOps with ArgoCD
 
GitOps 101 Presentation.pdf
GitOps 101 Presentation.pdfGitOps 101 Presentation.pdf
GitOps 101 Presentation.pdf
 
Gitlab ci, cncf.sk
Gitlab ci, cncf.skGitlab ci, cncf.sk
Gitlab ci, cncf.sk
 
Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...
Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...
Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...
 
Introduction to CI/CD
Introduction to CI/CDIntroduction to CI/CD
Introduction to CI/CD
 
DevOps with GitHub Actions
DevOps with GitHub ActionsDevOps with GitHub Actions
DevOps with GitHub Actions
 
Kubernetes Summit 2021: Multi-Cluster - The Good, the Bad and the Ugly
Kubernetes Summit 2021: Multi-Cluster - The Good, the Bad and the UglyKubernetes Summit 2021: Multi-Cluster - The Good, the Bad and the Ugly
Kubernetes Summit 2021: Multi-Cluster - The Good, the Bad and the Ugly
 
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...
 
WTF is GitOps and Why You Should Care?
WTF is GitOps and Why You Should Care?WTF is GitOps and Why You Should Care?
WTF is GitOps and Why You Should Care?
 
Kubernetes & Google Kubernetes Engine (GKE)
Kubernetes & Google Kubernetes Engine (GKE)Kubernetes & Google Kubernetes Engine (GKE)
Kubernetes & Google Kubernetes Engine (GKE)
 
CICD Pipeline Using Github Actions
CICD Pipeline Using Github ActionsCICD Pipeline Using Github Actions
CICD Pipeline Using Github Actions
 
CI/CD with Github Actions
CI/CD with Github ActionsCI/CD with Github Actions
CI/CD with Github Actions
 
Rootless Containers
Rootless ContainersRootless Containers
Rootless Containers
 
Deep dive into Kubernetes Networking
Deep dive into Kubernetes NetworkingDeep dive into Kubernetes Networking
Deep dive into Kubernetes Networking
 
Introduction to GitHub Actions
Introduction to GitHub ActionsIntroduction to GitHub Actions
Introduction to GitHub Actions
 

Similar to Designing a complete ci cd pipeline using argo events, workflow and cd products

gitopsthekubernetesway-201026090439.pdf
gitopsthekubernetesway-201026090439.pdfgitopsthekubernetesway-201026090439.pdf
gitopsthekubernetesway-201026090439.pdf
saraichiba2
 

Similar to Designing a complete ci cd pipeline using argo events, workflow and cd products (20)

Introduction to DevOps and the Practical Use Cases at Credit OK
Introduction to DevOps and the Practical Use Cases at Credit OKIntroduction to DevOps and the Practical Use Cases at Credit OK
Introduction to DevOps and the Practical Use Cases at Credit OK
 
Promise of DevOps
Promise of DevOpsPromise of DevOps
Promise of DevOps
 
CI/CD on Google Cloud Platform
CI/CD on Google Cloud PlatformCI/CD on Google Cloud Platform
CI/CD on Google Cloud Platform
 
Delivery Pipelines as a First Class Citizen @deliverAgile2019
Delivery Pipelines as a First Class Citizen @deliverAgile2019Delivery Pipelines as a First Class Citizen @deliverAgile2019
Delivery Pipelines as a First Class Citizen @deliverAgile2019
 
Wie macht man aus Software einen Online-Service in der Cloud
Wie macht man aus Software einen Online-Service in der CloudWie macht man aus Software einen Online-Service in der Cloud
Wie macht man aus Software einen Online-Service in der Cloud
 
gitopsthekubernetesway-201026090439.pdf
gitopsthekubernetesway-201026090439.pdfgitopsthekubernetesway-201026090439.pdf
gitopsthekubernetesway-201026090439.pdf
 
Continuous Delivery: Fly the Friendly CI in Pivotal Cloud Foundry with Concourse
Continuous Delivery: Fly the Friendly CI in Pivotal Cloud Foundry with ConcourseContinuous Delivery: Fly the Friendly CI in Pivotal Cloud Foundry with Concourse
Continuous Delivery: Fly the Friendly CI in Pivotal Cloud Foundry with Concourse
 
Ultimate Guide to Microservice Architecture on Kubernetes
Ultimate Guide to Microservice Architecture on KubernetesUltimate Guide to Microservice Architecture on Kubernetes
Ultimate Guide to Microservice Architecture on Kubernetes
 
Salesforce CI (Continuous Integration) - SFDX + Bitbucket Pipelines
Salesforce CI (Continuous Integration) - SFDX + Bitbucket PipelinesSalesforce CI (Continuous Integration) - SFDX + Bitbucket Pipelines
Salesforce CI (Continuous Integration) - SFDX + Bitbucket Pipelines
 
GCP Meetup #3 - Approaches to Cloud Native Architectures
GCP Meetup #3 - Approaches to Cloud Native ArchitecturesGCP Meetup #3 - Approaches to Cloud Native Architectures
GCP Meetup #3 - Approaches to Cloud Native Architectures
 
MuleSoft_Noida_Meetup_CICD_Azure_07_May_2022.pptx
MuleSoft_Noida_Meetup_CICD_Azure_07_May_2022.pptxMuleSoft_Noida_Meetup_CICD_Azure_07_May_2022.pptx
MuleSoft_Noida_Meetup_CICD_Azure_07_May_2022.pptx
 
GitOps: Git come unica fonte di verità per applicazioni e infrastruttura
GitOps: Git come unica fonte di verità per applicazioni e infrastrutturaGitOps: Git come unica fonte di verità per applicazioni e infrastruttura
GitOps: Git come unica fonte di verità per applicazioni e infrastruttura
 
Advanced Code Flow, Notes From the Field
Advanced Code Flow, Notes From the FieldAdvanced Code Flow, Notes From the Field
Advanced Code Flow, Notes From the Field
 
Introduction to serverless computing on Google Cloud
Introduction to serverless computing on Google CloudIntroduction to serverless computing on Google Cloud
Introduction to serverless computing on Google Cloud
 
Deploy 22 microservices from scratch in 30 mins with GitOps
Deploy 22 microservices from scratch in 30 mins with GitOpsDeploy 22 microservices from scratch in 30 mins with GitOps
Deploy 22 microservices from scratch in 30 mins with GitOps
 
Free GitOps Workshop (with Intro to Kubernetes & GitOps)
Free GitOps Workshop (with Intro to Kubernetes & GitOps)Free GitOps Workshop (with Intro to Kubernetes & GitOps)
Free GitOps Workshop (with Intro to Kubernetes & GitOps)
 
Free GitOps Workshop
Free GitOps WorkshopFree GitOps Workshop
Free GitOps Workshop
 
The path to a serverless-native era with Kubernetes
The path to a serverless-native era with KubernetesThe path to a serverless-native era with Kubernetes
The path to a serverless-native era with Kubernetes
 
CI/CD with Bitbucket pipelines
CI/CD with Bitbucket pipelinesCI/CD with Bitbucket pipelines
CI/CD with Bitbucket pipelines
 
Modern Web-site Development Pipeline
Modern Web-site Development PipelineModern Web-site Development Pipeline
Modern Web-site Development Pipeline
 

Recently uploaded

AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
VictorSzoltysek
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
VishalKumarJha10
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 

Recently uploaded (20)

AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...
 

Designing a complete ci cd pipeline using argo events, workflow and cd products

  • 1. Designing a Complete CI/CD Pipeline Using Argo Events, Workflows, and CD Julian Mazzitelli, CTO BioBox Analytics Inc.
  • 2. $ whoami ● BioBox Analytics Inc. ● Early stage startup, incorporated April 2019 ● 3 full time ○ 2x developers ○ 1x developer + operations “full stack” ● 2 part time ○ Quality Assurance / Product Officer ● Cloud native stack - API talks to K8s ● WE NEED TO MOVE FAST! ○ Want a robust and flexible CI/CD process ○ Want Kubernetes native
  • 5. CI/CD Stakeholder Concerns Devs Ops QA/PO ● Don’t write CI pipelines ● Don’t like application manifests ● Don’t like yaml! ● Want visibility into CI/CD process ● Don’t like difficult to understand CI configuration ● Don’t like difficult to reuse CI pipelines ● Don’t like inflexible CI/CD ● Don’t like yaml! ● Want K8s native CI pipelines ● Want robust application lifecycle management ● Don’t like not knowing what version of which app they just tested out ● Don’t like not having a list of all deployed applications ● Don’t like incorrectly informing users which features are available on prod
  • 6. Issues BioBox had with existing tools ● Drone ○ Can achieve modular pipelines via jsonnet plugin...but jsonnet is unfamiliar to developers ○ There was alpha support for Kubernetes runtime, however not configurable from CI config...Drone internally was creating Jobs/Pods, was later deprecated - drone/drone-runtime/issues/69 ● GitLab ○ K8s GitLab runner a huge blackbox, don’t want to maintain a fork, also different scope ○ Reusability via YAML DSL (“.partial: &partial”, “<<: *partial” !?) is annoying for Ops, difficult for Devs ● Tektoncd/pipeline ○ Was seen as alternative to Argo Workflows, which we already had operational experience with
  • 7. Objectives - Things We Knew We Wanted ● Developers should feel comfortable reading and writing CI configuration ● CI pipelines should be kept DRY and modularized ● Flexible CI/CD configuration ● Audit log from Git event to deployed resources ● CI/CD observability tooling consistent with primary application ● Manual, schedule, or event-based triggering of CI pipelines ● Support many 3rd party dependencies (many Dockerfiles) ● Preview application for all PRs, easily accessible to QA/PO
  • 8. Architecture overview: CI workflows ● Like Job on steroids ● Parameters, Artifacts (Git, S3, +) ● Linear sequence of steps ● DAG of steps ● Retry-able
  • 9. Architecture overview: Git webhooks ● Push ● Tag ● New branch ● MR open/close/update ● MR comments
  • 10. Architecture overview: Webhook to Workflow “Argo Events is an event-based dependency manager for Kubernetes which helps you define multiple dependencies from a variety of event sources like webhook, s3, schedules, streams etc. and trigger Kubernetes objects after successful event dependencies resolution.”
  • 11. Architecture overview: GitOps “Application” ● GitOps “Application” CRD ● Defines git source and tracking ● Defines destination cluster ● Optionally defines tool settings - helm values, jsonnet top-level params, etc https://www.weave.works/blog/automate-kubernetes-with-gitops
  • 12. Architecture overview: What is a CI/CD software?
  • 16. BioBox Monorepo CI/CD ● Each merge request is annotated with labels specifying which services to deploy in a monorepo ● Developer can test one or more altered services in the context of the entire stack (the rest deployed from whichever was latest release)
  • 17. Results ● CI logic can be written in any language that developers are comfortable with, breaking down divisional roles between Dev and Ops ● Kubernetes CI Workflows can be labeled/annotated with repo/branch/tag etc (templateParameters) ● GitOps for CD via ArgoCD enables visibility for QA/PO as well as robustness for Ops ● Flexibility - receive a webhook (or event!), code process payload, pick Sensor design that fits task ● Reuse of observability stack for metrics and logging on CI workflows ● CI workflows autoscaling via K8s resource requests, scheduling via tolerations and node taints ● Consistent tooling - developers can get familiar with K8s through CI/CD, same K8s for primary app ● Arbitrary notifications (slack, PR comments, email) written as Argo Workflow steps ● CI workflows can be manually triggered via kubectl/argo CLI, or by Argo Events (e.g. GCR PubSub)
  • 18. Future Objectives ● Improve multi-event multi-sensor Workflow visibility ● Argo Workflows still in YAML… working on K8s TypeScript client implementation ● Argo Workflows 2.4 release will bring “Template CRD” - reuse workflow steps across Workflows! ● Argo Events has support for NATS instead of HTTP streaming for Gateway ○ Kafka is a supported event source, but have to use NATS for Gateway-Sensor streaming? ○ Event replayability, long term storage, audit logging ● Special pipelines for PRs which are WIP - bring up web IDE, run apps in debug mode
  • 20. ● Intuit + Blackrock ● Argo slack ● Devfest organizers! Thank you!