ڪبرنيٽس ۾ ترتيب ڏيڻ واري حڪمت عمليون: رولنگ، ٻيهر ٺاهڻ، نيرو / سائو، ڪينري، اونداهو (A/B جاچ)

نوٽ ترجمو: Weaveworks کان هي جائزو سڀ کان وڌيڪ مشهور ايپليڪيشن رول آئوٽ حڪمت عملين کي متعارف ڪرايو آهي ۽ ڏيکاري ٿو ته ڪيئن سڀ کان وڌيڪ ترقي يافته آهن ڪبرنيٽس فليگر آپريٽر استعمال ڪندي لاڳو ڪري سگهجن ٿيون. اهو سادي ٻولي ۾ لکيو ويو آهي ۽ بصري ڊراگرامس تي مشتمل آهي جيڪي اڃا به نوان انجنيئرن کي مسئلي کي سمجهڻ جي اجازت ڏين ٿا.

ڪبرنيٽس ۾ ترتيب ڏيڻ واري حڪمت عمليون: رولنگ، ٻيهر ٺاهڻ، نيرو / سائو، ڪينري، اونداهو (A/B جاچ)
خاڪو ان مان ورتو ويو آهي ٻيو جائزو ڪنٽينر حل ۾ ٺاهيل رول آئوٽ حڪمت عمليون

اڄ ڪلائوڊ جي اصلي ايپليڪيشنن کي ترقي ڪرڻ ۾ سڀ کان وڏو چيلنجز تيزيءَ سان لڳائڻ آهي. مائڪرو سروسز جي طريقي ۾، ڊولپر اڳ ۾ ئي ڪم ڪن ٿا ۽ مڪمل طور تي ماڊلر ايپليڪيشنن کي ڊزائين ڪن ٿا، مختلف ٽيمن کي هڪ ئي وقت ڪوڊ لکڻ ۽ ايپليڪيشن ۾ تبديليون ڪرڻ جي اجازت ڏئي ٿو.

ننڍو ۽ وڌيڪ بار بار لڳائڻ جا هيٺيان فائدا آهن:

  • مارڪيٽ جو وقت گهٽجي ويو آهي.
  • نيون خاصيتون تيزيء سان صارفين تائين پهچن ٿيون.
  • صارف جي راءِ تيزيءَ سان ڊولپمينٽ ٽيم تائين پھچي ٿي. هن جو مطلب آهي ٽيم خاصيتون شامل ڪري سگهي ٿي ۽ مسئلن کي وڌيڪ جلدي حل ڪري سگهي ٿي.
  • ڊولپر جو حوصلو وڌي ٿو: ترقي ۾ وڌيڪ خاصيتون ڪم ڪرڻ لاءِ وڌيڪ مزيدار آهن.


پر جيئن ته رليز جي تعدد وڌندي آهي، ايپليڪيشن جي اعتبار يا صارف جي تجربي تي منفي اثر انداز ٿيڻ جا موقعا پڻ وڌندا آهن. انهي ڪري اهو ضروري آهي ته آپريشنز ۽ DevOps ٽيمن لاءِ پروسيس ٺاهڻ ۽ ترتيب ڏيڻ واري حڪمت عملين کي منظم ڪرڻ جي طريقي سان جيڪا پيداوار ۽ استعمال ڪندڙن لاءِ خطري کي گهٽائي ٿي. (توهان CI/CD پائپ لائن آٽوميشن بابت وڌيڪ سکي سگهو ٿا هتي.)

هن پوسٽ ۾، اسان ڪبرنيٽس ۾ مختلف ترتيب ڏيڻ واري حڪمت عملي تي بحث ڪنداسين، بشمول رولنگ ڊيپلائيشنز ۽ وڌيڪ جديد طريقا جهڙوڪ ڪينري رول آئوٽ ۽ انهن جي مختلف قسمن.

لڳائڻ جي حڪمت عمليون

