• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    ALMADDocker a kontejnery
    Docker aneb přístupný provoz kontejnerizovaných aplikací
    Docker(Hub), Compose, Swarm, boot2docker, DevOps, LXC, ECS, TumTum a jiné buzzwordy
    Bezpečnost v prostředí kontejnerů
    Related: automatizace [ Centralizovaná správa stanic a ostatních prvků v síti konfigurace/inventarizace/instalace/aktualizace/zalohovani ]
    rozbalit záhlaví
    INDIAN
    INDIAN --- ---
    JON: jenom ja ... casove tezko rict na clovekodni, koncepce se menila behem vyvoje a ja to delal bokem vedle dalsich projektu... vicemene do pul roku to bylo hotovy
    JON
    JON --- ---
    INDIAN: Kolik vas to delalo, jestli se muzu zeptat (a jestli to jde nejak odhadnout)? Ty plus dva az tri dalsi lidi, odhaduju.
    JON
    JON --- ---
    ALMAD: tam myslim jde o reseni toho odvekeho problemu - ok mam comit s appkou (infrastrukturou, whatever) ktery se ma nasadit - tedy popis stavu v jakym to "ma byt", tak se to nejak samo nasadi, ale ouha - na jeden ze stroju se to nepovedlo, protoze ten stroj nekdo polil kafem, nebo je proste jen chyba v kodu - takze co je v gitu se zacina vzdalovat realite, tomu "co je".
    A co ted? Nejakej automat commitne zmeny, aby to situaci reflektovalo?
    Ale ja chci aby to tam bylo nasazeny (jen to nejde), az nekdo ten stroj fyzicky vymeni, tak se to tam ma hned nasypat (nejlip samo).
    Imo typickej (a zajimavej) problem slepice a vejce.
    Musim se ale podivat, jak vyvoj pokrocil s tim Argo a Fluxem, delsi dobu jsem to nezkoumal.
    FALLENANGEL
    FALLENANGEL --- ---
    ALMAD: Asi se shodneme na to, ze git je standard pro uchovavani techhle veci (kdyz to nekdo mysli s IaaC vazne).
    MUXX
    MUXX --- ---
    ALMAD: Jsou odbornici co to treba cely napisou jako bash/groovy v jenkinsu a historii kodu resi zalohovanim serveru kde bezi jenkins. Videl jsem i jiny enterprise reseni ktery melo vlastni “VCS” a dohledat tam zmeny bylo peklo.
    ALMAD
    ALMAD --- ---
    Mě nenapadlo, že by se IaaC dělalo jinak, než v gitu nebo ekvivalentu...kde ten kód jinak leží?
    INDIAN
    INDIAN --- ---
    FALLENANGEL: castecne i pro deployment, ikdyz v detailu ten pull ze serveru nejde primo do adresare kde ty conf soubory sou, ale do /tmp/foo/id-instance a pak se to kopiruje dodatecne odtud ... navic se musi zajistit, aby ten pull tahal jenom instance ktery sou na danym serveru, takze je tam trochu upravena konfigurace gitu pomoci sparse-checkout
    nicmene deployment je globalne spis v rezii ansible, je treba delat naky pre/post operace
    MUXX
    MUXX --- ---
    FALLENANGEL: jo vsechno v gitu. dvakrat za hodinu si to saltmaster pullne z gitu. nektery servery si zmeny aplikuji samy. jinde je potreba jeste manualni approval. mame to hlavne pro klasicky servery, ale dockery v tom budeme delat taky. ono je uplne jedno co pouzijes, dulezity je navrhnout ten process a zacit po castech. zacinalo se s puppet, ale pak se to prehodilo na salt.

    v jiny firme to zas mam na jenkins+git. jeden job pro dev build, jeden pro release, jeden pro deploy. cele je to v Jenkinsu jako Jenkinsfile, takze kdyz do toho nekdo vrta, tak mam prehled, protoze to musi delat pres git.

    To mi pripomina, ze jsem videl jednou prednasku typka co mel autmatizovany fakt vsechno. Takovym zpusobem, ze na prednasce smazal cely Jenkins. Ten jenkins pak nahodil skriptem, jenkins rovnou si pullnul jenkinsfiles z gitrepa a zbuildoval a pushnul zmeny na web.
    FALLENANGEL
    FALLENANGEL --- ---
    RUDOLF: GitOps je smer uvnitr DevOps, kterej pouziva git (nebo jinej verzovaci system) jako single source of truth. Pro infrastrukturu, i pro aplikace, ktery na ni bezi. Pro deployment se pouzivaji nastroje jako ArgoCD, nebo Flux, ktery hlidaji drift na obou stranach a kdyz dojde k nejake zmene, tak upravi prostredi prave podle 'source of truth'. Takze zatimco IaaC je nadefinovani infrastruktury, GitOps je cesta, jak ji implementovat (mimo jine).

    INDIAN: To zni zajimave. Takze to pouzivate jenom pro konfiguraci aplikaci, ne pro deployment?

    MUXX: A ty Salt playbooky, nebo co to pouziva, mate hostovany a verzovany nekde v repozitarich?
    RUDOLF
    RUDOLF --- ---
    RUDOLF: jo, on je to buzzword: https://www.gitops.tech/
    RUDOLF
    RUDOLF --- ---
    FALLENANGEL: to zní jako normální IaC. A plus immutable koncept. Asi nerozumím té ops části. Napadá mě jen, že ty commity pouští github actions namísto jenkins nebo co kdo používá na runtime automatizace.
    MUXX
    MUXX --- ---
    FALLENANGEL: mame skoro vsechno pres saltstack. vcera jsem to zrovna pocital - 10k+ instanci. Daji se nad tim nastavit krasne procesy a SRE vidi presne kdo kdy kam hrabnul kdyz neco nefunguje. Mame to nad klasickym datacentrem i "cloudem". co se tyka toho, ze neco neni "production ready", tak to leda produkt a lidi. produkt musi byt napsanej aspon trochu normalne ( https://12factor.net/ ), jinak se to blbe automatizuje. lidi (sysadmini) se musi naucit myslet jako dev/test jinak je to hrozny prasokod.
    INDIAN
    INDIAN --- ---
    FALLENANGEL: ja mam v duchu gitops 2 projekty:
    prvni - jde o slozity aplikacni konfigurace, cca 400 ruznejch instanci ... je nad tim umele vytvoreny workflow pomoci skriptu aby to bylo user-friendly - zmeny v konfiguracich muze delat i clovek co dela helpdesk a nasledne je validuje clovek z produkcniho oddeleni ... kazdej commit obsahuje timestamp kdy ma bejt dana konfiguraci aplikovana - z cehoz vyplyva ze se ty commity dodatecne tridi aby sly po sobe - takze je to trosku znasilneny ... pipeline v gittlab CI komunikuje s AWX (ansible frontend) a vytvari joby ktery ty konfigurace aplikujou
    druhej - konfigurace sitovejch prvku pres ansible ... pro kazdy DC mam zvlast inventory file a group_vars a soucasne mam klientsky konfigurace napric vicero DC, tam je opet zbastlena cast (tentokrat spis nad ramec ansible nez gitu)

    jinak vseobecne se snazim mit vsecko IaC, takze i zbytek infra co mam v rezii je v gitu taky samozrejme (coz se samo tyka i kontejneru abych nebyl OT;))
    SINC
    SINC --- ---
    FALLENANGEL: Primarne AWS Cloudformation. Pak Helm pro K8s.
    FALLENANGEL
    FALLENANGEL --- ---
    SINC: A jaky nastroje pouzivate?
    SINC
    SINC --- ---
    FALLENANGEL: My mame kompletni infrastrukturu vcetne konfigurace k8s clusteru, networking, DNS, node groupy, helm ... v gitu a ciste pozitiva. Bez toho se neda delat review. Jedno repo je na sdilenou infrastrukturu (clustery, networking, ...) a kazdy aplikacni repo pak obsahuje svoje vlastni resources (s3 buckety, load balancery, ...).

    K prerotovani stejne jednou za cas musi dojit i na produkci, kdyz se updatujou nody. Navic jedem na spot instancich, takze oni stejne nezijou moc dlouho :)
    FALLENANGEL
    FALLENANGEL --- ---
    INDIAN: Jde mi spis o obecnej nazor, nez ze bych mel na mysli konkretni pouziti. Jeden muj zakaznik planuje mit vsechny definice infrastruktury i kod a nastaveni aplikaci v gitu a vsechno vcetne spravy ridit pres updatovani gitu. Dalsi zakaznik premysli nad docela zajimavym konceptem Dev clusteru, kdy vsechno bude opet nadefinovany v gitu a kazdej tyden stavajici cluster odstrani a z gitu vytvori novej, cimz se vyhnou nejruznejsim problemum, ktery muze hnijici Dev cluster prinest.

    Na druhou stranu slycham, ze GitOps jeste nejsou 'production ready', chybi poradnej tooling i standardizace workflow.
    INDIAN
    INDIAN --- ---
    FALLENANGEL: pro jaky pouziti? ja neco v podobnym duchu provozuju, ale sou to mozna dost specificky zalezitosti...
    FALLENANGEL
    FALLENANGEL --- ---
    Mate nekdo zkusenosti s GitOps? Pripadne nazory? Vnimam nejake smisene signaly.
    SH_PANDA
    SH_PANDA --- ---
    MARTEN: heroku?
    KING
    KING --- ---
    MARTEN: ja bych to poskladal z ruznych sluzeb a v nekterych vecech udelal kompromis, alespon ze zacatku. Napriklad potrebujes skutecne rabbitmq, nestacil by redis nebo sqs? Zbytek bych pak resil bud klasickym VM (EC2, GCP, ...) a nebo nejakou kontejnerovou sluzbou (ECS, GKE, ...) a hlavne bych se nebal externich sluzeb jako treba Elastic Cloud na ten elk nebo Citus pokud potrebuje hodne postgresu (vetsinou budou umet lokaci ve stejnem cloudu jako zbytek takze rychlost bude v pohode)
    Kliknutím sem můžete změnit nastavení reklam