Globally Distributed Mission Critical Applications
Kris Beevers offers some great insight through a two part series on NSONE. A few noteworthy callouts:
- “Unit testing is not enough. Test the interactions between your subsystems.” Could not agree with this more. Numerous projects obsess with unit test coverage, and forget boundary testing between subsystems. Likewise, how many systems fail to test the expected number of payloads sent over the wire?
- “Automate Deployments And Config Management – With Extreme Care” There is no free lunch!
- “We roll out deployments facility by facility, from lowest traffic to highest. Within a facility, we roll out server by server, and even core by core, running a comprehensive functional testing suite at every step of the way. ” Big bang deployments have implications. NSONE deployment sounds very similar to the
- “Simulate the bad things before they happen. Netflix’s Chaos Monkey is one well-known example” – how many times have you heard IT propose no concept of failover/DR because they believe their isn’t budget, only to be burnt a time period later?
- “Lock your systems down and minimize the attack surface exposed to the internet.” – security 101 in my view. Likewise, “Each role in your architecture should expose the services it provides only to the set of systems that need to access those services”