Week 8 Flashcards
What are the approaches to testing in production?
Blue/Green testing
Canary testing
Feature testing
Resilience Testing
Why test in production?
You get the most powerful feedback, you get real users doing real things, combinations that are unusual. Testing under real traffic.
What is Blue/Green testing?
The production environment(blue) is exchanged with the staging environment(green) - may be done by updating a routing table.
this means that they need to be the same scale.
What is canary testing?
A small percentage of customer traffic is sent to a new version in production, by tinkering with a load balancer (i.e. 5% are routed to the new system). Limits the damage if the new version is broken.
What is A/B feature testing?
A small percentage of the customer traffic is sent to a new version in the production environment. (like netflix moving buttons on different versions etc). Investigate what users do (do they buy more tickets, watch more movies)
What is resilience training?
Random virtual machines or containers in the production environment are terminated. Test the recovery plan by simulating a failure (e.g. spin up a new container), testing if we can recover without annoying people, to see if the system is tolerant of failure.
What is the ‘Chaos Monkey’ in resilience testing?
It terminates random virtual machines to see how well automatic recovery mechanisms work.
What is the ‘Chaos Gorilla’ in resilience testing?
It terminates (links to) entire availability zones. Services should automatically switch to alternate zones without a user-visible impact or manual intervention. (get routed to something else)
What is the ‘Latency Monkey’ in resilience testing?
It delays client-server communication to simulate service degradation and measures in upstream services respond appropriately. Very large delay can simulate a node or service downtime. See if we can deal with a slow network.
What does DevOps stand for?
Development (responding to a rapidly changing competitive landscape)
Operations (provide stable, reliable, and secure service)
Why might separating Dev and Ops lead to problems?
They have conflicting goals. Devs are measured by the number of features added whereas ops are measured by security. Devs want to go as fast as they can but ops want to go as slowly as they can.
What is DevOps?
Sees development and operations teams work together to deploy changes hundreds or even thousands of times per day.
What is the DevOps manifesto?
CALMS
Culture
Automation
Lean
Measurement
Sharing
What does ‘Culture’ mean in CALMS?
DevOps involves changing culture, so that development, QC, security and operations people are all on the same team, working together to discover, triage and fix problems. Mistakes are allowed as long as lessons are learned.
What does ‘Automation’ mean in CALMS?
Devops involves automating manual tasks to eliminate toil, defined as work that tends to be manual, repetitive, automatable, tactical, devoid of enduring value, and that scales linearly as a service grows. Extensive use of tooling eliminates this toil, giving consistency, predictability and transparency.