የስነ-ህንፃ ዘይቤ መምረጥ (ክፍል 1)

ሰላም ሀብር። ለአዲስ የኮርስ ዥረት ምዝገባ አሁን በOTUS ተከፍቷል። "የሶፍትዌር አርክቴክት". በትምህርቱ መጀመሪያ ዋዜማ፣ ዋናውን ጽሑፌን ላካፍላችሁ እፈልጋለሁ።

መግቢያ

የኢንፎርሜሽን ስርዓት ሲገነቡ የስነ-ህንፃ ዘይቤ ምርጫ ከመሠረታዊ ቴክኒካዊ ውሳኔዎች አንዱ ነው. በዚህ ተከታታይ ጽሁፎች ውስጥ አፕሊኬሽኖችን ለመገንባት በጣም ተወዳጅ የሆኑትን የስነ-ህንፃ ቅጦችን ለመተንተን እና የትኛው የስነ-ህንፃ ዘይቤ መቼ እንደሚመረጥ ለሚለው ጥያቄ መልስ ለመስጠት ሀሳብ አቀርባለሁ. በአቀራረብ ሂደት ውስጥ የስነ-ህንፃ ቅጦችን ከሞኖሊቶች እስከ ማይክሮ ሰርቪስ እድገትን የሚያብራራ አመክንዮአዊ ሰንሰለት ለመሳል እሞክራለሁ ።

ትንሽ ታሪክ

ገንቢዎችን ለመጠየቅ ከሞከሩ: "ማይክሮ ሰርቪስ ለምን ያስፈልገናል?", የተለያዩ መልሶች ያገኛሉ. ማይክሮ ሰርቪስ መስፋፋትን እንደሚያሻሽሉ፣ ኮድን በቀላሉ እንዲረዱት እንደሚያደርጉ፣ የስህተት መቻቻልን እንደሚያሻሽሉ እና አንዳንድ ጊዜ “ኮድዎን እንዲያጸዱ” እንደሚፈቅዱ ትሰማለህ። ከማይክሮ አገልግሎት መከሰት ጀርባ ያለውን ዓላማ ለመረዳት ታሪክን እንመልከት።

ባጭሩ፣ አሁን ባለን ግንዛቤ ማይክሮ ሰርቪስ እንደሚከተለው ተነሱ፡ እ.ኤ.አ. በ 2011 ጄምስ ሉዊስ የተለያዩ ኩባንያዎችን ስራ በመተንተን አዲስ "ማይክሮ-መተግበሪያ" ንድፍ እንዲፈጠር ትኩረት ሰጥቷል, ይህም የ SOA ስርጭትን በማፋጠን ረገድ አመቻችቷል. አገልግሎቶች. ትንሽ ቆይቶ፣ እ.ኤ.አ. በ2012፣ በአርክቴክቸር ጉባኤ፣ ንድፉ የማይክሮ ሰርቪስ ተብሎ ተሰየመ። ስለዚህ ማይክሮ ሰርቪስ የማስተዋወቅ የመጀመሪያ ግብ ታዋቂውን ማሻሻል ነበር ለገበያ የሚሆን ጊዜ.

በ 2015 ማይክሮ ሰርቪስ በከፍተኛ ሞገድ ላይ ነበሩ. አንዳንድ ጥናቶች እንደሚያሳዩት ስለ ማይክሮ አገልግሎት ርዕስ ያለ ሪፖርት አንድም ጉባኤ አልተጠናቀቀም። በተጨማሪም፣ አንዳንድ ኮንፈረንሶች ለጥቃቅን አገልግሎቶች ብቻ ተሰጥተዋል። በአሁኑ ጊዜ ብዙ ፕሮጀክቶች ይህንን የስነ-ህንፃ ዘይቤ መጠቀም ይጀምራሉ, እና ፕሮጀክቱ ብዙ ቶን ኮድ ከያዘ ወደ ማይክሮ ሰርቪስ ፍልሰት ምናልባት በንቃት እየተካሄደ ነው.

ምንም እንኳን ከላይ ያሉት ሁሉም ቢሆኑም ፣ አነስተኛ ቁጥር ያላቸው ገንቢዎች አሁንም “ጥቃቅን አገልግሎት” የሚለውን ጽንሰ-ሀሳብ ሊገልጹ ይችላሉ። ግን ስለዚህ ጉዳይ ትንሽ ቆይተን እንነጋገራለን ...

ሞኖሊት

ጥቃቅን አገልግሎቶችን የሚቃረን የስነ-ህንፃ ዘይቤ ሞኖሊት (ወይም ሁሉም-በአንድ) ነው። ምናልባት ሞኖሊት ምን እንደሆነ መናገር ምንም ትርጉም የለውም, ስለዚህ የዚህን የስነ-ህንፃ ዘይቤ ጉዳቶችን ወዲያውኑ እዘረዝራለሁ, ይህም ተጨማሪ የሕንፃ ቅጦች እድገትን አስጀምሯል-መጠን, ተያያዥነት, ማሰማራት, መለካት, አስተማማኝነት እና ግትርነት. ከዚህ በታች እያንዳንዱን ድክመቶች ለየብቻ ለመመልከት ሀሳብ አቀርባለሁ።

ልክ

