E faʻafefea ona fesoasoani GitLab ia te oe e faʻasaʻo le tele o mea e teu ai NextCloud

Ei Habr!

O le asō ou te fia talanoa e uiga i lo matou poto masani i le faʻaogaina o le faʻamaumauga o faʻamaumauga tetele mai le Nextcloud storages i faʻasalalauga eseese. Ou te galue o se ofisa tautua i Molniya AK, lea matou te faia ai le faʻatulagaina o pulega o IT system; Nextcloud e faʻaaogaina mo le teuina o faʻamaumauga. E aofia ai, faʻatasi ai ma se fausaga tufatufaina, faʻatasi ai ma le toe faʻaaogaina.

O faʻafitauli e tulaʻi mai i foliga o mea faʻapipiʻi o loʻo i ai le tele o faʻamaumauga. Fa'aliliuga tu'uina atu e Nextcloud, toe fa'afoliga, mafua'aga fa'apitoa, ma isi mea e maua ai le tele o fa'alua.

prehistory

Pe a faʻatautaia Nextcloud, o le faʻafitauli o le faʻatulagaina o se faʻamaumauga lelei e tulaʻi mai, lea e tatau ona faʻailogaina, talu ai e taua le faʻamatalaga.

Matou te ofoina atu filifiliga mo le teuina o faʻamaumauga i lo matou nofoaga poʻo le tagata faʻatau i luga o masini eseese mai Nextcloud, lea e manaʻomia ai se faʻaogaina otometi auala i le pulega.

E tele tagata fa'atau, oi latou uma ma fa'asologa eseese, ma i luga o latou lava nofoaga ma o latou lava uiga. Ole faiga masani lea pe'ā e a oe le 'upega tafaʻilagi atoa, ma faʻamaumauga e faia mai pale; e le fetaui lelei.

Muamua, seʻi o tatou vaʻai i faʻamatalaga faʻapipiʻi. Matou te manaʻomia:

  • Scalability i tulaga o le tasi pona po o le tele. Mo faʻapipiʻi tetele matou te faʻaogaina le minio e teu ai.
  • Su'e fa'afitauli i le fa'atinoina o fa'amaumauga.
  • E mana'omia lou tausia o sau fa'amaumauga ma au tagata fa'atau ma/po'o matou.
  • Taulima faʻafitauli vave ma faigofie.
  • O tagata fa'atau ma mea fa'apipi'i e matua'i 'ese'ese mai le tasi ma le isi - e le mafai ona ausia le tutusa.
  • E tatau ona laʻititi le saoasaoa o le toe faʻaleleia i ni faʻaaliga se lua: toe faʻaleleia atoatoa (faʻalavelave), tasi le faila na tapeina i se mea sese.
  • E mana'omia le galuega fa'au'u.

E faʻafefea ona fesoasoani GitLab ia te oe e faʻasaʻo le tele o mea e teu ai NextCloud

Ina ia foia le faʻafitauli o le puleaina o faʻamaumauga, matou faʻapipiʻi GitLab. Fa'amatalaga atili ile tackle.

O le mea moni, e le o i tatou o tagata muamua e foia sea faafitauli, ae e foliga mai ia i tatou o lo tatou poto masani, galue malosi e mafai ona manaia ma ua tatou sauni e faasoa atu.

Talu ai o la matou kamupani o loʻo i ai se faiga faʻavae tatala, sa matou suʻeina se vaifofo matala. I le isi itu, matou te faʻasoa a matou atinaʻe ma faʻasalalau. Mo se faʻataʻitaʻiga, ile GitHub o loʻo i ai la matou plugin mo Nextcloud, lea matou te tuʻuina atu i tagata faʻatau, faʻaleleia le saogalemu o faʻamatalaga pe a tupu faʻafuaseʻi pe tapeina ma le loto i ai.

Meafaigaluega faaleoleo

Na amata la matou sailiga mo auala fofo e ala i le filifilia o se mea faigaluega faʻapolopolo.

E le lelei le tar + gzip masani - o faʻamaumauga e faʻaluaina. O se fa'aopoopoga e masani ona i ai ni nai suiga moni, ma o le tele o fa'amaumauga i totonu o se faila e tasi e toe fai.
O loʻo i ai se isi faʻafitauli - o le toe faʻaaogaina o le teuina o faʻamaumauga tufatufaina. Matou te faʻaaogaina le minio ma o ana faʻamatalaga e matuaʻi tele. Pe e tatau ona e faia se faʻamaumauga e ala i le minio lava ia - utaina ma faʻaoga avanoa uma i le va o le faila faila, ma, e le itiiti ifo le taua, o loʻo i ai se lamatiaga o le faʻagaloina o nisi o pakete ma faʻamatalaga faʻamatalaga. Po'o le fa'aaogaina o le toe fa'aulu.

