Category Archives: DevOps

eksctl – How to Create and Manage AWS EKS clusters

A review of eksctl and step by step guide how to create and manage AWS Elastic Kubernetes Service (EKS) clusters.

Continue reading

Copilot – What AWS ECS and Fargate Container Management Should Have Been All Along

The setup of a development environment tends to be complicated, time-consuming, and expensive.

Gitpod changes the way we think about development environments. It gives us an IDE to write code, all the tools we need to compile our applications, run tests, and do whatever else we might be doing. It gives us the infrastructure we need. It allows us to onboard anyone into any project instantly.

Continue reading

Kaniko – Building Container Images In Kubernetes Without Docker

How do we build container images inside containers running in a Kubernetes cluster? Docker is a bad option since it cannot run inside containers. Using it requires communication to the Docker engine running in cluster nodes. Even if that security concern is not enough, Dockershim is deprecated in Kubernetes 1.20 and will be (or already is) removed from 1.22. That means that alternative container engines like ContainerD will take its place. In other words, using Docker is not even an option anymore.

Kaniko comes to the rescue. It is a tool to build container images from a Dockerfile, inside a container or Kubernetes cluster.

Continue reading

Snyk – Shifting Security Left Through DevSecOps Developer-First Cloud-Native Solutions

Typically, security tools that are loved by security teams are hated by developers, or they are shifted so much to the left that security teams find them insufficient. Snyk is trying to change that through a plethora of tools and integrations aimed at both security professionals and developers.

Continue reading

Argo Rollouts – Canary Deployments Made Easy In Kubernetes

Argo Rollouts provides advanced deployment capabilities. It supports blue-green and canary strategies. It integrates with Ingress controllers and service meshes. Argo Rollouts can query metrics from various providers and make decisions whether to roll forward or to roll back based on the results.

Continue reading

Progressive Delivery Explained – Big Bang (Recreate), Blue-Green, Rolling Updates, Canaries

Progressive delivery (blue-green, rolling updates, canaries, etc.) is a set of deployment practices that aim at rolling out new features gradually.

Continue reading

k9s Kubernetes UI – A Terminal-Based Vim-Like Kubernetes Dashboard

K9s is a terminal-based Vim-like Kubernetes UI.

Everyone is used to Web and desktop dashboards. Kubernetes users are divided between those who prefer performing operations through UIs or through a terminal. How about combining the two modes of operations? K9s is giving us just that. It provides a terminal-based Vim-like UI for operating and observing k8s clusters.

Continue reading

Argo CD: Applying GitOps Principles To Manage Production Environment In Kubernetes

Argo CD is a declarative GitOps deployment tool for Kubernetes.

It is one of the best, if not the best tool we have today to deploy applications inside Kubernetes clusters. It is based on GitOps principles, and it is a perfect fit to be a part of continuous delivery pipelines. It provides all the building blocks we might need if we would like to adopt GitOps principles for deployments and inject them inside the process of application lifecycle management.

Argo CD is a tool that helps us forget the existence of kubectl apply, helm install, and similar commands. It is a mechanism that allows us to focus on defining the desired state of our environments and pushing definitions to Git. It is up to Argo CD to figure out how to converge our desires into reality.

Continue reading

Serverless Computing With Knative And Containers As A Service (CaaS)

This text was taken from the book and a Udemy course The DevOps Toolkit: Catalog, Patterns, And Blueprints

All the commands from this article are in the [04-03-knative.sh](Gist with the commands: https://gist.github.com/dc4ba562328c1d088047884026371f1f) Gist.

Before we dive into the actual usage of Knative, let's see which components we got and how they interact with each other. We'll approach the subject by trying to figure out the flow of a request. It starts with a user.


Continue reading