Qcon ኮንፈረንስ. ሁከትን ​​ማካበት፡ ኔትፍሊክስ ለማይክሮ አገልግሎቶች መመሪያ። ክፍል 4

ጆሽ ኢቫንስ ስለ ኔትፍሊክስ ማይክሮ ሰርቪስ ምስቅልቅሉ እና በቀለማት ያሸበረቀ ዓለም ከመሠረታዊ መርሆች ጀምሮ ይናገራል - የማይክሮ ሰርቪስ አካል ፣ ከተከፋፈሉ ስርዓቶች ጋር የተዛመዱ ተግዳሮቶች እና ጥቅሞቻቸው። በዚህ መሠረት ላይ በመመሥረት ወደ ማይክሮ አገልግሎት ዋናነት የሚያመሩትን ባህላዊ፣ሥነ ሕንፃ እና የአሠራር ልምዶችን ይዳስሳል።

Qcon ኮንፈረንስ. ሁከትን ​​ማካበት፡ ኔትፍሊክስ ለማይክሮ አገልግሎቶች መመሪያ። ክፍል 1
Qcon ኮንፈረንስ. ሁከትን ​​ማካበት፡ ኔትፍሊክስ ለማይክሮ አገልግሎቶች መመሪያ። ክፍል 2
Qcon ኮንፈረንስ. ሁከትን ​​ማካበት፡ ኔትፍሊክስ ለማይክሮ አገልግሎቶች መመሪያ። ክፍል 3

ከኦፕሬሽን ተንሳፋፊ በተለየ መልኩ አዳዲስ ቋንቋዎችን ለአገልግሎት አለም አቀፍነት ማስተዋወቅ እና እንደ ኮንቴይነሮች ያሉ አዳዲስ ቴክኖሎጂዎች በአካባቢ ላይ አዲስ ውስብስብነት ለመጨመር የታሰቡ ውሳኔዎች ናቸው. የእኔ ኦፕሬሽኖች ቡድን ደረጃውን የጠበቀ ለNetflix ምርጥ የቴክኖሎጂ ፍኖተ ካርታ ሲሆን ይህም በጃቫ እና EC2 ላይ ተመስርተው አስቀድሞ በተገለጹ ምርጥ ተሞክሮዎች የተጋገረ ቢሆንም ንግዱ እያደገ ሲሄድ ገንቢዎች እንደ Python፣ Ruby፣ Node-JS እና Docker ያሉ አዳዲስ ክፍሎችን መጨመር ጀመሩ።

Qcon ኮንፈረንስ. ሁከትን ​​ማካበት፡ ኔትፍሊክስ ለማይክሮ አገልግሎቶች መመሪያ። ክፍል 4

የደንበኞችን ቅሬታ ሳንጠብቅ ምርታችን በጥሩ ሁኔታ እንዲሰራ በመጀመሪያ የምንደግፍ በመሆናችን በጣም ኩራት ይሰማኛል። ሁሉም ነገር ቀላል በሆነ መንገድ ተጀምሯል - በፓይዘን ውስጥ ኦፕሬቲንግ ፕሮግራሞች ነበሩን እና በሩቢ ውስጥ ጥቂት የኋላ ኦፊስ አፕሊኬሽኖች ነበሩን ፣ ነገር ግን የድር ገንቢዎቻችን JVMን እንደሚያስወግዱ እና ድሩን እንደሚያንቀሳቅሱ ሲያስታውቁ ነገሮች የበለጠ አስደሳች ሆነዋል። መተግበሪያ ወደ መስቀለኛ መንገድ ሶፍትዌር መድረክ። js. ዶከር ከገባ በኋላ ነገሮች በጣም ውስብስብ ሆኑ። አመክንዮዎችን ተከትለን እና ያመጣናቸው ቴክኖሎጂዎች ለደንበኞች ተግባራዊ ስናደርግ እውነት ሆኑ ምክንያቱም ብዙ ትርጉም ያላቸው ናቸው. ይህ ለምን እንደሆነ እነግራችኋለሁ።

