$ cat topics/advanced-devops--cloud
# Advanced DevOps & Cloud
---
>
### What is Platform Engineering?
>
### What is FinOps?
>
### What is Policy as Code?
>
### What is Chaos Engineering?
>
### What is Blue/Green Deployment?
>
### What is Feature Flagging?
>
### What is a Service Catalog?
>
### What is a Service Level Agreement (SLA)?
>
### What is a Service Level Objective (SLO)?
>
### What is a Service Level Indicator (SLI)?
>
### What is a Runbook?
>
### What is a Playbook in Incident Response?
>
### What is Observability?
>
### What is Tracing in Observability?
>
### What is a Sidecar Pattern?
>
### What is a Service Mesh Control Plane?
>
### What is GitHub Actions?
>
### What is a Self-Healing System?
>
### What is Canary Analysis?
>
### What is Infrastructure Drift?
>
### Difference between count and for_each?
>
### How to resolve Terraform State if it gets locked ?
>
### Terraform apply failed halfway, How do you resolve it ?
>
### A production resource was manually changed during an emergency. Terraform now wants to revert the change. What would you do?
>
### What is a Race Condition?
>
### What is Terraform State Corruption?
>
### Why do we store Terraform State Remotely?
>
### What is the use of DynamoDB when storing the State File Remotely?
>
### What are Provisioners and why are they not widely used?
>
### What is the difference between running Terraform and running it with Ansible?
>
### Where can we store the State File Remotely, and why don't we store it on GitHub?
>
### What is Terraform Taint and how is it useful?
>
### After Terraform Plan, one production server is going to be recreated. How will you troubleshoot it?
>
**Inspect the plan:** Run `terraform plan` and identify why Terraform wants to replace the server. Look for either `-/+` or `+/-`, which indicate replacement. The order shows whether Terraform will destroy the existing resource before creating the replacement or create the replacement before destroying the existing resource.
>
**Check configuration changes:** Review recent changes to arguments such as the AMI, subnet, instance type, or other replacement-triggering attributes.
>
**Check immutable attributes:** Some resource attributes cannot be updated in place and require replacement.
>
**Check state and real infrastructure:** Compare the Terraform configuration and state with the actual resource in the cloud.
>
**Check recent changes:** Review code commits and any manual changes made through the cloud console.
>
**Review lifecycle rules:** Check whether `create_before_destroy` or other lifecycle settings affect replacement behavior.
>
**Validate the fix:** Make the required correction and generate a new plan.
>
### What changes are performed when we run Terraform Init?
>
### What is the difference between Arguments, Attributes, and Interpolation?
>
### What are Dynamic Blocks?
>
### How do you delete a specific resource while running Terraform Apply?
>
### How does Terraform resolve Resource Dependencies?
>
### Which command should you run to inspect and sync state with reality without changing actual resources?
>
### How do we protect Sensitive Variables in Terraform?
>
### What happens when you remove the middle item from a list of resources managed using Count?
>
### How do you stop managing an existing S3 bucket without deleting it?
>
### How do you protect a production Aurora PostgreSQL cluster against accidental deletion or replacement?
>
### What will Terraform Refresh do?
>
### How will you restore a Terraform State File if it gets accidentally deleted?
>
Check whether S3 bucket versioning is enabled.
>
Identify the last known-good version of the state object.
>
Restore the appropriate version or download it as a recovery copy.
>
Check the current state and backend configuration before resuming Terraform operations.
>
Run a refresh-only plan and a normal plan to verify that Terraform correctly identifies the infrastructure.
>
### What happens if you do not use DynamoDB with a State File Stored Remotely in S3?