ማስታወሻ. ትርጉም፡- ከWeaveworks የተወሰደው ይህ የእግር ጉዞ በጣም ተወዳጅ የሆኑትን የመተግበሪያ ልቀት ስልቶችን እና በጣም የላቁ እንዴት በፍላገር ኩበርኔትስ ኦፕሬተር እንዴት መተግበር እንደሚችሉ ያስተዋውቃል። በቀላል ቋንቋ የተፃፈ ሲሆን ጀማሪ መሐንዲሶችም ጉዳዩን እንዲረዱ የሚያስችል የእይታ ሥዕላዊ መግለጫዎችን ይዟል።
የተወሰደ ሥዕላዊ መግለጫ
ዛሬ የደመና ቤተኛ አፕሊኬሽኖችን በማዘጋጀት ላይ ካሉት ትልቁ ፈተናዎች አንዱ የማሰማራት ፍጥነት ነው። በማይክሮ ሰርቪስ አቀራረብ፣ ገንቢዎች ቀድሞውኑ ሙሉ ለሙሉ ሞጁል አፕሊኬሽኖችን እየነደፉ ሲሆን ይህም የተለያዩ ቡድኖች ኮድ እንዲጽፉ እና በተመሳሳይ ጊዜ በመተግበሪያው ላይ ለውጦችን እንዲያደርጉ ያስችላቸዋል።
አጭር እና ብዙ ተደጋጋሚ ማሰማራት የሚከተሉት ጥቅሞች አሉት።
- ለገበያ የሚሆን ጊዜ ቀንሷል።
- አዲስ ባህሪያት ለተጠቃሚዎች በፍጥነት ያገኛሉ.
- የተጠቃሚ ግብረመልስ ወደ ልማት ቡድኑ በፍጥነት ይደርሳል። ይህ ማለት ቡድኑ ባህሪያትን ማከል እና ችግሮችን በበለጠ ፍጥነት ማስተካከል ይችላል ማለት ነው።
- የገንቢ ሞራል ከፍ ይላል፡ በልማት ውስጥ ያሉ ተጨማሪ ባህሪያት አብሮ መስራት የበለጠ አስደሳች ነው።
ነገር ግን የመልቀቂያ ድግግሞሽ እየጨመረ በሄደ ቁጥር የመተግበሪያ አስተማማኝነት ወይም የተጠቃሚ ተሞክሮ ላይ አሉታዊ ተጽእኖ የመፍጠር እድላቸው ይጨምራል። ለዚህም ነው ለኦፕሬሽኖች እና ለዴቭኦፕስ ቡድኖች ሂደቶችን መገንባት እና የምርት እና የተጠቃሚዎችን ስጋት በሚቀንስ መልኩ የማሰማራት ስልቶችን ማስተዳደር አስፈላጊ የሆነው። (የሲአይ/ሲዲ ቧንቧ መስመርን ስለማስተካከያ የበለጠ ለማወቅ፣ ይመልከቱ
በዚህ ልኡክ ጽሁፍ ላይ የተለያዩ የኩበርኔትስ የማሰማራት ስልቶችን፣ የመንከባለል ማሰማራትን እና የበለጠ የላቁ ዘዴዎችን እንደ ካናሪ መልቀቅ እና ልዩነቶቻቸውን እንነጋገራለን።
የማሰማራት ስልቶች
እንደ ዓላማው ጥቅም ላይ ሊውሉ የሚችሉ በርካታ የተለያዩ የማሰማራት ስልቶች አሉ። ለምሳሌ፣ ለተጨማሪ ሙከራ በአንዳንድ አካባቢ ላይ ለውጦችን ማድረግ ወይም የተጠቃሚዎች/ደንበኞች ንዑስ ስብስብ ወይም ባህሪ ከማድረግዎ በፊት በተጠቃሚዎች ላይ የተገደበ ሙከራ ማድረግ ሊኖርብዎ ይችላል። የህዝብ.
ማሽከርከር (ቀስ በቀስ፣ የሚንከባለል ማሰማራት)
ይህ የኩበርኔትስ መደበኛ የማሰማራት ስልት ነው። ቀስ በቀስ, አንድ በአንድ, ፖድቹን በአሮጌው የመተግበሪያው ስሪት በፖዳዎች በአዲስ ስሪት ይተካዋል - ክላስተር ያለማቋረጥ.
ኩበርኔትስ አዲስ ፖድ ለመዘጋጀት ይጠብቃል (በመፈተሽ
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: awesomeapp
spec:
replicas: 3
template:
metadata:
labels:
app: awesomeapp
spec:
containers:
- name: awesomeapp
image: imagerepo-user/awesomeapp:new
ports:
- containerPort: 8080
የመንከባለል ዝማኔ ግቤቶች በአንጸባራቂ ፋይል ውስጥ ሊገለጹ ይችላሉ፡-
spec:
replicas: 3
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
template:
...
እንደገና ፍጠር (እንደገና መፈጠር)
በዚህ በጣም ቀላል የማሰማራት አይነት፣ አሮጌ ፖድዎች በአንድ ጊዜ ይገደላሉ እና በአዲስ ይተካሉ፡
ተጓዳኝ አንጸባራቂው ይህን ይመስላል።
spec:
replicas: 3
strategy:
type: Recreate
template:
...
ሰማያዊ/አረንጓዴ (ሰማያዊ-አረንጓዴ ማሰማራት)
ሰማያዊ-አረንጓዴ የማሰማራት ስትራቴጂ (አንዳንድ ጊዜ ቀይ/ጥቁር ተብሎም ይጠራል፣ ማለትም ቀይ-ጥቁር) የመተግበሪያውን አሮጌ (አረንጓዴ) እና አዲስ (ሰማያዊ) ስሪቶችን በአንድ ጊዜ ማሰማራትን ያካትታል። ሁለቱም ስሪቶች አንዴ ከተስተናገዱ አረንጓዴው ለአጠቃላይ ተጠቃሚ ሲሆን ሰማያዊው ደግሞ ለ QA ቡድን በተለየ አገልግሎት ወይም በቀጥታ ወደብ በማስተላለፍ ሙከራዎችን በራስ ሰር ለማካሄድ ይገኛል።
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: awesomeapp-02
spec:
template:
metadata:
labels:
app: awesomeapp
version: "02"
ሰማያዊው (አዲሱ) ስሪት ተፈትኖ ለመልቀቅ ከተፈቀደ በኋላ አገልግሎቱ ወደ እሱ ይቀየራል እና አረንጓዴው (አሮጌው) ይቀንሳል፡
apiVersion: v1
kind: Service
metadata:
name: awesomeapp
spec:
selector:
app: awesomeapp
version: "02"
...
ካናሪ (የካናሪ ማሰማራት)
የካናሪ ልቀቶች ከሰማያዊ-አረንጓዴ ጋር ተመሳሳይ ናቸው፣ ግን በተሻለ ቁጥጥር እና ጥቅም ላይ ይውላሉ
ይህ ስልት ጥቅም ላይ የሚውለው አንዳንድ አዲስ ተግባራት መፈተሽ ሲያስፈልግ ነው፣ አብዛኛውን ጊዜ በመተግበሪያው ጀርባ። የአቀራረብ ዋናው ነገር ሁለት ተመሳሳይ አገልጋዮችን መፍጠር ነው-አንደኛው ሁሉንም ማለት ይቻላል ሁሉንም ተጠቃሚዎችን ያገለግላል ፣ ሌላኛው ደግሞ ከአዳዲስ ባህሪዎች ጋር ፣ አነስተኛ የተጠቃሚዎች ቡድን ብቻ ያገለግላል ፣ ከዚያ በኋላ የሥራቸው ውጤት ይነፃፀራል። ሁሉም ነገር ያለ ስሕተት ከሄደ አዲሱ ስሪት ቀስ በቀስ ወደ መላው መሠረተ ልማት ተዘርግቷል።
ምንም እንኳን ይህ ስልት Kubernetes ን በመጠቀም የቆዩ ፖድዎችን በአዲስ መተካት ቢቻልም እንደ ኢስቲዮ ያለ የአገልግሎት መረብ መጠቀም የበለጠ ምቹ እና ቀላል ነው።
ለምሳሌ፣ ሁለት የተለያዩ የጂት መገለጫዎች ሊኖሩዎት ይችላሉ፡ መደበኛው 0.1.0 መለያ እና ካናሪ አንድ 0.2.0 መለያ ያለው። በ Istio Virtual Gateway መግለጫ ውስጥ ያሉትን ክብደቶች በመቀየር በእነዚህ ሁለት ማሰማራቶች መካከል ያለውን የትራፊክ ስርጭት መቆጣጠር ይችላሉ፡
ከኢስቲዮ ጋር የካናሪ ማሰማራትን ለመተግበር የደረጃ በደረጃ መመሪያ በ ውስጥ ይገኛል።
የካናሪ ማሰማራቶች በWeaveworks Flagger
ባንዲራ ከነሱ ጋር አብሮ ይሰራል። ትራፊክን ለመምራት እና ለመቀየር Istio ወይም AWS App Meshን እና የፕሮሜቲየስ መለኪያዎችን ይጠቀማል። በተጨማሪም የካናሪ ማሰማራት ትንተና የመቀበያ ፈተናዎችን፣ የጭነት ሙከራዎችን እና ሌሎች የቼኮችን አይነቶችን ለማካሄድ በዌብ መንጠቆዎች ሊሟላ ይችላል።
የኩበርኔትስ ማሰማራትን መሰረት በማድረግ እና አስፈላጊ ከሆነም ስኬል-ውጭ ፖድስ (HPA) Flagger የነገሮችን ስብስቦችን ይፈጥራል (Kubernetes deployments፣ClusterIP services እና Istio or App Mesh ምናባዊ አገልግሎቶች) የካናሪ ማሰማራቶችን ለመተንተን፡-
የመቆጣጠሪያ ዑደትን በመተግበር ላይ (የቁጥጥር ዑደት)እንደ HTTP ጥያቄ ስኬት መጠን፣ አማካይ የጥያቄ ቆይታ እና የፖድ ጤና ያሉ ቁልፍ የአፈጻጸም መለኪያዎችን እየለካ ባንዲራ ቀስ በቀስ ትራፊክ ወደ ካናሪ አገልጋይ ይቀይራል። በ KPIs (የቁልፍ አፈጻጸም አመልካቾች) ትንተና ላይ በመመርኮዝ የካናሪው ክፍል ያድጋል ወይም ይቀንሳል, እና የትንታኔው ውጤት ለ Slack ታትሟል. የዚህን ሂደት መግለጫ እና ማሳያ በማቴሪያል ውስጥ ማግኘት ይቻላል
ጨለማ (የተደበቀ) ወይም A/B ማሰማራት
ስውር ማሰማራት ሌላው የካናሪ ስትራቴጂ ልዩነት ነው (በነገራችን ላይ ፍላገር አብሮ መስራት ይችላል)። በድብቅ እና በካናሪ ማሰማራቶች መካከል ያለው ልዩነት ስውር ማሰማራቶች የፊት ለፊት ክፍልን እንጂ እንደ የካናሪ ማሰማራቶች የኋላ ኋላ አለመሆኑ ነው።
የእነዚህ ማሰማራቶች ሌላ ስም የኤ/ቢ ሙከራ ነው። ለሁሉም ተጠቃሚዎች አዲስ ባህሪ መዳረሻን ከመክፈት ይልቅ የሚቀርበው ለተወሰነ ክፍል ብቻ ነው። በተለምዶ እነዚህ ተጠቃሚዎች ፈር ቀዳጅ ሞካሪዎች መሆናቸውን አያውቁም (ስለዚህ "ዝምታ ማሰማራት" የሚለው ቃል)።
ከተግባር መቀየሪያዎች ጋር (የባህሪ መቀየሪያዎች) እና ሌሎች መሳሪያዎች፣ ተጠቃሚዎች ከአዲስ ባህሪ ጋር እንዴት እንደሚገናኙ፣ ለሱ ሱስ እንደያዙ ወይም አዲሱ የተጠቃሚ በይነገጽ ግራ የሚያጋባ ሆኖ ሲያገኙት እና ሌሎች የመለኪያ ዓይነቶችን መከታተል ይችላሉ።
ባንዲራ እና ኤ/ቢ ማሰማራቶች
ከተመዘነ መስመር በተጨማሪ ባንዲራ በኤችቲቲፒ መለኪያዎች ላይ በመመስረት ትራፊክን ወደ ካናሪ አገልጋይ ማምራት ይችላል። የA/B ሙከራ የተወሰኑ የተጠቃሚዎችን ክፍል ለማዞር HTTP ራስጌዎችን ወይም ኩኪዎችን መጠቀም ይችላል። ይህ በተለይ ክፍለ ጊዜው ከአገልጋዩ ጋር እንዲታሰር በሚፈልጉ የፊት ለፊት አፕሊኬሽኖች ጉዳይ ላይ ውጤታማ ነው። (የክፍለ ጊዜ ዝምድና). ተጨማሪ መረጃ በሰንደቅ ዓላማ ሰነድ ውስጥ ይገኛል።
ደራሲው አመስጋኝ ነው።
PS ከተርጓሚ
በብሎጋችን ላይ ያንብቡ፡-
- «
ለ Kubernetes የ Ingress መቆጣጠሪያዎች አጠቃላይ እይታ እና ንፅፅር "; - «
werf - የእኛ መሳሪያ ለ CI / ሲዲ በኩበርኔትስ (አጠቃላይ እይታ እና የቪዲዮ ዘገባ) "; - «
ተመሳሳይ ጥቃቅን አገልግሎቶችን በ werf እና GitLab CI መገንባት እና ማሰማራት "; - «
GitOps ምንድን ነው? ».
ምንጭ: hab.com