<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Lakshay Nasa</title>
    <description>The latest articles on DEV Community by Lakshay Nasa (@lakshaynasa).</description>
    <link>https://dev.to/lakshaynasa</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F793941%2Fae341daf-4e26-4162-ba3f-af15280d9098.png</url>
      <title>DEV Community: Lakshay Nasa</title>
      <link>https://dev.to/lakshaynasa</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/lakshaynasa"/>
    <language>en</language>
    <item>
      <title>Argo Workflows</title>
      <dc:creator>Lakshay Nasa</dc:creator>
      <pubDate>Fri, 28 Jan 2022 13:49:58 +0000</pubDate>
      <link>https://dev.to/lakshaynasa/argo-workflows-g6p</link>
      <guid>https://dev.to/lakshaynasa/argo-workflows-g6p</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8h89j140yup1yiss7c2s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8h89j140yup1yiss7c2s.png" alt="Argo" width="458" height="225"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Argo is a family of Open-Source tools for Kubernetes to run workflows, manage clusters, and do GitOps. Argo was accepted as CNCF incubating Project back in 2020.&lt;br&gt;
Argo consists of four sub-projects, including:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;b&gt;&lt;a href="https://argo-cd.readthedocs.io/en/stable/" rel="noopener noreferrer"&gt;Argo CD –&lt;/a&gt;&lt;/b&gt; Support for declarative GitOps-based deployment of any Kubernetes resource, including Argo Events, services, and deployments across multiple k8s clusters.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;b&gt;&lt;a href="https://argoproj.github.io/argo-events/" rel="noopener noreferrer"&gt;Argo Events –&lt;/a&gt;&lt;/b&gt; Events-based dependency manager for Kubernetes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;b&gt;&lt;a href="https://argoproj.github.io/argo-workflows/" rel="noopener noreferrer"&gt;Argo Workflows –&lt;/a&gt;&lt;/b&gt; Container native workflow engine for Kubernetes supporting both DAG and step-based workflows.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;b&gt;&lt;a href="https://argoproj.github.io/argo-rollouts/" rel="noopener noreferrer"&gt;Argo Rollouts –&lt;/a&gt; &lt;/b&gt; Support for declarative progressive delivery strategies such as canary, blue-green, and more general forms of experimentation.&lt;br&gt;
&lt;br&gt;&lt;br&gt;
The &lt;strong&gt;Workflow&lt;/strong&gt; is the most important resource in Argo and serves two important functions:&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;1. It defines the workflow to be executed.
2. It stores the state of the workflow.
&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Argo Workflows&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Argo Workflow is an open-source container-native workflow engine for orchestrating parallel jobs on Kubernetes. Argo Workflows is implemented as a Kubernetes CRD (custom resource definitions). Argo Workflows is part of the Argo Family.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;em&gt;Why Argo Workflow?&lt;/em&gt;
&lt;/h2&gt;

&lt;p&gt;Argo has a vigorous workflow engine for Kubernetes that enables the implementation of each step in a workflow as a container.&lt;br&gt;
This cloud-native workflow engine can run 10,000s concurrent workflows, each with 1,000s of steps.&lt;br&gt;
Argo Workflows is actively used in Production by well over 100 organizations, including Adobe, Alibaba Cloud, Google, GitHub, IBM, Intuit, NVIDIA, New Relic, and RedHat.&lt;br&gt;
Argo is designed to run on top of k8s. Not a VM, not AWS ECS, not Container Instances on Azure, not Google Cloud Run or App Engine. This means you get all the good of k8s.&lt;/p&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt;   Designed from the ground up for containers without the overhead and limitations of legacy VM and server-based environments.
&amp;gt;   Cloud agnostic and can run on any Kubernetes cluster.
&amp;gt;   Easily orchestrate highly parallel jobs on Kubernetes.
&amp;gt;   Argo Workflows puts a cloud-scale supercomputer at your fingertips!
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h2&gt;
  
  
  &lt;b&gt; Uses of Argo Workflows – &lt;/b&gt;
&lt;/h2&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;• CI/CD
• Serverless
• Data Science
• Batch Processing
• Data Processing
• Machine Learning
• Infrastructure Automation
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h2&gt;
  
  
  &lt;b&gt; How does Workflow work on Kubernetes? &lt;/b&gt;
&lt;/h2&gt;

&lt;p&gt;Argo is implemented as a Kubernetes CRD (Custom Resource Definition). As a result, Argo workflows can be managed using &lt;code&gt;kubectl&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;A workflow is a series of steps that can run one after another or in parallel. Each step of the Workflow may have its own container. This means you can put anything into a container image and then into an Argo Workflow. Besides this Argo Workflow allows the user to tell the order of steps it provides multi-step workflows as a sequence of tasks or capture the dependencies between tasks using a graph (DAG).&lt;/p&gt;


&lt;h3&gt;
  
  
  &lt;b&gt;Note:&lt;/b&gt;
&lt;/h3&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Argo events and Argo Workflows for the most part Works simultaneously. Once the event has been registered, it will trigger the action: e.g., Argo Workflow.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Few key concepts :
&lt;/h2&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;• Kubernetes API (application programming interface) - The Kubernetes API lets you query and manipulates the state of objects in Kubernetes.

• Kubernetes CR (Custom Resources) - Custom resources are extensions of the Kubernetes API. A custom resource is an object that extends the Kubernetes API or allows you to introduce your own API into a project or a cluster

•  Kubernetes CRD (Custom Resources Definition) - A custom resource definition (CRD) file defines custom resources and lets the API server handle the entire process. Custom resources definition (CRD) is a powerful feature that enables users to add their own custom objects to the Kubernetes cluster and use it like any other native Kubernetes object.

• Namespaces - Namespaces provides a mechanism for isolating groups of resources within a single cluster.

• Entrypoint - The first step to execute when running a workflow

• Workflow: A Kubernetes resource defining the execution of one or more template. Workflows are named.

• Template: A step, steps or DAG.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;a href="https://github.com/argoproj/argo-workflows/blob/master/examples/README.md" rel="noopener noreferrer"&gt;Example Workflow Template To echo "Hello World"&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devops</category>
      <category>kubernetes</category>
      <category>opensource</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
