Technology Newsfeed
Tech

Бид тасралтгүй интеграцчлалыг хөгжүүлэгчийн машин руу шилжүүлж байна

Rubocop загварын дүрэм, Brakeman-ийн аюулгүй байдлын сканнер, загвар хянагч системийн туршилтуудын хооронд кодын өөрчлөлтийг HEY-д хүргэхэд бэлэн байгаа эсэхийг шалгахын тулд BuildKite-д суурилсан алсын зайнаас тасралтгүй интеграцийн тохиргоо 5м30 секунд шаардлагатай. Миний Intel 14900K-д суурилсан Линукс хайрцаг үүнийг хагасаас бага хугацаанд хийж чадна (мөн миний M3 Max тийм ч удаан биш!). Тиймээс бид алсын зайнаас гүйгчдийг хаяж, 37 дохиогоор хөгжүүлэгчийн машинуудад тасралтгүй интеграцчлалыг буцааж авчрах болно.

Сүүлийн 5-7 жилийн хугацаанд олон цөмт хөгжүүлэгчийн машинууд хичнээн том үсрэлт хийсэн нь гайхалтай. Эдгээр бүх шалгалт, баталгаажуулалтыг орон нутгийн машин дээр боломжийн хугацаанд ажиллуулах нь тун удалгүй санаанд багтамгүй байх байсан. Гэвч 14900K нь 20 гаруй цөмтэй, M3 Max нь 16, тэр ч байтугай бага M2 MacBook-д 8 байдаг. Тэд бүгд 2010-аад оны дундуур орон нутагт хийхэд гайхалтай мэт санагдах асар их хэмжээний зэрэгцээ ажлыг хийх чадвартай.

HEY нь бас нэлээд том кодын суурь юм. 55,000 орчим мөр Ruby код нь 5000 орчим туршилтын тохиолдлоор баталгаажсан бөгөөд өөр 300 орчим системийн туршилтаар баталгааждаг. Эдгээр бараг бүх туршилтууд бүрэн стекээр дамжиж, мэдээллийн санд ордог. Эдгээрийг бариул хүртэл шоолдоггүй.

Миний хувьд орчин үеийн хөгжүүлэгч CPU-ийн гүйцэтгэлийг сайжруулах хамгийн сэтгэл ханамжтай хэсэг бол бидний стекийг хялбарчлах боломж юм. Алсын CI тохиргоог суурилуулах, ажиллуулах, арчлах нь ихээхэн хүндрэл юм. Нэг бол та үүнийг өөрийн техник хангамж дээр хийж, энэ нарийн төвөгтэй байдлыг шууд шийдвэрлэх, эсвэл үүлэнд суурилсан тохиргооны төлбөрийг хамраараа төлөх. Үүнийг бүгдийг нь хялбаршуулсан ус зайлуулах суваг руу угаах нь урагшлах гайхалтай алхам юм.

Үнэн хэрэгтээ энэ нь манай платформуудын ахиц дэвшилд анхаарлаа хандуулах нь надад хамгийн их таалагддаг зүйл юм. Өө, хөтчүүд одоо үнэхээр сайн JavaScript болон CSS хөдөлгүүртэй болсон уу? Гайхалтай. #nobuild явцгаая . Өө, хөгжүүлэгч CPU-ууд одоо хэдэн арван цөмтэй болсон уу? Чихэрлэг. CI-г гэртээ татъя . Өө, нэг цөмт гүйцэтгэл нэлээд дээшилсэн үү? Гайхалтай. Хавар шиг готча нугастай хурдасгууруудыг хаяцгаая .

Ердийнх шигээ хялбаршуулсан ирээдүй жигд тархаагүй байна. Shopify эсвэл GitHub зэрэг хүмүүс ойрын хугацаанд орон нутагтаа сая сая кодынхоо эсрэг туршилтын батарейг бүрэн ажиллуулж чадна гэдгийг би харж чадахгүй байна. Гэхдээ бүх вэб програмуудын 99.99% нь HEY-д тэдгээр гайхалтай програмуудаас хамаагүй илүү өргөн хүрээтэй байдаг. Мөн жижиг багууд боломжтой бүх хөдөлгөөнт хэсгүүдийг арилгах ёстой. Таны програмын шаардсанаас илүү төвөгтэй стекийг хэзээ ч бүү эрэлхийл.

Тиймээс бид тэдгээрийг үргэлжлүүлэн шатаах хэрэгтэй нарийн төвөгтэй байдлын гүүрүүд нэг удаа бид нөгөө тал руугаа. 37 дохиогоор энд байгаа алсын зайн тасралтгүй интеграцийн гүүр бүрийг шатаахыг тэсэн ядан хүлээж байна. Хөгжил дэвшил бол галын гал юм.