ኤፒአይ ጌትዌይ በእውነቱ ለUI ገንቢዎች እንደ የመጨረሻ ነጥብ ሆነው ሊያገለግሉ የሚችሉ ምርጥ ስክሪፕቶችን የማዋሃድ ችሎታ አለው። እነዚህን ስክሪፕቶች እያንዳንዳቸው ለውጦችን ካደረጉ በኋላ ወደ ምርት እና ከዚያም ወደ ተጠቃሚ መሳሪያዎች ማሰማራት እንዲችሉ ለውጠዋል፣ እና እነዚህ ሁሉ ለውጦች በኤፒአይ መግቢያ በር ላይ ከሚሰሩ የመጨረሻ ነጥቦች ጋር ተመሳስለዋል።

ነገር ግን ይህ የኤፒአይ አገልግሎት በኮድ ከመጠን በላይ የተጫነበት አዲስ ሞኖሊት የመፍጠር ችግርን ደገመው፤ በዚህም የተለያዩ የውድቀት ሁኔታዎች ተከሰቱ። ለምሳሌ፣ አንዳንድ የመጨረሻ ነጥቦች ተወግደዋል፣ ወይም ስክሪፕቶች በዘፈቀደ የመነጩ በጣም ብዙ የአንድ ነገር ስሪቶችን ስላመነጩ ሥሪቶቹ ሁሉንም ያለውን የኤፒአይ አገልግሎት ማህደረ ትውስታ ወስደዋል።

እነዚህን የመጨረሻ ነጥቦች ወስደን ከኤፒአይ አገልግሎት ማውጣት ምክንያታዊ ነበር። ይህንን ለማድረግ በ Docker ኮንቴይነሮች ውስጥ እንደ ትናንሽ አፕሊኬሽኖች የሚሰሩ የ Node.js ክፍሎችን ፈጥረናል። ይህ በነዚህ የመስቀለኛ መንገድ አፕሊኬሽኖች ምክንያት የሚመጡ ማናቸውንም ችግሮች እና ብልሽቶች እንድንለይ አስችሎናል።

የእነዚህ ለውጦች ዋጋ በጣም ትልቅ ነው እና የሚከተሉትን ምክንያቶች ያቀፈ ነው-

  • ምርታማነት መሳሪያዎች. አዳዲስ ቴክኖሎጂዎችን ማስተዳደር አዳዲስ መሳሪያዎች ያስፈልጉ ነበር ምክንያቱም የ UI ቡድን በጣም ጥሩ ስክሪፕቶችን በመጠቀም ቀልጣፋ ሞዴል ለመፍጠር, መሠረተ ልማትን ለማስተዳደር ብዙ ጊዜ አላጠፋም, ስክሪፕቶችን ብቻ መጻፍ እና ተግባራቸውን ማረጋገጥ ነበረባቸው.
    የዕድል ግንዛቤ እና መደርደር - ቁልፍ ምሳሌ የአፈጻጸም አሽከርካሪ መረጃን ለማግኘት የሚያስፈልጉት አዳዲስ መሳሪያዎች ነው። ፕሮሰሰሩ ምን ያህል እንደተያዘ፣ ማህደረ ትውስታ እንዴት ጥቅም ላይ እንደሚውል ማወቅ አስፈላጊ ነበር እና ይህን መረጃ መሰብሰብ የተለያዩ መሳሪያዎችን ይጠይቃል።
  • የመሠረት ምስሎችን መከፋፈል - ቀላል መሠረት ኤኤምአይ የበለጠ የተበታተነ እና ልዩ ሆኗል.
  • የመስቀለኛ መንገድ አስተዳደር. በደመና ውስጥ ያሉ ኖዶችን እንድታስተዳድሩ የሚያስችልህ ከመደርደሪያ ውጭ የሆነ አርክቴክቸር ወይም ቴክኖሎጂ የለም፣ስለዚህ ቲተስን ገንብተናል፣ተመጣጣኝ እና አስተማማኝ የእቃ መያዢያ ዝርጋታ እና የደመና ውህደት ከአማዞን AWS ጋር።
  • የቤተ-መጽሐፍት ወይም መድረክ ማባዛት። የመድረክ ተመሳሳይ ዋና ተግባር ያላቸው አዳዲስ ቴክኖሎጂዎችን ማቅረብ በዳመና ላይ ወደተመሰረቱ Node.js ገንቢ መሳሪያዎች ማባዛት ያስፈልጋል።
  • የመማሪያ ኩርባ እና የኢንዱስትሪ ልምድ። አዳዲስ ቴክኖሎጅዎችን ማስተዋወቅ አዳዲስ ተግዳሮቶችን መፍጠሩ አይቀሬ ነው መሸነፍ እና መማር ያለበት።

