Argo CD and Kubernetes from event based to microservices
Video size:
Abstract
As a small firm starting up we relied heavily on aws resources at first to get our event based architecture in place for rapid code deployment. As our core api became very large on fargate we ran into issues with a bulky ci/cd process and slower release cycles. This is why we have made a move to shift off fargate and move to kubernetes and break apart our monolith using domain driven design.
We would like to walk you through the hurdles we faced and what our current design looks like using Argo CD and kubernetes.
Summary
-
Ramesh Patel is the director of Cloud and DevOps at Oak nine. Oak nine is a SaaS based product which facilitates cloud security. The company has gone from event based to microservices using Kubernetes and Argo CD.
Transcript
This transcript was autogenerated. To make changes, submit a PR.
Hi, thanks for joining my presentation from event based to microservices using
Kubernetes and Argo CD. My name is Ramesh and I'm currently
director of Cloud and DevOps at Oak nine. In the past I've served as a
senior DevOps engineer and an application engineering manager.
If you need to reach me, you can reach me at Twitter at rpatel Oak
nine or by email at rpatel at Oak nine IO today we'll
talk about who Oak nine is, why we decided to go to microservices,
the current state and the past state of our architecture, and then I'll also
do a deployment of a microservice getting deployed to Kubernetes
using Gitops principles. Oak nine is a SaaS based product which facilitates
cloud security from when you start writing code all the way to
production. We integrate many of the CI CD tools and we also have
a CLI. Our framework and tools that we use in house
are comprised of the following angular node for our front end net
core for our API and Lambdas Python for automation for our security.
Blueprints go for our CLI binary and majority
of our infrastructure is in AWS.
Why did we decide to go to microservices? The first main reason was our
build time was getting to be way too high. This causes a slower velocity
of deployments and a slow go to market in terms of product development features.
Our API was also becoming a large monolith. It was hard to onboard
new devs when you have a huge code base that also leads to longer
net build times and testing. We needed a loosely coupled architecture
and we also needed teams to run independently. Here's the past
state of our architecture. It's a typical event driven
architecture in AWS. What we wanted to do was
this monolith AWS Fargate cluster
that we had running. We wanted to replace that with Kubernetes and use
Argo CD to deploy microservices. So this
is the current state of our architecture here.
We have replaced Fargate with the EKs cluster and then we
use Argo CD and the tooling around Argo CD is customized
for the overlays and gauntlet for the variable injections.
We also leverage CI CD tools such as Jenkins and Argo CD.
Majority of this is following the Gitops principles for deployment.
So in the next slide I'll do a small demo of a
microservice getting deployed to Kubernetes.
So aws you can see here I have a simple Nginx
server which is rendering hello World and what I'll do
here is I'll change this index HTML file to
basically say hello World Conf fourty two.
And then that will in turn kick off a
Jenkins pipeline which will send a new image tag
to Argo CD.
So our Jenkins pipeline basically has two
phases to it or two stages to it. One is a build docker
image which builds the necessary artifact. The other is
run Argo CD. Argo CD Binary
will be called within the Jenkins pipeline to push a
microservices to kubernetes. So let's
take a look at this pipeline. As you can see
in Argo, here's a project that Jenkins will push
to in a matter of few seconds. We should see
the new image getting pushed here and then a sync happening to our
Kubernetes cluster.
So right here now it's calling the Argo CD binary.
And then you ran see the sync happening automatically in kubernetes.
So within a matter of 30 seconds we were able to tag an image,
build an image and push an image to kubernetes.
And now this should say hello World Comp 42 it
you.
Well, thanks for joining me today. I hope this presentation
was useful. And if you have any questions please email me at Arpatel at Oakland
IO. Thanks,