Engineering Blog: Software & DevOps Insights

Hadolint: Dockerfile Linter

To guarantee seamless, repeatable builds and production deployments, it is essential to write effective, safe, and maintainable Dockerfiles. Hadolint, a Dockerfile linter, is one tool that aids with this endeavor.

Not Every Application is Ideal for Cloud-Native Deployment

The appeal of Kubernetes lies in its ability to automate the management of containers, scale applications effortlessly, and provide high levels of resilience and availability. As a result, many assume that Kubernetes is the best way to deploy every application.

Cost Savings on the Cloud

The cloud has revolutionized the way businesses deploy and scale their applications, but as usage grows, so do the costs. One of the key aspects that many companies overlook is the optimization of cloud resources and pricing models.

Getting Started with DevSecOps

Integrating security into every phase of the Software Development Life Cycle (SDLC) is crucial to ensure that vulnerabilities are identified and addressed early, preventing potential breaches and attacks in the future.

5 Principles of Cyber Security Architecture

In our increasingly digital world, cybersecurity is not just a luxury but a necessity. As we rely on digital assets and online infrastructures to manage information, store sensitive data, and run essential services, these systems become prime targets for cybercriminals.

LXD & LXC: Linux Container to rule them all

In recent years, containerization has revolutionized the way software is developed, deployed, and managed. Containers offer lightweight, isolated environments that enable applications to run consistently across various environments, making them an attractive alternative to traditional VM

Pulumi: The Real Infrastructure as Code

Over the years, several IaC tools have emerged, each with its own strengths and weaknesses. Among these, Pulumi has gained significant attention for its unique approach and capabilities.

Vault: Install The Most Advance Secret Manager on Kubernetes

With cyber threats on the rise, organizations must prioritize robust secrets management to protect their critical information. HashiCorp Vault emerges as a leading solution, offering a comprehensive platform to manage secrets and ensure data security.

Kubernetes 101: Kustomize

The Kubernetes ecosystem is vast, continuously evolving, and encompasses a wide range of tools that aim to simplify, streamline, and optimize application deployment. Amid this landscape, two names frequently emerge in the context of configuration and deployment: Helm and Kustomize.

Kubernetes 101: Service Account

Service accounts in Kubernetes are meant to provide an identity for processes that run in a Pod. While user accounts are designed for humans, service accounts cater to processes, like those inside your Pods.

Kubernetes 101: Jobs and CronJobs

Cron is a long-standing feature of Unix-like operating systems, which provides a mechanism to schedule scripts or commands execution at specific intervals.

Kubernetes 101: Horizontal Pod Autoscaler

The Horizontal Pod Autoscaler, commonly referred to as HPA, is a Kubernetes component that automatically scales the number of pods in a deployment, replication controller, replica set, or stateful set based on observed CPU utilization.

Kubernetes 101: Statefulsets

In the Kubernetes ecosystem, StatefulSet is a vital resource for managing applications that require persistent state.

Kubernetes 101: Ingress

Ingress in Kubernetes is a robust API object that manages external access to the services within a cluster.

Kubernetes 101: Storage

Facilitating data persistence and sharing, the Volume component is central to Kubernetes' functionality.

Kubernetes 101: Secret and ConfigMap

Kubernetes Secrets are designed to store and manage sensitive information. Such sensitive information could include tokens, passwords, or ssh keys.

Kubernetes 101: Service

In Kubernetes, a Service is a pivotal abstraction that defines a logical set of Pods through policies describing how to access them.

Kubernetes 101: Deployment

A Deployment runs multiple replicas of an application and automatically replaces any instances that fail or become unresponsive.

Kubernetes 101: YAML Manifest

Deploying resources using Kubernetes manifests is fundamentally about describing the desired state of your system or application in a YAML file.

Kubernetes 101: Pod

Pods are the smallest deployable units in Kubernetes that can be created, scheduled, and managed.

Kubernetes 101: Introduction

Kubernetes (often abbreviated to K8s) is a powerful, open-source system for managing containerized applications across multiple hosts.

