Блог

Хүмүүсийг хүлээлгүйгээр илүү том workspace руу шилжих нь

Mythex төсөл бүр өөрийн workspace-тэй байдаг: агент код бичиж, аппынхаа preview ажилладаг жижиг cloud компьютер. Бид шинэ workspace-уудыг 1 GB санах ойгоос 2 GB болгож өсгөсөн ч хуучин нь 1 GB дээр үлдсэн — шалгасан өдөр нийт дөрөвний нэг орчим нь. Эхний засвар нь төслийг дараагийн удаа нээхэд илүү том workspace руу шилжүүлдэг байв. Үйлдвэрлэлд анхны өдөр нь нэг хүнийг долоон минут хүлээлгэсэн. Бид шилжилтэнд хатуу хугацааны хязгаар тавьсан, дараа нь шилжилтийг төсөл нээх үйлдлээс бүрэн гаргасан.

Хуучин workspace яагаад жижиг хэвээр байсан бэ

Манай sandbox үйлчилгээ нийлүүлэгч workspace-ийн хэмжээг үүсгэх үед тогтоож, түр зогсолт болон сэргэлт бүрээр хадгалдаг. Загварыг (шинэ workspace бүтээх жор) өөрчлөх нь зөвхөн өөрчлөлтийн дараа үүссэн workspace-д нөлөөлнө. Одоо байгаа workspace-уудыг хэн ч хэмжээг нь өөрчилдөггүй.

Энэ чухал байсан. Жижиг workspace-ийн нэг нь preview эхлэх үед git push хийж байхдаа санах ой дүүрч, 11 минутын турш хариу өгөхгүй болсон. Нэг нийтлэлт үүгээс болж бүтэлгүйтсэн.

Эхний оролдлого: сэрэх үед төслийг зөөх

Workspace-ууд хэн ч ашиглахгүй байхад түр зогсож, төсөл нээгдэхэд сэрдэг. Сэрэх нь төслийг зөөх зохистой мөч мэт санагдсан, учир нь тэр үед хэн ч ажиллаагүй байдаг.

Зөөлт дараах байдлаар ажилладаг байв:

  1. Хэмжээг шалгана. Workspace 2 GB-аас бага бол зөөнө. Хэмжээ тодорхойгүй бол юу ч хийхгүй.
  2. Нийтлэлтэд саад хийхгүй. Нийтлэлт workspace-ийн файлуудыг уншдаг тул нийтлэлт явж байвал зөөлтийг алгасна.
  3. Төслийг багцлана. Төслийн бүх зүйлийг архивлана — түүний git түүхийг, энэ нь төсөл бүрийн checkpoint бүр юм, мөн эзэнд хамаарах аппын .env файлыг оруулаад — харин суулгагдсан хамаарлуудыг (node_modules) орхино, тэдгээрийг дахин суулгаж болно.
  4. Шууд хуулна. Архивыг хуучин workspace-аас шинэ 2 GB workspace руу урсгана, ингэснээр манай сервер дээр санах ойд багтах шаардлагагүй.
  5. Сэлгэхийн өмнө харьцуулна. Хоёр workspace-д файлын тоо, сүүлийн checkpoint-ийг уншиж, checkpoint-ийн тоог тоолно. Гурвуулаа таарсан үед л сэлгэнэ.
  6. Аль нэг алдаанд хуучин workspace-аа хадгална. Ямар ч алдаа эсвэл зөрүү гарвал шинэ workspace-ийг устгаж, төслийг өмнөх шигээ хуучин workspace-д нээнэ.

Харьцуулалтын нэг нарийн зүйл илүү чухал байсан. Шалгалтыг administrator бүртгэлээр ажиллуулдаг, мөн git өөр хэрэглэгчийн эзэмшдэг repository-г унших эрхгүй. Хоёр талд юу ч хэвлээгүй — тэгээд "юу ч биш" нь "юу ч биш"-тэй таарсан тул шалгалт ямар ч түүх харьцуулалгүйгээр тэнцсэн. Бид git-д тэр хавтсыг итгэхийг хэлж, буцаж гарахгүй байхын тулд тест нэмсэн.

Анхны өдөр юу болсон бэ

Продакшн дээрх анхны өдөр нэг төслийг багцлах явцад таван минутын командын хугацаа хэтэрсэн — сэргэлтийн дотор. Эзэн нь workspace нээгдэхийг долоон минут хүлээсэн. Зөөлт бүтэлгүйтсэн тул төсөл жижиг хэвээр байсан, дараагийн нээлт дахин оролдож, дахин хүлээлгэх байсан.

