This is a story about success CI process improvement in large company (1K+ employees, over 700 Bitbucket repositories with .NET project on Windows).
When we started, company had Green-Red deployment process (joke: repository build only during deployment, on demand and as a result You never know it will be green or red).
1. Using shared Cake scripts and automation (like Travis CI or another public providers), we cover over 30% of repositories (all nuget packages) very fast (in a month) and started to provide CI as a Service.
2. On a second stage, instead of scale horizontally to other repositories, we focused on the terrible one: 8Gb of disk size monster and decrease build size from 40 min to 5 min and made it stable.
3. Jenkins functionality on stage of horizontal scaling (build over 400 repositories) was not enough to provide good user experience, and DevOps team integrate it with infrastructural products as Elastic and MySQL and manually created applications (using Go, Scala, Angular).
4. In a large scale (over 1 build per minute) we are using Kibana boards to analyze CI dynamically changed state and found possible issues. Jenkins + Elastic is most powerful tool.
5. Knowing about pet vs cattle principle, I will show how we made our 40 windows slaves provisioned dynamically, and looking forward to have Jenkins master to be created from scratch on demand.