Why we wrote this book
Monorepo is a new name for an old idea — place many software projects in the same code repository. Organizations that overcome technical challenges in adopting CI/CD for monorepos enjoy many benefits:
- Cultural: increased bandwidth of knowledge transfer and a higher level of collaboration among teams.
- Technical: firmly established coding standards, simplified dependency management, and configuration reuse.
Big companies like Google, Facebook, Twitter, and Airbnb have been utilizing monorepos for years. Today, we see a growing number of smaller teams adopting monorepos as their way of coding. The jury is still out, but the tide seems to be turning.
Why the change now?
On the backend side, developers of serverless and microservices-based architectures logically isolate their code into small units. Most of these services are written with the same set of tools and coding standards. Also, they are built, configured, and deployed in the same way. Placing them in a monorepo is an efficient way of avoiding duplicate configurations and processes.
At Semaphore, we have heard about this trend from a growing number of teams and have solved the technical challenge of running effective CI/CD pipelines for monorepos.
Using traditional CI/CD tools in the monorepo context, developers essentially need to build, test, and deploy all services all the time. Using Semaphore, developers run dynamic CI/CD workflows that run the right pipelines at the right time. As a result, product teams have more time to focus on building the next great feature.
Who is it for
This book is intended for software engineers who are either exploring the monorepo way of software development or looking to optimize the CI/CD process for their monorepo.
By showing what it takes to build a monorepo-first CI/CD pipeline that saves time and speeds up software development cycles, we hope that CTOs and other engineering leaders will gain insight into deciding if monorepos are the way forward for their companies and teams.