Bird
Raised Fist0
Terraformcloud~5 mins

Zero-downtime deployment pattern in Terraform - Cheat Sheet & Quick Revision

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Recall & Review
beginner
What is the main goal of the zero-downtime deployment pattern?
To update applications or services without interrupting user access or causing service downtime.
Click to reveal answer
intermediate
How does blue-green deployment help achieve zero downtime?
It runs two identical environments (blue and green). Traffic switches from the old to the new environment only after the new one is fully ready.
Click to reveal answer
beginner
What role does a load balancer play in zero-downtime deployments?
It directs user traffic to healthy instances and can shift traffic gradually to new versions without downtime.
Click to reveal answer
intermediate
Why is health checking important in zero-downtime deployments?
Health checks ensure that only healthy instances receive traffic, preventing users from hitting broken or incomplete deployments.
Click to reveal answer
intermediate
In Terraform, what resource type can help manage zero-downtime deployments for compute instances?
Resources like 'aws_autoscaling_group' or 'google_compute_instance_group_manager' can manage rolling updates to avoid downtime.
Click to reveal answer
Which deployment strategy involves running two identical environments and switching traffic between them?
ARecreate deployment
BCanary deployment
CShadow deployment
DBlue-green deployment
What is the purpose of health checks during zero-downtime deployment?
ATo backup data automatically
BTo speed up deployment time
CTo verify instances are ready before receiving traffic
DTo delete old instances immediately
In Terraform, which resource helps perform rolling updates to avoid downtime?
Aaws_autoscaling_group
Baws_s3_bucket
Caws_lambda_function
Daws_vpc
What does zero-downtime deployment aim to prevent?
AFaster deployment times
BService interruptions during updates
CIncreased server costs
DManual configuration
Which component typically shifts user traffic between old and new versions in zero-downtime deployments?
ALoad balancer
BDatabase
CFirewall
DDNS server
Explain how blue-green deployment works to achieve zero downtime.
Think of having a backup environment ready before switching.
You got /3 concepts.
    Describe the role of health checks and load balancers in zero-downtime deployments.
    Consider how traffic is managed safely during changes.
    You got /3 concepts.

      Practice

      (1/5)
      1. What is the main goal of a zero-downtime deployment in Terraform?
      easy
      A. Manually switch traffic after deployment
      B. Update applications without stopping them or causing downtime
      C. Deploy new versions only during off-hours
      D. Stop all running tasks before updating

      Solution

      1. Step 1: Understand zero-downtime deployment purpose

        Zero-downtime deployment means updating apps without stopping them or causing service interruptions.
      2. Step 2: Compare options with this goal

        Only Update applications without stopping them or causing downtime describes updating without stopping or downtime, matching the goal.
      3. Final Answer:

        Update applications without stopping them or causing downtime -> Option B
      4. Quick Check:

        Zero-downtime = no stopping, no downtime [OK]
      Hint: Zero downtime means no stopping or service interruption [OK]
      Common Mistakes:
      • Thinking deployment must stop all tasks
      • Assuming manual traffic switch is required
      • Believing updates only happen off-hours
      2. Which Terraform setting helps control how many tasks run during an update for zero-downtime?
      easy
      A. min_healthy_percent
      B. max_percent
      C. desired_count
      D. task_definition

      Solution

      1. Step 1: Identify settings related to task counts during update

        Terraform uses settings like max_percent and min_healthy_percent to control task numbers during deployment.
      2. Step 2: Understand min_healthy_percent role

        min_healthy_percent ensures a minimum percentage of tasks stay healthy and running during updates, preventing downtime.
      3. Final Answer:

        min_healthy_percent -> Option A
      4. Quick Check:

        min_healthy_percent controls running tasks during update [OK]
      Hint: min_healthy_percent keeps tasks running during updates [OK]
      Common Mistakes:
      • Confusing max_percent with min_healthy_percent
      • Using desired_count which sets total tasks, not update behavior
      • Selecting task_definition which defines task specs
      3. Given this Terraform snippet for ECS service update:
      deployment_minimum_healthy_percent = 75
      deployment_maximum_percent = 200

      What does this configuration ensure during deployment?
      medium
      A. Exactly 75 tasks run; maximum 200 tasks allowed
      B. No new tasks start until all old tasks stop
      C. Deployment stops 25% of tasks before starting new ones
      D. At least 75% of tasks stay running; up to 200% tasks can run temporarily

      Solution

      1. Step 1: Interpret deployment_minimum_healthy_percent

        This means at least 75% of current tasks must stay healthy and running during deployment.
      2. Step 2: Interpret deployment_maximum_percent

        This allows up to 200% of the desired tasks to run temporarily, enabling new tasks to start before old ones stop.
      3. Final Answer:

        At least 75% of tasks stay running; up to 200% tasks can run temporarily -> Option D
      4. Quick Check:

        Min healthy 75%, max 200% = safe rolling update [OK]
      Hint: Min healthy % keeps tasks running; max % allows extra tasks [OK]
      Common Mistakes:
      • Thinking percentages mean exact task counts
      • Assuming deployment stops tasks before starting new ones
      • Confusing min and max percentages
      4. You set deployment_minimum_healthy_percent = 100 and deployment_maximum_percent = 100 in Terraform for ECS service. What issue will this cause?
      medium
      A. Deployment will run twice the desired tasks temporarily
      B. Deployment will succeed with zero downtime
      C. Deployment will fail because no new tasks can start before old ones stop
      D. Deployment will ignore these settings and use defaults

      Solution

      1. Step 1: Analyze min and max percent both at 100%

        Min healthy 100% means all old tasks must stay running; max 100% means no extra tasks can start.
      2. Step 2: Understand deployment impact

        New tasks cannot start until old ones stop, but old ones cannot stop because min healthy is 100%, causing deployment to fail.
      3. Final Answer:

        Deployment will fail because no new tasks can start before old ones stop -> Option C
      4. Quick Check:

        Min 100% + Max 100% blocks rolling update [OK]
      Hint: Min 100% and Max 100% blocks task replacement [OK]
      Common Mistakes:
      • Assuming deployment will succeed without downtime
      • Thinking max 100% allows extra tasks
      • Ignoring min healthy effect on stopping old tasks
      5. You want to deploy a new version of your app with zero downtime using Terraform ECS service. Your desired task count is 4. Which configuration best supports zero-downtime deployment?
      hard
      A. deployment_minimum_healthy_percent = 75
      deployment_maximum_percent = 125
      B. deployment_minimum_healthy_percent = 100
      deployment_maximum_percent = 100
      C. deployment_minimum_healthy_percent = 50
      deployment_maximum_percent = 150
      D. deployment_minimum_healthy_percent = 0
      deployment_maximum_percent = 200

      Solution

      1. Step 1: Evaluate each option for zero-downtime support

        deployment_minimum_healthy_percent = 50
        deployment_maximum_percent = 150
        allows only 50% healthy tasks, risking downtime. deployment_minimum_healthy_percent = 100
        deployment_maximum_percent = 100
        blocks new tasks starting before old stop. deployment_minimum_healthy_percent = 0
        deployment_maximum_percent = 200
        allows zero healthy tasks, risking downtime. deployment_minimum_healthy_percent = 75
        deployment_maximum_percent = 125
        keeps 75% healthy and allows 125% max tasks, enabling smooth rolling update.
      2. Step 2: Choose best balance for zero-downtime

        deployment_minimum_healthy_percent = 75
        deployment_maximum_percent = 125
        ensures enough healthy tasks remain while allowing new tasks to start before old stop, supporting zero downtime.
      3. Final Answer:

        deployment_minimum_healthy_percent = 75 and deployment_maximum_percent = 125 -> Option A
      4. Quick Check:

        Min healthy 75% + max 125% = safe rolling update [OK]
      Hint: Min healthy ~75% and max ~125% enable zero downtime [OK]
      Common Mistakes:
      • Choosing min healthy too low risking downtime
      • Choosing min and max both 100% blocking updates
      • Allowing zero healthy tasks during deployment