Dynamic provision nature of cloud computing means we need to think of system resources as temporary. For example: we can launch as many servers as we need and use them as long as we need. Which means, when a server crashes or when a new configuration needs to be applied the running server is replaced with a new server. This helps in easier rollbacks and is suitable for stateless architectures.

Whether we are deploying a new environment or increasing the load capacity of the existing one we would want to automate this repeatable process. It can be done in the following ways:

  • Bootstrapping: Usually resources are launched with default configuration. Once that is done we can execute automated bootstrapped actions, which are scripts that install software or copy data to bring a resource to a particular state. Which means we can develop more complex environments starting from the simplest ones.

  • Golden images: Golden images are a snapshot of a resource in a particular state. For example: We can create snapshots of VMs at particular states and can restore to that state in future. Golden images result in faster times as compared to bootstrapping. AWS EC2, EBS or Amazon RDS DB instances can be launched from golden images.

  • Containers: A container is a standard unit of software that packages up code and all its dependencies so that the application runs quickly and reliably from one computing environment to another. Docker allows us to package a piece of software in a Docker image which becomes containers at runtime.

  • Hybrid approach: Depending upon the application and use case we can employ both bootstrapping and golden images for dynamic provision of resources.

References: AWS Cloud Best Practices and What is a container?