Best practices in the cloud¶
As you learn about and experiment with the many options available to you in the Rackspace Cloud, remember these best practices:
Assume failure can happen and design accordingly. Don’t rely on individual resources such as VMs and storage to always be available.
Decompose your application into smaller individually scalable parts. Don’t have a monolithic server that scales up as your demand grows.
When you must stop or reboot an active server, always do so via the operating system. Using the Cloud Control Panel to initialize a running server can lead to data loss and should generally be avoided.
Deploy a load balancer to allow you to more easily scale and update your application. Follow the configuration guidelines at Configure a Load Balancer.
Deploy backup and/or monitoring for your most important servers. Configure Cloud Backup as discussed at Rackspace Cloud Backup overview.
Other best practices relate to specific services, options, and configurations:
Best practices for orchestration¶
Always configure services and applications to restart upon reboot.
Use config drive and cloud-init to bootstrap your servers as described at Using Cloud-init with Rackspace cloud.
For Cloud Images, use the UUID where possible because the UUID of an image cannot change, whereas the name cannot be guaranteed to be constant.
Use base images rather than snapshots for build-time performance.
Automate configuration tasks whenever possible.
Best practices for security¶
Sending a high volume of email from your cloud server can downgrade its IP reputation. Use Mailgun instead, as described at Mailgun Quickstart.
Use SSH keys rather than passwords for Linux. Follow the procedure at Basic Cloud Server Security.
Best practices for storage¶
Use attached storage whenever possible because it will allow you to resize, backup, and plan for failure more gracefully. Follow the tutorial at Create and Attach a Cloud Block Storage Volume.
Best practices for networking¶
Use ServiceNet to communicate between Cloud Servers and Cloud Files and Cloud Databases. Use Cloud Networks for server-to-server communication.
For Cloud Networks, use RFC 1918, less the two ServiceNet blocks.