اتي ڪيترائي مختلف قسم جا ترتيب ڏيڻ واري حڪمت عمليون آھن جيڪي توھان استعمال ڪري سگھوٿا توھان جي مقصد جي لحاظ سان. مثال طور، توهان کي وڌيڪ جانچ لاءِ ڪنهن خاص ماحول ۾ تبديليون ڪرڻ جي ضرورت پوندي، يا استعمال ڪندڙن/ڪلائنٽس جي ذيلي سيٽ ۾، يا توهان کي فيچر ٺاهڻ کان پهريان محدود استعمال ڪندڙ ٽيسٽ ڪرڻ جي ضرورت پوندي. عوامي.

رولنگ (تدريسي، "رولنگ" تعیناتي)

هي آهي معياري ترتيب ڏيڻ واري حڪمت عملي Kubernetes ۾. اهو تدريجي طور تي، هڪ هڪ ڪري، پوڊ کي نئين ورزن سان پوڊز سان ايپليڪيشن جي پراڻي ورزن سان تبديل ڪري ٿو - بغير ڪلستر بند ٿيڻ جي.

ڪبرنيٽس ۾ ترتيب ڏيڻ واري حڪمت عمليون: رولنگ، ٻيهر ٺاهڻ، نيرو / سائو، ڪينري، اونداهو (A/B جاچ)

ڪبرنيٽس انتظار ڪري ٿو جيستائين نوان پوڊ ڪم ڪرڻ لاءِ تيار نه ٿين (انهن کي استعمال ڪندي چيڪ ڪرڻ تياري جا امتحان)، ان کان اڳ جو توهان پراڻن کي رول ڪرڻ شروع ڪيو. جيڪڏهن ڪو مسئلو ٿئي ٿي، ته هي رولنگ اپڊيٽ مڪمل ڪلستر کي روڪڻ کان سواءِ ختم ڪري سگهجي ٿو. YAML فائل ۾ بيان ڪرڻ واري قسم جي وضاحت ڪندي، نئين تصوير پراڻي تصوير کي تبديل ڪري ٿي:

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:
  ...

ٻيهر ٺاهڻ

هن سادي قسم جي ترتيب ۾، پراڻا پوڊ هڪ ئي وقت ماريا ويندا آهن ۽ نئين سان تبديل ڪيا ويندا آهن:

ڪبرنيٽس ۾ ترتيب ڏيڻ واري حڪمت عمليون: رولنگ، ٻيهر ٺاهڻ، نيرو / سائو، ڪينري، اونداهو (A/B جاچ)

لاڳاپيل منشور هن طرح ڪجهه ڏسڻ ۾ اچي ٿو:

spec:
  replicas: 3
  strategy:
    type: Recreate
  template:
  ...

نيرو / سائو (نيرو-سائي ڊيپلائيشن)

نيري-سائي ترتيب ڏيڻ واري حڪمت عملي (ڪڏهن ڪڏهن ڳاڙهي/ڪارو پڻ سڏيو ويندو آهي) ايپليڪيشن جي پراڻي (سائي) ۽ نئين (نيرو) نسخن جي هڪ ئي وقت ۾ ترتيب ڏيڻ شامل آهي. ٻنهي ورزن کي پوسٽ ڪرڻ کان پوءِ، باقاعده استعمال ڪندڙن کي سائي تائين رسائي هوندي آهي، جڏهن ته نيرو هڪ QA ٽيم لاءِ دستياب آهي ته جيئن پاڻمرادو ٽيسٽن کي الڳ سروس ذريعي يا سڌو پورٽ فارورڊنگ:

ڪبرنيٽس ۾ ترتيب ڏيڻ واري حڪمت عمليون: رولنگ، ٻيهر ٺاهڻ، نيرو / سائو، ڪينري، اونداهو (A/B جاچ)

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"
...

ڪينري (ڪينري ڊيپلائيمينٽ)

ڪينري رول آئوٽ نيري-سائي رول آئوٽ جھڙا آھن، پر بھتر ڪنٽرول ۽ استعمال آھن ترقي پسند قدم قدم جو طريقو. ھن قسم ۾ ڪيترائي مختلف حڪمت عمليون شامل آھن، جن ۾ ”چپ“ لانچون ۽ A/B جاچ شامل آھن.

