During the build process, developers check out the developer branch from the source code repository, pull prebuild artifacts like compilers or runtime environments, libraries from binary repositories, and compile source code to generate the binary or an executable.
The builds are of two types: user builds that developers run in their workspace, and continuous integration (CI) builds, where changes are merged in the main code base and compiled.
CI is an automated, iterative build and test process for identifying bugs at early stages of the development cycle. This process helps improve code, because repetitive testing leads to innovation and faster time to market.
In modern application development, Git is commonly used as the version control system (VCS) for the source code. Developers perform a git clone operation to get a copy of the source code along with the history of all the code changes to manage the source files in isolation. This process might be useful for teams of fewer than 10 developers, but it is stressful to the development process and challenging for organizations of more than 50 that scale up to hundreds and thousands of developers.
When many git clone operations are performed in parallel, the Git server constrains scaling and load balancing, creating long wait times for the clones to complete when developers create their workspaces. After the git clone operation, developers must download the prebuild artifacts and perform a full build before they can start writing or modifying code. Depending on code size, this process takes time.
For example, it might take 5 minutes to perform a git clone operation and 20 minutes to build the code every time a developer creates a workspace. At scale, then, the organization would lose hundreds of staff hours getting all the developers to start writing code. The results depend on the size of the code base, number of developers, and the number of source code repositories.
This distributed approach to code development using Git has its own challenges, too:
- It poses a security challenge when source code is moving around in workspaces hosted in developers’ portable computers.
- Delayed code submittals from developers increase the time spent merging the changes to the main code base during the CI process.
- Data recovery from failures poses a challenge in a distributed development environment when code changes are not submitted in a timely manner.
In the next blog we will identify better and efficient ways to improve agile development process with ONTAP that saves time and reduces infrastructure costs to the business owners during the software development life cycle.