TWIL: March 27, 2022

This week I shifted my focus to Kafka but I still had a few GitOps articles to share with you. I also highlight the latest episodes from the Azure podcast, on Azure DNS, Azure Purview and App Service Diagnostics. Have fun!


The Azure Podcast

Episode 414: Azure DNS
The team catches up with Abhishek Tiwari to talk about the past, present, and future of Azure DNS.

Episode 416: Azure Purview
Amber Zhao and Karen Ekberg from the Azure FastTrack team dive into the role Azure Purview plays in managing the data estate of a customer.

Episode 417: App Service Diagnostics
Yun Jung Choi, a PM in the Azure team, give us details about a valuable feature of the popular App Service, that allows customers to perform a variety of advanced troubleshooting tasks right within the Azure Portal.


GitOps is a way of implementing Continuous Deployment for cloud native applications. It focuses on a developer-centric experience when operating infrastructure, by using tools developers are already familiar with, including Git and Continuous Deployment tools.

Kubernetes GitOps Tools
First I will talk a bit about what GitOps is and how to apply it to Kubernetes, then move to Declarative GitOps tools, that is, tools used to implement GitOps in Kubernetes, and finally review some tools which are GitOps friendly, that is, they are declarative and implemented as code.

GitOps Tools, Pipelines and Kubernetes operator
GitOps is a method used for Continuous Delivery. It uses Git as a single source of truth for infrastructures like declarative infrastructure and the applications. On Git, set delivery pipelines, make pull requests, accelerate and simplify both the application deployments and the operations task to Kubernetes. By using Git, create new features in the Applications rather than focusing on operations tasks.

Flux is a set of continuous and progressive delivery solutions for Kubernetes that are open and extensible. The latest version of Flux brings many new features, making it more flexible and versatile. Flux is a CNCF Incubating project.


A Thorough Introduction to Apache Kafka
Kafka was originally developed at LinkedIn in 2011 and has improved a lot since then. Nowadays, it’s a whole platform, allowing you to redundantly store absurd amounts of data, have a message bus with huge throughput (millions/sec), and use real-time stream processing on the data that goes through it all at once. This is all well and great, but stripped down to its core, Kafka is a distributed, horizontally scalable, fault-tolerant commit log.

Publishing Events to Kafka using an Outbox Pattern
In the world of Microservice architecture, services along with updating their own local data store they also need to notify other services within the organization about the changes occurred. This is where Event-driven architecture has its prominence and Apache Kafka here becomes a de-facto standard to capture and store these change records; wherein individual services can publish the changes as events to a Kafka topic that can be consumed by the other services.

Introduction to Kafka Connectors
Tutorial about how to use Kafka Connectors. It discusses different types of Kafka Connectors, features and modes of Kafka Connect and connector configuration using property files as well as the REST API.

Apache Kafka: Ten Best Practices to Optimize Your Deployment
Apache Kafka certainly lives up to its novelist namesake when it comes to the 1) excitement inspired in newcomers, 2) challenging depths, and 3) rich rewards that achieving a fuller understanding can yield. But quickly turning away from Comparative Literature 101, being certain that you’re following the latest Kafka best practices can make managing this powerful data streaming platform much, much easier – and considerably more effective.

Choosing the Right Kubernetes Operator for Apache Kafka
In this article, we’ll pick from the extensive list of available Kubernetes operators to examine Koperator, Strimzi, and Confluent for Kafka. While these tools are relatively popular, developers should be aware of their strengths and weaknesses to make an informed decision.

Strimzi simplifies the process of running Apache Kafka in a Kubernetes cluster. Strimzi provides container images and Operators for running Kafka on Kubernetes. Strimzi Operators are fundamental to the running of Strimzi. The Operators provided with Strimzi are purpose-built with specialist operational knowledge to effectively manage Kafka.


Secrets management: essential when using Kubernetes
In Kubernetes secrets contain all kinds of sensitive information. For instance, database credentials or API keys. The term secrets management describes the centralised and secured management of these secrets. Sebastiaan Kok, Innovation Engineer at True, explains the importance of secret management and why this should be a key focus.

Architecture Patterns

Pattern: Transactional outbox
Pattern that allows a service to update a database and send a message/event without using a traditional distributed transaction (2-phase commit), by using a table as an outbox for messages, and a message relay component that is responsible for publishing the messages to the message broker.

Have a wonderful week!

Photo by Ross Sokolovski on Unsplash