Successfully reported this slideshow.
Your SlideShare is downloading. ×

DevOps Practices @Pipedrive

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
DevOps practices @Pipedrive
Renno Reinurm
DevClub.ee
25.01.18

YouTube videos are no longer supported on SlideShare

View original on YouTube

Before we do deep dive in
Engineering organization:
● 10 infrastructure engineers
● 10 quality automation engineers
● 150 ...
Loading in …3
×

Check these out next

1 of 13 Ad

More Related Content

Slideshows for you (20)

Similar to DevOps Practices @Pipedrive (20)

Advertisement

Recently uploaded (20)

DevOps Practices @Pipedrive

  1. 1. DevOps practices @Pipedrive Renno Reinurm DevClub.ee 25.01.18
  2. 2. Before we do deep dive in Engineering organization: ● 10 infrastructure engineers ● 10 quality automation engineers ● 150 software engineers Key words: ● Automation ● Visibility ● Self service
  3. 3. Technical stack Rackspace private cloud and AWS Terraform to provision infrastructure resources Chef for OS configuration management Docker Enterprise Edition (Docker Swarm on steroids)
  4. 4. Technical stack 2 NewRelic Consul Graylog Zabbix, Prometheus with Grafana dashboards Mysql, MongoDB, CouchDB, Redis, McRouter Slightly more than 150 containerized in-house developed micro/macro services (NodeJS, PHP, Golang, Python)
  5. 5. Development environment Early days we used Vagrant + chef combo Average provisioning process took 30minutes with success ratio 50% Compared to Dockerized dev-env setup ~5min with success ratio 95%
  6. 6. Development environment (2) Contains required infrastructure to use Pipedrive framework for (micro-)services: Consul Registrator Nginx Internally developed api gateway. Several must have product components Demo...
  7. 7. Development of microservice Classical project needs few steps to get up and running: ● Get the code - git .. ● Fetch libraries - for example npm install in case of Nodejs ● Start containers - docker-compose up
  8. 8. Deployment of code (very simplified) 1. Add label ‘ready-for-deploy’ to pull request in Github 2. In-house developed automation Rakett a. Merges master -> branch 3. Jenkins [ staging -> us-live -> eu-live -> sandboxes] a. Build project into Docker image [staging] b. Run unit-test suite [staging] c. Deploy image to own sandbox with mocked services and run functional test-suite [staging] d. Upload Docker image to Docker HUB [staging] e. Deploy image to UCP cluster with `docker stack deploy` command [all] f. And just in case run more tests with full integration test-suite [staging] i. Or run small test-suite with smoke tests [*-live] g. Send results to our statistics/reporting systems 4. If us-live success deployment synchronization takes over and delivers code to other regions/sandboxes
  9. 9. Statistics since 2017 Live + staging regions: 3 + 3 Sandboxes: 15 Number of Dockerized services 154 Overall deployments and tests 71449 Successful deployments 61330 Successful deployments to live 15602
  10. 10. Come and experience yourself We still have lot of challenges: Automated rollbacks Keeping CI/CD processes stable and fast is constant battle Visibility improvements UX
  11. 11. More questions? Thank you! Give me your feedback: @rreinurm

Editor's Notes

  • demo
  • Demo

×