Ինչպես մի ստարտափ հասավ docker-compose-ից մինչև Kubernetes

Այս հոդվածում ես կցանկանայի խոսել այն մասին, թե ինչպես մենք փոխեցինք նվագախմբի մոտեցումը մեր ստարտափ նախագծում, ինչու արեցինք դա և ինչ խնդիրներ լուծեցինք այդ ճանապարհին։ Այս հոդվածը հազիվ թե կարող է պնդել, որ եզակի է, բայց, այնուամենայնիվ, կարծում եմ, որ այն կարող է օգտակար լինել ինչ-որ մեկին, քանի որ խնդրի լուծման գործընթացում նյութը մեր կողմից հավաքվել է պատշաճ ճռռոցով:  

Ի՞նչ ունեինք և ինչի՞ մասին ենք խոսում։ Եվ մենք ունեինք գովազդային տարածքից մոտ 2 տարվա զարգացման պատմություն ունեցող մեկնարկային նախագիծ։ Նախագիծն ի սկզբանե կառուցվել է որպես միկրոսերվիս, և դրա սերվերային մասը գրվել է Symfony + մի փոքր Laravel, Django և հայրենի NodeJ-ներով: Ծառայությունները հիմնականում API են բջջային հաճախորդների համար (նրանցից 3-ը կա նախագծում) և մեր սեփական SDK-ն IOS-ի համար (ներկառուցված մեր հաճախորդների հավելվածներում), ինչպես նաև նույն հաճախորդների վեբ ինտերֆեյսներ և տարբեր վահանակներ: Բոլոր ծառայություններն ի սկզբանե դոկերացված էին և գործարկվում էին docker-compose-ի կողմից:

Ճիշտ է, docker-compose-ը օգտագործվել է ոչ ամենուր, այլ միայն մշակողների տեղական միջավայրում, թեստային սերվերի վրա և խողովակաշարի ներսում՝ ծառայություններ կառուցելիս և փորձարկելիս: Բայց արտադրական միջավայրում օգտագործվել է Google Kubernetes Engine (GKE): Ավելին, մենք նախագծի սկզբում կատարեցինք GKE կոնֆիգուրացիան ամբողջությամբ իր վեբ ինտերֆեյսի միջոցով, որը բավականին արագ էր և, ինչպես մեզ այն ժամանակ թվում էր, հարմար: Այստեղ ավտոմատացված էր միայն GKE-ում ծառայություններ գործարկելու համար դոկերի պատկերների կառուցման գործընթացը:

Կարդալ ավելին