ግቤት
ሠላም!
በዚህ ጽሑፍ ውስጥ የነርቭ ኔትወርኮችን በመጠቀም ለፕሮጄክት የማይክሮ ሰርቪስ አርክቴክቸር የመገንባት ልምዴን አካፍላለሁ።
ስለ ሥነ ሕንፃ መስፈርቶች እንነጋገር ፣ የተለያዩ መዋቅራዊ ሥዕላዊ መግለጫዎችን እንይ ፣ እያንዳንዱን የተጠናቀቀውን የሕንፃውን አካል መተንተን እና እንዲሁም የመፍትሄውን ቴክኒካዊ መለኪያዎች እንገመግማለን።
በማንበብ ይደሰቱ!
ስለ ችግሩ እና መፍትሄው ጥቂት ቃላት
ዋናው ሀሳብ በፎቶ ላይ በመመርኮዝ የአንድን ሰው ማራኪነት በአስር ነጥብ መለኪያ መገምገም ነው.
በዚህ ጽሑፍ ውስጥ ሁለቱንም ጥቅም ላይ የዋሉትን የነርቭ ኔትወርኮች እና የመረጃ ዝግጅት እና የስልጠና ሂደትን ከመግለጽ እንሄዳለን. ነገር ግን፣ ከሚከተሉት ህትመቶች በአንዱ፣ በእርግጠኝነት የምዘናውን ቧንቧ በጥልቀት በጥልቀት ወደ መተንተን እንመለሳለን።
አሁን በከፍተኛ ደረጃ የግምገማ ቧንቧ መስመር ውስጥ እናልፋለን, እና ከጠቅላላው የፕሮጀክት አርክቴክቸር አንፃር በማይክሮ ሰርቪስ መስተጋብር ላይ እናተኩራለን.
በማራኪነት ግምገማ ቧንቧው ላይ በሚሰሩበት ጊዜ ስራው በሚከተሉት ክፍሎች ተከፋፍሏል.
- በፎቶዎች ውስጥ ፊቶችን መምረጥ
- የእያንዳንዱ ሰው ደረጃ
- ውጤቱን ይስጡ
የመጀመሪያው በቅድመ-ሠለጠኑ ኃይሎች ይፈታል
የግምገማ ቧንቧው ተግባራዊ ንድፍ
የፕሮጀክት አርክቴክቸር መስፈርቶች ትንተና
በህይወት ዑደት ውስጥ
የ ML ፕሮጀክት የሕይወት ዑደት
ይህ ፕሮጀክት የተለየ አይደለም - ውሳኔው የተደረገው የግምገማ ቧንቧ መስመርን ወደ የመስመር ላይ አገልግሎት ለመጠቅለል ነው, ይህም እራሳችንን በሥነ ሕንፃ ውስጥ ማጥለቅን ይጠይቃል. የሚከተሉት መሰረታዊ መስፈርቶች ተለይተዋል-
- የተዋሃደ የምዝግብ ማስታወሻ ማከማቻ - ሁሉም አገልግሎቶች በአንድ ቦታ ላይ ምዝግብ ማስታወሻዎችን መጻፍ አለባቸው, ለመተንተን ምቹ መሆን አለባቸው
- የግምገማ አገልግሎቱን አግድም የማሳየት ዕድል - እንደ ጠርሙሱ በጣም አይቀርም
- ለግምገማ ጊዜ ስርጭትን ለማስወገድ ተመሳሳይ መጠን ያለው ፕሮሰሰር ግብዓት እያንዳንዱን ምስል ለመገምገም መመደብ አለበት።
- የሁለቱም ልዩ አገልግሎቶች እና ቁልል በአጠቃላይ በፍጥነት (እንደገና) መሰማራት
- አስፈላጊ ከሆነ በተለያዩ አገልግሎቶች ውስጥ የተለመዱ ነገሮችን የመጠቀም ችሎታ
ሥነ ሕንፃ
መስፈርቶቹን ከመረመርን በኋላ፣ የማይክሮ አገልግሎት አርክቴክቸር ከሞላ ጎደል በትክክል እንደሚስማማ ግልጽ ሆነ።
አላስፈላጊ ራስ ምታትን ለማስወገድ የቴሌግራም ኤፒአይ እንደ የፊት ግንባር ተመርጧል።
በመጀመሪያ ፣ የተጠናቀቀውን የሕንፃ ንድፍ አወቃቀር ንድፍ እንይ ፣ ከዚያ ወደ እያንዳንዱ አካላት መግለጫ እንሂድ ፣ እና እንዲሁም የተሳካ የምስል ማቀነባበሪያ ሂደትን መደበኛ እናደርጋለን።
የተጠናቀቀው የሕንፃ ንድፍ መዋቅራዊ ንድፍ
በምስል ግምገማ ሂደት ውስጥ ነጠላ ሃላፊነትን በመግለጽ ስለ እያንዳንዱ የስዕላዊ መግለጫው አካላት የበለጠ በዝርዝር እንነጋገር ።
የማይክሮ አገልግሎት “አትራይ-ቴሌግራም-ቦት”
ይህ የማይክሮ አገልግሎት ከቴሌግራም ኤፒአይ ጋር ያለውን ግንኙነት ሁሉ ያጠቃልላል። 2 ዋና ሁኔታዎች አሉ-ከተበጀ ምስል ጋር መስራት እና ከግምገማ ቧንቧው ውጤት ጋር መስራት. ሁለቱንም ሁኔታዎች በአጠቃላይ ሁኔታ እንመልከታቸው።
ከምስል ጋር ብጁ መልእክት ሲደርሱ፡-
- ማጣሪያ የሚከናወነው የሚከተሉትን ቼኮች ያካተተ ነው-
- በጣም ጥሩው የምስል መጠን መገኘት
- አስቀድሞ ወረፋ ላይ ያሉት የተጠቃሚ ምስሎች ብዛት
- የመጀመሪያውን ማጣሪያ ሲያልፉ, ምስሉ በዶከር መጠን ውስጥ ይቀመጣል
- በ"ለመገመት" ወረፋ ውስጥ አንድ ተግባር ይፈጠራል፣ ይህም ከሌሎች ነገሮች በተጨማሪ በድምጽ መጠን ውስጥ ወደሚገኘው ምስል የሚወስደውን መንገድ ያካትታል።
- ከላይ ያሉት እርምጃዎች በተሳካ ሁኔታ ከተጠናቀቁ, ተጠቃሚው በግምታዊው የምስል ሂደት ጊዜ መልእክት ይቀበላል, ይህም በወረፋው ውስጥ ባሉት ተግባራት ብዛት ላይ ተመስርቶ ይሰላል. ስህተት ከተፈጠረ ተጠቃሚው ምን ስህተት ሊሆን እንደሚችል መረጃ የያዘ መልእክት በመላክ በግልፅ ያሳውቃል።
እንዲሁም, ይህ ማይክሮ ሰርቪስ, ልክ እንደ ሴሊሪ ሰራተኛ, በግምገማ ቧንቧው ውስጥ ላለፉ ተግባራት የታሰበውን "በኋላ_ግምት" ወረፋ ያዳምጣል.
አዲስ ተግባር ከ“በኋላ_ግምት” ሲቀበሉ፡-
- ምስሉ በተሳካ ሁኔታ ከተሰራ ውጤቱን ለተጠቃሚው እንልካለን, ካልሆነ, ስለ ስህተት እናሳውቃለን.
- የግምገማ ቧንቧው ውጤት የሆነውን ምስል ማስወገድ
የግምገማ ማይክሮ አገልግሎት “attrai-estimator”
ይህ ማይክሮ ሰርቪስ የሴሊሪ ሰራተኛ ሲሆን ከምስል ግምገማ ቧንቧ መስመር ጋር የተያያዙ ሁሉንም ነገሮች ያጠቃልላል. እዚህ አንድ የሚሰራ ስልተ-ቀመር ብቻ ነው - እስቲ እንመርምረው.
አዲስ ተግባር ከ"ለመገመት" ሲቀበሉ፡-
- ምስሉን በግምገማ ቧንቧ መስመር እናካሂድ፡-
- ምስሉን ወደ ማህደረ ትውስታ በመጫን ላይ
- ምስሉን ወደሚፈለገው መጠን እናመጣለን
- ሁሉንም መልኮች ማግኘት (MTCNN)
- ሁሉንም ፊቶች እንገመግማለን (በመጨረሻው ደረጃ የተገኙትን ፊቶች ወደ ባች እና ResNet34 እንጠቀልላቸዋለን)
- የመጨረሻውን ምስል ይስሩ
- የማሰሪያ ሳጥኖችን እንሳል
- ደረጃ አሰጣጦችን በመሳል ላይ
- ብጁ (የመጀመሪያ) ምስልን በመሰረዝ ላይ
- ውጤቱን ከግምገማ ቧንቧው በማስቀመጥ ላይ
- ተግባሩን ከላይ በተገለፀው የ"አትራይ-ቴሌግራም-ቦት" ማይክሮ አገልግሎት የሚደመጠውን “በኋላ_ግምት” ወረፋ ላይ እናስቀምጣለን።
ግሬይሎግ (+ mongoDB + Elasticsearch)
ምርጫው በእሱ ላይ ወድቋል, እና በተለመደው ላይ አይደለም
ከዚህ ቀደም ከኤልኬ ቁልል ጋር ብቻ የሰራ ሰው እንደመሆኔ፣ ከግሬሎግ ጋር ስሰራ አጠቃላይ አዎንታዊ ተሞክሮ ነበረኝ። የሚያስጨንቅ ብቸኛው ነገር በኪባና ባህሪያት ከግራይሎግ ድር በይነገጽ ላይ ያለው የላቀነት ነው።
RabbitMQ
በዚህ ፕሮጀክት ውስጥ እንደ ጥቅም ላይ ውሏል
Redis
አንዳንድ ጊዜ በተለያዩ የፓይዘን ማይክሮ ሰርቪስ ውስጥ የተወሰኑ የመረጃ አወቃቀሮችን የሚተገብሩ የተለመዱ ነገሮችን መጠቀም ያስፈልጋል።
ለምሳሌ፣ Redis ሃሽማፕ ያከማቻል “telegram_user_id => በወረፋው ውስጥ ያሉ ንቁ ተግባራት ብዛት”፣ ይህም ከአንድ ተጠቃሚ የሚቀርቡትን ጥያቄዎች በተወሰነ እሴት እንዲገድቡ እና በዚህም የ DoS ጥቃቶችን ለመከላከል ያስችላል።
የተሳካ የምስል ሂደትን መደበኛ እናድርገው።
- ተጠቃሚው ምስልን ወደ ቴሌግራም ቦት ይልካል
- "attrai-telegram-bot" ከቴሌግራም ኤፒአይ መልእክት ተቀብሎ ይተነትናል።
- ከምስሉ ጋር ያለው ተግባር ወደ አልተመሳሰል ወረፋ "ለመገመት_" ታክሏል
- ተጠቃሚው በታቀደው የግምገማ ጊዜ መልእክት ይቀበላል
- “attrai-estimator” ከ “ለመገመት” ወረፋ አንድ ተግባር ይወስዳል፣ ግምቶቹን በቧንቧ መስመር ያስኬዳል እና ተግባሩን ወደ “በኋላ_ግምት” ወረፋ ያስወጣል።
- "attrai-telegram-bot" "በኋላ_ግምት" ወረፋ በማዳመጥ ውጤቱን ለተጠቃሚው ይልካል
DevOps
በመጨረሻም ፣ ስነ-ህንፃውን ከገመገሙ በኋላ ፣ ወደ ተመሳሳይ አስደሳች ክፍል - DevOps መሄድ ይችላሉ።
የዶከር መንጋ
“መንጋ”ን በመጠቀም በክላስተር ውስጥ ያሉ ሁሉም አንጓዎች በሁለት ዓይነቶች ሊከፈሉ ይችላሉ - ሠራተኛ እና ሥራ አስኪያጅ። በመጀመሪያው ዓይነት ማሽኖች ላይ የእቃ መያዣዎች (ቁልሎች) ቡድኖች ተዘርግተዋል, የሁለተኛው ዓይነት ማሽኖች የመጠን, የማመጣጠን እና የመቆጣጠር ሃላፊነት አለባቸው.
ክላስተር ከአንድ መሪ አስተዳዳሪ እና ሶስት ሰራተኞች ጋር
የሚቻለው ዝቅተኛው የክላስተር መጠን 1 መስቀለኛ መንገድ ነው፤ ነጠላ ማሽን በአንድ ጊዜ እንደ መሪ አስተዳዳሪ እና ሰራተኛ ሆኖ ይሰራል። በፕሮጀክቱ መጠን እና ለስህተቶች መቻቻል ዝቅተኛ መስፈርቶች ላይ በመመስረት, ይህንን ዘዴ ለመጠቀም ተወስኗል.
ወደ ፊት እያየሁ እላለሁ ፣ በሰኔ አጋማሽ ላይ ከነበረው የመጀመሪያው የምርት አቅርቦት ጀምሮ ፣ ከዚህ ክላስተር ድርጅት ጋር የተዛመዱ ችግሮች አልነበሩም (ይህ ማለት ግን እንዲህ ዓይነቱ ድርጅት በማንኛውም መካከለኛ ትልቅ ተቀባይነት አለው ማለት አይደለም) ። ፕሮጀክቶች, ለስህተት መቻቻል መስፈርቶች ተገዢ ናቸው).
ዶከር ቁልል
በመንጋ ሁነታ፣ ቁልሎችን (የዶክ አገልግሎት ስብስቦችን) የማሰማራት ኃላፊነት አለበት።
በተጨማሪ የማሰማራት አማራጮችን እንድትጠቀም የሚያስችሎት ዶክ አቀናባሪ ውቅሮችን ይደግፋል።
ለምሳሌ፣ እነዚህን መመዘኛዎች በመጠቀም፣ ለእያንዳንዱ የግምገማ የማይክሮ ሰርቪስ ሁኔታዎች ግብአቶች የተገደቡ ነበሩ (N ኮርሶችን ለኤን አጋጣሚዎች እንመድባለን ፣ በማይክሮ ሰርቪስ እራሱ በፒቶርች የሚጠቀሙትን የኮሮች ብዛት ወደ አንድ እንገድባለን)
attrai_estimator:
image: 'erqups/attrai_estimator:1.2'
deploy:
replicas: 4
resources:
limits:
cpus: '4'
restart_policy:
condition: on-failure
…
Redis፣ RabbitMQ እና Graylog መንግስታዊ አገልግሎቶች መሆናቸውን እና እንደ “attrai-estimator” በቀላሉ ሊመዘኑ እንደማይችሉ ልብ ማለት ያስፈልጋል።
ለጥያቄው ጥላ - ለምን Kubernetes አይሆንም?
ኩበርኔትስን በትንንሽ እና መካከለኛ መጠን ያላቸውን ፕሮጀክቶች መጠቀም ከራስ በላይ የሆነ ይመስላል፤ ሁሉም አስፈላጊ ተግባራት ከዶከር ስዋርም ማግኘት ይቻላል፣ ይህም ለኮንቴይነር ኦርኬስትራ በጣም ለተጠቃሚ ምቹ እና እንዲሁም የመግባት እንቅፋት ዝቅተኛ ነው።
መሰረተ ልማት
ይህ ሁሉ በ VDS ላይ ከሚከተሉት ባህሪያት ጋር ተዘርግቷል.
- ሲፒዩ: 4 አንጎለ Intel® Xeon® ወርቅ 5120 ሲፒዩ @ 2.20GHz
- ራም: 8 ጊባ
- SSD: 160 ጊባ
ከአካባቢው ጭነት ሙከራ በኋላ፣ በከባድ የተጠቃሚዎች ፍሰት ይህ ማሽን በቂ ሊሆን የሚችል ይመስላል።
ነገር ግን ከተሰማሩ በኋላ ወዲያውኑ በሲአይኤስ ውስጥ በጣም ታዋቂ ከሆኑ የምስል ሰሌዳዎች (ዩፕ ፣ ያኛው) ጋር አገናኝ ለጥፌያለሁ ፣ ከዚያ በኋላ ሰዎች ፍላጎት ነበራቸው እና በጥቂት ሰዓታት ውስጥ አገልግሎቱ በአስር ሺዎች የሚቆጠሩ ምስሎችን በተሳካ ሁኔታ አከናውኗል። በተመሳሳይ ጊዜ፣ በከፍታ ጊዜ፣ ሲፒዩ እና ራም ሃብቶች በግማሽ እንኳን ጥቅም ላይ አልዋሉም።
አንዳንድ ተጨማሪ ግራፊክስ
ከተሰማሩበት ጊዜ ጀምሮ የልዩ ተጠቃሚዎች ብዛት እና የግምገማ ጥያቄዎች፣ እንደ ቀን
የግምገማ ቧንቧ መስመር ጊዜ ስርጭት
ግኝቶች
ለማጠቃለል ያህል የኮንቴይነሮችን አቀነባበር አርክቴክቸር እና አቀራረብ እራሳቸውን ሙሉ በሙሉ ያጸደቁ ናቸው ማለት እችላለሁ - በከፍታ ጊዜያት እንኳን በማቀነባበሪያ ጊዜ ውስጥ ምንም ጠብታዎች ወይም መውደቅ አልነበሩም።
እኔ እንደማስበው በሲፒዩ ላይ በሲፒዩ ላይ በእውነተኛ ጊዜ የነርቭ ኔትወርኮችን በእውነተኛ ጊዜ ግምት የሚጠቀሙ አነስተኛ እና መካከለኛ መጠን ያላቸው ፕሮጀክቶች በዚህ ጽሑፍ ውስጥ የተገለጹትን ልምዶች በተሳካ ሁኔታ ሊቀበሉ ይችላሉ ።
መጀመሪያ ላይ ጽሁፉ ረዘም ያለ መሆኑን እጨምራለሁ, ነገር ግን ለረጅም ጊዜ ለማንበብ ላለመለጠፍ, በዚህ ጽሑፍ ውስጥ አንዳንድ ነጥቦችን ለመተው ወሰንኩ - ወደፊት በሚታተሙ ህትመቶች ውስጥ ወደ እነርሱ እንመለሳለን.
ቦቱን በቴሌግራም - @AttraiBot ላይ ማድረግ ትችላለህ፣ ቢያንስ እስከ መጸው 2020 መጨረሻ ድረስ ይሰራል። ምንም የተጠቃሚ ውሂብ እንዳልተከማቸ ላስታውስህ - የመጀመሪያዎቹ ምስሎችም ሆነ የግምገማ ቧንቧው ውጤቶች - ሁሉም ነገር ከተሰራ በኋላ ይፈርሳል።
ምንጭ: hab.com