ስለዚህ ራሳችንን በአንድ “የተጠረበ መንገድ” ብቻ መወሰን አልቻልንም እና ቴክኖሎጂዎቻችንን ለማራመድ አዳዲስ መንገዶችን ያለማቋረጥ መገንባት ነበረብን። ወጪዎችን ለመቀነስ፣ የተማከለ ድጋፍን ገድበን በJVM፣ አዲስ ኖዶች እና ዶከር ላይ አተኩረናል። ውጤታማ ተፅእኖን ቅድሚያ ሰጥተናል፣ ለቡድኖቻቸው ውሳኔ ዋጋ አሳውቀናል እና ቀደም ሲል ያዳበሩትን ከፍተኛ ተፅእኖ ያላቸውን መፍትሄዎች እንደገና ለመጠቀም መንገዶችን እንዲፈልጉ አበረታተናል። ምርቱን ለአለም አቀፍ ደንበኞች ለማድረስ አገልግሎቱን ወደ የውጭ ቋንቋዎች ስንተረጉም ይህንን ዘዴ ተጠቅመንበታል። ምሳሌዎች የ Python ሥሪትን፣ የሩቢ ሥሪትን፣ የጃቫ ሥሪትን፣ ወዘተ መፍጠር በጣም ቀላል እንዲሆን በአንፃራዊነት ቀላል የሆኑ የደንበኛ ቤተ-መጻሕፍትን ያጠቃልላሉ።

በአንድ ቦታ እና በሌሎች ተመሳሳይ ሁኔታዎች እራሳቸውን ያረጋገጡ የተረጋገጡ ቴክኖሎጂዎችን ለመጠቀም እድሎችን በየጊዜው እንፈልጋለን።

ስለ መጨረሻው አካል እንነጋገር - ለውጦች ፣ ወይም ልዩነቶች። የኛ ምርት ፍጆታ በሳምንቱ ቀን እና በቀን ውስጥ በሰዓት እኩልነት እንዴት እንደሚለዋወጥ ይመልከቱ። በስርዓቱ ላይ ያለው ጭነት ከፍተኛውን ሲደርስ 9 am ለ Netflix በጣም አስቸጋሪው ጊዜ ነው ማለት ይችላሉ.

Qcon ኮንፈረንስ. ሁከትን ​​ማካበት፡ ኔትፍሊክስ ለማይክሮ አገልግሎቶች መመሪያ። ክፍል 4

የሶፍትዌር ፈጠራዎችን ፈጣን ትግበራ ማለትም በሲስተሙ ላይ በየጊዜው አዳዲስ ለውጦችን በማድረግ የአገልግሎት አሰጣጡ መቆራረጥ ሳናደርግ እና በደንበኞቻችን ላይ ችግር ሳይፈጥር እንዴት በፍጥነት ተግባራዊ ማድረግ እንችላለን? ኔትፍሊክስ ይህን ያገኘው ስፒናከርን በመጠቀም አዲስ አለምአቀፍ ደመናን መሰረት ያደረገ አስተዳደር እና ቀጣይነት ያለው አቅርቦት (ሲዲ) መድረክ ነው።

Qcon ኮንፈረንስ. ሁከትን ​​ማካበት፡ ኔትፍሊክስ ለማይክሮ አገልግሎቶች መመሪያ። ክፍል 4

