የMythex ሰርቨሮችን ወደ ARM ለምን አዛወርን
በሴፕቴምበር 19 የMythex የምርት የኋላ ክፍልን ከx86 ሰርቨሮች ወደ ትናንሽ በARM ላይ ወደተመሰረቱ AWS Graviton ሰርቨሮች አዛወርን፤ የውሂብ ጎታ መድረኩንም ወደ Graviton ማሽን አዛወርን። ምክንያቱ ቀላል ነበር፦ ከባድ ስራውን — የእያንዳንዱን ተጠቃሚ መተግበሪያ ማስኬድና መገንባት — ወደ ተለዩ የፕሮጀክት ሳንድቦክሶች ካዛወርን በኋላ፣ ዋና ሰርቨሮቻችን ማህደረ ትውስታቸውን አንድ ሶስተኛ ያህል ይጠቀሙ ነበር። ትናንሽ ARM ማሽኖች ትክክለኛውን ጭነት ይይዛሉ፤ የወርሃዊውንም የሰርቨር ክፍያ በግምት 30% ይቀንሳሉ።
ሰርቨሮቻችን አሁን በትክክል ምን ያደርጋሉ
ቀድሞ የኋላ ሰርቨሮቻችን ብዙ ስራ በቀጥታ ይሰሩ ነበር። በመስከረም አጋማሽ አካባቢ በጣም ውድ የሆኑትን ክፍሎች — የእያንዳንዱን ፕሮጀክት ኮድ ማስኬድ፣ ጥቅሎችን መጫን፣ መተግበሪያዎችን መገንባት — ወደ የግል ደመና ሳንድቦክሶች፣ በአንድ ፕሮጀክት አንድ፣ ማዛወር ጨረስን። ለእያንዳንዱ ፕሮጀክት የተለየ ተነጥሎ አካባቢና ቀጥታ ቅድመ-እይታ የሚሰጠውም ይህ ነው።
በራሳችን ሰርቨሮች ላይ የቀረው ማስተባበር ነው፦ ኤፒአይው፣ ሳንድቦክሶችንና ማተምን የሚያስተዳድረው ኦርኬስትሬተር፣ ማረጋገጫ፣ ክፍያና ጌትዌይ። ያ ስራ የተረጋጋና ቀላል ነው። ከዚያ ሽግግር በኋላ ሰርቨሮቹ ከሶስት እጥፍ ባላቸው ማሽኖች ላይ በ1.3 GB ማህደረ ትውስታ አካባቢ ይጠቀሙ ነበር።
ለምን ARM
የAWS Graviton ፕሮሰሰሮች AWS የነደፋቸው ARM ቺፖች ናቸው። ለተመሳሳይ ገንዘብ፣ ከተመጣጣኝ x86 ሰርቨር የበለጠ አቅም ወይም ተመሳሳይ አቅም በትንሽ ዋጋ ታገኛላችሁ። ለስራችን (Node.js አገልግሎቶች፣ Docker፣ Postgres) ከx86 ጋር የሚያስረን ነገር የለም።
የተዛወሩት፦
- ሁለት የመተግበሪያ ሰርቨሮች ከመካከለኛ መጠን x86 ማሽኖች ወደ ትናንሽ Graviton ማሽኖች እያንዳንዳቸው 2 GB RAM።
- የመድረኩ የውሂብ ጎታ ከትንሽ x86 የውሂብ ጎታ ማሽን ወደ ተመጣጣኙ Graviton።
አንድ እውነተኛ ውስብስብነት፦ ለሁለት አርክቴክቸሮች ምስሎች
ስቴጂንግ አካባቢያችን አሁንም በትንሽ x86 ሰርቨር ላይ ይሰራል። ምርት አሁን ARM ላይ ይሰራል። ለአንዱ የተገነባ የኮንቴይነር ምስል በሌላው ላይ አይሰራም።
ስለዚህ እያንዳንዱ ምስል አሁን ለሁለቱም አርክቴክቸሮች በአንድ መለያ ይገነባል፤ multi-arch ምስል። Docker በእያንዳንዱ ማሽን ትክክለኛውን ቅጽ በራሱ ይመርጣል፤ የዴፕሎይ ቧንቧው የየትኛው አካባቢ እንደሚገፋ ማወቅ አያስፈልገውም። ዋጋው ረዘም ያለ CI ግንባታ ነው፤ ጥቅሙ ስቴጂንግና ምርት ተመሳሳዩን ኮድ ከተመሳሳዩ መለያ ያሄዳሉ።
ከመዛወሩ በፊት መመለሱን ማቀድ
የCPU አርክቴክቸርን በቀጥታ አገልግሎት ስር መቀየር በደቂቃዎች መቀልበስ የምትፈልጉት ዓይነት ለውጥ ነው። ከመቀየራችን በፊት፦
- የቀድሞውን የሰርቨር አብነት ስሪት እንደ የተሰየመ የመመለሻ ዒላማ አስቀመጥን፣
- የውሂብ ጎታውን ከማስተካከላችን በፊት ቅጽበታዊ ቅጂ ወሰድን፣ እና
- ዝውውሩንና የመመለሻውን መንገድ የሚሸፍን runbook ጻፍን።
መመለሱን አላስፈለገንም። ቢሆንም ደግሞ በተመሳሳይ መንገድ እናደርገው ነበር።
ምን እንመለከታለን
ትናንሽ ሰርቨሮች ያነሰ ቦታ ይኖራቸዋል። ከዚህ ሁለት ነገሮች ይከተላሉ፦
- ከባድ ስራ ወደነዚህ ሰርቨሮች ከተመለሰ፣ 2 GB አይበቃም። ያኔ መፍትሄው ትልቅ የGraviton መጠን ነው፤ ወደ x86 መመለስ አይደለም።
- ትናንሽ ማሽኖች swap ያስፈልጋቸዋል። ከአንድ ሳምንት በኋላ አንዱ ሰርቨር ቴክኒካል ማህደረ ትውስታው ሳያልቅ ከማህደረ ትውስታ ግፊት የቀዘቀዘ — የጎደለው swap ፋይል ታሪክ።
ከዚህ የወሰድነው
- የአርክቴክቸር ለውጦችን በኋላ እንደገና ለኩ። ስራውን ወደ ሳንድቦክሶች ማዛወሩ ሰርቨሮቻችን ምን እንደሚፈልጉ ለወጠ፤ የማሽን መጠኖቹ ግን አልተከታተሉም።
- ARM ለተለመዱ የድር ቁልሎች ዝቅተኛ-አደጋ ድል ነው፣ ምስሎቻችሁ multi-arch ሲሆኑ።
- መመለሱን መጀመሪያ ጻፉ። ቢጠቀሙበትም ባይጠቀሙበትም ለውጡን ያረጋጋዋል።