Principle 6: Create Scalable Microservices

Don’t build monolithic applications

Instead of a monolithic approach,  build a number of smaller applications that can call each other as necessary via APIs. Automated scaling allows you to keep costs down whilst ensuring demand is met.

Cloud technologies depend on good elasticity to be competitive. It’s easier to see which parts of your application are the most resource hungry (or the most utilized) and improves troubleshooting.

Building with micro-services is good practice is generally thought to be good practice. It allows improvement of individual services which adds agility.

Go Serverless where possible as this puts the onus on the CSP to  provide the automated scalability.

With fully Automated scaling, horizontal scaling occurs in response to your Alerts.

NB. Applications divided into micro-services need to be stateless!

Principle 3: Infrastructure as Code

Build everything as Code

Why?

All Cloud services worthy of the name can be used or accessed using their API.  By calling this API via code we can benefit from:

  • Faster Deployments. Deploying both the application and the infrastructure using code can dramatically speed up deployment and lead to Continuous Deployment
  • Reduce Error. Version controlled, repeatable scripts remove opportunities for human error. Auditing, which is essential to many companies success, is also made much easier.
  • Automatic Configuration. We can use script based tools such as Ansible to control and configure our whole Cloud environment.

Principle 2: Automate Everything

Everything you build should be both automated and repeatable

Why?

What if your infrastructure breaks? What if there is a disaster? Rebuilding can take considerable time. If your solution is built from repeatable code then recovery can also be automated.

Chunks of well crafted repeatable code can be pieced together to form more complex solutions, saving time in the long run.

Continuous Deployment which is a pillar of agile entities can only be achieved with automation.

A complete and well defined automated solution creates a perfect staging environment, protecting your production environment without the need for human change control.