በወሳኝ መልኩ፣ Spinnaker የተነደፈው ምርጥ ተግባሮቻችንን ለማዋሃድ ነው ስለዚህም አካላትን ወደ ምርት ስናሰማራ ውጤቱን በቀጥታ ወደ ሚዲያ ማቅረቢያ ቴክኖሎጂ ማዋሃድ እንችላለን።

Qcon ኮንፈረንስ. ሁከትን ​​ማካበት፡ ኔትፍሊክስ ለማይክሮ አገልግሎቶች መመሪያ። ክፍል 4

ከፍተኛ ዋጋ የምንሰጣቸውን ሁለት ቴክኖሎጂዎችን በማቅረቢያ ቱቦችን ውስጥ ማካተት ችለናል፡- አውቶሜትድ የካናሪ ትንታኔ እና የዝግጅት አቀማመጥ። የካናሪ ትንታኔ ማለት የትራፊክ ፍሰትን ወደ አዲሱ የኮዱ ስሪት እንመራለን እና የቀረውን የምርት ትራፊክ በአሮጌው ስሪት እናሳልፋለን። ከዚያ አዲሱ ኮድ ተግባሩን እንዴት እንደሚቋቋም እንፈትሻለን - ካለው የተሻለ ወይም የከፋ።

የታቀደ ልቀት ማለት በአንድ ክልል ውስጥ የታቀደ ልቀት ችግር ካጋጠመው፣ ወደ ሌላ ክልል ወደ መልቀቅ እንሸጋገራለን ማለት ነው። በዚህ ሁኔታ, ከላይ የተጠቀሰው የማረጋገጫ ዝርዝር በምርት ቧንቧ መስመር ውስጥ መካተት አለበት. ጥቂት ጊዜ እቆጥብልሃለሁ እና በዚህ ርዕስ ውስጥ በጥልቀት ለመጥለቅ ፍላጎት ካሎት ያለፈውን ንግግርዬን እንዲመለከቱ እመክርዎታለሁ። የንግግሩን የቪዲዮ ቀረጻ በስላይድ ግርጌ ያለውን አገናኝ በመከተል ማየት ይቻላል።

Qcon ኮንፈረንስ. ሁከትን ​​ማካበት፡ ኔትፍሊክስ ለማይክሮ አገልግሎቶች መመሪያ። ክፍል 4

በንግግሩ መጨረሻ ስለ Netflix አደረጃጀት እና አርክቴክቸር በአጭሩ እናገራለሁ. መጀመሪያ ላይ የNRDP 1.x ሚዲያ ዥረት የመጀመሪያ ስሪት የሆነው ኤሌክትሮኒክ አቅርቦት የሚባል እቅድ ነበረን። "የኋላ ዥረት" የሚለው ቃል እዚህ ጥቅም ላይ ሊውል ይችላል ምክንያቱም መጀመሪያ ላይ ተጠቃሚው ይዘቱን ማውረድ የሚችለው በኋላ ላይ መልሶ ለማጫወት ብቻ ነው። እ.ኤ.አ. በ2009 የNetflix የመጀመሪያው ዲጂታል ማድረሻ መድረክ ይህንን ይመስላል።

Qcon ኮንፈረንስ. ሁከትን ​​ማካበት፡ ኔትፍሊክስ ለማይክሮ አገልግሎቶች መመሪያ። ክፍል 4

የተጠቃሚው መሣሪያ በኤንአርዲፒ ፕላትፎርም - Netflix Ready Device Platform ላይ የተመሰረተ የዩአይ በይነገጽ፣ የደህንነት ሞጁሎች፣ የአገልግሎት ማግበር እና መልሶ ማጫወትን ያካተተ የNetflix መተግበሪያን ይዟል።