ሞኖሊቱ በጣም ትልቅ ነው. እና አብዛኛውን ጊዜ በጣም ትልቅ ከሆነ የውሂብ ጎታ ጋር ይገናኛል. አንድ ገንቢ ጨርሶ እንዳይረዳው መተግበሪያው በጣም ትልቅ ይሆናል። በዚህ ኮድ ላይ በመስራት ብዙ ጊዜ ያሳለፉት ብቻ ከሞኖሊት ጋር በጥሩ ሁኔታ ሊሰሩ ይችላሉ, ጀማሪዎች ግን ሞኖሊትን ለማወቅ ብዙ ጊዜ ያሳልፋሉ እና እሱን ለማወቅ ምንም ዋስትና የለም. ብዙውን ጊዜ ከሞኖሊት ጋር ሲሰሩ ሞኖሊትን በጥቂቱ የሚያውቁ እና በአንድ አመት ተኩል ጊዜ ውስጥ የሌሎችን አዲስ ገንቢዎች የሚደበድቡ አንዳንድ "ሁኔታዊ" አዛውንቶች ይኖራሉ። በተፈጥሮ, እንዲህ ዓይነቱ ሁኔታዊ አዛውንት አንድ ነጠላ የውድቀት ነጥብ ነው, እና የእሱ መነሳት ወደ ሞኖሊስት ሞት ሊያመራ ይችላል.

ተያያዥነት

ሞኖሊቲው "ትልቅ የጭቃ ኳስ" ነው, ለውጦች ወደማይታወቅ ውጤት ሊመሩ ይችላሉ. በአንድ ቦታ ላይ ለውጦችን በማድረግ, ሞኖሊቱን በሌላ (ተመሳሳይ "ጆሮዎን ቧጨረው, * @ ወድቋል") ሊጎዱ ይችላሉ. ይህ የሆነበት ምክንያት በ monolith ውስጥ ያሉት ክፍሎች በጣም ውስብስብ እና ከሁሉም በላይ ግልጽ ያልሆኑ ግንኙነቶች በመሆናቸው ነው.

ማሰማራት

አንድን ሞኖሊት መዘርጋት ፣በክፍሎቹ መካከል ባለው ውስብስብ ግንኙነቶች ምክንያት ፣የራሱ የአምልኮ ሥርዓት ያለው ረጅም ሂደት ነው። እንዲህ ዓይነቱ ሥነ ሥርዓት ብዙውን ጊዜ ሙሉ በሙሉ ደረጃውን ያልጠበቀ እና “በአፍ” ይተላለፋል።

የመጠን አቅም

ሞኖሊት ሞጁሎች እርስ በርሳቸው የሚጋጩ የግብዓት ፍላጎቶች ሊኖራቸው ይችላል፣ ይህም በሃርድዌር ረገድ ስምምነት እንዲኖር ያስፈልጋል። አግልግሎቶችን A እና Bን ያቀፈ አንድ ሞኖሊት እንዳለህ አስብ። አገልግሎት ሀ በሃርድ ድራይቭ መጠን ላይ ይፈልጋል፣ እና አገልግሎት B በ RAM ላይ ይፈልጋል። በዚህ ሁኔታ ሞኖሊቱ የተጫነበት ማሽን የሁለቱም አገልግሎቶችን መስፈርቶች መደገፍ አለበት ፣ አለበለዚያ አንዱን አግልግሎት በእጅ ማሰናከል አለብዎት።

ሌላ ምሳሌ (የበለጠ ክላሲክ)፡ አገልግሎት A ከአገልግሎት B በጣም ታዋቂ ነው፡ ስለዚህ 100 አገልግሎቶች A እና 10 አገልግሎቶች ቢ እንዲኖሩ ትፈልጋላችሁ። በድጋሚ፡ ሁለት አማራጮች፡ ወይ 100 ሙሉ ሞኖሊቶች እናሰማራቸዋለን ወይም በአንዳንድ ላይ አገልግሎቶች B በእጅ መሰናከል አለባቸው።

አስተማማኝነት

ሁሉም አገልግሎቶች በአንድ ላይ ስለሚገኙ, ሞኖሊቱ ከወደቀ, ሁሉም አገልግሎቶች በአንድ ጊዜ ይወድቃሉ. እንደ እውነቱ ከሆነ, ይህ በጣም መጥፎ ላይሆን ይችላል, ቢያንስ በተከፋፈለው ስርዓት ውስጥ ምንም ከፊል ውድቀቶች አይኖሩም, ነገር ግን በሌላ በኩል, በ 0.001% ተጠቃሚዎች ጥቅም ላይ በሚውለው ተግባር ላይ ባለ ስህተት ምክንያት ሁሉንም ተጠቃሚዎች ሊያጡ ይችላሉ. የእርስዎን ስርዓት.

ንቃተ ህሊና ማጣት

በሞኖሊቱ መጠን ምክንያት ወደ አዳዲስ ቴክኖሎጂዎች መቀየር አስቸጋሪ ነው. በዚህ ምክንያት ያንኑ አዛውንት ማቆየት የተለየ ተግባር ነው። በፕሮጀክቱ መጀመሪያ ላይ የተመረጠው የቴክኖሎጂ ቁልል የምርቱን እድገት የሚያደናቅፍ እገዳ ሊሆን ይችላል.

መደምደሚያ

በሚቀጥለው ጊዜ ሰዎች ወደ አካላት እና SOA በመሄድ እነዚህን ችግሮች እንዴት ለመፍታት እንደሞከሩ እንነጋገራለን.

የስነ-ህንፃ ዘይቤ መምረጥ (ክፍል 1)

ተጨማሪ ያንብቡ፡

ምንጭ: hab.com

አስተያየት ያክሉ