O meafaigaluega faʻapipiʻi faʻatasi ma le faʻaluaina o loʻo avanoa i punaoa tatala (i luga o Habré sa i ai tusiga e uiga i lenei autu) ma o matou tagata mulimuli na Borg и Malolo. O la matou faʻatusatusaga o talosaga e lua o loʻo i lalo, ae mo le taimi nei matou te taʻu atu ia te oe le auala na matou faʻatulagaina ai le polokalame atoa.

Puleaina faaleoleo

Borg ma Restic e lelei, ae leai se oloa o loʻo i ai se faʻatonuga faʻapitoa. Mo le faʻamoemoe o le pulega ma le puleaina, matou te filifilia se meafaigaluega ua uma ona matou faʻatinoina, a aunoa ma se mea e le mafai ona matou mafaufauina a matou galuega, e aofia ai le masini - o le lauiloa CI / CD - GitLab.

O le manatu e faʻapea: gitlab-runner ua faʻapipiʻiina i node taʻitasi e teu ai faʻamatalaga Nextcloud. O le tagata tamoʻe e faʻatautaia se faʻamaumauga i luga o se faʻatulagaga e mataʻituina ai le faiga faʻasao, ma faʻalauiloa Borg poʻo Restic.

O a mea na tatou maua? Faʻamatalaga mai le faʻatinoga, faʻatonutonu faigofie i suiga, faʻamatalaga i le tulaga o se mea sese.

iinei iinei ile GitHub na matou lafoina faʻataʻitaʻiga o le tusitusiga mo galuega eseese, ma iu ai ina matou faʻapipiʻi i le faʻamaumauga e le gata i le Nextcloud, ae o le tele foi o isi auaunaga. O loʻo i ai foʻi se faʻatulagaina iina pe afai e te le manaʻo e faʻapipiʻi ma le lima (ma matou te le manaʻo ai) ma .gitlab-ci.yml

E leai se auala e sui ai le taimi ole CI/CD ile Gitlab API, ae e laʻititi. E tatau ona faʻateleina, fai atu i 1d.

GitLab, laki, e mafai ona faʻalauiloa e le gata e tusa ai ma se tautinoga, ae naʻo se faʻatulagaga, o le mea tonu lea tatou te manaʻomia.

O lenei e uiga i le faʻapipiʻi tusitusiga.

Matou te setiina tulaga nei mo lenei tusitusiga:

  • E tatau ona faʻalauiloa uma e le tagata tamoʻe ma lima mai le faʻamafanafanaga faʻatasi ai ma galuega tutusa.
  • E tatau ona i ai ni tagata e fa'aogaina mea sese:
  • toe faafoi code.
  • saili mo se manoa i totonu o le ogalaau. Mo se faʻataʻitaʻiga, mo i matou o se mea sese atonu o se feʻau e le manatu le polokalama e faʻaleagaina.
  • Taimi fa'agasolo. Ole taimi ole ta'ita'i e tatau ona talafeagai.
  • Matou te manaʻomia se faʻamatalaga auiliili. Ae na'o le tulaga o se mea sese.
  • Ole tele o suʻega e faia foi aʻo leʻi amataina.
  • Laiti ponesi mo le fa'afaigofie na matou maua le aoga i le faagasologa o le lagolago:
  • O le amataga ma le fa'ai'uga o lo'o fa'amauina i le syslog a le masini fa'apitonu'u. E fesoasoani lea e fa'afeso'ota'i fa'aletonu faiga ma fa'agaioiga fa'asao.
  • O se vaega o le log error, pe afai ei ai, o loʻo tuʻuina atu i le stdout, o le log atoa e tusia i se faila ese. E faigofie le vaʻai vave ile CI ma iloilo le mea sese pe a fai e le taua.
  • Debugging auala.

O le ogalaau atoa o loʻo faʻasaoina o se mea faʻapitoa i GitLab; afai e leai se mea sese, e tape le ogalaau. Matou te tusia le tusitusiga i le bash.