هي حڪمت عملي استعمال ڪئي ويندي آهي جڏهن ڪجهه نئين ڪارڪردگي کي آزمائي ڪرڻ جي ضرورت آهي، عام طور تي ايپليڪيشن جي پس منظر ۾. طريقه ڪار جو جوهر اهو آهي ته ٻه لڳ ڀڳ هڪجهڙا سرور ٺاهيا وڃن: هڪ لڳ ڀڳ سڀني صارفين جي خدمت ڪندو آهي، ۽ ٻيو، نون ڪمن سان، صارفين جي صرف هڪ ننڍڙي ذيلي گروپ جي خدمت ڪندو آهي، جنهن کان پوء انهن جي ڪم جي نتيجن جو مقابلو ڪيو ويندو آهي. جيڪڏهن هر شي بغير ڪنهن غلطي جي ٿي وڃي ٿي، نئين نسخي کي تدريجي طور تي پوري انفراسٽرڪچر ڏانهن وڌايو ويندو آهي.

جيتوڻيڪ هن حڪمت عملي کي خاص طور تي Kubernetes استعمال ڪندي لاڳو ڪري سگهجي ٿو، پراڻن پوڊن کي نئين سان تبديل ڪري، Istio وانگر سروس ميش استعمال ڪرڻ تمام گهڻو آسان ۽ آسان آهي.

مثال طور، توهان وٽ Git ۾ ٻه مختلف پڌرا هوندا: هڪ باقاعده پڌرنامو ٽيگ 0.1.0 سان ۽ هڪ ڪينري منشور ٽيگ 0.2.0 سان. Istio ورچوئل گيٽ وي مينيفيسٽ ۾ وزن تبديل ڪرڻ سان، توھان ڪنٽرول ڪري سگھو ٿا ٽريفڪ جي ورڇ کي ھنن ٻن ڊيپلائيمينٽن جي وچ ۾:

ڪبرنيٽس ۾ ترتيب ڏيڻ واري حڪمت عمليون: رولنگ، ٻيهر ٺاهڻ، نيرو / سائو، ڪينري، اونداهو (A/B جاچ)

Istio استعمال ڪندي ڪينري ڊيپلائيشن کي لاڳو ڪرڻ لاءِ قدم قدم گائيڊ لاءِ، ڏسو GitOps Workflows Istio سان. (نوٽ. ترجمو: اسان ڪينري رول آئوٽ بابت مواد پڻ اسٽيو ۾ ترجمو ڪيو هتي.)

Weaveworks Flagger سان ڪينري ڊيپلائيمينٽ

Weaveworks پرچمگر توهان کي آساني سان ۽ مؤثر طريقي سان ڪينري رول آئوٽ کي منظم ڪرڻ جي اجازت ڏئي ٿي.

Flagger automates انھن سان گڏ ڪم. اهو استعمال ڪري ٿو Istio يا AWS ايپ ميش رستي ۽ ٽريفڪ کي مٽائڻ لاءِ، ۽ نتيجن جو تجزيو ڪرڻ لاءِ Prometheus metrics. ان کان علاوه، ڪينري جي ترتيبن جو تجزيو قبول ڪري سگھجي ٿو ويب هوڪس سان گڏ قبوليت جا امتحان، لوڊ ٽيسٽ، ۽ ٻين قسمن جي چڪاس ڪرڻ لاء.

ڪبرنيٽس جي مقرري جي بنياد تي ۽، جيڪڏهن ضروري هجي ته، پوڊس جي افقي اسڪيلنگ (HPA)، Flagger ٺاهي ٿو شيون جا سيٽ (Kubernetes deployments، ClusterIP خدمتون ۽ Istio يا App Mesh ورچوئل سروسز) ڪينري ڊيپلائيشن جو تجزيو ۽ ان تي عمل ڪرڻ لاءِ:

ڪبرنيٽس ۾ ترتيب ڏيڻ واري حڪمت عمليون: رولنگ، ٻيهر ٺاهڻ، نيرو / سائو، ڪينري، اونداهو (A/B جاچ)