Түмээ нээхэд хэн нэгнийг хүлээлгэдэг шилжилт бол муу арилжаа. Сэрэх үед хийх гэсэн гол санаа нь хэн ч анзаарахгүй байх явсан.

Хоёр дахь оролдлого: хатуу төсөв

Тэр өдөртөө дөрвөн зүйлийг өөрчилсөн:

  • Бүх зөөлтөд нэг минут. Хэмжээг шалгах, багцлах, шинэ workspace үүсгэх, хуулах, задлах, харьцуулах — бүх алхам нэг 60 секундын төсвийг хуваана. Дуусмагц төсөл хуучин workspace-д нээгдэнэ.
  • Зөвхөн хүлээлтийг биш, ажлыг зогсоо. Бид өөрсдөө хүлээхээ болиход хангалтгүй, хэрэв архивлалт эзэн нь удахгүй ашиглах workspace дотор явсаар байвал. Одоо архивын команд бүр хугацаа дуусахаас өмнө workspace дотор нь зогсоогддог. Хэрэв шинэ workspace бид орхисны дараа ирвэл түүнийг устгана.
  • Эзэнд цэвэрлэгээг хүлээлгэхгүй. Түр архивыг устгах ажил одоо арын дэвсгэрт болно.
  • Нээх бүрт дахин оролдохгүй. Зөөж чадаагүй төслийг 24 цагийн турш орхино, ингэснээр алдаа нь нээх бүрт нэг удаагийн саатал биш, өдөрт хамгийн ихдээ нэг удаа саатал болно.

Гурав дахь оролдлого: сэрэлтээс гаргах

Энэ нь хамгийн муу тохиолдлыг нэг минут болгосон. Гэвч нэг минут бол нэг минут хэвээр, мөн зөөлт хэн нэгний замд огт байх шаардлагагүй гэдгийг ойлгосон.

Одоо 1 GB workspace огт үүсэхгүй. Тиймээс энэ нь тогтмол үйл явц биш, тогтсон workspace-уудын жагсаалттай нэг удаагийн ажил. Сэрэлтийн дотор байрлуулснаар жинхэнэ хүн зөөлт бүрийн төлөө хүлээж байсан, мөн workspace зөөгдөхгүй гэдгийг зөвхөн хэн нэгэн яг хүлээсний дараа л мэддэг байв.

Тиймээс зөөлтийг сэрэлтээс бүрэн хассан. Төсөл нээх нь өмнөх шигээ ажилладаг. Үлдсэн жижиг workspace-уудыг хяналттай багцаар боловсруулдаг: хэн ч хүлээдэггүй, мөн зөөгдөхгүй workspace нь багцын тайланд гарна, тэнд бид үзэж болно, эзний өмнө биш.

Бидний сурсан зүйл

  • Хэмжээг өөрчлөх боломжгүй байж болно. Платформ хэмжээг үүсгэх үед тогтоодог бол анхдагчийг өсгөх нь зөвхөн шинэ зүйлд тусална. Хуучин зүйлд бэлтгэ.
  • "Одоо хэн ч ашиглаагүй" гэдэг нь хэн нэгэн хүлээж байна гэсэн үг. Бүтээгдэхүүнд орох замд хийсэн ажлыг хүн харж байдаг.
  • Хэрэглэгчийн замд байгаа зүйлд төсөв тавь, ажлыг нь төсөв дуусахад зогсоо. Бид өөрсдөө хугацаа хэтрүүлэхэд ажил өөр газар үргэлжилбэл асуудал зөвхөн шилжинэ.
  • Нэг удаагийн шилжилтийг нэг удаагийн ажилд байрлуул. Өдөр тутмын үйлдлийн дотор нуух нь бичихэд хямд боловч ажиллуулахад үнэтэй болгодог.
  • Хамгаалалтын шалгалтаа туршаарай. Юу ч харьцуулдаггүй харьцуулалт яг тэнцсэн харьцуулалттай адил харагддаг.

Та Mythex дээр байгуулж байгаа бол юу ч хийх шаардлагагүй: зорилго нь санах ой дутагдлаас болж бүтэлгүйтэх workspace-уудыг цөөлөх, төсөл нээх хурд хэвээр байх. Workspace хэрхэн түр зогсч, сэрдгийг хувийн workspace гэсэн docs-д тайлбарласан. Өөр санах ойн асуудлын түүхийг үзэхийн тулд ахиц харуулах тэмдэгт нуугдсан санах ойн алдаа-г харна уу.

Mythex · Pricing · AI-аар юуг ч бүтээ · Вэбсайт болон аппын загварууд · Mythex-ийн харьцуулалт · AI-аар апп бүтээх тайлбар толь · AI-аар апп бүтээх үнэгүй хэрэгслүүд · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)