As the DevOps team grows in size and start to form a multi DevOps team structure, it starts to experience growing pains such as working in silos, decreased velocity, or lack of collaboration. The solution is to standardize tools for automation and provide the building blocks of commonly used patterns readily available. This is where workflows come into play. Adopting Workflows provides a common scalable platform for DevOps engineers to automate, trigger, and execute repetitive tasks and therefore leads to increased efficiency and innovation.
Why Teams call analytics are critical to your entire business
Why we chose Argo Workflow to scale DevOps at InVision
1.
2. ● Lead Site Reliability Engineer at InVision
● Originally from Bulgaria, moved to the US 15
years ago
● Passionate about Automation
● Proponent for adoption Open Source
Proponent
3. ● Background:
○ Who is InVision
○ What is Argo
● Our story of adopting Argo
● How do Argo WFs work
● Real DevOps Use Cases
4. Our Story
● Founded in 2011
● Fully Remote
● 1000+ Employees
Our Products
● Freehand
● DSM
● Craft
● Studio
● Inspect
● Prototype
Our Backend
● Kubernetes - adopted in 2016
● AWS - ~3000 worker nodes
Our CustomersSaaS platform for designer collaboration
5. argoproj
Argoproj is a collection of tools for getting work
done with Kubernetes
● Argo Events
● Argo Workflows
● ArgoCD
● Argo Rollouts
● GitOps Engine
History
Developed by Applatix
Applatix open sourced Argo in mid 2017
Intuit acquired Applatix in early 2018
CNCF accepted Argo as an incubation-level hosted
project in April 2020
6. “Workflow is the definition,
execution, and automation of
software processes where
tasks, information or
documents are passed from
one program to another for
action, according to a set of
procedural rules.
ParallelSequential DAG
robodk.com/blog
Types of Workflows
7. Challenges:
- working in silos
- skill transferability
- code replication
Facts:
- our tools are in different
languages
(mostly Go and Python) Solution:
standardize the way
we automate
8. Kubernetes integration Very Kubernetes Native Some Kubernetes Support
Supported Languages
Anything that runs in a container
Workflows are in YAML
Python or Bash
Workflows are in Python
Dashboards Less informative More informative
Triggers
Argo Events:
cli, cronjob, webhook
sns, git, slack, streams
Scheduler:
cli, cronjob, webhook
Maturity Open sourced in 2017 Open sourced in 2014
Github pulse
9.
10. Default resources -
pods, services, etc.
Default data structures -
list, dictionaries, etc.
Custom resource definitions -
(CRD)
Custom data structures -
classes
KubernetesPython
Instances of CRDs - custom
resources
Instances of classes -
objects