4-6 september i Sankt Petersburg, i konferenssalen Selectel, kommer det att hÄllas en tre dagar lÄng .

Vi har byggt programmet med tanken att teoretiska verk inom DevOps, liksom manualer för verktyg, kan lÀsas av var och en pÄ egen hand. Det som Àr intressant Àr bara erfarenhet och praktik: förklaringar om hur man ska göra och inte göra, samt berÀttelser om hur vi gör.
I varje företag, hos varje administratör eller utvecklare finns det en egen nivÄ av DevOps. Vissa anvÀnder Git felaktigt, andra implementerar SRE. Kursen Àr organiserad sÄ att varje deltagare hittar nÄgot relevant som kan implementeras hÀr och nu.
Vi börjar med Git, ser sedan pÄ applikationsutveckling, samverkan mellan kod och infrastruktur, bygger CI/CD, beskriver infrastruktur som kod (IaC), testar den resulterande lösningen, sÀtter upp övervakning, samlar in och analyserar loggar, och i slutet nÄr vi fram till SRE: vi förvandlar pÄlitlighet till en mÀtbar och hanterbar historia.
Git
Just nu Àr det bara de som köpte sin första laptop igÄr som inte anvÀnder Git. Det Àr ett trivialt och allmÀnt verktyg, och ÀndÄ stöter vi ofta pÄ dess felaktiga anvÀndning: frÄn att tvinga push i master till att kopiera filer frÄn Git till servern via Ctrl-C, Ctrl-V.
Vi berÀttar hur man inte ska göra, hur man ska göra, hur man gör i Southbridge.
Vi gÄr igenom praktiken: grunderna i Git, teamarbete.
Ămne nr 1: Grunderna i att arbeta med Git
- GrundlÀggande kommandon git init, commit, add, diff, log, status, pull, push
- Git flow, grenar och taggar, sammanslagningsstrategier
- Arbete med flera remote repo
Ămne nr 2: Teamarbete med Git
- GitHub flow
- Fork, remote, pull request
- Konflikter, releaser, en gÄng till om Gitflow och andra flöden som gÀller team
Materialet Àr organiserat sÄ att administratörer och utvecklare omedelbart kan implementera alla praktiker i sitt arbete.
Ur ett DevOps-perspektiv strukturerar och automatiserar korrekt arbete med Git utvecklings- och administrationsprocesser, utesluter ett antal Äterkommande problem och ökar produktiviteten.
DevOps-utvecklare
Vi ser pÄ DevOps genom en utvecklares ögon: sÀtter igÄng en lokal miljö, skriver applikationen, stÀller in övervakning och loggning, testar lokalt, organiserar lagring av variabler/hemligheter och service discovery, ser pÄ spÄrning (opentracing).
Ămne nr 3: Att arbeta med applikationen ur utvecklarens perspektiv
- InstÀllning av lokal miljö: praktiska rekommendationer
- Vi skriver en mikrotjÀnst i Python (inklusive tester)
- AnvÀndning av docker-compose i utveckling
Ămne nr 4: Interaktionen mellan kod och infrastruktur
- Praktik för arbete med konfigurationer
Som resultat kommer utvecklarna att se hur koden ska skicka loggar, hur den ska testas, och hur den kommer att debuggas framöver. Administratörerna kommer att förstÄ utvecklarnas behov: vilka fel som kan uppstÄ i koden, hur man organiserar tester för utvecklarna och hur man sjÀlv testar projektet.
I detta skede löser man den huvudsakliga uppgiften för DevOps: man etablerar ömsesidig förstÄelse och samarbete mellan dev och ops. Detta Àr ett nyckelsteg mot att gÄ frÄn ett utbyta av uppgifter till ett ansvarigt samarbete.
Som ett resultat ökar hastigheten och kvaliteten pÄ arbetet.
CI/CD
Modern automatisering innebÀr CI/CD. Vi börjar med att titta pÄ manuell automatisering: makefiler, git hooks, skript. Vi gÄr igenom nÀr dessa verktyg fortfarande Àr aktuella och nÀr de inte bör anvÀndas.
Sedan ser vi pÄ de bÀsta metoderna för modern CI med exempel frÄn Gitlab.
Ămne nr 5: CI/CD introduktion till automatisering
- Introduktion till automatisering
- Verktyg (bash, make, gradle)
- AnvÀndning av git-hooks för att automatisera processer
- Fabriksbaserade konveyorlinjer och deras tillÀmpning inom IT
- Exempel pÄ att bygga en "gemensam" pipeline
- Modern mjukvara för CI/CD: Drone CI, BitBucket Pipelines, Travis m.fl.
Ămne nr 6: CI/CD: Arbeta med Gitlab
- Gitlab CI - översikt
- Gitlab Runner, deras typer och tillÀmpning
- Gitlab CI, konfigurationsspecifika egenskaper, bÀsta metoder
- Steg i Gitlab CI
- Gitlab CI-variabler
- Bygg, testning, distribution
- Kontroll och begrÀnsningar av körning: only, when
- Arbete med artefakter
- Mallar inuti .gitlab-ci.yml, ÄteranvÀndning av ÄtgÀrder pÄ olika delar av pipelinen
- Include - sektioner
- Centraliserad hantering av gitlab-ci.yml (en fil och automatiska pushar till andra repor)
Samarbetet mellan administratörer och utvecklare nÄr en ny nivÄ: administratören skriver CI-mall, och utvecklarna justerar det, vilket bygger sin CI oberoende av administratören.
Beroendet av utvecklarna minskar frÄn administratörerna, antalet manuella uppgifter minskar, och problemet med den "enda personen som vet hur man arbetar med make-filen" försvinner. Utrullningar sker pÄlitligt och snabbt.
IaC
Tema för Infrastructure as Code med exempel frÄn Terraform kommer att presenteras av cloud-administratören pÄ Selectel, Alexey Stepanenko. Han kommer att visa hur man snabbt och automatiskt kan installera och skala servrar, hur man automatiskt paketerar bilder, samt hur man anvÀnder konfigurationsmallar för att direkt fÄ fÀrdiga maskiner.
En person som har skapat tusentals IaC-lösningar kommer att berÀtta om hur man gör det pÄ rÀtt sÀtt och hur man inte ska göra det.
Lösningen för cloud Selectel, med minimala justeringar, Àr lÀmplig för Google- och Amazon-moln.
Medarbetaren frÄn Southbridge, Nikolay Mesropyan, kommer att visa hur man utan nedtid kan installera en fungerande applikation med Ansible och kontrollera dess funktionalitet.
Om du manuellt Àndrar infrastrukturen (konfigurerar servrar, installerar bibliotek och paket vid behov), mÄste du nÀr du försöker Äteruppbygga en kopia av miljön minnas och reproducera alla dina ÄtgÀrder. Denna uppgift kan lÀtt ta 3-5 dagar. Att arbeta med infrastrukturen som kod garanterar att du har en aktuell beskrivning av miljön som kan installeras pÄ minuter.
Nikolay kommer att berÀtta hur man skriver playbooks, vilka misstag som förekommer och varför playbooks ibland arbetar lÄngsamt eller inte fungerar som förvÀntat. Detta Àr erfarenheten frÄn mÄnga Ärs anvÀndning av IaC i Southbridge.
Ămne Nr 7: Infrastructure as Code
- IaC: tillvÀgagÄngssÀtt för att betrakta infrastruktur som kod
- Molnleverantörer som infrastrukturleverantörer
- Systeminitialiseringsverktyg, bildbyggande (packer)
- IaC med exempel frÄn Terraform
- Lagring av konfigurationer, samarbete, automatisering av tillÀmpningar
- Praktik för att skapa Ansible-playbooks
- Idempotens, deklarativitet
- IaC med exempel frÄn Ansible
- Database as Code / FjÀdringsbarhet för PostgreSQL
Infrastrukturen fÄr deklarativitet och idempotens.
Administratören lÀr sig att hantera en komplex infrastruktur: snabbt skapa nya miljöer, upprÀtthÄlla enhetlighet mellan alla miljöer, se Àndringshistorik, vilket Àr kritiskt nÀr flera team arbetar pÄ projektet.
Utvecklaren kan studera infrastrukturen och sjÀlvstÀndigt installera sina egna miljöer.
Bonus avsnittet â skapandet och instĂ€llningen av en fjĂ€dringsbar databascluster för PostgreSQL. Vi kommer att ge dig en fĂ€rdig playbook som vi anvĂ€nder i Southbridge, och du kommer att kunna installera en cluster pĂ„ en utbildningsmiljö och anvĂ€nda denna lösning i ditt företag.
Testning av infrastrukturen och övervakning
Automatisering möjliggör att felsöka problem omedelbart pÄ tusentals servrar. Varje Àndring krÀver testning. à andra sidan tar manuell testning sÄ mycket tid att det urholkar fördelarna med automatisering.
Vi visar i praktiken hur man skriver rolltester. Som resultat kommer du att kunna skriva tester för ditt företag. Du behöver inte lÀngre komma ihÄg instÀllningar som gjorts, du beskriver dem i testerna och kontrollerar automatiskt att alla tidigare lösningar och tillfÀlliga lösningar fortfarande Àr pÄ plats.
Sedan lÀr vi oss att automatiskt lÀgga till alla nya servrar i övervakningen. Vi kommer att titta pÄ övervakning av infrastruktur och applikationer separat. Vi visar dÄliga och bra metoder.
Ămne nr 8: Testning av infrastruktur
- Testning och kontinuerlig integration med Molecule och Gitlab CI
- AnvÀndning av Vagrant
Ămne nr 9: Ăvervakning av infrastruktur med Prometheus
- Varför behövs övervakning
- Typer av övervakning
- Notifieringar i övervakningssystemet
- Hur man bygger ett hÀlsosamt övervakningssystem
- MÀnniskovÀnliga notifieringar för alla
- Health Check: Vad man bör ha i Ätanke
- Automatisering baserat pÄ data frÄn övervakningen
Felaktig övervakning Àr liktydigt med avsaknad av övervakning. Företaget bryr sig inte om att startsidan för e-handelsbutiken Àr tillgÀnglig om betalningsformulÀret ger ett felmeddelande.
I instÀllningen av övervakning och problemlösning deltar utvecklare och administratörer pÄ lika villkor. Traditionellt Ävilar övervakningsuppgifterna administratörerna. VÄr kurs kommer att visa utvecklarna vilken roll de spelar i att skapa effektiv övervakning. Administratörer kommer att fÄ bÀsta praxis frÄn Southbridge. Som resultat kommer mÀngden förluster orsakade av driftstopp och lÀgre prestanda för webbplatsen eller applikationen snabbt att minska.
Bonusavsnitt: automatisering baserad pÄ övervakning. Till exempel meddelar övervakningen att belastning har kommit till webbplatsen, och skalning av webbservrar sÀtts igÄng automatiskt.
Loggning
Det största misstaget nÀr det gÀller loggar Àr att administratörer och utvecklare tittar pÄ dem direkt pÄ servrarna. Om du har mer Àn en server tar det tid. Det Àr osÀkert: utvecklaren gÄr in pÄ en server dÀr han inte bör vara.
DevOps krÀver centraliserad insamling, bearbetning och analys av loggar.
Ămne nr 10: Loggning av applikationer med ELK
- Huvudapplikationer och funktioner för elastic (sökning, lagring, skalningsfunktioner, anpassningsbarhet)
- Ăversikt av kibana (huvudfunktioner, frĂ„gesprĂ„k, dashboardhantering, skapa grafer)
- Ăversikt av produkter baserade pĂ„ elastic och deras anvĂ€ndning
- Samlar mÀtvÀrden i APM (applikationsspÄrning)
- TillĂ€gg: Ăversikt av den nya produkten â SIEM
Genom att implementera denna metod blir loggar ett enkelt och tydligt verktyg för att analysera, konfigura och justera applikationen och infrastrukturen.
SRE
Och vi kommer till Àmnet som Southbridge just börjar titta pÄ och som andra talare vill stanna kvar för pÄ den sista dagen av Slyram. Vi Àr glada att Ivan Kruglov frÄn Booking.com har gÄtt med pÄ att lÀsa den.
Projektet lever i den verkliga vÀrlden dÀr pÄlitlighet aldrig Àr absolut och varje beslut kostar pengar.
Vad Àr SLA i förhÄllande till ett komplext projekt? LÄt oss sÀga, hur bedömer man att webbplatsen Àr tillgÀnglig, men bilder laddas med fördröjning. Vad Àr SLA-mÀtvÀrdena, var fÄr man dem, hur fÄr man dem?
Hur installera SLA? Hur upprÀtthÄlla dem?
Ămne nr 11: SRE
Definition av SLA, SLO, Error Budget och andra skrÀmmande termer frÄn SRE-vÀrlden
SRE: Praxis för övervakning av SLI och SLO
SRE: Praxisen för tillÀmpning av Error Budget
SRE: Hantering av avbrott och operationell belastning (apigateway, service mesh, circuit brackers)
Företaget vill ha SRE. Ă
tminstone pÄ den enklaste nivÄn: ha en reservserver eller ÄterstÀlla frÄn backup? En databas eller kluster? Installera DDoS-skydd proaktivt eller endast under attack?
Direktörerna blir inte nöjda med att höra att "webbplatsen fungerar" nÀr en kund ringer och meddelar att bestÀllningsformulÀret inte öppnas.
DÀrför Àr det viktigt för DevOps-ingenjören att Ätminstone ytligt förstÄ SRE, för att pÄ ett adekvat sÀtt prata med företaget om dess behov.
Resultat
Under tiden administratörer och utvecklare kommer att lÀra sig:
â arbeta korrekt med Git;
â organisera lokal utveckling;
â konfigurera (administratörer) och anvĂ€nda (utvecklare) CI/CD;
â arbeta med infrastruktur som kod;
â testa infrastrukturen;
â övervaka infrastrukturen och applikationen;
â konfigurera loggning;
â förstĂ„, och i idealfallet â anvĂ€nda SRE.
För uppmĂ€rksamma lĂ€sare â med rabattkoden habrapost fĂ„r du 15% rabatt.
Vi förbereder praktik och verktyg för alla punkter. SÄ varje deltagare kommer efter att ha ÄtervÀnt frÄn Slurm kunna ta sitt företag till nÀsta nivÄ inom DevOps.
För företag innebÀr detta lÀgre kostnader för administration och utveckling, minskad nedtid, ökad pÄlitlighet, snabbare leverans av funktioner och buggfixar.
KĂ€lla: habr.com
