Summary The way that applications are being built and delivered has changed dramatically in recent years with the growing trend toward cloud native software. As part of this movement toward the infrastructure and orchestration that powers your project being defined in software, a new approach to operations is gaining prominence. Commonly called GitOps, the main principle is that all of your automation code lives in version control and is executed automatically as changes are merged. In this episode Victor Farcic shares details on how that workflow brings together developers and operations engineers, the challenges that it poses, and how it influences the architecture of your software. This was an interesting look at an emerging pattern in the development and release cycle of modern applications. Announcements Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. When you’re ready to launch your next app or want to try a project you hear about on the show, you’ll need somewhere to deploy it, so take a look at our friends over at Linode. With the launch of their managed Kubernetes platform it’s easy to get started with the next generation of deployment and scaling, powered by the battle tested Linode platform, including simple pricing, node balancers, 40Gbit networking, dedicated CPU and GPU instances, and worldwide data centers. Go to pythonpodcast.com/linode and get a $60 credit to try out a Kubernetes cluster of your own. And don’t forget to thank them for their continued support of this show! Tree Schema is a data catalog that is making metadata management accessible to everyone. With Tree Schema you can create your data catalog and have it fully populated in under five minutes when using one of the many automated adapters that can connect directly to your data stores. Tree Schema includes essential cataloging features such as first class support for both tabular and unstructured data, data lineage, rich text documentation, asset tagging and more. Built from the ground up with a focus on the intersection of people and data, your entire team will find it easier to foster collaboration around your data. With the most transparent pricing in the industry – $99/mo for your entire company – and a money-back guarantee for excellent service, you’ll love Tree Schema as much as you love your data. Go to pythonpodcast.com/treeschema today to get your first month free, and mention this podcast to get %50 off your first three months after the trial. You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For more opportunities to stay up to date, gain new skills, and learn from your peers there are a growing number of virtual events that you can attend from the comfort and safety of your home. Go to pythonpodcast.com/conferences to check out the upcoming events being offered by our partners and get registered today! Your host as usual is Tobias Macey and today I’m interviewing Victor Farcic about using GitOps practices to manage your application and your infrastructure in the same workflow Interview Introductions How did you get introduced to Python? Can you start by giving an overview of what GitOps is? What are the architectural or design elements that developers need to incorporate to make their applications work well in a GitOps workflow? What are some of the tools that facilitate a GitOps approach to managing applications and their target environments? What are some useful strategies for managing local developer environments to maintain parity with how production deployments are architected? As developers acquire more resonsibility for building the automation to provision the production environment for their applications, what are some of the operations principles that they need to understand? What are some of the development principles that operators and systems administrators need to acquire to be effective in contributing to an environment that is managed by GitOps? What are the areas for collaboration and dividing lines of responsibility between developers and platform engineers in a GitOps environment? Beyond the application development and deployment, what are some of the additional concerns that need to be built into an application in order for it to be manageable and maintainable once it is in production? What are some of the organizational principles that contribute to a successful implementation of GitOps? What are some of the most interesting, innovative, or unexpected ways that you have seen GitOps employed? What have you found to be the most challenging aspects of creating a scalable and maintainable GitOps practice? When is GitOps the wrong choice, and what are the alternatives? What resources do you recommend for anyone who wants to dig deeper into this subject? Keep In Touch LinkedIn Blog @vfarcic on Twitter Picks Tobias Pulumi Podcast Episode Victor Loki Links GitOps CodeFresh Kubernetes DevOps Paradox Podcast Perl Cloud Native ArgoCD Flux Observability Prometheus Helm KNative MiniKube Viktor’s Udemy Books and Courses Viktor’s YouTube channel The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA