rw-book-cover

Metadata

Highlights

  • eliminating snowflake servers (View Highlight)
  • Snowflakes as code is an antipattern where separate instances of infrastructure code are maintained for multiple instances of infrastructure that are intended to be essentially the same. (View Highlight)
  • These code instances are snowflakes when differences between the infrastructure instances are maintained by differences in the code. (View Highlight)
  • This antipattern also occurs when infrastructure is replicated for different deployments of similar applications - for different customers, for example - or to deploy multiple application instances in different regions. (View Highlight)
  • Once you accept editing code when copying or merging it between instances as a way to handle configuration, it becomes easy for larger differences to persist (View Highlight)
  • An alternative to snowflakes as code is to reuse a single instance of infrastructure code for multiple instances of the infrastructure. (View Highlight)
  • This is Continuous Delivery 101 - only make changes in the origin (for example, trunk), then copy the code, unmodified, from one environment to the next. Using an automated process to promote infrastructure code from one instances to the next reduces the opportunity for manual errors. It also removes the opportunity to “tweak (View Highlight)
  • As mentioned earlier, there usually is a need for some variations between instances, such as resource sizing and names. These variations should be extracted into per-instance configuration values, and passed to the code when it is applied to the given instance (View Highlight)