Hey, there. I'm curious: What CI/CD technologies d...
# platform-toolbox
a
Hey, there. I'm curious: What CI/CD technologies do you know and hopefully recommend? If possible that supports running on AWS (Karpenter? Spot instances?) and on a Kubernetes installation (not required, but it would be nice); GitOps-oriented would be best. Right now where I'm at we have a fairly simple yet efficient mix of GitHub Self-Hosted Runners and (all AWS) Lambdas triggers and Spot EC2 and Fargate Spot container solution to do our CI/CD (and other stuff). I'll be working with a client that uses Bitbucket and some Kubernetes installations on Rackspace, and from what I've seen Bitbucket Pipelines solution is not yet as robust as GitHub's. Also I'll be migrating them to AWS fully, but CI/CD is still out there.
m
Spinnaker, ArgoCD and Kubevela seem to be popular choices.
a
Oh, I think they are using Argo for some workflows. It may be that way. I'll check them out, thanks
m
Having gone through a few of these now I would strongly recommend using something your team is already familiar with, if possible.
a
We use Flux and recently Weaveworks Terraform Controller here, and it works wonders for us on the Kubernetes + Infrastructure side, but I know and have the GitHub Actions solutions in place. Bitbucket is, well, not as robust yet
m
do you really need more than that?
or is this a 'client wants xyz' situation
a
I tried Bitbucket Pipelines like 8 months ago. Some container workflows were limited, and also after enjoying the costs of the solution I have now, I need at least some kind of self-hosted runners and running on some kind of Spot instances/containers.
Oh, they have the Atlassian full package, so I'm trying not to move them somewhere else (yet), but from my previous experience the Pipelines are limited and I'd have to create the Actions myself. I might as well do them in a solution I can (somewhat) fully control
m
If they already have Argo for something that sounds like a good starting point. Unless you're trying to do fancy platform engineering you would probably be fine with any of the ones I mentioned earlier.
a
Yeah. It's just some minimal workflows, they have a lot of stuff running around, just want to consolidate and standardize a bit better for now
j
You also have AWS natives "CodeCommit" "Code build"Code pipeline" CodeDeploy". It has the advantage you can manage your infra and your CICD with AWS Cloud formation (AWS "terraform").
a
I'd have to explore that too, although I remember lots of quirks in it last time I used them
j
I'm not sure I would consider using CloudFormation an "advantage" 😅
j
hey just wanted to chime in that we love the story of using argo workflows for our ci pipelines, and integrating it with github-actions/gitlab-runners so the developers get the feedback experience they want, you could prob do the same with bitbucket as a shim layer atop argo wf. if you ever want to check them out all working together, our kubefirst instant gitops platforms are free, open source, and will show you builds and gitops deployment pipelines work in couple minutes with an example app called metaphor that comes with the platform that builds and delivers to dev/stage/prod namespaces. (disclaimer: kubefirst founder, but think you should check out argo workflows with or without our free platform)
haha i said a couple mins, then reread you were aws - it’s 35 mins with eks if you check it out in aws, or if you just want to check it out locally we have a k3d variation of the platform that’s only like 6 minutes to get to the point of argo workflows publishing containers and charts and doing gitops delivery pipelines.
b
I suggest checking out our Terraform blueprints for EKS. Honestly, I've been using them a lot lately and it really simplifies things! https://aws-ia.github.io/terraform-aws-eks-blueprints/main/
a
Are they not phasing out some things for next version? I'm using them for current client, I will use them (whatever new version is) for the new one
b
Let me check. I'll get back to you!
b
Here we use: • Tekton: For creating build and test pipelines/workflows as well to encapsulate CD process (below) • For application deployments: A in house interface to following OAM principles to: ◦ abstracting ArgoCD: for application deployments in k8s (experimenting with kubevela as well) ◦ Pulumi for application deployments on other engines(ECS, lambda) I would separate concerns as well. You mentioned things related to node management, I didn’t get what problem are you addressing, application dev workflow or cluster/infrastructure management.