குபெர்னெட்டஸில் வரிசைப்படுத்தல் உத்திகள்: உருட்டுதல், மீண்டும் உருவாக்குதல், நீலம்/பச்சை, கேனரி, இருண்ட (A/B சோதனை)

குறிப்பு மொழிபெயர்ப்பு: Weaveworks இன் இந்த கண்ணோட்டம் மிகவும் பிரபலமான பயன்பாட்டு வெளியீடு உத்திகளை அறிமுகப்படுத்துகிறது மற்றும் குபெர்னெட்ஸ் ஃபிளாகர் ஆபரேட்டரைப் பயன்படுத்தி மிகவும் மேம்பட்டவற்றை எவ்வாறு செயல்படுத்தலாம் என்பதைக் காட்டுகிறது. இது எளிமையான மொழியில் எழுதப்பட்டுள்ளது மற்றும் புதிய பொறியாளர்கள் கூட சிக்கலைப் புரிந்துகொள்ள அனுமதிக்கும் காட்சி வரைபடங்களைக் கொண்டுள்ளது.

குபெர்னெட்டஸில் வரிசைப்படுத்தல் உத்திகள்: உருட்டுதல், மீண்டும் உருவாக்குதல், நீலம்/பச்சை, கேனரி, இருண்ட (A/B சோதனை)
வரைபடம் எடுக்கப்பட்டது மற்றொரு விமர்சனம் கன்டெய்னர் சொல்யூஷன்களில் உருவாக்கப்பட்ட ரோல்அவுட் உத்திகள்

இன்று கிளவுட் நேட்டிவ் அப்ளிகேஷன்களை உருவாக்குவதில் உள்ள மிகப்பெரிய சவால்களில் ஒன்று வரிசைப்படுத்தலை விரைவுபடுத்துவது. மைக்ரோ சர்வீஸ் அணுகுமுறையில், டெவலப்பர்கள் ஏற்கனவே வேலை செய்து முற்றிலும் மட்டுப் பயன்பாடுகளை வடிவமைத்து, வெவ்வேறு அணிகள் ஒரே நேரத்தில் குறியீட்டை எழுதவும் பயன்பாட்டில் மாற்றங்களைச் செய்யவும் அனுமதிக்கிறது.

குறுகிய மற்றும் அடிக்கடி வரிசைப்படுத்துதல் பின்வரும் நன்மைகளைக் கொண்டுள்ளது:

  • சந்தைக்கான நேரம் குறைக்கப்படுகிறது.
  • புதிய அம்சங்கள் பயனர்களை வேகமாக சென்றடையும்.
  • பயனர் கருத்து மேம்பாட்டுக் குழுவை விரைவாகச் சென்றடைகிறது. இதன் பொருள் குழு அம்சங்களைச் சேர்க்கலாம் மற்றும் சிக்கல்களை விரைவாக சரிசெய்யலாம்.
  • டெவலப்பர் மன உறுதி அதிகரிக்கிறது: மேம்பாட்டில் அதிக அம்சங்கள் வேலை செய்வது மிகவும் வேடிக்கையாக உள்ளது.


ஆனால் வெளியீடுகளின் அதிர்வெண் அதிகரிக்கும் போது, ​​பயன்பாட்டின் நம்பகத்தன்மை அல்லது பயனர் அனுபவத்தை எதிர்மறையாக பாதிக்கும் வாய்ப்புகளும் அதிகரிக்கின்றன. அதனால்தான் செயல்பாடுகள் மற்றும் DevOps குழுக்கள் தயாரிப்பு மற்றும் பயனர்களுக்கு ஆபத்தை குறைக்கும் வகையில் செயல்முறைகளை உருவாக்குவதும், வரிசைப்படுத்தல் உத்திகளை நிர்வகிப்பதும் முக்கியம். (CI/CD பைப்லைன் ஆட்டோமேஷன் பற்றி மேலும் அறியலாம் இங்கே.)

இந்த இடுகையில், ரோலிங் வரிசைப்படுத்தல்கள் மற்றும் கேனரி ரோல்அவுட்கள் மற்றும் அவற்றின் மாறுபாடுகள் போன்ற மேம்பட்ட முறைகள் உட்பட குபெர்னெட்டஸில் உள்ள பல்வேறு வரிசைப்படுத்தல் உத்திகளைப் பற்றி விவாதிப்போம்.

வரிசைப்படுத்தல் உத்திகள்

