“We discarded all other tools that required additional effort from our team and started wrapping up all delivery, build, and deployment processes in our SDLC using GitLab. Thanks to automation and implementing the CI/CD process with GitLab, we accelerated our work by more than 5 times.”
About the client: Uklon is a product IT company that develops a leading ride-hailing application. Founded in 2010, Uklon has 11 innovative products built on a microservices architecture using cloud computing. Every day, Uklon’s strong IT team enhances one of the largest infrastructures in the Ukrainian and international markets, facilitating interactions between drivers and riders. The company aims to transform urban living culture by employing technological solutions for everyday challenges.
Project start date: approximately 2017-2018.
Project end date: in progress.
Challenge: Uklon started using GitLab five years ago when both companies were still startups. At that time, GitLab was a convenient tool for their everyday work, primarily as a code versioning system. As Uklon’s business and requirements grew, GitLab began adding many new features that Uklon started testing.
Before utilizing GitLab’s functionality and establishing a CI/CD process, Uklon relied on a third-party solution. This led to a separation of their codebase, the primary GitLab solution, and the build and deployment processes. This division posed challenges, involving different systems, increased maintenance complexity, and required additional resources.
Solution: Over time, GitLab introduced additional functionality, and Uklon discarded all other tools that required extra effort from their team. They began wrapping up all delivery, build, and deployment processes in their SDLC using GitLab. Now, Uklon’s mobile applications, data models, and all applications are made and tested within GitLab, providing maximum convenience and scalable, flexible functionality. The “Platforms” team primarily manages and delivers the toolset and writes the code, while other teams customize their configurations to achieve their specific goals.
Currently, GitLab is a massive SaaS solution. Uklon consistently tests everything available in GitLab and chooses the optimal and valuable features for its product. If the team needs a particular solution, they conduct proof-of-concept (PoC), explore variations, and if everything aligns, they integrate the solution on an ongoing basis.
Results: The number of systems decreased with the transition to GitLab, and Uklon streamlined the build process. For example, previously, mobile development teams could build something locally, but depending on the configuration of their workstations, there could be unacceptable variations. The team needed consistent results for the same actions. Automating and implementing a CI/CD process based on GitLab can guarantee this because you have complete control, and everything happens in an isolated manner. You know that when you input A, you will get B every time you perform a specific action.
The time is reduced. Previously, a specific build that the Uklon team built locally or in another system had to be deployed on their workstations and cloud environments and put on the testing devices. Currently, all testing teams can launch emulators in the pipeline, and automatically build on any code change without engineers’ involvement. In other words, the time from code entering the codebase to a testable build has been reduced, and most importantly, it’s on demand. If team members need something, they can launch and get it.
Obtaining the required build version in just a couple of clicks. Uklon doesn’t have data centers; everything is in the cloud. The codebase is linked with Argo CD, with environments through Kubernetes. This allows them to deploy from any pipeline to the desired environment with the functionality they want. Engineers can get specific builds and functionalities from Uklon’s extensive microservices infrastructure in the desired environment with just one button click, using it for work and testing. They can also deploy or roll back as needed, depending on errors and runbooks. And all of this happens with minimal manual intervention in the process. Thus, Uklon saves time and significantly increases reliability.
Additionally, Uklon has cross-functional teams; if someone needs a specific set of functionalities from other products, they can obtain them without involving other teams. They start by examining dependencies in Jira, then determine where to deploy and what is needed for the environment, look at combinations, and run tests or end-to-end combinations.
All these actions aim to reduce costs along the way—waiting time, overall time, and minimizing human factors. In other words, there is a possibility to automate everything to the maximum extent. Thus, thanks to automation and implementing the CI/CD process with GitLab, Uklon has accelerated its work by more than five times.
“We discarded all other tools that required additional effort from our team and started wrapping up all delivery, build, and deployment processes in our SDLC using GitLab. Thanks to automation and implementing the CI/CD process with GitLab, we accelerated our work by more than 5 times.” Vitaliy Dyatlenko, Co-founder and CTO of Uklon
Cloudfresh Role: The Cloudfresh team thoroughly acquainted Uklon with the capabilities of GitLab’s pricing plan. It helped them choose the most optimal solutions according to the company’s technical requirements for flexible and uninterrupted operations.
Furthermore, the Cloudfresh team provides a full-cycle implementation of new GitLab features. The assistance from Cloudfresh has contributed to maximizing the benefits of GitLab for Uklon and launching smoother and more productive workflows.