AppsFlyer Improves Developer Productivity by 50% by Combining GitOps with Terraform IaC
GitOps automates the entire software delivery pipeline resulting in great developer productivity. This is exactly what AppsFlyer experienced. Learn how they achieved it in this case study.
Cloud-based SaaS company AppsFlyer manages more than 3,000 customers and their 89,000 apps. Besides 850 microservices, its architecture operates over 250,000 cloud resources, including EC2 instances and EKS clusters. The AppsFlyer Engineering team of over 400 engineers is organized into smaller teams called Squads, with each Squad having complete autonomy.
AppsFlyer had already adopted the platform model for software delivery and used Terraform to manage their platform. However, there were still operational challenges that AppsFlyer wanted to resolve to make the platform more resilient. Additionally, they wanted to gain deeper insight into developer tasks so they could improve developer alignment. The company’s primary objective was to build a self-service platform to maximize developer productivity while not compromising on resilience and security.
AppsFlyer faced challenges related to their software delivery, as well as the tooling that supported it. Here are some of the key challenges they faced prior to adopting GitOps:
Operational challenges around Terraform: AppsFlyer relied heavily on Terraform for infrastructure management. This came with its own challenges. Issues like data loss, accidental errors, and file corruption made operations difficult. With sensitive data sometimes stored in plain text, security was a key concern.
Manual & time-draining development process: Their manual approach to software development was slowing down their growth. Communication between multiple people and systems for every deployment affected developers’ productivity.
Lack of developer-first approach: AppsFlyer’s existing operating model was ‘high autonomy, low alignment’ due to a siloed development practice. They were looking to retain this autonomy, and augment it with great alignment between development teams.
Inadequate observability and unreliable platform: A fragmented view of the system failed to give AppsFlyer complete visibility into the pipeline. This also made it hard to investigate the root cause of any issue.
Risk of the platform not being resilient: Implementing security and governance policies remained an oversight due to tedious manual processes leading to issues like cloud misconfiguration. When outages occur, it would take hours or days to get the system up and running again.
GitOps isn’t for everyone. It is the best fit for organizations with a need to reduce the development cycle times and also have the ability to deploy code and infrastructure constantly. GitOps allows you to ease the operational cost of managing large-scale infrastructure by adopting a pattern that continually validates your desired state -
Eliran Bivas, Cloud Native Leader, AppsFlyer
In this case study, we discuss how AppsFlyer adopted GitOps to meet these challenges. Using GitOps they were able to retain high developer autonomy, while also improving developer productivity, and securing pipelines with a fully-automated workflow.