உங்கள் இலக்கைப் பொறுத்து நீங்கள் பயன்படுத்தக்கூடிய பல்வேறு வகையான வரிசைப்படுத்தல் உத்திகள் உள்ளன. எடுத்துக்காட்டாக, கூடுதல் சோதனைக்காக ஒரு குறிப்பிட்ட சூழலில் அல்லது பயனர்கள்/வாடிக்கையாளர்களின் துணைக்குழுவில் நீங்கள் மாற்றங்களைச் செய்ய வேண்டியிருக்கலாம் அல்லது ஒரு அம்சத்தை உருவாக்கும் முன் நீங்கள் வரையறுக்கப்பட்ட பயனர் சோதனையைச் செய்ய வேண்டியிருக்கலாம் общедоступnoy.

உருட்டல் (படிப்படியாக, "உருட்டுதல்" வரிசைப்படுத்தல்)

இது குபெர்னெட்டஸில் நிலையான வரிசைப்படுத்தல் உத்தி. இது படிப்படியாக, ஒவ்வொன்றாக, பயன்பாட்டின் பழைய பதிப்பில் உள்ள காய்களை புதிய பதிப்பில் காய்களுடன் மாற்றுகிறது - கிளஸ்டர் வேலையில்லா நேரம் இல்லாமல்.

