Chapter 4. Phase 3: Enhancing Your Cloud Solution
Having started your migration to the cloud, there are a set of considerations that will enable you to start taking your cloud-based systems to the next level.
Design for Failure at the Network as well as Application Layers
It is a mantra that is as old as the cloud itself: the cloud doesn’t guarantee success, but it does give you the tools to deal with failure. The ability to dynamically create infrastructure on demand removes the dependency on hardware that is characteristic of data centers.
Everything you do in the cloud should assume failure will happen.
This is now a common practice for server infrastructure. The most famous example is Netflix’s Chaos Monkey: a tool that goes around intentionally disabling elements of the infrastructure to ensure that their resiliency systems can cope. This is rarely done at the network level, but the same rules can apply.
If your system suffers Internet performance problems, such as routing issues that add overhead onto every request, then your system should be aware of this and be able to easily switch to another location. For example, if you normally serve content from Virginia because the majority of your requests come from users in Chicago, then in the event of Internet performance issues, it should be easy to switch to serving content from another relevant location, such as San Francisco. This allows you to respond not only to Internet performance issues but also to outages seen at specific ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access