DevOps - What is it?

DevOps stands for development and operations, a combination of practices and tools that improve companies’ ability to rapidly build, update and deliver applications. It is a software development methodology that combines a software framework and IT functions to improve the speed and reliability of software delivery. It is a culture and set of processes that focus on collaboration, automation and integration throughout the software development lifecycle, from development and testing to deployment and maintenance.

Terraform Introduction

Terraform is an open source tool used to manage cloud infrastructure resources. It allows you to create, change, and destroy resources on cloud infrastructure like AWS, GCP, Azure, and DigitalOcean. It is often used by developers who need to work on multiple projects simultaneously. Read more about the basics, along with examples of real-world applications. Terraform Introduction Terraform is an open-source infrastructure as code (IaC) software tool created by HashiCorp. It allows users to define and provision data center infrastructure using a declarative configuration language.

Python Commands for Beginners

List of basic python commands and data types: Assignments and Expressions In Python, an assignment is a statement that binds a value to a variable. An expression is a combination of values, variables, and operators that evaluates to a single value. Assignments An assignment statement has the following syntax: 1 variable = expression The left-hand side of the assignment operator (=) is a variable name, and the right-hand side is an expression that evaluates to a value.

Kubernetes Services - Load Balancer

The NodePort Limitation Consider a four-node cluster hosting front-end applications, such as a voting app and a result app. To expose these via NodePort, Kubernetes allocates a port from the default range (30000-32767) on every node. Even if the application pods reside on only two nodes (e.g., nodes with IPs 70 and 71), the NodePort service creates iptables rules across all nodes. Consequently, a user can access the application via any node IP in the cluster.

Kubernetes Services - ClusterIP

A full-stack web application architecture on Kubernetes consists of distinct tiers, each typically encapsulated in sets of pods. These tiers include front-end web servers, back-end application servers, in-memory data stores like Redis, and persistent databases like MySQL. Seamless communication between these layers is critical for application functionality. The front-end requires connectivity to the back-end, and the back-end must interact with both the caching and database layers. Establishing reliable connectivity between these tiers presents a challenge due to the ephemeral nature of pods.

Kubernetes Services - NodePort

Fundamentals of Kubernetes Services A Kubernetes Service is an abstraction that defines a logical set of Pods and a policy by which to access them—typically via a stable virtual IP (ClusterIP), DNS name, and optional load balancing. It decouples pod lifecycle from client access, allowing pods to be added, removed, or restarted without changing how other components reach the service. Without services, pod IP addresses are ephemeral - that means - when a pod dies and is replaced, its IP changes.

Kubernetes Networking

Kubernetes Networking Fundamentals Single-Node Networking In a single-node Kubernetes cluster, the node possesses a physical or virtual IP address (e.g., 192.168.1.2) used for administrative access via SSH. In local environments like Minikube, this address refers to the virtual machine (VM) within the hypervisor, distinct from the host machine’s IP. Unlike Docker, where IP addresses are assigned to individual containers, Kubernetes assigns a unique internal IP address to the Pod. A Pod acts as a logical host for one or more containers.

Deployments Update and Rollback

In a production environment, the ability to update applications without interrupting service is critical. Kubernetes achieves this through the Deployment object, which acts as a high-level manager for Replica Sets and Pods. This article provides a detailed technical explanation of how Kubernetes handles application updates, the strategies it employs to maintain availability, and the mechanisms used to recover from failed deployments. Understanding the Deployment Architecture To understand rollouts, one must first understand the relationship between three components: the Deployment, the Replica Set, and the Pod.