Matou te fiafia e iloilo soʻo se fautuaga ma faʻamatalaga e uiga i punaoa tatala - faʻafeiloaʻi.

E faapefea e lenei galuega

O se tagata tamo'e ma le Bash executor e fa'alauiloa i luga o le node faaleoleo. E tusa ai ma le faʻatulagaina, o le galuega CI / CD o loʻo faʻalauiloaina i se tunika faʻapitoa. E fa'alauiloa e le tagata tamo'e se tusitusiga fa'apipi'i lautele mo galuega fa'apenei, e siaki ai le aoga o le fa'amaumauga fa'asao, fa'amautu ma mea uma tatou te manana'o ai, ona toe fa'afo'i lea ma fa'amama le mea tuai. O le fa'amaumauga mae'a lava ia e lafo i le S3.

Matou te galulue e tusa ai ma lenei polokalame - o se AWS fafo e tuʻuina atu poʻo se Rusia tutusa (e sili atu le saoasaoa ma o faʻamaumauga e le alu ese mai le Russian Federation). Pe matou te fa'apipi'i se isi fa'aputu laiti mo le kalani i luga o lana saite mo nei fa'amoemoega. E masani ona matou faia lenei mea mo mafuaʻaga saogalemu, pe a le manaʻo le kalani e alu ese le faʻamaumauga mai le latou matagaluega.

Matou te leʻi faʻaogaina le uiga o le lafoina o faʻamaumauga e ala i le ssh. E le faʻaopoopoina le saogalemu, ma o le gafatia fesoʻotaʻiga a le S3 e tuʻuina atu e sili atu le maualuga nai lo le tasi masini ssh.

Ina ia puipuia lau masini faʻapitonuʻu mai se tagata taʻavale, talu ai e mafai ona ia tapeina faʻamatalaga ile S3, e tatau ona e faʻatagaina le faʻaliliuina.
O le fa'amaumauga e fa'ailogaina i taimi uma le fa'amaumauga.

Borg ei ai se faiga e le fa'ailogaina none, ae matou te le fautuaina malosi le ki. I lenei faiga, e le gata o le a leai se faʻamatalaga, ae o le siaki siaki o mea o loʻo tusia e le o fuafuaina, o lona uiga o le faʻamaoni e naʻo le siakiina le tuusao, e faʻaaoga ai faʻamatalaga.

E siaki e se tagata fa'atulagaina fa'amaumauga fa'amaumauga mo le fa'amaoni o fa'amaumauga ma anotusi. E telegese ma umi le siaki, o lea matou te ta'i ta'i tasi i le masina. Atonu e tele aso e alu ai.

Readme i le gagana Rusia

Galuega autu

  • prepare aʻoga
  • testcheck siaki saunia
  • maincommand 'au autu
  • forcepostscript o se galuega e faʻatinoina i le faaiuga poʻo se mea sese. Matou te faʻaaogaina e aveese ai le vaeluaga.

Galuega tautua

  • cleanup Matou te faamaumauina mea sese pe tape le faila ogalaau.
  • checklog vase le ogalaau mo le tupu mai o se laina ma se mea sese.
  • ret ulufafo i fafo.
  • checktimeout siaki mo le taimi malolo.

siosiomaga

  • VERBOSE=1 Matou te fa'aalia mea sese i luga o le lau vave (stdout).
  • SAVELOGSONSUCCES=1 faasaoina le ogalaau i le manuia.
  • INIT_REPO_IF_NOT_EXIST=1 Fausia se fale teu oloa pe a leai. Ua le atoatoa ona o le faaletonu.
  • TIMEOUT taimi aupito maualuga mo le galuega autu. E mafai ona e setiina o le 'm', 'h' po'o le 'd' ile pito.

Faiga teu mo kopi tuai. Fa'atonu:

  • KEEP_DAILY=7
  • KEEP_WEEKLY=4
  • KEEP_MONTHLY=6

Fesuiaiga i totonu o le tusitusiga

  • ERROR_STRING — manoa mo le siaki i totonu ogalaau mo mea sese.
  • EXTRACT_ERROR_STRING - fa'amatalaga mo fa'aali manoa pe a sese.
  • KILL_TIMEOUT_SIGNAL — faailo mo le fasioti pe a uma le taimi.
  • TAIL — e fia manoa e iai mea sese i luga o le lau.
  • COLORMSG — lanu o le fe'au (samasama masani).

