Prometheus Operator – Interactions Between the kube-prometheus-stack Kubernetes Resources

The aim of Prometheus Operator is to provide Kubernetes native deployment and management of Prometheus and related monitoring components. The kube-prometheus-stack helm chart (formerly named prometheus-operator) contains just one helm command to set everything up. However, it leaves out specific details about the underlying implementation. In this post, I'll take a deeper look what happens under the hood when the kube-prometheus-stack helm chart is installed in a Kubernetes cluster.

LPI DevOps Tools Engineer Certification Exam 701-100

The LPI DevOps Tools Engineer Certification, launched in October 2017, has a very broad scope that includes several commonly used DevOps tools in the market. The exam "covers the intersection between development and operations, making it relevant for all IT professionals working in the field of DevOps." In this post, I share my thoughts and opinions on this certification exam that I took and passed in January 2020.

Setting up a JFrog Artifactory 7 and Xray 3 Sandbox in AWS Using minikube and Helm Charts

The JFrog Artifactory and its complementary suite of tools is well known across the industry. As part of a certification preparation, I wanted to find out more about how it is administered. This post is how to install JFrog Artifactory 7 and Xray 3 using Helm Charts in an AWS EC2 instance.

Vagrant Up with the LXC Provider

The vagrant-lxc plugin allows LXC to be a (custom) provider for Vagrant. This allows Vagrant boxes to be spun up as LXC containers on the host machine.

Depending on your distro and host OS installation add-ons, it may not be enough to just install the plugin as it relies on additional packages for it to work. In this post, I will go through how to set up the vagrant-lxc plugin for a clean installation of Ubuntu Server.

PostgreSQL 11 Warm Standby Failover (Log Shipping) for High Availability in Docker

This post is part of a series of PostgreSQL Standby Failover in Docker: Cold Start Failover Warm Standby Failover (Log Shipping) Warm Standby Failover (Asynchronous Streaming Replication) Warm Standby Failover (Synchronous Streaming Replication) The PostgreSQL documentation has a high level overview on how to set up various failover, replication, and load balancing solutions (link). I found … Continue reading PostgreSQL 11 Warm Standby Failover (Log Shipping) for High Availability in Docker

PostgreSQL 11 Cold Start Failover for High Availability in Docker

This post is part of a series of PostgreSQL Standby Failover in Docker: Cold Start Failover Warm Standby Failover (Log Shipping) Warm Standby Failover (Asynchronous Streaming Replication) Warm Standby Failover (Synchronous Streaming Replication) The PostgreSQL documentation has a high level overview on how to set up various failover, replication, and load balancing solutions (link). I found … Continue reading PostgreSQL 11 Cold Start Failover for High Availability in Docker

Logging in Java Applications (Using java.util.logging Package)

Having a logging component within a library or service (especially in a microservices architecture) is useful to the downstream applications that use it. When properly set up, it allows them to choose their own logging implementation, and level of verbosity, without having to recompile the code. While there are many different logging implementations (e.g. log4j, … Continue reading Logging in Java Applications (Using java.util.logging Package)

Creating a Development CI Pipeline for Appian

A while back I did several posts on Appian, specifically one regarding setting it up on Docker. The objective was two fold - the first was to solve an important development CI pipeline challenge, and second was to evaluate if the software was deploy-able on a PaaS (ans: yes it is, but not via the … Continue reading Creating a Development CI Pipeline for Appian

Lessons Learnt from Script Automation

Here are some take away lessons (I learnt the hard way) when automating scripts/programs: Plan to Fail Elegantly Things may flow perfectly for now, but when something does mess up later on (e.g. a third party service becoming unavailable), the code should be able to respond and/or fail gracefully. The effort required to do this … Continue reading Lessons Learnt from Script Automation