ڪنٽرول لوپ کي لاڳو ڪرڻ (ڪنٽرول لوپ),Flagger تيزيءَ سان ٽريفڪ کي ڪينري سرور ڏانهن تبديل ڪري ٿو، جڏهن ته گڏوگڏ اهم ڪارڪردگي جي ماپن کي ماپيندي آهي جيئن ته ڪامياب HTTP درخواستن جو سيڪڙو، سراسري درخواست جي مدت، ۽ پوڊ صحت. KPI (Key Performance Indicators) جي تجزيي جي بنياد تي، ڪينري يا ته وڌي ٿي يا ختم ٿي وڃي ٿي ۽ تجزيي جا نتيجا سليڪ ۾ شايع ٿين ٿا. هن عمل جي وضاحت ۽ نمائش مواد ۾ ملي سگهي ٿي ايپ ميش لاءِ ترقي پسند ترسيل.

ڪبرنيٽس ۾ ترتيب ڏيڻ واري حڪمت عمليون: رولنگ، ٻيهر ٺاهڻ، نيرو / سائو، ڪينري، اونداهو (A/B جاچ)

اونداهي (لڪيل) يا A/B جي ترتيب

اسٽيلٿ ڊبليشن ڪينري حڪمت عملي جي هڪ ٻي تبديلي آهي (جنهن جي ذريعي، فليگر پڻ ڪم ڪري سگهي ٿو). اسٽيلٿ ۽ ڪينري ڊيپلائيمينٽس جي وچ ۾ فرق اهو آهي ته اسٽيلٿ ڊيپلائيمينٽس فرنٽ اينڊ سان ڊيل ڪن ٿيون بلڪه ڪينري ڊيپلائيمينٽس وانگر پٺاڻن سان.

انهن مقررين جو ٻيو نالو A/B جاچ آهي. نئين فيچر کي سڀني استعمال ڪندڙن لاءِ دستياب ڪرڻ بدران، اها پيش ڪئي وئي آهي انهن مان صرف هڪ محدود حصي لاءِ. عام طور تي، اهي استعمال ڪندڙ بي خبر آهن ته اهي اڳڀرائي جاچ ڪندڙ آهن (تنهنڪري اصطلاح "چپڻ جي تعیناتي").

ڪارڪردگي سوئچ استعمال ڪندي (فيچر ٽوگل) ۽ ٻيا اوزار، توهان مانيٽر ڪري سگهو ٿا ته صارفين نئين خصوصيت سان ڪيئن لهه وچڙ ۾ اچن ٿا، ڇا اهي ان سان مصروف آهن، يا ڇا انهن کي نئون يوزر انٽرفيس مونجهارو لڳي ٿو، ۽ ٻين قسمن جي ميٽرڪس.

ڪبرنيٽس ۾ ترتيب ڏيڻ واري حڪمت عمليون: رولنگ، ٻيهر ٺاهڻ، نيرو / سائو، ڪينري، اونداهو (A/B جاچ)

فليگر ۽ A/B مقرريون

وزن جي بنياد تي رستي جي اضافي ۾، Flagger پڻ HTTP پيٽرولر جي بنياد تي ڪينري سرور ڏانهن ٽرئفڪ کي روٽ ڪري سگھي ٿو. A/B جاچ ۾، توهان استعمال ڪري سگهو ٿا HTTP هيڊر يا ڪوڪيز استعمال ڪندڙن جي مخصوص حصي کي نشانو بڻائڻ لاءِ. اهو خاص طور تي اثرائتو آهي فرنٽ اينڊ ايپليڪيشنن جي صورت ۾ جنهن کي سيشن بائنڊنگ سرور جي ضرورت هوندي آهي (سيشن لاڳاپو). وڌيڪ معلومات ملي سگهي ٿي Flagger دستاويزن ۾.

ليکڪ شڪرگذاري جو اظهار ڪري ٿو اسٽيفن پرودان، Weaveworks انجنيئر (۽ فليگر جو خالق)، انهن سڀني شاندار ترتيب ڏيڻ واري نموني لاء.

پي ايس مترجم کان

اسان جي بلاگ تي پڻ پڙهو:

جو ذريعو: www.habr.com

تبصرو شامل ڪريو