General Principles for a Good Cloud Solution
Dec. 31, 2018 - 4 mins read
Daniel Ray Coutinho
Daniel Ray Coutinho, part of the Amazon Web Solutions Division at KUWAITNET is responsible for strategic alliances in the region for the AWS cloud. He brings to the table nearly a decade of experience that encompass strategic sales (direct and channel) and managing high-value key accounts.
Andy Jassy : "The cloud is the new normal," (2014, Re:Invent conference in Las Vegas)
In a Cloud-First mindset, the question for any app or workload – from the newest web service to the oldest legacy system – isn’t “Why cloud?” but “Why NOT cloud?”
Cloud Computing … what is it?
The official definition from the National Institute of Standards and Technology : "Cloud computing is a model for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction."
Err … English Please?
Basically accessing the computing resources anywhere, anytime and being able to use any or all of the data and applications that you want without the need to invest upfront in any hardware or software resource.
The on-demand delivery of managed IT resources over public or private networks with zero up-front costs, no long-term contracts, and pay-as-you-go pricing ( converting upfront CAPEX to OPEX ) makes the Cloud a no – brainer over traditional provisioning of IT resources.
General Principles for a Good Cloud Solution:
Stop guessing your capacity needs:
Eliminate guessing about your infrastructure capacity needs.
When you make a capacity decision before you deploy a system, you might end up sitting on expensive idle resources or dealing with the performance implications of limited capacity.
With cloud computing, these problems can go away. You can use as much or as little capacity as you need, and scale up and down automatically.
Test systems at production scale:
In the cloud, you can create a production-scale test environment on demand, complete your testing, and then decommission the resources.
Because you only pay for the test environment when it's running, you can simulate your live environment for a fraction of the cost of testing on premises.
Automate to make architectural experimentation easier:
Automation allows you to create and replicate your systems at low cost and avoid the expense of manual effort.
You can track changes to your automation, audit the impact, and revert to previous parameters when necessary.
Allow for evolutionary architectures:
In a traditional environment, architectural decisions are often implemented as static, one-time events, with a few major versions of a system during its lifetime.
As a business and its context continue to change, these initial decisions might hinder the system's ability to deliver changing business requirements.
In the cloud, the capability to automate and test on demand lowers the risk of impact from design changes. This allows systems to evolve over time so that businesses can take advantage of innovations as a standard practice.
Drive architectures using data:
In the cloud you can collect data on how your architectural choices affect the behavior of your workload.
This lets you make fact-based decisions on how to improve your workload.
Your cloud infrastructure is code, so you can use that data to inform your architecture choices and improvements over time.
Improve through game days:
Test how your architecture and processes perform by regularly scheduling game days to simulate events in production.
This will help you understand where improvements can be made and can help develop organizational experience in dealing with events.