Python mérnököknek - tanfolyam 65 000 dörzsölje. Slurmtól, képzés 3 hónap, Dátum: 2024. január 15.
Vegyes Cikkek / / November 27, 2023
Techlead, adatmérnök a Skyengnél / ex Slurm, ISPsystem, Grid Dynamics
Sr. Szoftvermérnök a Testben, Auriga, ex ISPsystem
#1: Alapvető Python szintaxis és struktúrák
Miért: a Python programok logikájának megértése, valamint az egyszerű programok írása a legfontosabb feladat. „Remek”, ha nem ismeri a Python szintaxist.
- Adattípusok és változók, változtatható/változhatatlan és egyszerű/összetett adattípusok, hibakeresési technikák.
- Feltételes utasítás – logikai operátorok, egyszerű feltételek, beágyazott feltételek és a switch utasítás cseréje.
- Alaphurkok – while és for ciklusok, iterátorok, ciklusmegszakítások.
- Függvények, karakterláncok metódusai, listák és szótárak.
- Kivételek generálása és kezelése.
Gyakorlat: minden leckéhez egy sor kis mikrofeladat.
#2: Továbbfejlesztett Python-készség: optimalizálás és OOP
Miért: Sajátítsuk el a Python funkcióit – nekik köszönhető, hogy olyan egyszerű és praktikus. Ennek a három betűnek a jelentését is feltárjuk (az OOP-ról beszélünk) akadémiai elmélet nélkül és világos céllal
- Haladó munka ciklusokkal – hozamkimutatás és generátorok, betekintés a Python ciklusaiba, az else utasítás ciklusban, a megértési ciklusok optimalizálása stb.
- Speciális típusú szerkezetek: frozendict, defaultdict stb.
- OOP alapfogalmak: osztályok, osztálypéldányok, beágyazás, öröklődés és polimorfizmus.
- Kontextuskezelők létrehozása az Ön típusaihoz: a with konstrukció.
Gyakorlat: minden leckéhez egy sor kis mikrofeladat.
Haladó gyakorlat: Szolgáltatáshasználati audit.
A CTO gyanakodni kezdett, hogy bizonyos szolgáltatásokat már nem vesznek igénybe a csapatok. A probléma az, hogy a használt szolgáltatások figyelésére szolgáló modult az elmúlt tíz évben nem frissítették: nem összesített adatokat tölthet fel, és a visszaadott értékek formátuma nem felel meg az általánosan elfogadottaknak szabványoknak. Úgy döntöttünk, hogy kivonja a rögzített mérőszámokat, típusonként és csapatonként összesítse őket, és átadja ezeket az információkat a műszaki igazgatónak a probléma hatókörének kezdeti értékeléséhez.
#3: Hálózati kapcsolatok
Miért? Szinte minden szolgáltatás rendelkezik interfésszel valamilyen hálózati protokollon keresztüli csatlakozáshoz. Kapcsolat nélkül pedig lehetetlen az interakció. Szerencsére a Python ökoszisztéma szinte minden protokollhoz rendelkezik ügyfélmodulokkal.
- Pip csomag és harmadik féltől származó modulok telepítése.
- Paramiko modul parancsok végrehajtásához ssh-n keresztül.
- A kérések modul a HTTP-kérésekhez.
- Az adatbázisokkal és üzenetközvetítőkkel való munka moduljainak áttekintése.
Gyakorlat. A fejlesztőcsapat új módszertant vezet be: Ha engedélyezi a riasztás előfordulását, feladatot kap. Az elemző alrendszer csak a kiválasztott hibákat keresi, és azokról üzeneteket küld a Kafka üzenetközvetítőnek. Az Ön feladata a hibák visszaküldésének ciklusa a fejlesztőknek: a fogyasztónak automatikusan létre kell hoznia a szükséges leírással és prioritású feladatokat a Trellóban.
4. sz.: Munka szöveggel különböző formátumokban
Miért? A szolgáltatáshoz való csatlakozás csak a siker fele. A másik fele az információmegosztás. Az információ pedig gyakran egy bizonyos formátumú szöveges karakterkészlet. A modulok segítenek a dekódolásban és a kódolásban. Nincs szüksége minden információra? A reguláris kifejezések segítenek kiemelni a fontosat, a többit pedig elvetni.
- A re modul és a reguláris kifejezések.
- Modulok különböző formátumú adatokkal való munkavégzéshez: elválasztott értékek, json, yaml, xml.
- Parancssori argumentumok használata: argparse modul.
Gyakorlat: Szolgáltatáshasználati adatok forrásának létrehozása.
A szolgáltatások igénybevételének ellenőrzése során Ön a vállalkozás számára fontos információkat azonosított, még a vezérigazgató is érdeklődött. Úgy döntöttek, hogy elemzik az elveszett pénzt, és nem engedik, hogy ilyen helyzetek még egyszer megtörténjenek. Ehhez adatgyűjtő eszközt kell adni az elemzőknek, hogy jelentéseket készíthessenek. A probléma az, hogy a felügyeleti modul külön kérésre szolgáltatási korlátokat ad vissza yaml formátumban, a szolgáltatások árait pedig a számlázó rendszer xml formátumban adja vissza. Az aktuális terhelésre vonatkozó adatokat össze kell vonni a limitekkel és árakkal. Az elemzési részleg összesített információkat kért JSON formátumban, időintervallum és összesítési lépés megadásával.
5. sz.: Interakció az operációs rendszerrel
Miért: Az operációs rendszerrel való interakció fontosságát nem kell tovább magyarázni. Ebben a leckében megtudhatja, hogyan kapcsolhatja össze a Pythonnal.
- Fájlok olvasása és írása.
- os modul - környezeti változók olvasása, könyvtárak és jogok kezelése, folyamatokkal való munka.
- Az alfolyamat modul a folyamatokkal való interaktív interakcióhoz.
Gyakorlat: automatikus hozzáférés biztosítása a szerverekhez.
A kihasználatlan szolgáltatások elhagyását célzó kampány során furcsa helyzet állt elő: egy élelmiszerbolt szerver csapatok leálltak, de az infrastruktúra csapata időnként gazdaként használta színrevitel. Kiderült, hogy a termékcsapat azért nem használta, mert időnként valaki felülírta a beállításait a sajátjával. Úgy döntöttek, hogy az erőforrást most csak egy csapat tagjaihoz rendelik hozzá, és az automatizálás segít elkerülni a hibákat. Neked, mint annak, aki elindította ezt a zűrzavart, írnod kell egy ügynököt, aki rendszeresen lekérdezi a jogkezelő rendszert és módosítsa a telepített szolgáltatásokon belüli jogosultságok konfigurációját, és ha szükséges, adjon parancsot a szolgáltatásoknak az újraolvasásra konfigurációk.
6. szám: K8S operátor Pythonban (élő kódolású adatfolyam)
október 13-án 19 órakor
Miért? Bővítsük ki a K8S képességeit az Ön feladatainak megfelelően.
7. sz.: Saját modul megírása az Ansible számára
Miért? Az Ansible egy hatékony konfigurációkezelő rendszer, amely saját modulokkal bővíthető. Micsoda véletlen, hogy maga és a legtöbb modul Pythonban van írva.
- Saját modulok írása az Ansible-hez.
Gyakorlat: jogkezelési modul írása.
Nagyon régen, egy messzi-messzi galaxisban már írtál egy ügynököt bizonyos szolgáltatások jogainak kiadására. Ideje a húzást tolásra váltani, és az Ansible segíteni fog ebben. Csak egy modulra van szüksége.
8. szám: Az API létrehozása és használati esetei
Miért? A kód előkészítése a telepítéshez az egyik legfontosabb feladat. Saját szkriptjeink a szakaszos folyamatokhoz segítenek rugalmasabbá és kényelmesebbé tenni ezt a folyamatot.
- REST API létrehozása a Flaskban.
- Saját prometheus exportőr létrehozása Prometheus Python Client és Flask segítségével.
Gyakorlat: adatok feltöltése egy harmadik féltől származó megfigyelő rendszerbe.
A kihasználatlan berendezések költségei a pesszimista előrejelzéseket is meghaladták. Most a mérnöki csapatnak egy másik felelősségi területe van - a fel nem használt szolgáltatások figyelése. Ehhez rendszeresen le kell kérnie a számlázási rendszert a szkripten keresztül, és át kell adnia az adatokat a Prometheusnak. A kapott adatok formátuma továbbra sem megfelelő. Meg kell valósítania egy csatlakozót. És egyúttal írjon egy végpontot, hogy az analitikai részleg mindig kéznél legyen a naprakész információkkal JSON formátumban.
AMA ülés + INFORMÁLIS találkozó a tanfolyam előadóival
október 28-án 19 órakor
Találkozunk, hogy megbeszéljük a tanfolyam résztvevőinek aggályait.
#9: Az alkalmazás API tesztelése
Miért? Néha jobb, ha nincs kód, mint egy instabil kód. Annak érdekében, hogy ne féljen a kód feltörésétől, teszteket kell írnia.
- A tesztek típusai: egység, integráció és végponttól végpontig.
- A pyhamcrest modul és illesztői áttekintése.
- A pytest felépítése és képességei.
- Pytest és pyhamcrest használata egységtesztek írásához.
Gyakorlat: tesztek írása pytest és pyhamcrest használatával az API-hoz.
10. sz.: Interakció CVS és DevOps rendszerekkel
- Harmadik féltől származó modulok használata a Gitlab folyamatokba való integráció példájával.
- A pygit használata a kódmódosításokkal kapcsolatos információk lekérésére.
Gyakorlat: változási napló generálása véglegesítésekből.
A mérnökcsapatnak annyira tetszettek a megoldásaid, hogy megihletették őket, és elkezdték írni a sajátjukat. De az emberek mindig elfelejtenek leírást írni a kiadásokhoz. Ennek elérése érdekében a csapat úgy döntött, hogy végrehajtja a véglegesítési konvenciókat, és változásnaplókat generál közvetlenül a véglegesítési időpontokból összevonja a fejlesztői ágat a kiadási ággal, és ha a véglegesítés neve nem felel meg a véglegesítési konvencióknak, ne engedélyezze az egyesítés-kérést addig, amíg összeolvad.
#11: Chatops az Errbottal Pythonban
Miért? A fő üzleti problémák az alkalmazás teljesítményének hiánya, vagy akár a kódban előforduló hibák. A legsúlyosabb problémák akkor merülnek fel, ha az alkalmazottak kommunikációja nem hatékony. A probléma megoldásának egyik módja a Chatops.
- Chatops koncepció: milyen problémákat old meg a Chatops?
- Errbot keretrendszer: telepítés, alap plugin sablon létrehozása, konfiguráció és indítás.
- Errbot keretrendszer: saját beépülő modul létrehozása a Chatopshoz különféle üzenetfeldolgozási lehetőségekkel.
Végső projekt
Határidő felülvizsgálata és védelme az érdeklődőknek
A kurzus után lesz egy projektje a Git-en: automatizálhatja munkafeladatát, vagy elvégezheti a javasolt lehetőségek egyikét.
Az elkészült projekt portfólió tokként használható, és egy állásra történő jelentkezéskor is megmutatható.