Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Cloud services are dynamic environments, with resources being added and removed as required rather than being provisioned up-front. Depending on the services being run this could involve spinning up additional compute nodes to handle a load spike, or adding back end servers to a reverse proxied service as your user base grows. Regardless of the details, cloud services should be built around the core idea of matching resources allocated to resources required in a dynamic manner, typically using some form of automation and orchestration to manage building and deploying resources.

Automation

Because of the dynamic nature of cloud services it is extremely important for cloud services to be built using some type of automation, which allows resources to be added and removed quickly and efficiently without requiring direct human intervention - having to manually log into new instances in order to add them to the pool of active resources is extremely limiting, and should be avoided.

The goal for building a cloud service should typically to build a system which will build the service for you, as well as allow ongoing management of the service. There are many tools available to support this goal, including Heat, Puppet, Ansible, Terraform, and many others - some of which these are discussed below in more detail.

Security

Cloud services by their very nature live on the public Internet, and as such are almost always exposed to external attacks. Thus it is essential for security considerations to be a foundational element of the design of cloud services. Some very basic considerations are noted here, with more detail discussed in further documentation.

...