Tags design pattern devops disaster recovery distributed systems error error handling hashicorp index infrastructure as code moc monitoring observability patterns release management resilience snippet terraform tools zettel