O lena tusitusiga, lea e taʻua o le wordpress, e iai lona igoa faʻapitoa, o lona togafiti e faʻapea foi ona toe faʻafoʻi le mysql database. O lona uiga e mafai ona faʻaaogaina mo faʻapipiʻi tasi-node Nexcloud, lea e mafai ai foi ona e toe faʻaleleia le faʻamaumauga. O le faʻaogagofie e le gata o mea uma i le nofoaga e tasi, ae faʻapea foʻi mea o loʻo i totonu o faʻamaumauga e latalata i mea o loʻo i totonu o faila, talu ai e laʻititi le eseesega o le taimi.

Restic vs Borg

E iai foʻi faʻatusatusaga i le va o Borg ma Restic iinei i Habré, ma e lei ia i matou le galuega o le faia na o se isi, ae o a matou lava galuega. Sa taua ia i matou pe faʻafefea ona vaʻaia a matou faʻamatalaga, ma a matou faʻamatalaga patino. Matou te aumaia i latou.

O a matou filifiliga filifilia, faʻaopoopo i mea ua uma ona taʻua (totogi, toe faʻaleleia vave, ma isi):

  • Tete'e i galuega e le'i mae'a. Siaki mo le fasioti -9.
  • Tele ile tisiki.
  • Manaoga mo punaoa (CPU, manatua).
  • Tele o poloka teuina.
  • Galulue ma S3.
  • Siaki le faamaoni.

Mo su'ega, na matou ave se tasi tagata fa'atau ma fa'amaumauga moni ma le aofa'i atoa o le 1,6 TB.
Tulaga.

E le iloa e Borg pe faʻafefea ona galue saʻo ma le S3, ma matou faʻapipiʻi le disk e fai ma fuse, e ala i goofys. Na auina atu e Restic i le S3 lava ia.

Goofys galue vave ma lelei, ma e iai faʻapipiʻi faʻapipiʻi module, lea e faatelevaveina atili ai le galuega. O loʻo i totonu o le beta stage, ma, saʻo, na matou paʻu i faʻamaumauga leiloa i taimi o suʻega (isi). Ae o le faʻaogagofie o le faiga faʻapipiʻi lava ia e le manaʻomia ai le tele o le faitau, ae o le tele lava o le tusitusi, o lea matou te faʻaogaina ai le faʻaoga naʻo taimi o siaki faʻamaoni.

Ina ia faʻaitiitia le aʻafiaga o fesoʻotaʻiga, matou te faʻaogaina se faʻalapotopotoga faʻapitonuʻu - Yandex Cloud.

I'uga o su'ega fa'atusatusa.

  • Kill -9 ma se toe restart na manuia uma.
  • Tele ile tisiki. E mafai e Borg ona faʻapipiʻi, o lona uiga o taunuuga e pei ona faʻamoemoeina.

Fesoasoani
fua

Borg
562GB

Malolo
628GB

  • E ala ile PPU
    O Borg lava ia e faʻaaogaina sina mea itiiti, faʻatasi ai ma le faʻalavelave faʻamalosi, ae tatau ona iloiloina faʻatasi ma le faʻagasologa o le goofys. I le aofaʻi, latou te faʻatusatusa ma faʻaoga e uiga i le 1,2 cores i luga o le masini masini suʻega tutusa.
  • Manatu. O le malolo e tusa ma le 0,5GB, Borg e tusa ma le 200MB. Ae o nei mea uma e le taua pe a faʻatusatusa i le faila faila cache. O lea e fautuaina ai le tuʻuina atu o le tele o manatua.
  • O le ese'esega i le lapopo'a o fugala'au sa mata'ina.

Fesoasoani
fua

Borg
e tusa ma le 500MB

Malolo
e tusa ma le 5MB

  • O le poto masani i le Restic's S3 e sili ona lelei. O le galulue faatasi ma Borg e ala i goofys e le laga ai ni fesili, ae ua maitauina e fautuaina e fai le umount pe a maeʻa le faʻamaumauga e toe setiina atoa le cache. O le uiga ese o le S3 e le mafai ona lafoina ni pusi i lalo o pamu i le pakete, o lona uiga o faʻamatalaga le faʻatumu e oʻo atu ai i le tele o faʻaleagaina.
  • O le siaki faʻamaoni e aoga lelei i tulaga uma e lua, ae o le saoasaoa e matua ese lava.
    Malolo 3,5 itula.
    Borg, ma le 100GB SSD faila cache - 5 itula.E tusa o le saoasaoa tutusa taunuuga pe afai o faamatalaga o loo i luga o se tisiki i le lotoifale.
    E faitau sa'o Borg mai le S3 e aunoa ma se fa'aoga 33 itula. Mata'utia umi.

