Felhőalapú elemzések kezelése
Ma a DevOps áttűnte az emberek gondolkodásának és munkájának kultúráját, és felgyorsította a vállalkozások értékmegáltalását azáltal, hogy segít az egyéneknek és szervezeteknek a fenntartható munkagyakorlatok kialakításában és fenntartásában. A DevOps kombinálja a fejlesztést és a műveleteket, és gyakran olyan szoftvermérnöki eszközökhöz van társítva, amelyek támogatják a folyamatos integrációs (CI) és a folyamatos kézbesítési (CD) eljárásokat. Ezek az eszközök és eljárások közé tartoznak a forráskódkezelők (például a Git, az Apache Subversion vagy a Team Foundation verziókövetése), valamint az automatikus build- és kézbesítéskezelők (például az Azure Pipelines vagy GitHub Actions).
A DevOps és a megfigyelhetőség együttes használata kulcsfontosságú egy agilis és méretezhető platform biztosításához. A DevOps lehetővé teszi a csapatok számára a forrásvezérlés, a CI/CD-folyamatok, az infrastruktúra kódként való implementálását, a munkafolyamatokat és az automatizálást. Bár a megfigyelhetőség lehetővé teszi az üzleti tulajdonosok, a DevOps mérnökei, az adatmérnökök, az adatmérnökök és a webhely-megbízhatósági mérnökök számára a problémák automatikus észlelését, előrejelzését, megelőzését és megoldását, és elkerülik az állásidőt, amely egyébként megszakítaná az éles elemzéseket és az AI-t.
Verziókövetés
A forrásvezérlés biztosítja, hogy a kód és a konfigurációk megmaradnak, valamint hogy a változások nyomon legyenek követve és verziószámozva legyenek. A legtöbb forrásvezérlő rendszer beépített folyamatokkal is rendelkezik a kódtár különböző ágaiban való felülvizsgálathoz és munkavégzéshez. Jelenleg a legnépszerűbb forrásvezérlő típus jelenleg a Git, amely egy elosztott verziókövetési rendszer, amely lehetővé teszi az egyének számára, hogy offline működjenek, és szinkronizáljanak a központi adattárakkal. A Git-szállítók általában ágakat is használnak, és követik a lekéréses kérelmekre vonatkozó útmutatást a változási és felülvizsgálati folyamat támogatásához.
Az ágak elkülönítik a módosításokat és a funkciófejlesztéseket anélkül, hogy befolyásolnák az egyidejűleg végzett egyéb munkát. Az ágak használatát elő kell mozdítani a funkciók fejlesztésére, a hibák kijavítására és az új ötletek biztonságos kipróbálására. A lekéréses kérelmek egyesítik az egyik ág módosításait az alapértelmezett ágba, és támogatják a szabályozott felülvizsgálati folyamatot. Biztonsági okokból a fő ágnak lekéréses kérelmeket kell használnia a kód felülvizsgálata érdekében.
Fontos
Kövesse az alábbi irányelveket a felhőalapú elemzési adattárakhoz:
- Biztonságossá teheti az adattár fő ágát az ágak és lekéréses kérelmek kényszerítésével a szabályozott felülvizsgálati folyamatok biztosítása érdekében.
- Az Azure DevOps- vagy GitHub-adattárakat a forráskód módosításainak nyomon követéséhez és a kód egyidejű fejlesztéséhez kell használni az Azure DevOps vagy a GitHub-adattárak használatával.
- Az alkalmazáskódokat és az infrastruktúra-konfigurációkat egy adattárba kell beadni.
CI/CD-folyamatok
A CI lehetővé teszi a csapatok számára a forráskód automatikus tesztelését és összeállítását, valamint lehetővé teszi a gyors iterációkat és visszajelzési hurkokat a magas kódminőség biztosítása érdekében a CD-ben. A folyamatok a módosítások CI-jének (szoftverkód vagy infrastruktúrakód) és a csomagolt/lefordított módosítások CD-jének konfigurálására szolgálnak. Ezt buildelésnek és kiadásnak is nevezik. A CD az alkalmazások egy vagy több környezetben történő automatikus üzembe helyezését ismerteti. A CD általában egy CI-folyamatot követ, és integrációs tesztekkel ellenőrzi a teljes alkalmazást.
A folyamatok több fázist tartalmazhatnak különböző feladatokkal, és egyszerű és összetett jóváhagyási folyamatokkal is rendelkezhetnek a megfelelőség és az ellenőrzés biztosítása érdekében. A beállítások alapján a folyamatok különböző automatikus eseményindítókkal is konfigurálhatók. Nagyvállalati szintű és AI-alapú üzembe helyezés esetén az éles lépéseknek mindig emberi előzetes jóváhagyással kell rendelkezniük, és ez be van építve a műveleti modellbe. A CI-/CD-folyamatokat GitHub Actions vagy Azure Pipelines használatával kell felépíteni, és automatizált eseményindítóknak kell lenniük.
Infrastruktúra mint kód
Az IaC-ben a kód kifejezés gyakran aggályokat vet fel a fejlesztői háttér nélküli informatikai személyzet számára, de az IaC nem hivatkozik a kód írására, ahogyan a tipikus szoftverfejlesztők teszik. Ugyanakkor a szoftverfejlesztési folyamatok számos eszközét és alapelvét alkalmazza az infrastruktúra kiszámítható formátumban történő biztosításához.
Az IaC segít az infrastruktúra kiépítésében, konfigurálásában és felügyeletében egy DevOps-folyamat részeként, teljes körű változásvezérléssel, naplózási előzményekkel, tesztekkel, ellenőrzésekkel és jóváhagyási folyamatokkal, biztosítva, hogy a tevékenységek a biztonság és a megfelelőség veszélyeztetése nélkül delegálhatók a projekt megfelelő szerepköreibe.
Az IaC két megközelítése deklaratív és imperatív:
A deklaratív kifejezés az infrastruktúra kívánt állapotának megadására és a vezénylési motor végrehajtására utal a kívánt állapot eléréséhez szükséges műveletek végrehajtásához. Az Azure-ban ez azure Resource Manager-sablonokkal történik. Ehhez a megközelítéshez külső absztrakciós rétegek is elérhetők, például a Terraform.
Az imperatív megközelítés adott parancsok meghatározott sorrendben történő végrehajtására vonatkozik. Az Azure esetében ez a parancssori felülettel vagy a PowerShell-lel érhető el, de a natív programozási nyelvű szoftverfejlesztői készletek, például a .NET, a Python és a Java is elérhetők, ha integrált megoldásokra van szükség.
Az Azure Resource Manager-sablonokban az alapvető kiépítés az erőforrások szakaszban található, az egyes erőforrások konfigurációját pedig egy tulajdonságok szakasz határozza meg. Egy Azure Data Lake Storage Gen2 esetében a konfiguráció a következőhöz hasonlóan néz ki:
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"type": "Microsoft.MachineLearningServices/workspaces/datastores",
"name": "[concat(parameters('workspaceName'), '/', parameters('datastoreName'))]",
"apiVersion": "2020-05-01-preview",
"location": "[parameters('location')]",
"properties": {
"DataStoreType": "adls-gen2",
"SkipValidation": "[parameters('skipValidation')]",
"ClientId": "[parameters('clientId')]",
"ClientSecret": "[parameters('clientSecret')]",
"FileSystem": "[parameters('fileSystem')]",
"AccountName": "[parameters('accountName')]",
"TenantId": "[parameters('tenantId')]",
"ResourceUrl": "[parameters('resourceUrl')]",
"AuthorityUrl": "[parameters('authorityUrl')]"
}
}
]
}
Fontos
A felhőalapú elemzések minden rétegét, például az adatkezelési célzónát, az adat-kezdőzónákat vagy az adatalkalmazásokat (amelyek adattermékeket hoznak létre) deklaratív nyelven kell definiálni, például az Azure Resource Manager vagy a Terraformot, be kell jelentkezni egy adattárba, és CI/CD-folyamatokon keresztül kell üzembe helyezni őket. Így a csapatok nyomon követhetik és verziószámozhatják az Azure-hatókör infrastruktúrájának és konfigurációjának változásait, miközben támogatják a különböző architektúraszintek agilis módon történő automatizálását. Ez az útmutató arra készteti a csapatokat, hogy a Git-adattárakat használva mindig betekintést adjanak az adott Azure-hatókörök állapotába.
Munkafolyamatok és automatizálás
A Teamsnek több fázisban kell CI/CD-folyamatokat használnia annak biztosítása érdekében, hogy a kifejlesztett kód hibák nélkül és éles üzemre kész legyen. Néhány ajánlott eljárás a fejlesztési környezet, a tesztelési környezet és az éles környezet használata. Ezeknek a szakaszoknak az Azure-ban is tükröződniük kell azáltal, hogy minden környezethez külön szolgáltatásokat használnak.
A platformcsapat feladata, hogy üzembehelyezési sablonokat biztosítson és karbantartson, hogy gyorsan méretezhető legyen a szervezeten belül, és egyszerűsítse az IaC-vel nem ismert csapatok üzembe helyezését. Ezek a sablonok a forgatókönyvön belüli új összetevők alapkonfigurációjaként szolgálnak, és az ajánlott eljárásokat és a vállalaton belüli általános szabványokat az idő múlásával fenn kell tartani.
A tesztelési és éles környezetek csak CI/CD-folyamaton és emelt szintű engedélyekkel rendelkező szolgáltatáskapcsolaton keresztül kezelhetők a gyakori ajánlott eljárások (például Az Azure Resource Manager-sablonok) kikényszerítése érdekében.
Figyelemfelhívás
Az adatalkalmazási csapatoknak csak olvasási hozzáféréssel kell rendelkezniük a tesztelési és éles környezetekhez, és az ilyen környezetek üzembe helyezését csak emelt szintű engedélyekkel rendelkező CI-/CD-folyamatokon és szolgáltatáskapcsolatokon keresztül szabad végrehajtani. Az éles környezethez vezető út felgyorsításához az adatalkalmazási csapatoknak írási hozzáféréssel kell rendelkezniük a fejlesztési környezethez.