குபெர்னெட்டஸில் வரிசைப்படுத்தல் உத்திகள்: உருட்டுதல், மீண்டும் உருவாக்குதல், நீலம்/பச்சை, கேனரி, இருண்ட (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 குறிச்சொல்லுடன் கேனரி மேனிஃபெஸ்ட். இஸ்டியோ மெய்நிகர் கேட்வே மேனிஃபெஸ்டில் எடைகளை மாற்றுவதன் மூலம், இந்த இரண்டு வரிசைப்படுத்தல்களுக்கு இடையேயான போக்குவரத்தின் விநியோகத்தை நீங்கள் கட்டுப்படுத்தலாம்:

குபெர்னெட்டஸில் வரிசைப்படுத்தல் உத்திகள்: உருட்டுதல், மீண்டும் உருவாக்குதல், நீலம்/பச்சை, கேனரி, இருண்ட (A/B சோதனை)

இஸ்டியோவைப் பயன்படுத்தி கேனரி வரிசைப்படுத்தல்களைச் செயல்படுத்துவதற்கான படிப்படியான வழிகாட்டியைப் பார்க்கவும் இஸ்டியோவுடன் GitOps பணிப்பாய்வு. (குறிப்பு. மொழிபெயர்: கேனரி ரோல்அவுட்கள் பற்றிய தகவலை இஸ்டியோவில் மொழிபெயர்த்தோம் இங்கே.)

Weaveworks Flagger உடன் கேனரி வரிசைப்படுத்துதல்

Weweworks கொடி கேனரி வெளியீடுகளை எளிதாகவும் திறமையாகவும் நிர்வகிக்க உங்களை அனுமதிக்கிறது.

ஃபிளாகர் ஆட்டோமேட்டுகள் அவர்களுடன் வேலை செய்கின்றன. இது இஸ்டியோ அல்லது AWS ஆப் மெஷைப் பயன்படுத்தி போக்குவரத்தை மாற்றவும் மாற்றவும், மற்றும் முடிவுகளை பகுப்பாய்வு செய்ய ப்ரோமிதியஸ் அளவீடுகளையும் பயன்படுத்துகிறது. கூடுதலாக, கேனரி வரிசைப்படுத்தல்களின் பகுப்பாய்வு ஏற்றுக்கொள்ளும் சோதனைகள், சுமை சோதனைகள் மற்றும் வேறு எந்த வகையான காசோலைகளையும் நடத்துவதற்கு வெப்ஹூக்குகளுடன் கூடுதலாக வழங்கப்படலாம்.

Kubernetes வரிசைப்படுத்தல் மற்றும் தேவைப்பட்டால், காய்களின் கிடைமட்ட அளவீடு (HPA) ஆகியவற்றின் அடிப்படையில், கேனரி வரிசைப்படுத்தல்களை பகுப்பாய்வு செய்து செயல்படுத்த, Flagger பொருள்களின் தொகுப்புகளை (குபர்னெட்ஸ் வரிசைப்படுத்தல்கள், ClusterIP சேவைகள் மற்றும் Istio அல்லது App Mesh மெய்நிகர் சேவைகள்) உருவாக்குகிறது:

குபெர்னெட்டஸில் வரிசைப்படுத்தல் உத்திகள்: உருட்டுதல், மீண்டும் உருவாக்குதல், நீலம்/பச்சை, கேனரி, இருண்ட (A/B சோதனை)

கட்டுப்பாட்டு வளையத்தை செயல்படுத்துதல் (கட்டுப்பாட்டு வளையம்),Flagger படிப்படியாக கேனரி சேவையகத்திற்கு போக்குவரத்தை மாற்றுகிறது, அதே நேரத்தில் வெற்றிகரமான HTTP கோரிக்கைகளின் சதவீதம், சராசரி கோரிக்கை கால அளவு மற்றும் பாட் ஆரோக்கியம் போன்ற முக்கிய செயல்திறன் அளவீடுகளை அளவிடுகிறது. KPI (முக்கிய செயல்திறன் குறிகாட்டிகள்) பகுப்பாய்வின் அடிப்படையில், கேனரி வளர்கிறது அல்லது சரிகிறது மற்றும் பகுப்பாய்வு முடிவுகள் ஸ்லாக்கில் வெளியிடப்படுகின்றன. இந்த செயல்முறையின் விளக்கம் மற்றும் விளக்கத்தை உள்ளடக்கத்தில் காணலாம் ஆப் மெஷிற்கான முற்போக்கான டெலிவரி.

குபெர்னெட்டஸில் வரிசைப்படுத்தல் உத்திகள்: உருட்டுதல், மீண்டும் உருவாக்குதல், நீலம்/பச்சை, கேனரி, இருண்ட (A/B சோதனை)

இருண்ட (மறைக்கப்பட்ட) அல்லது A/B வரிசைப்படுத்தல்கள்

திருட்டுத்தனமான வரிசைப்படுத்தல் என்பது கேனரி மூலோபாயத்தின் மற்றொரு மாறுபாடாகும் (இதன் மூலம், ஃபிளாகரும் வேலை செய்ய முடியும்). திருட்டுத்தனம் மற்றும் கேனரி வரிசைப்படுத்தல்களுக்கு இடையேயான வித்தியாசம் என்னவென்றால், கேனரி வரிசைப்படுத்தல் போன்ற பின்தளத்தை விட திருட்டுத்தனமான வரிசைப்படுத்தல்கள் முன்பக்கத்தை கையாளுகின்றன.

இந்த வரிசைப்படுத்தல்களுக்கு மற்றொரு பெயர் A/B சோதனை. புதிய அம்சத்தை அனைத்து பயனர்களுக்கும் கிடைக்கச் செய்வதற்குப் பதிலாக, அவர்களில் ஒரு குறிப்பிட்ட பகுதிக்கு மட்டுமே இது வழங்கப்படுகிறது. பொதுவாக, இந்த பயனர்கள் தாங்கள் முன்னோடி சோதனையாளர்கள் என்பதை அறிந்திருக்க மாட்டார்கள் (எனவே "திருட்டுத்தனமான வரிசைப்படுத்தல்" என்ற சொல்).

செயல்பாட்டு சுவிட்சுகளைப் பயன்படுத்துதல் (அம்சத்தை மாற்றுதல்) மற்றும் பிற கருவிகள், புதிய அம்சத்துடன் பயனர்கள் எவ்வாறு தொடர்பு கொள்கிறார்கள், அவர்கள் அதில் ஈடுபட்டுள்ளார்களா, அல்லது புதிய பயனர் இடைமுகம் குழப்பமாக இருப்பதைக் கண்டறிகிறார்களா மற்றும் பிற வகையான அளவீடுகளை நீங்கள் கண்காணிக்கலாம்.

குபெர்னெட்டஸில் வரிசைப்படுத்தல் உத்திகள்: உருட்டுதல், மீண்டும் உருவாக்குதல், நீலம்/பச்சை, கேனரி, இருண்ட (A/B சோதனை)

கொடி மற்றும் A/B வரிசைப்படுத்தல்கள்

எடை அடிப்படையிலான ரூட்டிங் தவிர, Flagger ஆனது HTTP அளவுருக்களின் அடிப்படையில் கேனரி சேவையகத்திற்கு போக்குவரத்தை வழிநடத்தும். A/B சோதனையில், பயனர்களின் குறிப்பிட்ட பிரிவை குறிவைக்க HTTP தலைப்புகள் அல்லது குக்கீகளைப் பயன்படுத்தலாம். சேவையகத்துடன் அமர்வு பிணைப்பு தேவைப்படும் முன்பக்க பயன்பாடுகளின் விஷயத்தில் இது மிகவும் பயனுள்ளதாக இருக்கும் (அமர்வு தொடர்பு). ஃபிளாகர் ஆவணத்தில் கூடுதல் தகவல்களைக் காணலாம்.

ஆசிரியர் நன்றியைத் தெரிவித்துக் கொள்கிறார் ஸ்டீபன் புரோடன், வீவ்வொர்க்ஸ் பொறியாளர் (மற்றும் ஃபிளாக்கரை உருவாக்கியவர்), இந்த அனைத்து அற்புதமான வரிசைப்படுத்தல் முறைகளுக்கும்.

மொழிபெயர்ப்பாளரிடமிருந்து பி.எஸ்

எங்கள் வலைப்பதிவிலும் படிக்கவும்:

ஆதாரம்: www.habr.com

கருத்தைச் சேர்