O le pito i lalo o le Borg e mafai ona faʻapipiʻi ma e tele atu paʻu - lea e taugofie ai le teuina ma le GET/PUT gaioiga i le S3. Ae o lenei mea e sau i le tau o le sili atu ona lavelave ma faʻagesegese le faʻamaoniga. Ae mo le saoasaoa o le toe faʻaleleia, matou te leʻi matauina se eseesega. O le Restic e fai fa'amaumauga mulimuli ane (pe a uma le muamua) mo sina taimi umi, ae e le matua'i.

Mulimuli ae le itiiti i le filifiliga o le toatele o le nuu.

Ma sa matou filifilia borg.

O nai upu e uiga i le fa'amalosi

Borg o loʻo i ai se algorithm faʻapipiʻi fou sili ona lelei i lana auupega - zstd. E le sili atu le leaga o le compression nai lo le gzip, ae sili atu le vave. Ma fa'atusatusa i le saoasaoa i le lz4 fa'aletonu.

Mo se faʻataʻitaʻiga, o le MySQL database dump e faʻapipiʻi faalua e sili atu nai lo lz4 i le saoasaoa tutusa. Ae ui i lea, o le poto masani i faʻamatalaga moni o loʻo faʻaalia ai e itiiti lava se eseesega i le fua faʻatatau o le Nextcloud node.

Borg ei ai se faiga faʻapipiʻi ponesi - afai o le faila e maualuga le entropy, ona le faʻaaogaina lea o le faʻamalosi, lea e faʻateleina ai le saoasaoa. Fa'aaga e ala i filifiliga pe a fai
-C auto,zstd
mo le zstd algorithm
O lea la ma lenei filifiliga, pe a faʻatusatusa i le faʻaogaina faʻamalosi, matou maua
560Gb ma le 562Gb. O faʻamatalaga mai le faʻataʻitaʻiga o loʻo i luga, seʻi ou faamanatu atu ia te oe, e aunoa ma le faʻamalosi o le taunuuga o le 628Gb. O le taunuuga o se eseesega 2GB na faateia ai i matou, ae na matou manatu o le a matou filifilia pe a uma. auto,zstd.

Metotia fa'amaonia faaleoleo

E tusa ai ma le faʻatulagaina, o le masini komepiuta e faʻalauiloa tuusaʻo mai le tuʻuina atu poʻo mai le kalani, lea e faʻaitiitia ai le uta o fesoʻotaiga. O le mea sili e taugofie nai lo le siiina oe lava ma ave taavale.

goofys --cache "--free:5%:/mnt/cache" -o allow_other --endpoint https://storage.yandexcloud.net --file-mode=0666 --dir-mode=0777 xxxxxxx.com /mnt/goofys
export BORG_PASSCOMMAND="cat /home/borg/.borg-passphrase"
borg list /mnt/goofys/borg1/
borg check --debug -p --verify-data /mnt/goofys/borg1/

I le faʻaaogaina o le polokalame lava e tasi, matou te siakiina faila i se antivirus (pe a uma le mea moni). A uma mea uma, e tuʻuina atu e tagata faʻaoga mea eseese i Nextcloud ae le o tagata uma e iai se antivirus. O le faia o asiasiga i le taimi o le sasaa e alu ai le tele o le taimi ma faʻalavelave ai pisinisi.

E maua le Scalability e ala i le tamo'e o tagata tamo'e i nodes eseese ma pine eseese.
O la matou mata'itū e aoina fa'amaumauga fa'amaumauga e ala i le GitLab API i le tasi fa'amalama; pe a mana'omia, fa'afitauli e faigofie lava ona iloa ma fa'apena fo'i ona fa'avasegaina.

iʻuga

O se taunuuga, matou te iloa mautinoa matou te faia faʻamaumauga, e aoga a matou faʻamaumauga, faʻafitauli e tulaʻi mai ma latou e faʻaalu sina taimi ma e foia i le tulaga o le pule o tiute. E la'ititi lava le avanoa e fa'aalu i tua pe a fa'atusatusa i le tar.gz po'o le Bacula.

puna: www.habr.com

Faaopoopo i ai se faamatalaga