Automated CI/CD of Multiple Projects Using TeamCity’s Kotlin DSL

In a previous article, I described a way to organize low-latency products as multiple code bases which are bound together with a Maven Bill of Materials (BOM). Understandably, this requires setting up continuous integration and deployment for a large number of similar projects. Maintaining such a setup manually in the face of change while ensuring its consistency will take a lot of effort.  In this article, I will describe how the team at Chronicle Software has tackled these issues in different projects by writing code that does this for us, in the form of Kotlin DSL for TeamCity.

This guide will show how to configure the same set of CI/CD builds for multiple Maven project repositories of similar layouts programmatically, following the DRY (don’t repeat yourself) principle. Following it will require a base knowledge of git, Maven, and TeamCity but would not require knowledge of the Kotlin language, since all of the displayed code is self-explanatory.

Continuous Configuration Essentials

Continuous configuration occurs when a configuration platform is used to automate, monitor, design, and manage otherwise manual processes, which are essential components of improving the overall efficiency and success of your team's SDLC. There are several areas to prioritize in a continuous configuration methodology — the right tools for building a continuous deployment pipeline, effective pipeline maintenance and management, and, of course, widespread automation.

In addition to covering key benefits of continuous configuration, our Refcard details specific concepts and foundations of this modern approach to DevOps, including build automation, infrastructure as code, configuration monitoring and management, enforcement in CI/CD processes, and more!

GitOps: How to Ops Your Git the Right Way

Nowadays, there’s no lack of articles about the GitOps approach, ArgoCD, and other tools for Kubernetes configuration management and application deployments. Yet most of them are pretty high level, or don’t go beyond the “hello world” level. 

In this series of articles, I’m going to explain in detail (and with examples) how to build Kubernetes infrastructure with the GitOps approach. We’ll talk about your Git repos, CI/CD pipelines for specific environments, and ways to organize your work and your automation. These guides represent and generalize my experience of building GitOps environments in different companies with different needs.