Бұл жазба автоматты түрде аударылған. Бастапқы тіл: Орысша
Ozon Tech компаниясының аға инженері Никита өз командасымен бірге жарнама берушінің кеңсесін дамытады. Бірде команда түйіннің нұсқасын жаңартуға тырысты.js, содан кейін CI/CD-де сынақтар кездейсоқ төмендей бастады. Кейінірек белгілі болғандай-есте сақтау қабілетінің болмауына байланысты. Жобада 15 алдыңғы қатарлы әзірлеушілер жұмыс істеп жатқандықтан, бұл мәселе домалау процесін айтарлықтай баяулатты және әзірлеушілер тестілеуді бастағанға дейін қолмен қайта бастауға мәжбүр болды, бұл developer experience-ті нашарлатты.
Жігіттер мәселені тез арада шешті, бірақ мен мұның себебі неде екенін білгім келді. Бұл мақалада біз нұсқаның кішігірім жаңартуы екі жылға созылатын және Jest, Node командаларын қамтитын қатені қалай тудыратынын көреміз.js және V8. Толық оқыңыз
Никита, старший фронтенд-инженер в Ozon Tech, вместе со своей командой разрабатывает кабинет рекламодателя. Однажды команда попыталась обновить версию Node.js, после чего начали рандомно падать тесты в CI/CD. Как выяснилось позже — из-за нехватки памяти. Так как над проектом трудятся 15 фронтенд-разработчиков, эта проблема сильно замедляла процесс выкатки, и разработчикам приходилось вручную перезапускать тесты, пока они не начинали проходить, что также ухудшало developer experience.
Ребята быстро решили проблему откаткой версии, но хотелось докопаться до того, из-за чего это произошло. В этой статье мы увидим, как минорное обновление версии сможет породить баг, который затянется на два года и вовлечёт в себя команды Jest, Node.js и V8. Читать полностью