Ma Sepatemaba 4-6 ma St. Petersburg, ma ka hale hālāwai Selectel, he ʻekolu lā .

Ua kūkulu mākou i ka papahana ma muli o ka manaʻo e hiki ke heluhelu ʻia e kēlā me kēia kanaka ma o DevOps, e like me nā manual no nā mea hana. ʻO ka ʻike a me ka hoʻomaʻamaʻa wale nō ka mea hoihoi: he wehewehe no ka hana ʻana a me ka mea e hana ʻole ai, a me kahi moʻolelo e pili ana i kā mākou hana ʻana.
ʻO kēlā me kēia hui, kēlā me kēia luna hoʻomalu a mea hoʻomohala paha i kā lākou pae ponoʻī o DevOps. Hoʻohana hewa kekahi poʻe iā Git, hoʻokō kekahi iā SRE. Hoʻonohonoho ʻia ka papa i ʻike nā mea a pau i kahi mea kūpono e hiki ke hoʻokō ma aneʻi a i kēia manawa.
Hoʻomaka mākou me Git, a laila e nānā i ka hoʻomohala noiʻi, ka pilina ma waena o ke code a me nā ʻōnaehana, kūkulu CI / CD, wehewehe i ka ʻōnaehana e like me ke code (IaC), hoʻāʻo i ka hopena hopena, hoʻonohonoho i ka nānā ʻana, hōʻiliʻili a noiʻi i nā lāʻau, a i ka hopena hiki mai mākou. iā SRE: hoʻololi i ka hilinaʻi i moʻolelo hiki ke ana a hiki ke mālama ʻia.
ʻO Git
I kēia mau lā, ʻo ka poʻe wale nō i hoʻohana ʻole iā Git ka poʻe i kūʻai i kā lākou pona mua i nehinei. He mea hana liʻiliʻi kēia, akā ʻike pinepine mākou i kāna hoʻohana hewa ʻana: mai ka hoʻokau ʻana i ka haku, i ke kope ʻana i nā faila mai Git i ke kikowaena ma o Ctrl-C, Ctrl-V.
Ke haʻi aku nei mākou iā ʻoe pehea ʻoe e hana ʻole ai, pehea ʻoe e hana ai, e like me kā lākou hana ma Southbridge.
Ke hana nei mākou i ka hoʻomaʻamaʻa: nā kumu o Gita, hui pū.
Kumuhana #1: Nā Kuleana Git
- Nā kauoha kumu git init, commit, add, diff, log, status, pull, push
- Ka holo ʻana o Git, nā lālā a me nā hōʻailona, hoʻohui i nā hoʻolālā
- Ke hana nei me nā repo mamao he nui
Kaupapa #2: Hana pū me Git
- Kahe o GitHub
- Fork, mamao, noi huki
- ʻO nā paio, hoʻokuʻu, hou e pili ana iā Gitflow a me nā kahe ʻē aʻe e pili ana i nā hui
Hoʻonohonoho ʻia nā mea i hiki i nā luna hoʻomalu a me nā mea hoʻomohala ke hoʻokō koke i nā hana āpau i kā lākou hana.
Mai kahi DevOps o ka manaʻo, hana kūpono me Git streamlines a hoʻomaʻamaʻa i ka hoʻomohala ʻana a me nā kaʻina hana hoʻokele, hoʻopau i nā pilikia hou a hoʻonui i ka huahana.
mea hoʻomohala DevOps
Nānā mākou iā DevOps ma o nā maka o kahi mea hoʻomohala: hoʻomaka mākou i kahi kaiapuni kūloko, kākau i kahi noi, hoʻonohonoho i kāna nānā ʻana a me ka hoʻopaʻa inoa ʻana, hoʻāʻo iā ia ma ka ʻāina, hoʻonohonoho i ka mālama ʻana i nā mea hoʻololi / mea huna a me ka ʻike lawelawe, nānā opentracing.
Kaupapa #3: Ke hana pū me ka noi mai kahi manaʻo hoʻomohala
- Hoʻonohonoho i ke kaiapuni kūloko: nā ʻōlelo paipai
- Ke kākau ʻana i kahi microservice ma Python (me nā hoʻokolohua)
- Ke hoʻohana nei i ka docker-compose i ka hoʻomohala ʻana
Kumuhana #4: Ka pilina ma waena o nā code a me nā ʻōnaehana
- E hoʻomaʻamaʻa hana me nā configs
ʻO ka hopena, e ʻike nā mea hoʻomohala pehea e hoʻouna ai ke code i nā lāʻau, pehea e hoʻāʻo ai, a pehea e hoʻopau ʻia ai i ka wā e hiki mai ana. E hoʻomaopopo nā luna i nā pono o nā mea hoʻomohala: he aha nā hewa i loko o ke code, pehea e hoʻonohonoho ai i nā hoʻokolohua no nā mea hoʻomohala, pehea e hoʻāʻo ai i ka papahana iā lākou iho.
I kēia pae, ua hoʻoholo ʻia ka hana nui o DevOps: kūkulu ʻia ka ʻike like a me ka hana hui ma waena o Devs a me Ops. He ʻanuʻu koʻikoʻi kēia i ka neʻe ʻana mai ka kaʻana like ʻana i ka hana a i ka hui kuleana.
ʻO ka hopena, piʻi ka wikiwiki a me ka maikaʻi o ka hana.
CI / CD
Hoʻokomo ʻia ka automation hou i ka CI/CD. E hoʻomaka mākou ma ka nānā ʻana i ka automation manual: makefiles, githooks, scripts. E nānā kākou i ka wā e pili pono ai kēia mau mea hana a me ka wā pono ʻole e hoʻohana ʻia.
A laila e nānā i nā hana maikaʻi loa o ka CI hou me ka hoʻohana ʻana iā Gitlab ma ke ʻano he laʻana.
Kumuhana #5: Hoʻolauna CI/CD i ka automation
- Introduction to Automation
- Mea hana (bash, make, gradle)
- Ke hoʻohana nei i nā git-hooks e hoʻokaʻawale i nā kaʻina hana
- Nā laina hui hale hana a me kā lākou noi ma IT
- He laʻana o ke kūkulu ʻana i kahi paipu "nui".
- Nā lako polokalamu hou no CI/CD: Drone CI, BitBucket Pipelines, Travis, etc.
Kumuhana #6: CI/CD: Hana pū me Gitlab
- Gitlab CI - laulā
- ʻO Gitlab Runner, kā lākou ʻano a me nā noi
- ʻO Gitlab CI, nā hiʻohiʻona hoʻonohonoho, nā hana maikaʻi loa
- ʻO Gitlab CI
- Nā mea hoʻololi Gitlab CI
- Kūkulu, hoʻāʻo, kau
- Ka hoʻokō ʻana a me nā kapu: wale nō, i ka wā
- Ke hana nei me nā mea waiwai
- Nā templates i loko o .gitlab-ci.yml, hoʻohana hou i nā hana ma nā ʻāpana like ʻole o ka paipu
- Hoʻohui - nā ʻāpana
- ʻO ka hoʻokele kikowaena o gitlab-ci.yml (hoʻokahi faila a paʻi maʻalahi i nā waihona ʻē aʻe)
ʻO ka hui pū ʻana ma waena o nā luna hoʻomalu a me nā mea hoʻomohala hiki i kahi pae hou: kākau ka luna hoʻoponopono i kahi template CI, a hoʻoponopono nā mea hoʻomohala, kūkulu i kā lākou CI kūʻokoʻa mai ka luna hoʻoponopono.
Ua ho'ēmiʻia ka hilinaʻi o nā mea hoʻomohala i nā luna hoʻomalu, ua hoʻemiʻia ka nui o ka hana lima, a ua nalowale ka pilikia o "ke kanaka wale nō iʻike i ka hanaʻana me kahi faila make". Hiki i nā rollout me ka hilinaʻi a me ka wikiwiki.
IaC
ʻO ke kumuhana o Infrastructure as Code, me ka hoʻohana ʻana iā Terraform ma ke ʻano he laʻana, e kūkākūkā ʻia e Selectel cloud luna Alexey Stepanenko. E hōʻike ʻo ia iā ʻoe pehea e hoʻonohonoho koke ai a hoʻonui i nā kikowaena, pehea e hoʻopaʻa ʻakomi i nā kiʻi, a pehea e hoʻohana ai i nā mamana hoʻonohonoho e kiʻi koke i nā mīkini i hoʻonohonoho ʻia.
ʻO ke kanaka nāna i hana i nā kaukani IaC solutions e haʻi iā ʻoe pehea e hana pono ai a me ka mea ʻaʻole e hana.
He kūpono ka hoʻonā kapuaʻi Selectel no nā ao Google a me Amazon me nā hoʻololi liʻiliʻi.
ʻO Nikolay Mesropyan, ka limahana o Southbridge, e hoʻohana ana iā Ansible ma ke ʻano he laʻana, e hōʻike i ke ʻano o ka hoʻonohonoho ʻana i kahi noi hana me ka ʻole downtime a nānā i kāna hana.
Inā hoʻoponopono lima ʻoe i ka ʻōnaehana (hoʻonohonoho i nā kikowaena, hoʻokomo i nā hale waihona puke a me nā pūʻolo e like me ka mea e pono ai), ke hoʻāʻo ʻoe e hoʻāla i kope o ke kaiapuni, pono ʻoe e hoʻomanaʻo a hana hou i kāu mau hana āpau. Hana maʻalahi kēia hana i nā lā 3-5. ʻO ka hana ʻana me ka ʻōnaehana ma ke ʻano he code e hōʻoia i ka loaʻa ʻana o kahi wehewehe hou o kou kaiapuni i hiki ke kau ʻia i nā minuke.
E haʻi aku ʻo Nikolay iā ʻoe pehea e kākau ai i nā puke pāʻani, he aha nā hewa i hana ʻia, a no ke aha i hana mālie ai nā puke pāʻani i kekahi manawa a i ʻole e like me ka mea i manaʻo ʻia. He ʻike kēia mai nā makahiki he nui o ka hoʻohana ʻana iā IaC ma Southbridge.
Kumuhana #7: ʻOihana e like me Code
- IaC: Ke hoʻokokoke nei i ka ʻenehana ma ke ʻano he Code
- ʻO nā mea hāʻawi ao ma ke ʻano he mea hoʻolako ʻoihana
- Mea hana hoʻomaka ʻōnaehana, kūkulu kiʻi (packer)
- IaC e hoʻohana ana iā Terraform ma ke ʻano he laʻana
- Hoʻopaʻa hoʻonohonoho, hui pū ʻana, automation noi
- E hoʻomaʻamaʻa i ka hana ʻana i nā puke pāʻani Ansible
- Idempotency, declarativeness
- IaC e hoʻohana ana iā Ansible ma ke ʻano he laʻana
- ʻIkepili ma ke ʻano he Code / PostgreSQL hoʻomanawanui hewa
Lilo ka ʻōnaehana i mea hoʻolaha a impotent.
Aʻo ka luna hoʻomalu e hoʻokele i nā ʻōnaehana paʻakikī: hana wikiwiki i nā kaiapuni hou, mālama i ka lokahi o nā kaiapuni āpau, ʻike i ka mōʻaukala o nā loli, ʻo ia ka mea koʻikoʻi i ka wā e hana ana kekahi mau hui i kahi papahana.
Hiki i ka mea hoʻomohala ke aʻo i ka ʻōnaehana a hoʻomohala kūʻokoʻa i kona kaiapuni ponoʻī.
Paukū bonus: hana a hoʻonohonoho i kahi puʻupuʻu failover o nā ʻikepili PostgreSQL. E hāʻawi mākou i kahi puke pāʻani mākaukau a mākou e hoʻohana ai ma Southbridge, e kau ʻoe i kahi hui ma kahi kahua hoʻomaʻamaʻa a hiki ke hoʻohana i kēia hopena i kāu hui.
ʻO ka hoʻāʻo ʻana a me ka nānā ʻana i nā mea hana
ʻAe ʻo Automation iā ʻoe e ʻōwili i kahi hewa i hoʻokahi kaukani mau kikowaena i ka manawa hoʻokahi. Pono kēlā me kēia hoʻololi e hoʻāʻo. Ma ka ʻaoʻao ʻē aʻe, ʻoi aku ka nui o ka hoʻāʻo manual e hōʻole i nā pono o ka automation.
E hōʻike mākou iā ʻoe ma ka hoʻomaʻamaʻa pehea e kākau ai i ka hoʻāʻo kuleana. ʻO ka hopena, hiki iā ʻoe ke kākau i nā hoʻokolohua no kāu ʻoihana. ʻAʻole pono ʻoe e hoʻomanaʻo i nā hoʻonohonoho āu i hana ai; wehewehe ʻoe iā lākou i nā hoʻāʻo a nānā pono i nā hoʻonā a me nā koʻokoʻo mua i kahi.
A laila e aʻo mākou pehea e hoʻohui aunoa i nā kikowaena hou i ka nānā ʻana. E nānā kaʻawale i ka ʻōnaehana a me ka nānā ʻana i nā noi. E hōʻike mākou i nā hana maikaʻi ʻole a maikaʻi.
Kumuhana #8: Ka ho'āʻo ʻana i nā mea hana
- ʻO ka hoʻāʻo a me ka hoʻohui mau ʻana me Molecule a me Gitlab CI
- Ke hoʻohana nei iā Vagrant
Kaupapa #9: Ka nānā ʻana i nā ʻoihana me Prometheus
- No ke aha e pono ai ka nānā ʻana?
- Nā ʻano o ka nānā ʻana
- Nā hoʻolaha ma ka ʻōnaehana nānā
- Pehea e kūkulu ai i kahi ʻōnaehana nānā olakino
- Nā leka hiki ke heluhelu ʻia e ke kanaka, no kēlā me kēia
- Nānā Ola: He aha kāu e hoʻolohe ai
- ʻO ka ʻaukini ma muli o ka ʻikepili nānā
ʻO ka nānā ʻana ʻaʻole hana pono ʻaʻole ia he nānā. ʻAʻole mālama nā ʻoihana i hiki ke loaʻa ka ʻaoʻao nui o kahi hale kūʻai pūnaewele inā hāʻawi ka palapala uku i kahi hewa.
Hoʻokomo like nā mea hoʻomohala a me nā luna i ka hoʻonohonoho ʻana i ka nānā ʻana a me ka hoʻoponopono pilikia. Eia kekahi, ma ka maʻamau, hāʻule nā hana nānā i nā luna hoʻoponopono. E hōʻike kā mākou papa i nā mea hoʻomohala i ka hana a lākou e hana ai i ka hana ʻana i ka nānā pono. E loaʻa i nā luna hoʻomalu nā hana maikaʻi loa o Southbridge. ʻO ka hopena, e emi koke ka helu o nā poho i hoʻoiho ʻia e nā hemahema a me ka lohi o kahi pūnaewele a i ʻole ka noi.
Paukū bonus: automation e pili ana i ka nānā ʻana. No ka laʻana, ka nānā ʻana i nā hōʻike ua hōʻea mai kahi ukana ma ka pūnaewele, a hoʻomaka aunoa ka hoʻonui ʻana i ka server.
Ke kālai lāʻau
ʻO ka hewa nui i ka hanaʻana me nā lāʻau,ʻo ia ka nānā ponoʻana o nā luna a me nā mea hoʻomohala iā lākou ma nā kikowaena. Inā loaʻa iā ʻoe ma mua o hoʻokahi kikowaena, lōʻihi ka manawa. ʻAʻole paʻa kēia: hoʻopaʻa ka mea hoʻomohala i kahi kikowaena kahi e pono ʻole ai.
Pono ʻo DevOps i ka hōʻiliʻili kikowaena, ka hoʻoili ʻana a me nā loiloi o nā lāʻau.
Kumuhana #10: Hoʻopaʻa inoa me ELK
- Nā noi kumu a me nā hiki o ka elastic (huli, mālama, nā hiʻohiʻona scaling, hiki ke maʻalahi)
- Nānā nui o ke kibana (nā hiʻohiʻona nui, ʻōlelo nīnau, hoʻokele dashboard, hana pakuhi)
- Ka nānā ʻana i nā huahana elastic-based a me kā lākou mau noi
- E hōʻiliʻili ana i nā ana ma ka APM (ka ʻimi noiʻi)
- Eia hou: Nānā Huahana Hou - SIEM
ʻO ka hoʻomaka ʻana o kēia ala e hoʻolilo i nā lāʻau i mea maʻalahi a hiki ke hoʻomaopopo ʻia no ka nānā ʻana, ka hoʻonohonoho ʻana a me ka hoʻopau ʻana i ka noi a me nā ʻōnaehana.
HĀLOH
A hiki mākou i ke kumuhana e nānā wale nei ʻo Southbridge a no nā mea ʻōlelo ʻē aʻe e makemake ai e noho no ka lā hope o Slurm. Hauʻoli mākou ua ʻae ʻo Ivan Kruglov mai Booking.com e heluhelu.
Noho ka papahana i ka honua maoli, kahi i pau ʻole ai ka hilinaʻi a hoʻoholo i ke kālā.
He aha ka SLA e pili ana i kahi papahana paʻakikī? E ʻōlelo kākou pehea e loiloi ai hiki ke ʻike ʻia ka pūnaewele, akā ua hoʻouka ʻia nā kiʻi me ka lohi. He aha nā metric SLA, ma hea e lawe ai, pehea e lawe ai?
Pehea e hoʻonohonoho ai i ka SLA? Pehea e pale aku ai iā lākou?
Kumuhana #11: SRE
ʻO ka wehewehe ʻana o SLA, SLO, Error Budget a me nā huaʻōlelo weliweli ʻē aʻe mai ka honua o SRE
SRE: SLI a me SLO Nā hana nānā
SRE: Ka hoʻomaʻamaʻa ʻana i ka hoʻohana ʻana i ka Error Budget
SRE: Hoʻoponopono hoʻopaʻa a me ka hoʻokō ʻana i ka ukana (apigateway, mesh service, circuit breakers)
Makemake nā ʻoihana iā SRE. Ma ka liʻiliʻi loa ma ka pae maʻalahi: pono anei iaʻu e lawe i kahi kikowaena kākoʻo a hāpai paha mai kahi waihona? Hoʻokahi waihona a i ʻole hui? Pono ʻoe e hoʻokomo i ka pale DDoS me ka wikiwiki a i ʻole i ka manawa o ka hoʻouka ʻana?
ʻAʻole ʻoluʻolu ka luna alakaʻi i ka moʻolelo "e hana ana ka pūnaewele" ke kāhea aku ka mea kūʻai aku iā ia a hōʻike ʻaʻole wehe ʻia ka palapala kauoha.
No laila, he mea nui i ka ʻenekini DevOps e hoʻomaopopo liʻiliʻi loa iā SRE i mea e kamaʻilio pono ai i ka ʻoihana e pili ana i kāna mau pono.
ʻO ka hopena
I ka wā e aʻo nā luna hoʻomalu a me nā mea hoʻomohala:
- hana pololei me Git;
- hoʻonohonoho i ka hoʻomohala kūloko;
- hoʻonohonoho (nā luna hoʻomalu) a hoʻohana (nā mea hoʻomohala) CI/CD;
- hana me ka ʻoihana e like me ke code;
- hoʻāʻo i ka ʻōnaehana;
- nānā i nā ʻōnaehana a me nā noi;
- hoʻonohonoho i ka logging;
- hoʻomaopopo, a kūpono hoʻi, e hoʻohana iā SRE.
No ka poʻe heluhelu makaʻala, e hoʻohana i ka code promotional habrapost no kahi hoʻemi 15%.
Ke hoʻomākaukau nei mākou i ka hoʻomaʻamaʻa a me nā mea hana no nā wahi āpau. No laila e hiki i kēlā me kēia mea komo, i ka hoʻi ʻana mai Slurm, e lawe i kā lākou hui i ka pae aʻe o DevOps.
No ka ʻoihana, ʻoi aku ka maikaʻi o ka hoʻokele a me ka hoʻomohala ʻana, hoʻemi ʻia ka manawa haʻahaʻa, hoʻonui i ka hilinaʻi, ka hāʻawi wikiwiki ʻana i nā hiʻohiʻona a me ka hoʻopau ʻana i nā pōpoki.
Source: www.habr.com
