Understanding Docker Image Layers

Concept and Structure of Layers A Docker image is composed of multiple read-only layers. Each layer stores the filesystem changes introduced by a command in the Dockerfile. This is similar to commits in Git. It improves efficiency by storing only the changes. Docker mounts the layers as a single filesystem using a union file system. A writable container layer is added on top of the last layer. This can be visualized as multiple transparent sheets stacked on top of each other. ...

February 17, 2025 · 3 min · 531 words · In-Jun Hwang

4 Types of Linux Clusters

Linux cluster systems are a critical part of the infrastructure of many businesses and research institutions. Depending on the purpose and usage, they can be broadly classified into 4 types. Let’s have a look at the characteristics and real-world use cases for each of these types. What is a Cluster System? A cluster system is a group of computers connected through a network that act as a single system. It can be set up for various purposes such as high performance, high availability, and load balancing. ...

February 16, 2025 · 2 min · 305 words · In-Jun Hwang

Golang Package Conventions

This article was written in reference to the Go blog “Package Names” and several Go package convention resources. Key Tenets of Package Conventions Go’s package convention does not prescribe strict rules for directory structure or architecture instead, it presents the following key principles: 1. Organize Packages by Responsibility Avoid putting all types in a single package such as interfaces or models. Instead, organize packages based on the responsibility of their domain, following the “Organize by responsibility” principle. For example: ...

February 15, 2025 · 1 min · 205 words · In-Jun Hwang

GitOps Deployment Strategies: A Comprehensive Comparison of Push vs Pull

What is GitOps? GitOps, a concept first introduced by Weaveworks in 2017, focuses on continuous deployment (CD) in cloud-native environments, particularly in Kubernetes-based systems. It involves managing all infrastructure configurations and application settings as code and versioning them through a Git repository. Push-Based Deployment Strategy The push-based approach operates similarly to traditional CI/CD pipelines, with the following key features and processes: Build and Deployment Process Build Phase A CI pipeline is triggered by a developer’s code push The CI server builds and tests the code Container images are built and uploaded to a registry Deployment Phase ...

February 14, 2025 · 3 min · 438 words · In-Jun Hwang

Run and Connect to SSH Server on Ubuntu

Introduction SSH (Secure Shell) is a network protocol that allows you to log in to another computer over a network and execute commands on a remote system or transfer files. In this article, we will go through the step-by-step process of installing an SSH server on an Ubuntu system, configuring it to start automatically, and connecting to the SSH server. Installing the SSH Server First, open a terminal and update the list of packages: ...

August 14, 2024 · 3 min · 551 words · In-Jun Hwang