Could you go into more detail about how you automate the creation of all of that?
We have a code generator to create an empty application.
We use Jenkins to automate our build pipeline as much as possible. We have pre-defined Groovy verbs to run the build, to run the tests, to run different kind of checks (static code analyzer, vulnerability checks), to create and publish tarballs.
Most of the times, you can just use the default template in the beginning, you remove some of the possibilities, or add some other pre-defined stuff based on the docs. Of course, you might need more specialized features, but usually not before you start creating an application.
There are many people working on maintaining and improving our pipeline framework, there is a lot of work behind, but these aspects of setting up a new application are easy.
Setting up the networks, getting (virtual) machine resources, or creating a new database is more time-consuming.
Thanks for the insights. We actually don’t have anyone dedicated to help on automation. Each team does it on its own and no one has the time to really generalize it. But I think we should really start doing it!
Be careful when you do so. Genericizing is great, one-size-fits all is dangerous. Id rather see teams write ops code that needs to exist rather than build be forced to design their application around a broken ops model.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.