У нас вы можете посмотреть бесплатно Florent Beaurain: Optimizing Rails Tests at Doctolib Scale или скачать в максимальном доступном качестве, видео которое было загружено на ютуб. Для загрузки выберите вариант из формы ниже:
Если кнопки скачивания не
загрузились
НАЖМИТЕ ЗДЕСЬ или обновите страницу
Если возникают проблемы со скачиванием видео, пожалуйста напишите в поддержку по адресу внизу
страницы.
Спасибо за использование сервиса ClipSaver.ru
In this episode of On Rails, Robby is joined by Florent Beaurain, a longtime Rails engineer at Doctolib (@Doctolibfrance), home to one of the largest Rails monoliths in Europe with over 3 million lines of code and 400+ engineers. They explore how Doctolib’s team tackled massive test suite performance issues, including cutting one engine’s test time from seven minutes to under one minute. Florent shares insights from managing 84,000 tests, scaling across 10 PostgreSQL databases, and maintaining Rails upgrades across a fast-moving organization using systematic approaches like dual-boot deployments and careful backporting strategies. [00:04:56] – Doctolib’s CI suite runs 84,000+ tests per commit, using over 130 CPU hours [00:07:38] – Scaling test infrastructure with 45-minute pipelines, test selection, and parallel servers [00:10:31] – Improving local dev experience by letting engineers run isolated engine tests [00:12:47] – Database resets and factories identified as key bottlenecks for test performance [00:14:23] – Switching to transactional tests and revisiting fixtures to align with Rails defaults [00:18:44] – Dropping one engine’s test time from 7 minutes to under 1 minute [00:25:50] – Migrating 90% of the codebase to a faster testing framework in three months [00:31:03] – Using Packwerk to modularize the monolith—why zero-dependency engines are a myth [00:36:14] – Leveraging AI to automate cleanup tasks and support onboarding [00:43:20] – Hitting AWS Aurora scaling limits with 10 Postgres writers and 15 readers each [00:50:15] – Avoiding downtime with multi-step database migrations and rollback strategies [00:52:11] – Staying current with Rails via dual-booting, CI-driven development, and upstream tracking [00:56:37] – Advice for smaller teams upgrading Rails: read the source code and start small [01:06:23] – Managing 20,000 end-to-end tests with retry logic and Capybara Lockstep [01:10:35] – Using internal CLI tool (dctl) to streamline local setup and staging access Socials: Twitter/X: https://x.com/_beauraF LinkedIn: / beauraf GitHub: https://github.com/beauraF Company: Homepage: https://www.doctolib.fr Tools & Libraries Mentioned: AWS Aurora (PostgreSQL) – Their production database platform, scaled to 10+ writers and 15+ readers. (https://aws.amazon.com/rds/aurora/pos...) Capybara – Used for end-to-end testing of UI flows in the monolith. (https://github.com/teamcapybara/capybara) Capybara Lockstep – A JavaScript sync layer that helps reduce flakiness in React-driven feature specs. (https://github.com/makandra/capybara-...) Datadog – Application performance monitoring and alerting for production systems. (https://www.datadoghq.com/) Docker – Used to run local PostgreSQL and other data stores for development environments. (https://www.docker.com/) FactoryBot – Used for generating test data; identified as a major performance bottleneck in large test suites. (https://github.com/thoughtbot/factory...) factory_fixtures – Shopify gem that extends fixtures with inline factory-style overrides. (https://github.com/Shopify/factory_fi...) GitHub Copilot – Used experimentally to help with workflow automation and onboarding support. (https://github.com/features/copilot) Heroku CI – Previously used for parallelized CI builds before moving to custom infrastructure. (https://devcenter.heroku.com/articles...) Jenkins – Their original CI platform before scaling up to more powerful infrastructure. (https://www.jenkins.io/) Minitest – Their primary test framework, used throughout the monolith with some extensions. (https://github.com/minitest/minitest) Packwerk – Used to modularize their monolith into engines with explicit boundaries and dependency declarations. (https://github.com/Shopify/packwerk) PostgreSQL – Core relational database behind their production and local environments. (https://www.postgresql.org/) React – Their primary frontend framework, integrated into the Rails monolith via a single-page app architecture. (https://react.dev/) safe-pg-migrations – Tool to reduce downtime risks during large-scale schema changes. (https://github.com/doctolib/safe-pg-m...) Sentry – Error tracking and visibility tool integrated into their release workflow. (https://sentry.io/) Webpack Dev Server – Used locally to support React development alongside the Rails app. (https://webpack.js.org/configuration/...) #rails #rubyonrails #tech #DoctoLib On Rails is a podcast focused on real-world technical decision-making, exploring how teams are scaling, architecting, and solving complex challenges with Rails. On Rails is brought to you by The Rails Foundation, and hosted by Robby Russell of Planet Argon, a consultancy that helps teams improve and modernize their existing Ruby on Rails apps.