Daniel Bryant: Hello, and welcome to InfoQ podcast. I’m Daniel Bryant Director of DevRel at Ambassador Labs and one of the co-hosts at the InfoQ podcast. Today, I have the pleasure of sitting down with Alex Matyushentsev a Principal Software Engineer at Intuit, and we explore topics such as continuous delivery with Kubernetes, the practice of GitOps, and the Argo projects.
Although continuous delivery is not a new practice, several new approaches to this in the cloud and Kubernetes ecosystems have emerged. One being GitOps where infrastructure and app conflict state is defined in version control and automatically synchronized with the target cluster, simply speaking. Extending some of the ideas around CD is the concept of progressive delivery, which focuses more on releasing strategies, seeking to maximize feedback, and minimize any blast radius if things do go wrong. Here, we have topics such as blue-green deployments and Canary releasing.
The Argo family of projects are a series of CNCF open-source tools that enable continuous delivery, GitOps, and progressive delivery on Kubernetes. The target users are developers and the projects aim to simplify the Kubernetes developer experience and the corresponding workflows.
Alex is a core maintainer of the two Argo projects, Argo CD, and Argo Rollouts. And I’ve learned a lot from reading his blogs over the past several years. I was keen to chat with him and understand the motivations for creating the tools, the current state of the projects, and where he sees the community taking these tools in the near future.
Daniel Bryant: Hello, Alex, and welcome to the InfoQ podcast. Could you introduce yourself to the listeners, please?
Alex Matyushentsev: Yes, sure. Hi everyone. So, my name is Alexandra Matyushentsev. Don’t try to pronounce my last name, I usually prefer to go just by Alex M. So, I’m a principal software engineer. I work for Intuit and I’m a maintainer of Argo project. And basically, Argo is not just one project there are four, and I used to work pretty much on each and everyone, I guess. But, my primary focus right now is Argo CD, the continuous deployment tool for Kubernetes, which follows GitOps analytic.
Could you provide a high-level overview of the problem space and the motivations for why the Argo suite of projects was created, please? [02:07]
Daniel Bryant: Brilliant. So, as you mentioned there we’re definitely keen to dive into the Argo ecosystem today, particularly Argo CD and Rollouts and we can definitely focus on CD a bit more. Before we do, could you provide a high-level overview of the problem space and perhaps the motivations for why the projects were created?
Alex Matyushentsev: Yes, sure. I guess it’s pretty much true about every Argo project. So, our team recognize that Kubernetes is an awesome platform, but it’s so generic so that it’s not really trying to solve any particular use case. And that’s why it’s extremely powerful. But at the same time, the end-user experience is not really the best because you have so much choices how you can do things. And Argo are trying to just solve the most common use cases in an opinionated way but it tries to make user experience as best as possible. And typically by end-user I mean developers because we believe that developers supposed to interact with Kubernetes and use it. And so that, we’re trying to create tools that make development life easy as possible.
Daniel Bryant: Argo projects, they’re open source, they’re CNCF, as I understand it. And unlike say other projects, there’s no commercial entity behind it because you work for Intuit. I see a lot of BlackRock folks working on it as well. There’s no one company that controls Argo.
Alex Matyushentsev: Yes, that’s true. So, Argo was born in a small startup company, which was acquired by Intuit. And since then, basically, I don’t think there is any commercial entity, not like Intuit, definitely not trying and not going to try to sell it. And that’s why project was donated to CNCF. And I think it’s fair to say that CNCF controlled the project. And there are several end-user companies, like BlackRock and Intuit, maintain and contribute to Argo as well as there are several vendor companies like Red Hat and Codefresh. And they’ll also be part of the community.
Daniel Bryant: Ah, brilliant. Brilliant. Yes. I always like to understand where the communities come from and where it’s going. I think the CNCF is doing a fantastic job, right. There’s plenty of choice in the CNCF ecosystem.
Alex Matyushentsev: Yes. I feel having both types of companies brings a lot of value. En-user companies can contribute a lot of knowledge because basically, end-user companies have users right next to developers who develop the project. We learn about real problems from real users, but at the same time end-user company is not making money on the project and that’s why you need new help and we’re really grateful. When I had joined the project it really changed the pace and our project is doing, I feel, way better. We have more people looking at issues and answering questions so that helps a little.
What functionality does Argo CD provide? [04:36]
Daniel Bryant: That’s awesome. That is awesome. So, diving into the projects, individually now, when we look at say Argo CD, what’s the role of that project in comparison, perhaps, with all the other Argo projects too?
Alex Matyushentsev: Basically, the project was created at Intuit and we were trying to solve an upcoming pain. We were trying to onboard potentially several thousands of developers onto Kubernetes. And we knew that these developers has almost no Kubernetes knowledge. And basically, that set a lot of limits to… Basically, we needed a tool that end users don’t have to install because you cannot ask someone who has no Kubernetes knowledge to install something into Kubernetes to manage Kubernetes, it would be too much. And basically, we were just trying to build effective user-based application that helps developers to manage Kubernetes. Actually, there was no goal to build anything. We just supposed to get something. And we looked at existing set of solutions. We looked at Spinnaker, we looked at Flux. And then we really like the model of Flux. We understood this GitOps concept and it was really compelling to us.
Alex Matyushentsev: We didn’t want to reinvent, I don’t know, our DT solution, Git would solve it for us. And GitOps we like it, at the same time we didn’t like that end user’s supposed to install and manage Flux. So, we sat with the idea. And then we look at Spinnaker, which is completely opposite solution. It’s very heavy and it’s provided as service. And we tried to merge this into one project and this is how our procedure was created. And I think we did this. So basically the idea that Argo CD provides you GitOps functions as a service and it has web user interface, which is very important because it’s maybe the most friendly way to end-users to expose these features.
Daniel Bryant: Yes. And I’ve been using Argo CD for a number of months now, a year, probably more. And the UI is fantastic just for understanding what’s going on. Particularly when you’re changing things in a cluster the UI is really useful.
Alex Matyushentsev: Yeah. The UI is totally influenced by a number of questions in support channel. Every time we’re noticing the same question is asked again and again, it eventually made it into a feature in the user interface. You cannot imagine how many times we’ve got a question that, “How come my reports are not starting?” And that’s why we had to create this red pages that are visible on the UI. And every time if user click on report, you will see at the top, which is events stuff, that show Kubernetes events. And it has this popping creates a page. It’s asking user, “Click me.” And if user click on that stuff there will be an answer for it. So every time UI is changed, it’s to simplify life of support people, of a platform.
How does Argo CD make is easier for developers to adopt GitOps? [07:13]
Daniel Bryant: I like that a lot. I like it a lot because just for the…