Hybrid Cloud Deployment Requirements

I wanted to document my list of requirements for deploying machines in a hybrid cloud environment. This should just be considered a starting point for planning your own deployments.

Global Requirements

  • All instances, services, and virtual machines must be deployed in a manner that allows for a template to be saved to a repository
  • All instances that are not running CotS packages must have those packages pushed via automation
  • All instances must have an agent to receive software updates via push method
  • All non-autoscaling instances must use a central source for authentication
  • All instances will be built from templates or AMIs
  • All instances that are running CotS packages and require 24x7 access should not be deployed in any cloud, but on premise, unless customer access is required.
  • All customer accessible applications or services will run in the cloud.
  • All instances should be patched on a schedule at least 3 times a year (Q1,Q2,Q3)

Cloud Requirements

  • Any non-customer accessible workloads that must be accessible 24x7 must not be deployed to the cloud
  • All custom images for autoscaling must be created using packer and all templates stored in a repository
  • All deployements in the cloud must be deployed via Terraform, Cloud Formation, Deployment Manager, or ARM Template, and stored in a repository
  • All custom devloped packages should be deployed on autoscaling instances
  • Any systems running a software package not installed via automation, must be patched via push method
  • Any systems running a software package installed via automation, must be patched by replacing the underlying image

On Premise VMWare Requirements

  • Any non-customer accessible workloads that must be accessible 24x7 must be deployed on premise
  • All instances on premise must be deployed from template
  • All templates must be created using packer and all templates stored in a repository
  • All deployments on premise of more than 2 instances must be deployed using Terraform and the template stored in a repository
  • All deployments on premise of 1 or 2 instances must be deployed using Ansible or Terraform and the template stored in a repository
  • All custom developed packages must be deployed using automation (Ansible, Code Deploy, etc)
  • All systems deployed on premise must be patched via push method