Migration from legacy source code management to CodeCommit

Darren Harris, 2 July 2021

The Scenario

Akikodis was appointed as the Service Provider for the partial commercialisation of a large state government services provider, in October 2019, to improve and maintain systems that facilitate their core functions and services. To facilitate these systems effectively there are several software solutions that Akkodis architects, implements and maintains with a small software development project team.

These projects had many source code repositories located on a legacy on-premises stored source code management (SCM) system. The repositories were based on a mixture of git, mercurial and subversion systems of varying ages and sizes.

The existing on-premises solution had a high operational burden and operational teams had limited time to focus on maintaining the SCM repository. Additionally, the repository was hosted on a single virtual machine instance and would be unavailable during maintenance, impacting the teams of users reliant upon the service.

Several different build systems were in-place providing many Continuous Integration/Continuous Deployment (CI/CD) pipelines for their production applications with active frequent deployments. It was critical that the migration process be low touch for developers and allow for minimal disruption to their development and release processes.

In late 2021, the customer decided it was time consider selecting a source code repository solution that would enable a long-term modernisation and transformation roadmap of the CI/CD toolchain for their applications, targeting AWS native technologies.

The Solution

AWS CodeCommit was selected as the remote git repository because of its combination of reliability, performance and security characteristics. AWS CodeCommit provided peace-of-mind with its durable storage, backed by Amazon S3 across multiple availability zones. Additionally, CodeCommit stores data in an encrypted format, backed by AWS KMS, by default.

Akkodis worked with the customer to develop and deploy tooling to assist in converting and migrating approximately 40 repositories, including maintaining the source code’s history going back some 14 years. A combination of open-source software and custom in-house scripts were built to allow the customer to pick and choose which history was important, allowing a reduction in total repository size and an approximately 4x increase in repository checkout speed over the existing technologies.

The Outcome

Access to the SCM service is now strongly authenticated, tied back to the corporate identity solution (Active Directory). All access is now encrypted in flight, and the configuration of this encryption in flight is now managed by CodeCommit as part of its service delivery, along with any upgrades of the service itself. The developers can now concentrate on using the SCM, instead of also having to administer it.

This also now permits more native integration to the CodePipeline service, and others to further accelerate the team’s delivery of solutions.

The monthly cost for this managed SCM has been approximately US$8/month, with some 40+ repositories and around 13 monthly active users (some users may have months they make no commits, and thus do not get counted for billing purposes in that month).