Your AI powered learning assistant

Kubernetes Deployment strategies | BlueGreen Deployment | Canary Deployment | Rolling Update | ADAM

Intro

00:00:00

Deployment strategies are essential in modern application deployment, especially with container-based systems. It's crucial to identify the need for a strategy and analyze different types based on business requirements and application nature—stateless or stateful. The session emphasizes not just theoretical understanding but also practical implementation through continuous deployment practices.

What is Deployment

00:02:00

Software deployment involves the process of ensuring an application runs on designated machines, whether for development, testing, or production purposes. This includes installing the application's binary files (e.g., jar or tar), configuring it to communicate with necessary services like databases specific to its environment (QA or production), and starting it successfully. Only after these steps can users such as developers, testers, or customers access and use the application effectively.

Software Deployment

00:05:14

Software deployment involves preparing an environment for a web application to run, including installing necessary components like the operating system, libraries, JDK versions, application servers (e.g., Tomcat or JBoss), certificates, configuration files and scripts to start the app. Traditional methods require manual setup on machines which is time-consuming and error-prone. Modern practices favor container-based deployments that streamline this process by packaging all dependencies into containers for scalability and efficiency.

Containerization

00:07:38

Containerization involves deploying applications as containers using Docker images, which include common environment configurations. Specific settings like certificates or configuration files are injected at runtime through tools such as config maps or secrets in Kubernetes. This modern deployment method replaces traditional approaches by pre-installing and configuring everything within the container, ensuring seamless application startup upon container initiation. For resilience and high availability, multiple replicas of containers are created to handle failures and balance loads across machines.

Deployment Strategy

00:10:39

The Importance of Deployment Strategies Deployment strategies are essential for replacing or upgrading existing application containers with new versions without causing service interruptions. Companies like Facebook and banking websites require zero downtime during updates to ensure continuous user access while seamlessly transitioning backend systems. These strategies also enable faster time-to-market, allowing businesses to meet market demands by delivering frequent releases efficiently.

Ensuring Stability Through Rollbacks and Repeated Deployments Rollback mechanisms allow companies to revert quickly if a new version fails, ensuring minimal disruption even in complex environments with hundreds of containers. Frequent deployments demand repeatable processes that can be executed consistently without manual intervention, supporting the fast-paced development cycles prevalent today. This approach ensures stability while accommodating rapid innovation and customer satisfaction.

Types of Deployment

00:16:55

Four Deployment Strategies for Business Needs Businesses utilize four main deployment strategies to update their systems. The 'Recreate' method involves terminating all existing containers and creating new ones from scratch, ensuring a complete reset. In the 'Rolling Update,' one container is updated at a time; as each new container becomes operational, its corresponding old version is removed sequentially. The 'Blue-Green' strategy ensures zero downtime by running two sets of containers simultaneously—new versions are created while old ones remain active until traffic switches entirely to the newer set without any deletions during this process. Lastly, in the 'Canary' approach, updates occur incrementally based on user percentage allocation (e.g., 25% or 50%), allowing gradual validation before full-scale implementation.

Kubernetes Support and Customization for Deployments Kubernetes supports only two default deployment methods: Recreate (also known as Big Bang) and Rolling Update—the latter being its standard if no specific strategy is defined. While Blue-Green and Canary deployments aren't natively supported by Kubernetes directly, they can be achieved through customizations built upon Rolling Updates within orchestration tools like Kubernetes itself.