A large non-profit organization, which handles a range of educational content projects, needed to move repository hosting to GitLab to solve scalability issues and make content contribution processes easier.
Tech stack: GitLab, Ansible, Puppet, Apereo CAS, Prometheus, Icinga, Grafana, Logstash, Bacula
Organization X was using Gerrit for code serving and review but decided to move to GitLab to improve scalability and performance.
The Speed & Function team is highly experienced in working with open source tools such as GitLab, so understood a lot of nuances in the migration process. There were some risks associated with transitioning DevOps operation to GitLab:
- First and foremost, technical configurations could pose a challenge. Developers had to find the right automatization tools and come up with the best-fitting solutions to manage backups, simplify upgrades, monitor systems, and more.
- We also had to deal with management issues related to a large number of external stakeholders that could impact technical decisions at any point during the process.
- Finally, security issues needed thinking through meticulously. At the time of the cooperation, the client did not have defined access guidelines for third-party contractors.
Speed & Function had been already worked with Organization X, learning about their processes and development tools at work. After taking a closer look at how repository hosting is managed, the engineering team realized that it was nearly impossible to continue project expansion without moving to another platform like GitLab.
The client already used multiple other Gerrit, a web-based code collaboration tool, plus multiple other tools including Jenkins, Zuul, and Gearman. It would have taken too much effort to continue managing them all, let alone upgrading the systems and scaling the current systems. GitLab, on the other hand, offers an all-in-one DevOps platform that allows for code management, CI, and software operation, so the decision was made to migrate everything across to this software
Speed & Function had to build a whole new architecture, execute and test initial deployment, then carry out final deployment based on the findings and issues. Finally, we then needed to provide ongoing support for the project.
To stay in tune with stakeholders, we constantly monitored their comments using the Phabricator tool, organizing and chairing weekly meetings, and keeping detailed meeting and decision logs. This enabled smooth communication between all parties for the duration of the project and beyond.
The engineering team migrated everything across to GitLab in line with the client’s requirements. The new solution is now live and opening the way for an improved build/test pipeline and lowering the barrier to entry for new contributors.
The team also automated some of the processes, such as the setup, and found the tools to guarantee a convenient means of system monitoring, backup management, and authentication.
During performance tests, Speed & Function discovered that a single server is capable of handling all the client’s traffic and chose Puppet, a software configuration tool, to manage the server. The GitLab installation and configuration are managed with the help of Ansible. For monitoring, our engineers used Prometheus, Icinga, and Grafana, three complementary tools that provide a range of data. For safe and efficient file storage, the team ensured the solution employs GitLab’s built-in backup routines to generate and store daily backups.
The development world is crowded with tools, which can result in unnecessary complexity. When chosen well, however, these tools become helpful, particularly if they are handled by developers with the relevant expertise.
Speed & Function were able to suggest and implement a combination of software and tools that would suit the client: the team already worked with Organization X and understood their processes and technical weaknesses. In addition, the developers explored GitLab’s capacities in order to unlock its full potential to cater to the project.
This combination of the right tools for monitoring, backups, authentication, updates, and other crucial development processes enabled Speed & Function to create an easily maintainable and secure solution that can scale further in the future and meet the Organization’s need as it continues to grow.. The brief was fulfilled, with additional solutions offered through the consultation process as the Speed & Function team highlighted issues the client was not aware of, solving them according to the industry’s best practices.