በዚያን ጊዜ የተጠቃሚ በይነገጽ በጣም ቀላል ነበር። በውስጡ Queque Reader የሚባል ነገር ይዟል፣ እና ተጠቃሚው ወደ ጣቢያው በመሄድ Queque ላይ የሆነ ነገር ለመጨመር እና ከዚያም በመሳሪያቸው ላይ የተጨመረውን ይዘት ይመለከት ነበር። አወንታዊው የፊት መጨረሻ ቡድን እና የኋለኛው ቡድን የአንድ ኤሌክትሮኒክ አቅርቦት ድርጅት አባል እና የቅርብ የስራ ግንኙነት ነበራቸው። ክፍያው የተፈጠረው በኤክስኤምኤል ላይ በመመስረት ነው። በተመሳሳይ ጊዜ, ለዲቪዲ ንግድ የ Netflix ኤፒአይ ተፈጠረ, ይህም የሶስተኛ ወገን መተግበሪያዎች ትራፊክ ወደ አገልግሎታችን እንዲመሩ አበረታቷል.

ሆኖም የኔትፍሊክስ ኤፒአይ የሁሉም ይዘቶች ሜታዳታ፣ ምን አይነት ፊልሞች እንደነበሩ መረጃዎችን የያዘ፣ የእይታ ዝርዝሮችን የማመንጨት አቅምን የፈጠረ በፈጠራ የተጠቃሚ በይነገጽ ሊረዳን በሚገባ ተዘጋጅቷል። በJSON schema፣ HTTP Response Code፣ በዘመናዊ አርክቴክቸር ውስጥ ጥቅም ላይ የሚውለው ያው እና የOAuth ደህንነት ሞዴል ላይ የተመሰረተ አጠቃላይ REST ኤፒአይ ነበረው፣ እሱም በወቅቱ ለግንባር-መጨረሻ መተግበሪያ የሚያስፈልገው ነበር። ይህ ከህዝባዊ የይዘት ማቅረቢያ ሞዴል ወደ የግል መሸጋገር አስችሎታል።

Qcon ኮንፈረንስ. ሁከትን ​​ማካበት፡ ኔትፍሊክስ ለማይክሮ አገልግሎቶች መመሪያ። ክፍል 4

የሽግግሩ ችግር መበታተን ነበር ፣ ምክንያቱም አሁን ስርዓታችን ሙሉ በሙሉ በተለያዩ የአሠራር መርሆዎች ላይ የተመሰረቱ ሁለት አገልግሎቶችን - አንዱ በእረፍት ፣ JSON እና OAuth ፣ ሌላኛው በ RPC ፣ XML እና በ NTBA token ስርዓት ላይ የተመሠረተ የተጠቃሚ ደህንነት ዘዴ። ይህ የመጀመሪያው ዲቃላ አርክቴክቸር ነበር።

በሁለቱ ቡድኖቻችን መካከል በመሠረቱ ፋየርዎል ነበር ምክንያቱም መጀመሪያ ላይ ኤፒአይ ከኤንሲፒፒ ጋር በደንብ አልመጣም እና ይህም በቡድኖቹ መካከል ግጭት እንዲፈጠር አድርጓል። ልዩነቶቹ በአገልግሎቶች፣ ፕሮቶኮሎች፣ ወረዳዎች፣ የደህንነት ሞጁሎች እና ገንቢዎች ብዙውን ጊዜ ሙሉ ለሙሉ በተለያዩ ሁኔታዎች መካከል መቀያየር ነበረባቸው።

Qcon ኮንፈረንስ. ሁከትን ​​ማካበት፡ ኔትፍሊክስ ለማይክሮ አገልግሎቶች መመሪያ። ክፍል 4

