Source Control & CI/CD
We currently have a custom framework with over 5 million lines of code. It follows a typical MVC Architecture and has worked great for us over the years. As we continue to grow and refine our SDLC processes, we have decided to explore source control and CI/CD. We believe that this will help speed our development lifecycle.
GIT was our best option for source control. So we decided to put our code base in a repo and worked with our Release team on automation through Jenkins and Stash. After several months of work and defining our workflow, we realized this was not going to work with our monolithic framework. Development time screeched to a halt very quickly because the code base was so large.
We are now going to take a different approach. We have decided to move to ColdBox for our framework. We are going to decompose our code and come up with a migration path. This will allow us to define smaller repo’s and follow a more standard GIT workflow. We will also be utilizing docker containers that have CF 2016 installed and will allow our engineers to pull down a standard container to work with locally. We will use Tower, Stash, and Jenkins to work with our repo’s and automate deployments through our 3 environments.
This will be a lengthy process, but we are starting with our microservice environment first. This environment has a very small 4MB codebase and a lightweight CF Docker container. We will build out repo’s that contain our different applications with a dependency on the ColdBox framework repo. This approach will allow us to refine our development processes and gain insight when we try to tackle the full code base migration.