Linux 101: Linux Distro

Linux is a free, open-source operating system (OS) based on UNIX created by Linus Torvalds in 1991.

Linux 101: Kernel

Think of the Linux Kernel as the heart of the Linux operating system, pumping life into your computer.

Docker: Revolutionizing Software Development and Distribution

At its core, Docker is an open-source platform designed to facilitate the process of containerization. It enables developers to package an application along with its libraries, dependencies, and other requirements within a standalone unit known as a container.

GCP 101: Google Cloud Storage

Google Cloud Storage was publicly launched in 2010 as a competitor to other cloud-based storage services such as Amazon S3.

Path to Agile: Automation Test

In the modern era of software development, rigorous testing is no longer a luxury—it's a necessity. Testing ensures that software functions as intended and helps maintain high quality and reliability.

Cloud Computing: The Fundamental

In today's digital age, cloud computing has become a critical component of our daily lives, powering everything from social media to online banking.

ArgoCD: GitOps Made Easy - Part 2

Setting up ArgoCD on a Kubernetes cluster is relatively simple. ArgoCD conveniently offers deployment manifests, enabling a quick and efficient installation process on your Kubernetes cluster.

ArgoCD: GitOps Made Easy - Part 1

GitOps is a modern approach to infrastructure and application management, which revolves around using Git as the single source of truth for declarative infrastructure and application code.

GCP 101: Google Container Registry

Google Container Registry, or GCR, is a private container registry service offered by Google Cloud. It allows you to store, manage, and secure your Docker container images with ease.

How to install RabbitMQ on Kubernetes Cluster

Message queuing systems play a critical role in building scalable, distributed applications. RabbitMQ, an open-source message broker, offers a robust and flexible solution for managing message queues.

GCP 101: Identity and Access Management (IAM)

Access Control Lists (ACLs) are a traditional method of managing access to resources. An ACL is a list of permissions attached to an object, defining who can access that object and what actions they can perform.

GCP 101: Google Compute Engine

Google Compute Engine (GCE) is an Infrastructure as a Service (IaaS) offering from Google Cloud Platform (GCP), which allows you to run your applications on virtual machines (VMs) hosted on Google's extensive infrastructure.

An Introduction to Google Cloud Platform Networking

Google Cloud Platform (GCP) offers a robust and efficient environment for deploying and managing cloud applications. A key aspect of GCP is its networking capabilities, which are designed to be secure, scalable, and high-performing.

How to do Database Migration, the right way

Database migrations are a crucial aspect of modern software development, particularly when working with relational databases. This article aims to provide an overview of database migrations, their benefits, how popular frameworks and libraries handle them, and how we do it.

Why choose Google Cloud Platform (GCP)?

Per 25 April 2023, Google Cloud finally make profits for the first time. Google has been investing heavily in its cloud-computing division to compete with Amazon and Microsoft, and those significant investments are now yielding profits.

How to setup self-hosted Sentry

This article will delve into Sentry's features, its open-source nature, and the advantages of using it with docker-compose on a dedicated VM.

How to setup GitLab Runner on Kubernetes Cluster

GitLab Runner is a powerful tool that improves the development process, particularly for teams already using GitLab. In this article, we'll elaborate how to install GitLab Runner on Kubernetes Cluster.

How to setup Redis on Kubernetes Cluster

In the world of databases and data storage, Redis has gained significant popularity in recent years. This article will explore what Redis is, why it is so popular, its common use cases, and the differences between Redis cluster and standalone configurations.

Documentation as a Code

Documentation as Code (DaaC) is an approach that emphasizes treating documentation as an integral part of the code. While it may sound simple, putting it into practice can be a bit tricky. DaaC essentially "forces" engineers to treat documentation as they would treat source code.

8grams DevOps Philosophy

At the heart of our approach are 3 basic philosophies—Automation, Auditable, and No vendor lock-in that guide our work and commitment to our clients. In this article, we will explore each of these philosophies and demonstrate how they are critical to the success of modern businesses.