You do not have to read all the excellent articles/books of Martin Fowler to understand that the whole CI/CD process is the core of proper software development. After working on many global projects I’ve implemented, many of those setups are the same. They all share a basic ‘hygiene’ in the CI/CD process. I will share my experience on this topic and will include code to make it more appealing.

Tools I’m using

These are the tools I cannot live without at the moment:

Azure Devops

Azure Devops is the current workhorse I’m using the most. After working with Gitlab, I fell in love with the…


Now everything is in place, it’s time to set up proper monitoring. Using monitoring we can for example visualize the load on the Gateway or send alerts to service management if something goes wrong.

Let’s continue with the most used Monitoring combination at the moment, Prometheus and Grafana. Prometheus gathers time series data using pull mechanism and stores all the data in a key/value format. You can offer anything to Prometheus, if the data is in the correct format, Prometheus accepts it and stores it.

For Kong, we can use the Prometheus plugin that can be attached to a single…


Now we’ve Kong running in Azure it’s time to focus on configuration. Working with configurations requires an understanding of the software itself. It requires an understanding of what a Gateway is and how it works.

An API gateway is an API management tool that sits between a client and a collection of backend services.

An API gateway acts as a reverse proxy to accept all application programming interface (API) calls, aggregate the various services required to fulfill them, and return the appropriate result.

It sits between the client and a collection of backend services hence, it hides and…


Since Sitecore JSS it is possible to completely decouple the frontend application and the backend services. Sitecore is only exposing the required API endpoints for the Layout-, Dictionary- and GraphQl services:
(Although this has always been possible using the Item service, personalization was not a part of this).

The Layoutservice is used for the page structure, defining the layout and required components, including the data. Dictionary service is offering labels for Forms, Buttons, Tooltips, etc. The GraphQL service is used to get additional data for the page.

For being a Multi-site Content Management System, Sitecore is usually hosting sites for…


During sprint development, there are some moments in time when one or more features will be merged and deployed to a test environment. When this version is released to the test environment, QA can start testing.

In some cases, it might happen that the feature, the developer is working on, is not fully specified yet and needs additional detailing. It might require a review by the PO, or the developer would like to show some stuff which he is working on. In this case, merging in the main branch is not an option.

This is the point where you might…


Infra pipeline

One of the most important elements and often forgotten part are Naming Conventions. Naming conventions are extremely important when setting up large-scale projects. But also small projects require correct naming conventions in order to grow.

Using correct naming conventions is something I’ve learned from my Cloud Engineer colleague. Starting a new project is always fun and the team wants to move on as quickly as possible. No one wants to sit down and talk about naming conventions… boring. However, Azure requires unique namings for all the resources so, it’s better to think ahead!

Resources, resources, resources

Naming conventions are all about resource definitions…

Folkert Jongbloed

I am working as a Software Architect/DevOps specialist for Valtech Netherlands.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store