በዚህ ረገድ ከኩባንያው ከፍተኛ መሐንዲሶች አንዱ ጋር ተወያይቼ ነበር፣ “ትክክለኛው የረዥም ጊዜ አርክቴክቸር ምን መሆን አለበት?” የሚለውን ጥያቄ ጠየቅኩኝ እና የጥያቄውን መልስ ጠየቀ፡- “አንተ ምናልባት የበለጠ ያሳስብሃል። ስለ ድርጅታዊ ውጤቶቹ - እነዚህን ነገሮች ካዋሃድናቸው እና የተማርነውን በደንብ ቢያፈርሱ ምን ይሆናል? ይህ አካሄድ ከኮንዌይ ህግ ጋር በጣም ጠቃሚ ነው፡ "ስርዓቶችን የሚንደፉ ድርጅቶች የድርጅቱን የግንኙነት መዋቅር በሚደግም ንድፍ የተገደቡ ናቸው።" ይህ በጣም ረቂቅ ፍቺ ነው፣ ስለዚህ የበለጠ የተለየን እመርጣለሁ፡- “ማንኛውም ሶፍትዌር የፈጠረውን ድርጅታዊ መዋቅር ያንፀባርቃል። ከኤሪክ ሬይመንድ የምወደው ጥቅስ ይኸውና፡ "በማጠናቀሪያ ላይ የሚሰሩ አራት የገንቢዎች ቡድን ካሎት መጨረሻው ባለአራት ማለፊያ ማጠናቀሪያ" ነው። ደህና፣ ኔትፍሊክስ ባለአራት ማለፊያ ማቀናበሪያ አለው፣ እና እንደዛ ነው የምንሰራው።

በዚህ ሁኔታ ጅራቱ ውሻውን እያወዛወዘ ነው ማለት እንችላለን. ቅድሚያ የምንሰጠው ጉዳይ መፍትሔ ሳይሆን ድርጅት ነው፤ ያለንን አርክቴክቸር የሚመራው ድርጅት ነው። ቀስ በቀስ፣ ከሆድፖጅ አገልግሎቶች፣ Blade Runner ወደምንለው አርክቴክቸር ተዛወርን፣ ምክንያቱም እዚህ እየተነጋገርን ያለነው ስለ ጠርዝ አገልግሎቶች እና ስለ NCCP የመለያየት እና በቀጥታ ወደ Zuul ፕሮክሲ፣ ኤፒአይ ጌትዌይ እና ተጓዳኝ ተግባራዊ የማድረግ ችሎታ ነው። "ቁራጮች" ይበልጥ የላቀ ደህንነት፣ ድጋሚ ማጫወት፣ የውሂብ መደርደር፣ ወዘተ ባህሪያት ያላቸው ወደ አዲስ ማይክሮ አገልግሎቶች ተለውጠዋል።

ስለዚህም የዲፓርትመንት አወቃቀሮች እና የኩባንያው ተለዋዋጭነት የሥርዓት ንድፍን በመቅረጽ ረገድ ትልቅ ሚና የሚጫወቱ እና ለውጦችን የሚያበረታታ ወይም የሚያደናቅፍ አካል ናቸው ማለት ይቻላል። የማይክሮ ሰርቪስ አርክቴክቸር ውስብስብ እና ኦርጋኒክ ነው፣ እና ጤንነቱ በዲሲፕሊን ላይ የተመሰረተ እና ትርምስ አስተዋወቀ።

ትንሽ ማስታወቂያ

ከእኛ ጋር ስለቆዩ እናመሰግናለን። ጽሑፎቻችንን ይወዳሉ? የበለጠ አስደሳች ይዘት ማየት ይፈልጋሉ? ትእዛዝ በማዘዝ ወይም ለጓደኞች በመምከር ይደግፉን፣ ደመና ቪፒኤስ ለገንቢዎች ከ$4.99, በእኛ ለእርስዎ የተፈለሰፈው ልዩ የመግቢያ ደረጃ አገልጋዮች አናሎግ፡- ስለ VPS (KVM) ሙሉ እውነት E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps ከ$19 ወይንስ እንዴት አገልጋይ መጋራት ይቻላል? (በRAID1 እና RAID10፣ እስከ 24 ኮሮች እና እስከ 40GB DDR4 ድረስ ይገኛል።

በአምስተርዳም ውስጥ በ Equinix Tier IV የመረጃ ማዕከል ውስጥ Dell R730xd 2x ርካሽ? እዚህ ብቻ 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV ከ$199 በኔዘርላንድስ! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - ከ$99! ስለ አንብብ የመሠረተ ልማት ኮርፖሬሽን እንዴት እንደሚገነባ ክፍል ጋር Dell R730xd E5-2650 v4 አገልጋዮች ዋጋ 9000 አንድ ሳንቲም ዩሮ?

ምንጭ: hab.com

አስተያየት ያክሉ