“Let’s do DevOps” — said our CTO at the start-of-year meeting. Then silence followed, because nobody knew exactly what that meant. After a year of experimentation we know: DevOps is mainly about culture, not tools.
The Wall Between Development and Operations¶
Developers wrote code and “threw it over the wall” to operations. Operations deployed it, and when something did not work, threw the error back. Root cause: developers had no access to production logs, operations did not understand the application logic, the release process took 3 weeks and involved 47 steps in a Word document.
Step 1: Shared Responsibility¶
We put people at the same table. We introduced “you build it, you run it” — the developer is on-call for the first week after a deployment. Nothing makes you write robust code faster than being woken at 3 AM because of your own bug.
Step 2: Infrastructure as Code — Ansible¶
Our servers were handcrafted. Each one slightly different. Documentation? “Pepa knows.” Ansible: agentless, YAML playbooks, push model. In two months we had automated provisioning. New test environment: from 2 days of waiting to 15 minutes.
Step 3: End-to-End CI/CD Pipeline¶
Jenkins pipeline from commit to staging, production deployment in a single click:
pipeline {
stages {
stage('Build') { steps { sh 'mvn clean package' } }
stage('Test') { steps { sh 'mvn verify' } }
stage('Docker') { steps { sh 'docker build -t myapp:${BUILD_NUMBER} .' } }
stage('Staging') { steps { sh './deploy.sh staging' } }
stage('Prod') {
input { message 'Deploy to production?' }
steps { sh './deploy.sh prod' }
}
}
}
Time from commit to production: from 3 weeks to 2 hours. Deployments per month: from 1 to 8.
Step 4: Monitoring¶
ELK stack for logging, Grafana + InfluxDB for metrics, PagerDuty for alerting. Dashboard on a TV in the open-plan office — everyone can see how the system is breathing.
What Did Not Work¶
The “DevOps engineer” role — we created a third silo instead of two. Abolished after a quarter. Tool fatigue — too many tools introduced at once. We should have rolled them out gradually.
DORA Metrics¶
- Deployment frequency: 1/month → 8/month
- Lead time: 3 weeks → 2 days
- Change failure rate: 25% → 8%
- MTTR: 4 hours → 45 minutes
DevOps is a Journey, Not a Destination¶
The tools are the easier part. Changing people’s mindset, breaking down silos, and building a culture of shared responsibility — that is the real challenge. But the results are worth it.
Need help with implementation?
Our experts can help with design, implementation, and operations. From architecture to production.
Contact us