Posts

Using Kubernetes Ingress to navigate traffic to Services

Image
Introduction In the previous article, I introduced the basic concepts of Kubernetes Ingress , and how to use Ingress along with related components ( Nginx Ingress Controller and cert-manager ) to automatically issue TLS certificates when deploying HTTPS applications . In this article, I'll show you how to define rules in Ingress to route traffic to different Services based on your needs. Prepare Docker Image First, you'll need a Docker image to get started. You can either use two different Docker images or follow my next instructions to prepare a Docker image . Here's a code block to create a NodeJS server that displays a title based on an environment variable input: import express from 'express' const port = 3000 const title = 'This is NodeJS Typescript Application' const app = express () app . get ( '/' , ( _ , res ) => { res . send (( process ?. env ?. TITLE ?? title ) + '! Current time is ' + Date . now ())

Deploying HTTPS with Kubernetes Nginx Ingress and Cert Manager

Image
Introduction This article will guide you through using Nginx Ingress Controller and Cert Manager on Kubernetes (K8s) to automatically issue TLS (Transport Layer Security) certificate . To follow along, you'll need: Basic knowledge of Google Kubernetes Engine for cluster initialization Understanding of K8s Deployment, Service to deploy applications Familiarity with Helm for installing necessary charts. Ingress Ingress is a Kubernetes resource used to manage external access to Services within a cluster . It acts like a traffic router, allowing you to define routing configurations to efficiently manage incoming traffic to Services . Ingress Controller An Ingress Controller is a distinct component from Ingress itself. There are various types of Ingress Controllers , each capable of different deployments. However, their main function is to manage and deploy according to Ingress rules . When requests reach Ingress, the Ingress Controller uses these defined rules to route traffic

Automating Server Configuration with Ansible

Image
Introduction Ansible is an open-source IT automation tool written in Python . It's widely used for configuration management, making complex tasks simpler by automating system setup, software deployment, and more. Ansible is agentless , meaning it doesn't require an agent to communicate with other machines. It supports a wide range of operating systems, platforms, and devices, from Ubuntu and VMware to CentOS , Windows , Azure , AWS , and network devices like Cisco and Juniper . This design increases Ansible's usability because you don't need to install and maintain agents on hosts. This is a significant advantage over similar tools like Chef , SaltStack , and Puppet . Why Choose Ansible? Here are some reasons to choose Ansible over other configuration management tools: Open Source : It's free to use. Uses SSH : Easily connects directly to servers. Lightweight : Easy to set up and doesn't consume many resources. Readable Syntax : Uses YAML for scripts, ma

DevOps Practice Series

Image
Introduction DevOps is a combination of development (Dev) and operations (Ops), aimed at uniting people, processes, and technology to enhance the software development lifecycle. Here are some key aspects of DevOps: Collaboration and Communication: DevOps fosters a culture where development, IT operations, quality engineering, and security teams work together seamlessly. Continuous Integration and Continuous Delivery (CI/CD): These practices automate the integration and delivery of code changes, ensuring faster and more reliable software releases. Infrastructure as Code (IaC): This approach involves managing and provisioning computing infrastructure through machine-readable scripts, rather than physical hardware configuration. Monitoring and Logging: Continuous monitoring and logging help teams to detect issues early and maintain system reliability. Automation: Automating repetitive tasks reduces errors and increases efficiency, allowing teams to focus on more strategic work. By impleme

Google Cloud Platform Practice Series

Image
Introduction Google Cloud Platform (GCP) is a suite of cloud computing services provided by Google. It allows you to build, deploy, and scale applications, websites, and services on the same infrastructure that Google uses internally for its end-user products like Google Search, Gmail, and YouTube. Key Features of GCP Compute Services: Includes virtual machines (VMs) with Google Compute Engine, serverless computing with Google Cloud Functions, and container orchestration with Google Kubernetes Engine (GKE). Storage and Databases: Offers various storage options like Google Cloud Storage for object storage, Google Cloud SQL for managed relational databases, and Google Bigtable for NoSQL databases. Networking: Provides a global network infrastructure with services like Virtual Private Cloud (VPC), Cloud Load Balancing, and Cloud CDN for content delivery. Big Data and Machine Learning: Includes tools like BigQuery for data warehousing, Dataflow for stream and batch data processing, and AI

Kubernetes Practice Series

Image
Introduction Kubernetes (often abbreviated as K8s ) is an open-source system designed to automate the deployment, scaling, and management of containerized applications. This page serves as a collection of articles related to Kubernetes (K8s) , including theoretical concepts and practical guides on using Kubernetes to set up essential tools for the software development process. I will continue to update this series with new articles as ideas come to mind, to ensure the series becomes more comprehensive. The articles are arranged in increasing order of difficulty to make it easier for you to follow. If you have time, it's recommended that you start from the beginning of the series to acquire the necessary knowledge and information that will prepare you for the subsequent articles. Key Topics Covered in This Series Basic Knowledge : Fundamental concepts, common commands, etc. Resources : Pod, Deployment, Service, StatefulSet, Ingress, etc. Pod Autoscaler : Horizontal and Vertical sc

Docker Practice Series

Image
Introduction Docker is an open platform for developing, shipping, and running applications. This page is dedicated to compiling articles related to Docker , covering both the theoretical aspects and practical applications of Docker in setting up popular tools essential for software development. I will be updating this series with more articles in the future as new ideas for topics arise. The articles are arranged in increasing order of difficulty, making it easier for you to follow along. If you have the time, I recommend starting from the beginning of the series to ensure that you grasp the necessary knowledge and information needed for the more advanced articles later on. Here are some key topics in the series that you need to explore to effectively use Docker : Basic knowledge Docker commands Docker Compose Building Docker images Performance improvement Integration with CI/CD Once you have a solid understanding of the foundational knowledge, the extended topics (including advanced

React Practice Series

Image
Introduction React is a JavaScript library created by Facebook , often referred to as the most popular frontend framework today. This page aims to gather articles related to ReactJS , covering topics such as theory, features, and commonly used packages in the process of building ReactJS applications. I will update this series with more articles in the future as new ideas for content come up. The articles are arranged in increasing order of difficulty, so if you have time, it's recommended to start from the beginning of the series. This will ensure you grasp the essential knowledge and information needed for the subsequent articles. Here are some key topics in the series that you need to explore to effectively use ReactJS : Fundamental : React Hook, React Context, Lazy load, etc. State management : redux, mobx, recoil, etc. Middleware libraries : redux-thunk, redux-saga, redux-observable, etc. Popular packages : react-query, immer, styled-components, etc. Rendering techniques : C