Slurm DevOps: mai Git a i SRE me nā kū āpau

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

Slurm DevOps: mai Git a i SRE me nā kū āpau

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ā Slurm DevOps 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

E kūʻai i ka hoʻokipa hilinaʻi no nā pūnaewele me ka pale DDoS, nā kikowaena VPS VDS 🔥 E kūʻai i ka hoʻokipa pūnaewele hilinaʻi me ka pale DDoS, nā kikowaena VPS VDS | ProHoster