1/30
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced | Call with Kai |
|---|
No analytics yet
Send a link to your students to track their progress
CI/CD Definition
A tool that orchestrates your build and test-automation tools, running automatically on every commit or merge.
Blast radius
The impact zone of a change. Small change = small blast radius = lower risk.
Why fail fast and often?
Early failure (in dev/CI) is cheap and impacts only the engineer. Late failure (production) is expensive and damages reputation.
KISS approach for test automation
Keep It Simple, Stupid – start with one automated test for a primary use case, then grow. Even one test is better than none.
What should be stored in source control?
"If it can be changed, it should be in source‑control and versioned." (code, tests, config, docs, environment configs, scripts).
Configuration as code
Representing an environment (servers, firewalls, etc.) via configuration files stored and versioned in source control.
Binary repository
A place to store binary objects/artifacts – the runnable software created when source code is compiled.
Build once, deploy many times
The binary is built only once for a given release, and the same unchanged binary is used in all environments.
Why not bake secrets into the binary?
You'd need different binaries per environment or same credentials everywhere (insecure). Use runtime config files instead.
Defect lead time: 12‑week vs 2‑week releases
12 weeks → ~11 weeks 6 days; 2 weeks → ~9 days.
Even if customers can't accept frequent releases, you should still…
Adopt the practice of small, shippable chunks to build the habit of continuous delivery.
Three types of tests (simplified)
Unit (code logic), Integration (interactions), End‑to‑end (real user scenarios).
Inverted testing triangle
Many unit tests (largest layer), fewer integration tests, even fewer end‑to‑end tests – opposite of traditional manual-heavy testing.
Test data tripwire
Stale data causes random failures. Fix: create test data as part of the process and remove it as the final step.
Legacy strangulation
Systematically replacing parts of a legacy platform with modern components – not a big‑bang rewrite.
Component‑based architecture benefit for CD
Each component can be developed, built, tested, and shipped independently.
Never break your consumer
If you change a provider (library, API, OS), you must validate that no consumer is broken.
How to break a hard dependency between software and database?
Add a data‑access layer proxy or simply use SQL views.
Author's recommended "less‑is‑more" environment setup
Start with dev + CI environment + production. Add pre‑production / like‑live only if necessary.
Like‑live environment
Contains the same software and infrastructure versions as production (not necessarily same data).
Taking production offline to upgrade is…
unforgivable and wholly avoidable.
Three questions to ask when evaluating a CD tool
(Any three) Can it deploy same binary to multiple environments? Audit trail? Secure? No‑downtime? Integrate with CI? Support/SLA?
Automated provisioning
Programmatically creating virtual servers/environments via a recipe. Gives predictability and repeatability.
How automated provisioning enables blue/green deployments
Provision new environment (green) alongside live (blue), deploy new version, switch traffic via network change – zero downtime, instant rollback.
Who should be included in code reviews?
Not just developers – operations team should also be included (and vice versa).
Build Badger at ACME systems
A plush toy token – the holder is the only one allowed to change production at one time, enforcing "one change at a time" to avoid dependency hell.
When should you use a simple manual process instead of automation?
When automation would be overkill or create barriers (e.g., dependency management via whiteboard queue).
Rule of thumb for monitoring
"If it moves, monitor it. If it doesn't, monitor it just in case."
How to prove CD is not harming production with monitoring
Add a deployment marker/spike to time‑series graphs and visually compare performance before/after each deployment.
Who should be able to see monitoring dashboards?
Everyone in the business – not just the operations team.
hat is the purpose of a “pre‑baked vanilla server image” in automated provisioning?
A fresh virtual server that can be added quickly as part of the CD pipeline