Python inseneridele - kursus 65 000 hõõruda. Slurmist, koolitus 3 kuud, kuupäev 15.01.2024.
Varia / / November 27, 2023
Techlead, andmeinsener Skyengis / endine Slurm, ISP-süsteem, Grid Dynamics
Sr. Tarkvarainsener ettevõttes Test, Auriga, endine ISPsüsteem
#1: Pythoni põhiline süntaks ja struktuurid
Miks: Pythoni programmide loogika mõistmise õppimine, aga ka lihtsate programmide kirjutamine on kõige olulisem ülesanne. "Suurepärane", kui te pole Pythoni süntaksiga tuttav.
- Andmetüübid ja muutujad, muutlikud/muutumatud ja lihtsad/liitandmetüübid, silumistehnikad.
- Tingimuslik lause – loogilised operaatorid, lihttingimused, pesastatud tingimused ja lülitilause asendamine.
- Põhitsüklid – while ja for tsüklid, iteraatorid, tsüklikatkestused.
- Funktsioonid, stringide meetodid, loendid ja sõnastikud.
- Erandite loomine ja käsitlemine.
Praktika: iga õppetunni jaoks väikeste mikroülesannete komplekt.
#2: Täiustatud Pythoni oskus: optimeerimised ja OOP
Miks? Õppigem Pythoni funktsioone – tänu neile on see nii lihtne ja praktiline. Samuti paljastame nende kolme tähe tähenduse (räägime OOP-st) ilma akadeemilise teooriata ja selge eesmärgiga
- Täiustatud töö silmustega – tootluslause ja generaatorid, ülevaated Pythoni tsüklite kohta, else lause tsüklis, mõistmistsüklite optimeerimine jne.
- Struktuuride eritüübid: frozendict, defaultdict jne.
- OOP põhimõisted: klassid, klassi eksemplarid, kapseldamine, pärimine ja polümorfism.
- Kontekstihaldurite loomine oma tüüpidele: koos konstruktsiooniga.
Praktika: iga õppetunni jaoks väikeste mikroülesannete komplekt.
Edasijõudnud praktika: teenuse kasutamise audit.
CTO hakkas kahtlustama, et meeskonnad ei kasuta enam mõnda teenust. Probleem on selles, et kasutatud teenuste jälgimise moodulit ei ole viimased kümme aastat uuendatud: seda ei tehta saab üles laadida koondandmeid ja tagastatud väärtuste vorming ei vasta üldtunnustatud vormingule standarditele. Olete valitud jäädvustatud mõõdikute ekstraheerimiseks, tüübi ja meeskonna järgi koondamiseks ning selle teabe edastamiseks tehnilisele juhile probleemi ulatuse esialgseks hindamiseks.
#3: võrguühendused
Miks? Peaaegu igal teenusel on liides mõne võrguprotokolli kaudu ühenduse loomiseks. Ja ilma ühenduseta on suhtlemine võimatu. Õnneks on Pythoni ökosüsteemil kliendimoodulid peaaegu iga protokolli jaoks.
- Pip-pakett ja kolmanda osapoole moodulite installimine.
- Paramiko moodul käskude täitmiseks ssh kaudu.
- Päringute moodul HTTP päringute tegemiseks.
- Andmebaaside ja sõnumivahendajatega töötamise moodulite ülevaade.
Harjuta. Arendusmeeskond tutvustab uut metoodikat: kui lubate märguandel esineda, saate ülesande. Analüütiline alamsüsteem otsib ainult valitud vigu ja saadab nende kohta teateid Kafka sõnumivahendajale. Teie ülesanne on lõpetada arendajatele vigade tagastamise tsükkel: teie tarbija peaks Trellos automaatselt looma vajaliku kirjelduse ja prioriteediga ülesanded.
Nr 4: Töötamine tekstiga erinevates vormingutes
Miks? Teenusega ühenduse loomine on vaid pool võitu. Teine pool on info jagamine. Ja teave on sageli teatud vormingus tekstimärkide kogum. Moodulid aitavad teil dekodeerida ja kodeerida. Kas te ei vaja kogu teavet? Regulaaravaldised aitavad teil olulise välja tuua ja ülejäänu kõrvale heita.
- Re-moodul ja regulaaravaldised.
- Erinevates vormingutes andmetega töötamise moodulid: eraldatud väärtused, json, yaml, xml.
- Kasutades käsurea argumente: argparse moodul.
Praktika: teenuse kasutamise andmete allika loomine.
Teenuste kasutamise auditi käigus tuvastasite ettevõtte jaoks olulist teavet, isegi tegevjuht tundis huvi. Otsustati kaotatud raha analüüsida ja mitte lasta sellistel olukordadel korduda. Selleks peate andma analüütikutele andmehõive tööriista, et nad saaksid aruandeid koostada. Probleem on selles, et seiremoodul tagastab teenuselimiidid eraldi päringu korral yaml-vormingus ja teenuste hinnad tagastab arveldussüsteem xml-vormingus. Praeguse koormuse andmed on vaja kombineerida limiitide ja hindadega. Analüütikaosakond taotles koondateavet JSON-vormingus koos võimalusega määrata ajaintervalli ja koondamisetappi.
Nr 5: Koostoime operatsioonisüsteemiga
Miks? operatsioonisüsteemiga suhtlemise olulisust pole vaja pikemalt selgitada. Selles õppetükis on, kuidas seda Pythoniga ühendada.
- Failide lugemine ja kirjutamine.
- os moodul - keskkonnamuutujate lugemine, töö kataloogide ja õigustega, töö protsessidega.
- Alamprotsessi moodul interaktiivseks suhtlemiseks protsessidega.
Praktika: automaatne juurdepääsu võimaldamine serveritele.
Kasutamata teenustest loobumise kampaania käigus tekkis kurioosne olukord: toidupoe server meeskonnad suleti, kuid infrastruktuuri meeskond kasutas seda perioodiliselt hostina lavastus. Selgus, et tootemeeskond seda ei kasutanud, sest aeg-ajalt kirjutas keegi oma seaded enda omadega üle. Otsustati, et nüüd määratakse ressurss ainult ühe meeskonna liikmetele ning automaatika aitab vigu vältida. Teie kui selle jama algataja peate kirjutama agendi, kes küsitleb perioodiliselt õiguste haldussüsteemi ja teha installitud teenuste sees õiguste konfiguratsiooni muudatusi ja vajadusel anda teenustele käsk uuesti lugeda konfiguratsioonid.
Nr 6: K8S-i operaator Pythonis (reaalajas kodeerimise voog)
13. oktoobril kell 19:00
Miks? Laiendame K8S-i võimalusi vastavalt teie ülesannetele.
Nr 7: Ansible jaoks oma mooduli kirjutamine
Miks? Ansible on võimas konfiguratsioonihaldussüsteem ja isegi laiendatav oma moodulitega. Milline kokkusattumus, et see ise ja enamik mooduleid on Pythonis kirjutatud.
- Ansible'i jaoks oma moodulite kirjutamine.
Praktika: õiguste haldamise mooduli kirjutamine.
Kaua aega tagasi, kaugel, kaugel galaktikas, kirjutasite juba agendi, et väljastada õigusi teatud teenustele. On aeg muuta tõmbe tõukamiseks ja Ansible aitab selles. Kõik, mida vajate, on lihtsalt moodul.
Nr 8: API loomine ja kasutusjuhtumid
Miks? Koodi ettevalmistamine juurutamiseks on üks olulisemaid ülesandeid. Meie enda skriptid etapi torujuhtmete jaoks aitavad muuta selle protsessi paindlikumaks ja mugavamaks.
- REST API loomine Flaskis.
- Oma prometheuse eksportija loomine Prometheus Pythoni kliendi ja Flaskiga.
Praktika: andmete üleslaadimine kolmanda osapoole jälgimissüsteemi.
Kasutamata seadmete maksumus ületas isegi pessimistlikke prognoose. Nüüd on insenerimeeskonnal veel üks vastutusvaldkond – kasutamata teenuste jälgimine. Selleks peate oma skripti kaudu perioodiliselt küsitlema arveldussüsteemi ja edastama andmed Prometheusele. Saadud andmete formaat ei ole endiselt sobiv. Peate rakendama pistiku. Ja samal ajal kirjutage lõpp-punkt, et analüüsiosakonnal oleks alati JSON-vormingus ajakohane teave käepärast.
AMA seanss + MITTEFORMAALNE kohtumine kursuse esinejatega
28. oktoobril kell 19.00
Kohtume, et arutada kursusel osalejate muresid.
#9: oma rakenduse API testimine
Miks? Mõnikord on parem koodi puudumine kui ebastabiilne kood. Selleks, et mitte karta oma koodi murdmist, tuleb kirjutada teste.
- Testide tüübid: ühik-, integratsiooni- ja otsast lõpuni.
- Ülevaade pyhamcrest moodulist ja selle sobitajatest.
- Pytesti arhitektuur ja võimalused.
- Pytesti ja pyhamcresti kasutamine ühiktestide kirjutamiseks.
Praktika: testide kirjutamine, kasutades oma API jaoks pytesti ja pyhamcresti.
Nr 10: Koostoime CVS-i ja DevOpsi süsteemidega
- Kolmandate osapoolte moodulite kasutamine Gitlabi torujuhtmetesse integreerimise näitel.
- Pygiti kasutamine koodimuudatuste kohta teabe hankimiseks.
Praktika: muudatuste logi genereerimine kohustustest.
Insenerimeeskonnale meeldisid teie lahendused nii väga, et nad said neist inspiratsiooni ja hakkasid oma lahendusi kirjutama. Kuid inimesed unustavad alati väljaannete kirjeldusi kirjutada. Selle saavutamiseks otsustas meeskond rakendada sissekandmiskokkuleppeid ja genereerida muudatuste logisid otse kohustustest, millal ühendades arendusharu väljalaskeharuga ja kui tagatise nimi ei vasta täitmisreeglitele, siis ära luba liitmistaotlust enne liita.
# 11: vestlused Errbotiga Pythonis
Miks? Peamised äriprobleemid on rakenduse jõudluse puudumine või isegi koodis esinevad vead. Kõige tõsisemad probleemid tekivad siis, kui töötajate suhtlus on ebaefektiivne. Chatops on üks viis selle probleemi lahendamiseks.
- Chatopsi kontseptsioon: milliseid probleeme Chatops lahendab?
- Errboti raamistik: installimine, pistikprogrammi põhimalli loomine, seadistamine ja käivitamine.
- Errbot raamistik: Chatopsi jaoks oma pistikprogrammi loomine erinevate sõnumite töötlemise võimalustega.
Viimane projekt
Tähtaegade ülevaatus ja huviliste kaitsmine
Pärast kursust on teil Gitis projekt: saate oma tööülesande automatiseerida või teha ühe pakutud valikutest.
Valmis projekti saab kasutada portfooliokohvrina ja näidata tööle kandideerimisel.