The Path to Cloud Native Flashcards
What is the microservices architecture?
The microservices architecture is an approach to software development where a large application is divided into smaller, independently deployable services, each responsible for a specific business function.
What is Kubernetes?
Kubernetes is an open-source container orchestration platform that automates the deployment, scaling, and management of containerized applications.
What is Domain-Driven Design (DDD)?
Domain-Driven Design is an approach to software development that focuses on understanding and modeling the business domain, using concepts like bounded contexts and aggregates to manage complexity and align software with business needs.
What are Pods in Kubernetes?
Pods are the smallest deployable units in Kubernetes, consisting of one or more containers that share network and storage resources and are scheduled together on the same host.
What is a Kubernetes Service?
A Kubernetes Service provides a stable endpoint for accessing a set of Pods. It enables service discovery, load balancing, and communication between different parts of a distributed application.
What are Labels and Annotations in Kubernetes?
Labels and annotations are metadata attached to Kubernetes objects for identification and additional information. Labels are used for querying and managing resources, while annotations provide non-searchable metadata for tools and libraries.
What is a Namespace in Kubernetes?
A Namespace in Kubernetes provides scope and isolation for resources within a cluster, allowing for logical partitioning of resources for different environments, teams, or applications.
What is a container?
A container is a lightweight, portable, and isolated runtime environment that packages an application and its dependencies, allowing it to run consistently across different computing environments.
What is the difference between a container and a virtual machine (VM)?
Containers share the host operating system kernel with other containers, making them lightweight and faster to start compared to VMs, which each run their own operating system instance.
What is the purpose of Init containers in Kubernetes?
Init containers are used to perform setup tasks or initialization before the main application containers start running in a Pod. They ensure that preconditions are met before the application containers start.
What is the role of ResourceQuotas in Kubernetes?
ResourceQuotas in Kubernetes enforce limits on the compute resources (CPU, memory) and the number of objects (such as Pods, Services) that can be created within a namespace.
What is the Sidecar pattern in containerized applications?
The Sidecar pattern involves deploying a secondary container alongside the main application container within the same Pod. The sidecar container provides auxiliary functionality such as logging, monitoring, or proxying.
How does Kubernetes handle service discovery?
Kubernetes provides service discovery through DNS and environment variables. Each Service in Kubernetes is assigned a DNS name that can be used by other services to discover and communicate with it.
What is the purpose of a Kubernetes CronJob?
A Kubernetes CronJob is used to run Jobs on a recurring schedule, similar to cron jobs in traditional Unix systems. It enables periodic execution of tasks such as backups, data processing, or maintenance.
How does Kubernetes handle scaling of applications?
Kubernetes supports both horizontal and vertical scaling. Horizontal scaling involves adding or removing instances of Pods to meet demand, while vertical scaling adjusts the resources allocated to individual Pods.