Қазақша FinOps: логистикалық компания үшін бұлт шығындарын қалай 40%-ға оңтайландырдық
Соңғы бір-екі жылда Қазақстандағы әрбір екінші IT-директор мақтанышпен: "Біз бұлтқа көштік!" деп мәлімдейді. Вендорлар алтын тауларға уәде берді: тек пайдаланғаныңыз үшін төлеңіз, бір рет басу арқылы масштабталыңыз, серверлерді сатып алуды ұмытыңыз. Бірақ жарты жыл өтеді, ал қаржы директоры корпоративтік картадан үзінді көшірмеге қарап, орынды сұрақ қояды: "Ал неге біз бұл Google Cloud-қа бұрынғы локальді деректер орталығына қарағанда үш есе көп төлейміз?".
Таныс ауырсыну ма? Бұлт архитектуралық қателерді кешірмейтін қатал шындыққа қош келдіңіз. Егер сіз жертөледен ескі виртуалды машиналарыңызды алып, оларды бұлтқа "сол қалпында" (lift-and-shift тәсілі) көшірсеңіз, сіз үнемдемейсіз. Сіз артық төлей бастайсыз. Бүгін біз FinOps (Financial Operations) — бұлттық шығындарды басқару мәдениеті туралы сөйлесетін боламыз. Және ОЗАТ зертханасының нақты кейсінде өнімділіктің бір байтын да құрбан етпей, ірі логистикалық компанияның ай сайынғы шотын қалай 40%-ға "арықтатқанымызды" талдаймыз.
Логисттер бұлтты қалай сатып алды (және неге оларға қиын болды)
Бізге Қазақстан мен ТМД бойынша жүздеген жүк көліктерімен жұмыс істейтін логистикалық компания жүгінді. Оларда жүктерді бақылауға, бағыттауға, қойма есебіне және CRM-ге арналған күрделі монолитті бағдарламалық жасақтама болды. Бір жыл бұрын олар өз серверлерінің үнемі құлауынан шаршап, Google Cloud Platform (GCP) жүйесіне көшті.
Архитектура классикалық (және мүлдем бұлтты емес) болды: 16-32 vCPU және көптеген жедел жады бар он шақты үлкен виртуалды машина (Compute Engine), тозуға жұмыс істейтін үлкен Cloud SQL (PostgreSQL) инстансы және "өте маңызды тарихи деректері" бар бірнеше гигабайттық дискілер (Persistent Disks). Инфрақұрылымның шоты фаундерлердің көзін тарта бастайтын деңгейден асып түсті. Ең өкініштісі — жүйе ең жоғары сағаттарда мезгіл-мезгіл баяулайтын, бірақ басқа уақытта процессорлар бос тұратын.
Біз аудит жүргізіп, басымызды ұстадық. Инфрақұрылым Алматының кептелісінде кондиционері қосулы және қозғалтқышы бос жүріспен тәулік бойы тұратын үлкен жол талғамайтын көлікке ұқсады. Бензин (ақша) жанып жатыр, ал біз ешқайда бармаймыз.
1-қадам. Rightsizing: "ауаны" тамақтандыруды тоқтатамыз
FinOps-тың бірінші ережесі: пайдаланбайтын нәрсені өшіріп, пайдаланатын нәрсені екі есе азайтыңыз. Біз GCP-де Recommender API іске қосып, соңғы 30 күндегі CPU және RAM утилизациясының метрикаларын талдадық.
Мәліметтер базасының серверіндегі 32 ядроның орташа есеппен 4-і ғана пайдаланылғаны белгілі болды. Логисттердің әзірлеушілері құлап қалмауы үшін машинаны "қорымен" таңдаған. Біз Cloud SQL және Compute Engine инстанстарын адекватты өлшемдерге дейін даунсайзинг жасадық.
Нәтиже: Жалпы шоттан бірден 15% үнемдеу. Кодтың бірде-бір жолынсыз. Жай ғана біз бос тұрған қуаттылықтар үшін төлеуді тоқтатқандықтан.
Ресурстарды оңтайландыру (Rightsizing)
Бастапқы бөлінген ресурстар мен іс жүзінде пайдаланылған қуаттылықтарды салыстыру
2-қадам. Тестілік орталарға арналған кесте (Scheduling)
Клиенттің GCP-інде үш орта өрістетілді: Dev, Stage және Prod. Және үшеуі де 24/7 жұмыс істеді. Назар аударыңыз, сұрақ: егер барлық бағдарламашылар ұйықтап жатса (немесе барда отырса), әзірлеу ортасына сенбі күні түнгі сағат 3-те жұмыс істеудің қажеті қанша?
Біз Cloud Scheduler және Cloud Functions көмегімен қарапайым автоматтандыруды баптадық. Енді Dev және Stage орталары жұмыс күндері кешкі сағат 20:00-де автоматты түрде өшеді (shut down) және таңғы 09:00-де оянады, ал демалыс күндері командамен бірге демалады.
Нәтиже: Тестілік орталарға кететін шығындар 65%-ға төмендеді. Ұсақ-түйек болса да, қаржы директорына жағымды.
3-қадам. Serverless-ке өту: Cloud Run тоқтап қалудан ем ретінде
Логистика — бұл айқын шыңдары бар бизнес. Таңертең диспетчерлер жол парақтарын жаппай жазып береді, жүк тиеушілер штрих-кодтарды сканерлейді, жүйе қызады. Түнде жүк көліктері тас жол бойымен жүріп, жеңіл телеметриялық трафикті (GPS-координаттар) жасайды. Бұл үшін үлкен серверлер кластерін ұстаудың мәні жоқ.
Біз монолиттің ең ауыр бөлігін (телеметрияны қабылдау және трекинг модулі) микросервистерге бөліп, оларды Google Cloud Run-ға көшіруді ұсындық. Cloud Run — бұл трафикке байланысты контейнерлерді нөлден мыңға дейін автоматты түрде масштабтайтын serverless-платформа және сіз тек сұраныстың орындалу уақыты үшін төлейсіз (100 миллисекундқа дейінгі дәлдікпен).
Түнде сұраныстар аз болған кезде, Cloud Run минимумға дейін қысылады. Таңертең диспетчерлер жүйеге кіргенде — ол лезде ондаған инстанстарды көтереді.
Нәтиже: Біз косттарды 20%-ға қысқартып қана қоймай, таңертеңгілік "баяулаулар" мәселесінен толықтай арылдық. Жүйе эластикалық болды.
4-қадам. BigQuery және Cloud Storage-ті бағындыру
Соңғы 5 жылдағы көліктердің қозғалысы туралы деректерді логисттер ыстық қоймада сақтады және оларды BigQuery-де ауыр аналитикалық сұраныстармен үнемі "селекттеді".
Біз не істедік:
- Cloud Storage-те Object Lifecycle Management баптадық. Енді 90 күннен асқан деректер автоматты түрде қымбат Standard класынан арзан Coldline-ға, ал бір жылдан асқан деректер копеектік Archive-ке ауыстырылады.
- BigQuery-де біз күні мен көліктердің ID-і бойынша кестелерді партициялауды (Partitioning) және кластерлеуді енгіздік. Бұрын әрбір сұраныс аналитигі терабайт деректерді сканерлейтін (және бір клик үшін 5 доллар тұратын). Енді сұраныс тек қажетті күнді сканерлеп, бірнеше центті құрайды.
- Кездейсоқ
SELECT *компания бюджетінде тесік тудырмас үшін тағылымдамадан өтуші-аналитиктердің сұраныстарына квоталарды (Custom Quotas) шектедік.
5-қадам. Фондық тапсырмаларға арналған Spot Instances (Preemptible VMs)
Клиентте күн сайын түнде маршруттарды оңтайландыруды қайта есептейтін және есептер жасайтын ауыр воркер болды. Бұл лезде жауапты қажет етпейтін (оны үзіп, қайта қосуға болатын) фондық тапсырма.
Біз бұл воркерлерді Spot VMs-ке (үзілетін машиналар) ауыстырдық. Бұл Google басқа біреуге толық бағамен қажет болса, оларды кез келген уақытта алып кетуі мүмкін деген шартпен 80-90%-ға дейін жеңілдікпен беретін есептеу қуаттылықтары. Batch-өңдеу, бейне рендеринг немесе нейрожелілерді оқыту үшін — бұл тамаша құрал.
Нәтиже: Түнгі есептеулерге кететін шығындар 4 есе төмендеді.
FinOps-операциясының қорытындылары
Бір айлық жұмыс ішінде біз инфрақұрылымның ай сайынғы шотын 40%-ға төмендеттік (ал абсолютті сандарда бұл мыңдаған долларлар болды). Бұл ретте жүйенің сенімділігі өсті, ал ең жоғары сағаттардағы перфоманс эталондық болды.
Ай сайынғы бұлттық шығындар тренді (Салыстырмалы %)
FinOps оңтайландыру қадамдарын енгізу барысындағы ай сайынғы бюджеттің төмендеу қарқыны
FinOps — бұл "арзанырақ және нашарырақ жасау" туралы емес. Бұл бұлтты саналы түрде тұтыну туралы. Сіз ауа үшін төлемеуіңіз керек. Инфрақұрылым сіздің бизнесіңізбен бірге дем алуы керек: сатылымдар жүріп жатқанда кеңейіп, клиенттер ұйықтап жатқанда қысылуы керек.
ОЗАТ-тан тегін FinOps-аудит
Сізге бұлт үшін артық төлейтін сияқты көрінеді ме? GCP немесе AWS-те ақшаның қайда кетіп жатқанын түсінбейсіз бе? Өтінім қалдырыңыз, және біздің инженерлер сіздің архитектураңызға тегін аудит жүргізеді. Біз бос тұрған қуаттылықтарды, оңтайландырылмаған сұраныстарды табамыз және сапаны жоғалтпай косттарды төмендету бойынша қадамдық жоспар жасаймыз.
Косттарды қысқартуБұлт — бұл қуатты құрал. Және кез-келген қуатты құрал сияқты, тәжірибесіз қолдарда ол шығындарға әкелуі мүмкін. Инфрақұрылымыңызды кәсіпқойларға сеніп тапсырыңыз, FinOps тәжірибелерін енгізіңіз және табыстарыңыз әрқашан серверлеріңізден тезірек өссін.
Жоғары аптайм және GCP үшін төмен шоттар тілейміз!

Рустам Шарафутдинов
Google Cloud архитектурасы саласындағы сарапшы және 15 жылдан астам тәжірибесі бар Senior Full-Stack әзірлеушісі. Ақауға төзімді архитектураларға, жоғары жүктемелі жобаларды оңтайландыруға және AI (Vertex AI) интеграциясына маманданған.