July 15, 2020
Continuous Integration and Delivery
Quality Engineering

A DevOps Transformation for a Major Shopping Platform

A DevOps Transformation for a Major Shopping Platform

DevOps has enabled businesses around the world to streamline and strengthen software development and IT operations. Through a cooperative approach that simplifies common processes throughout an organisation, the DevOps approach makes it possible to increase delivery capacity, lower costs, and reduce time-to-market while simultaneously improving application quality.

A shopping portal used by more than 10% of the Danish population is a popular destination for special shopping offers and cashback rewards. The company has been working with advertising and market research and has become the largest cashback site in the region.

Originally launched in 2012, the site’s engineering had become a bottleneck by 2017, and the organisation sought a development partner to improve the portal’s infrastructure. Seeking a partner that would better implement DevOps principles and practices throughout the company, the client was in urgent need of technical guidance in order to help maintain its brand’s competitive edge.

devops challenges to resolve ciklum

The client identified a number of engineering challenges that were significantly impairing the shopping portal’s performance. Time to market was taking far too long, lasting at least 50 days and causing the brand to lose market share. Slow and unpredictable deployments had automated deployment capabilities but took at least two days from deployment to production, resulting in unpredictable delivery dates. Unpredictable delivery, which required complex and inefficient testing, resulted in a constant stream of service requests from users of the platform. The overall poor software quality and lack of test automation also contributed to a massive backlog of software bugs. 

The client enlisted Ciklum to take over delivery capabilities, recover technical debt, and improve the portal’s existing technology stack by transforming the site’s complex live service and DevOps capabilities. A full-stack development team was assembled, composed on average of 20 developers and engineers — with a peak headcount of 50. Taking ownership of the entire product, the team of mobile app developers, web developers, back-end and integration developers, DevOps engineers, and test engineers sought to identify and resolve challenges within the client’s CI/CD pipeline and find ways to continue to implement service improvements.

Delivering engineering change incrementally

While maintaining the client’s core engineering stack, Ciklum’s developers and engineers identified a significant number of needed engineering improvements. First, Gitflow code branching was moved to trunk-based development, providing a better foundation for continuous delivery and making it easier to quickly identify bugs. Next, automation of the CI/CD pipeline was implemented using TeamCity as an orchestrator, the client’s preferred choice, and incorporated fully-automated in-memory (unit) testing, which eliminated manual errors and reduced the failure rate. Finally, Azure services were utilised to reduce the amount of time necessary to introduce improvements. Azure health monitoring and alerting also significantly reduced introduction times. 

In order to deliver these engineering changes incrementally, Ciklum implemented the full slate of improvements as quickly as possible. At this time, a successful cycle took two days, the failure rate per cycle was less than 50%, and a two-week build time lag was allocated in the schedule.

The rollout of each step of the engineering improvements was carefully orchestrated over several weeks and months. Before the rollout began, Ciklum’s team spent two to four weeks exploring potential solutions with the client through on-site meetings, activities, and detailed documentation. Once the proper solutions were identified, a thorough plan to implement the changes was laid out over the next two weeks, including a team reorganisation that created a new DevOps team consisting of five engineers, one architect, and one delivery lead.

devops client work steps ciklum

In the first step, which lasted two months, Ciklum and the DevOps team created a pilot version of the solution, including the client’s requested improvements to the TeamCity pipeline. Throughout this period, automation for build and unit testing was incorporated in order to eliminate steps with a high failure rate. The cycle time for a successful cycle dropped to one day, the failure rate per cycle fell to approximately 20%, and the lag allocated in the schedule to release the build shrunk decreased to one week. 

As the second stage, which lasted one month, Ciklum implemented automated deployment, environments created by scripts, and automation of end-to-end testing. For the next two months, the teams also worked to update the TeamCity pipeline and implement the Azure Monitoring and Alerting System. The end result was a cycle time for a successful cycle of just 40 minutes, a failure rate per cycle of less than 10%, and a lag allocated in the schedule to release the build of only 0.5 days. For the final three months of the project, the teams worked to migrate the application to containers and add Docker and Kubernetes layers.

ciklum devops achievements for client

Ciklum ultimately delivered three specific engineering improvements to the Danish company’s web portal. The product’s view catalogue now had the ability to experiment, which allowed the team to innovate and ultimately boost the number of visitors to the site. Performance improvements to product detail pages made it possible to deliver an improved design, which reduced the overall number of dropout rates. Faster cycle times also allowed the team to introduce additional financial options sooner than expected, resulting in superior customer experience and an increase in repeat business.

Six months after the transformation

  • 2x higher number of visitors
  • 2x higher turnover
  • Reduced cloud costs

Google Analytics DevOps Transformation

These achievements were accomplished through the removal of tech debt, improving the overall approach to software engineering, and dramatically improving page load times. The addition of new payment services and improving the user journey also contributed to a better customer experience that resulted in high user engagement. 

Following the successful partnership, the client now enjoys a fully implemented DevOps environment that has reduced costs, improved performance, and increased traffic. By partnering with Ciklum to implement an ongoing process for continuous improvement and support, the client has the tools and IT culture in place to support software development and operations for the foreseeable future of its platform. 

Oleksandr Maidaniuk
The Ciklum team successfully converted local discoveries into global improvements. The team enabled frequent feedback so engineering and operations teams can safely deploy code. Our Continuous Engineering services and DevOps approach focused on the quality of the deliverables have optimised time to market, increased frequency of deployments and delivery capacity, lower the costs, while simultaneously improving application quality.
Oleksandr Maidaniuk, Global Solutions Leader, Director of Quality Engineering at Ciklum

Do you experience any challenges with DevOps, CI/CD pipeline or software releases in general? Just drop us a note, and our engineering experts will get in touch with you in the next 24 hours.