| Ko

Mini PC Kubernetes #8: Building IDP (2)

Overview In the previous post, we installed Harbor container registry, Argo Events, and Argo Workflows as the foundation for a CI/CD pipeline. This post covers integrating these components with ArgoCD and designing Helm chart-based project templates to build an Internal Developer Platform (IDP) that enables deployment of projects with complete CI/CD pipelines from a single YAML file. What is an Internal Developer Platform What is an Internal Developer Platform (IDP)? ...

February 28, 2025 · 12 min · 2532 words · In-Jun

Mini PC Kubernetes #7: Building IDP (1)

Overview In the previous post, we installed HashiCorp Vault to build a secure secrets management system. This post covers installing and configuring three core components needed to build a CI/CD pipeline: Harbor container registry, Argo Events, and Argo Workflows. CI/CD System Components Building a complete CI/CD pipeline in a homelab environment requires the following core components: Container Registry: A central repository for storing and distributing built container images, enabling self-management of images without depending on public registries like Docker Hub. Event Processing System: Responsible for detecting various events such as code changes in Git repositories and webhook receipts, and triggering subsequent tasks in response. Workflow Engine: An engine for defining and executing actual CI/CD tasks such as code building, test execution, and container image creation. GitOps Deployment System: A system that automatically synchronizes the desired state defined in Git repositories to the cluster. ArgoCD, installed in a previous series post, handles this role. In this post, we implement the container registry, event processing system, and workflow engine using Harbor, Argo Events, and Argo Workflows respectively. In the next post, we integrate these with ArgoCD to complete a full CI/CD pipeline. ...

February 28, 2025 · 9 min · 1741 words · In-Jun

Multi-Container Development with Docker Compose

Docker Compose is a tool for defining and running multi-container Docker applications that uses YAML files to configure application services, allows you to create and start all services with a single command, ensures consistency between development and production environments, and simplifies the management of complex multi-container architectures. Docker Compose Overview What is Docker Compose? Docker Compose is a tool for defining, running, and managing applications composed of multiple containers. It allows you to declaratively define services, networks, and volumes in a docker-compose.yml file and manage the entire application stack with a single command. ...

February 17, 2025 · 9 min · 1842 words · In-Jun

Writing Dockerfile for React Applications

Packaging React applications as Docker containers maintains consistency between development and production environments, facilitates integration with CI/CD pipelines, enables using the same image across various deployment environments (Kubernetes, AWS ECS, Azure Container Instances, etc.) to standardize deployment processes, and allows creating optimized production images through multi-stage builds and nginx-based static file serving. Understanding React Application Containerization Why Containerize React Apps? React is a client-side JavaScript application that, after building, is bundled into static files (HTML, CSS, JavaScript) and served through a web server. Using Docker containers ensures build environment consistency, enables deployment automation, and simplifies environment-specific configuration management. ...

February 17, 2025 · 8 min · 1575 words · In-Jun

GitOps Deployment Strategies Push vs Pull

GitOps is an operational methodology that uses Git as the Single Source of Truth to manage declarative states of infrastructure and applications and deploy them automatically. The term was first proposed by Alexis Richardson, CEO of Weaveworks, in 2017 and introduced to the cloud-native community. GitOps extends the Git workflow familiar to developers (Pull Requests, code reviews, branching strategies, etc.) into the infrastructure operations domain, and has become a core paradigm of modern DevOps practices when combined with declarative infrastructure platforms like Kubernetes. ...

February 14, 2025 · 9 min · 1823 words · In-Jun

Git Branching Strategies Git Flow and GitHub Flow

History and Background of Branching Strategies The systematization of Git branching strategies began on January 5, 2010, when Dutch developer Vincent Driessen published his blog post “A successful Git branching model.” The Git Flow introduced in this article resonated strongly in software development environments that required systematic release management at the time. In 2011, GitHub’s Scott Chacon proposed a simpler model called GitHub Flow. Then in 2014, GitLab announced GitLab Flow, combining the advantages of both strategies. All three strategies continue to be widely used today depending on project characteristics. ...

July 10, 2024 · 7 min · 1296 words · In-Jun

DevOps Concepts and Practices

The Birth and Evolution of DevOps DevOps officially began in 2008 when Belgian IT consultant Patrick Debois organized the “DevOpsDays” conference. This was inspired by the revolutionary presentation “10+ Deploys Per Day: Dev and Ops Cooperation at Flickr” by John Allspaw and Paul Hammond from Flickr at the Velocity Conference that same year. At that time, development and operations teams typically pursued conflicting goals in most organizations. Development teams wanted to deploy new features quickly while operations teams sought to maintain system stability. This conflicting incentive structure meant software deployments occurred only every few weeks or months and were painful events. ...

June 22, 2024 · 6 min · 1119 words · In-Jun

CI/CD Continuous Integration and Deployment

CI/CD stands for Continuous Integration and Continuous Delivery/Deployment, referring to a set of automated processes that automatically build, test, and deploy code changes during software development. It has become a core element of DevOps culture in modern software development. CI/CD enables developers to integrate and deploy code more frequently and safely, thereby shortening software release cycles and improving product quality by detecting bugs early. History and Origins of CI/CD CI/CD was born amid the innovation in software development methodologies during the 1990s, starting as one of the core practices of Extreme Programming (XP) and has continued to evolve to the present day. ...

June 10, 2024 · 13 min · 2581 words · In-Jun
[email protected]