As organizations adopt service-oriented architectures, the boundaries between the development teams responsible for individual services and operations teams responsible for shared infrastructure start to blur.
In this talk we’ll look at two tools from HashiCorp which can help make this situation more managable regardless of deployment target: Terraform, a tool for managing infrastructure as code, and Consul, a tool for service discovery, health checking and key-value storage.
We'll see how layered Terraform configuration can enable service teams to deploy autonomously, making use of shared resources provisioned and managed by other teams. We’ll also look at how each service instance can self-bootstrap into Consul and integrate with an API Gateway, as well as being responsible for health checking itself. Finally we'll look at how common patterns necessary for high availability such as active/passive failover can be built using Consul's primitives.