There are quite a few well developed and supported CI/CD solutions in the market. Might it be feasible and reasonable to develop and support your own for a small startup with 1 operations engineer? The devil is in details and answer is not that obvious as it looks.
Meduza is a small (10 people developers team) news media startup. Over a course of 3 years, our one full-time operations engineer managed to support 20 main services on the diverse technological stack - we have RoR, Ruby, Elixir, Python and golang powered Tier-1 services. On top of that, we support over 100 separate small node.js backed projects of Tier-2. Most of the non-critical projects are automatically deployed upon repository pushes on GitHub and Bitbucket. The whole system is just 1000 CLOC Golang.
Now we see a clear a need for CI/CD system for our Tier-1 services, too. Should we adopt industry standard, such as CircleCI, Travis CI or Jenkins? Or should code our own? Despite ‘reinventing your own wheel’ is a poster of a bad decision in the operations community, we found that answer might not be that simple.
This will be Meduza story of the search for a better CI/CD.
Samat Galimov is CTO for Meduza, former technology director for Bookmate. He loves to create value and work with people. He has an understanding and experience in running the technical side of small to medium-size web companies with several mobile apps.
Dmitry previously worked as a systems engineer in Sberbank and Undev. In Undev Dmitry operated a fleet of servers to deliver streaming video to hundreds of thousands of customers, including major events like state elections.