Mom, I'm in love with a monorepo

Photo
Anastasiia Abrashitova

Yandex Infrastructure

About speaker

Anastasiia is the head of repository tools in Yandex. She’s responsible for Arcadia ― the large-scale monorepo in Yandex, and the happiness of the company’s developers who are free to use it for their work. She’s also responsible for open source usage in Arcadia, as well as exporting some of the Yandex projects from internal repository to GitHub as open source. Anastasiia loves public speaking and organizing events on infrastructure, developer tools, soft skills, and leadership. She’s also a fan of creative team building and organizes regular D&D game sessions at work.

About speakers's company

At Yandex, thousands of team members generate hundreds of products that entail tens of thousands of comments and pool requests every day. Building user-friendly infrastructure for developing and operating products at that scale is a serious challenge. We build the systems, services, and tools the Yandex developers rely on. Our solutions are aimed at ensuring that every product Yandex delivers has ready-to-use infrastructure at every stage. We have our: − own version of control system for storing source code; − C++, Java, Python, and Go systems for distributed builds and seamless integration capable of processing hundreds of builds a minute; − a distributed task management system; − rollout systems; − app monitoring systems. We also develop products for supporting development processes, resource planning, and much more.

4 July, 15:50, «Hall 1»

Abstracts

The world we live in today is all about separation and breaking things into smaller parts. And yet, in Yandex we still have a large-scale monorepository where the code from most of our projects is kept. It is 26 years old and really large, taking up more than 10Tb of code with history. So why do we love it? Let me tell you!

First and foremost, I’ll talk about our philosophy. Having a single repository does not give you any benefits yet. To get them, you need to reuse the code, to make common libraries and utilities. You need to link projects by code, not by artifacts. You need to maintain green trunk and a full scale CI/CD. You need to limit languages and open source libraries to prevent unmanageable code diversification. You need common code rules and styles. And you need developers ready to collaborate, roll their sleeves, and fix each other’s code. Oh, and you also need tools capable of working with a very large code base efficiently. I’ll give a retrospective of Arcadia – the Yandex monorepository with 26 years of history. I’ll talk about the rules we chose and the tools we created to make it efficient, useful and worth of our developers’ love.

The talk was accepted to the conference program