Infrastructure as Code: initial vision and strategy
Before starting any kind of development we should have at least a vague idea of the users we would like to serve and the direction we are heading.
As we basically have nothing in this area this allows us to have a cold, clean start.
What is our vision?
?????????????????????????
Who is the user?
Our users own large-scale, complex, mission critical infrastructures either in private or public clouds.
They are usually referred to as:
- Site reliability engineers
- Cluster operators
- Operations managers
What is their daily workflow?
What are their biggest pains?
A Zendesk search for Terraform among our premium users
Specific Terraform usecases we might provide support for:
- https://gitlab.zendesk.com/agent/tickets/123137
- https://gitlab.zendesk.com/agent/tickets/123713 - see atlantis
- seemingly some users use GitLab CI w/ Terraform Enterprise via webhooks
How do they define success?
What is our approach?
Our initial focus is to build on Terraform related workflows.
We provide an integrated DevOps environment to programmatically manage complex infrastructures. In practice this means that we run terraform
scripts at every git push
. This can already be achieved using gitlab-ci
.
What benefits do we provide that no-one else does?
listing of ideas:
- easy to spin up production-like environments used for testing and as review apps
- (up-to-date) terraform plan view in merge requests
- monitoring, failure prevention, alerting and triggers based on infrastructure state
- monitoring of IaC script runnings