Hozzon létre egy szabályozott Databricks munkaterületet Pulumi segítségével.
Megosztás
Összefoglalót olvas. A teljes tartalom itt érhető el: pulumi.com.
A Databricksért felelős platformcsapatok gyakran találják magukat szemben azzal, hogy manuálisan konfigurálják a klasztereket és a jegyzetfüzeteket minden új adatkutatási csapat számára. Ez a manuális teher következetlen klaszterpolitikákhoz, a túlméretezett példányok miatt fellépő költségekkel és biztonsági hiányosságokkal vezet a munkakörnyezet működésében. Anélkül, hogy lenne egy szabványos módszer a munkakörnyezet helyi erőforrásainak provisionálására, az adatplatformok széttagolt, egyedi környezetek gyűjteményévé válnak, amit lehetetlenség skálán szabályozni. Ahogy a Databricks használat nő a vállalaton belül, a szabályozott munkakörnyezet alap hiánya jelentős működési kockázatot jelent. A következetlen politikák váratlan számlázáshoz és audit hibákhoz vezetnek. A Databricks környezeted standardizálása Pulumi segítségével biztosítja, hogy minden munkakörnyezet a megfelelő költségellenőrzésekkel, klaszterpolitikákkal, jegyzetfüzetekkel és automatizált feladatokkal kezdődjön, lehetővé téve az adatos csapatok számára, hogy gyorsabban dolgozzanak anélkül, hogy veszélyeztetnék a kormányzást. Mit fogsz építeni Ebben a bejegyzésben megtanulod, hogyan provisionálj egy szabályozott Databricks munkakörnyezet alapot Pulumi segítségével. Tehát építesz: Klaszterpolitikákat az példánytípusok és költségellenőrzések érvényesítésére. Munkakörnyezet jegyzetfüzeteket a munkaterhelések egységesítése érdekében. Titkos területeket és engedélyeket, hogy az hozzáférés átláthatóvá váljon. Automatizált feladatokat, amelyek politikailag korlátozott számításon futnak. A végén lesz egy reprodukálható munkakörnyezet konfiguráció, amelyet bármely új Databricks környezethez telepíthetsz. A Databricks kezelési határa Amikor Pulumi használatával kezeljük a Databricks-t, értsük meg a határt a fiók szintű és a munkakörnyezet szintű erőforrások között. Fiók szintű: Felhő előfeltételek létrehozása, mint például VPC-k, alhálózatok, IAM szerepkörök és Azure erőforráscsoportok, a célplatformod felhőszolgáltatóját használja. Az AWS és GCP esetén a Databricks munkakörnyezet létrehozása és a fiók szintű azonosítás a Databricks szolgáltató fiók API-it használja, mint például a databricks.MwsWorkspaces; az Azure esetében magát a munkakörnyezetet a azure-native kezelheti. Munkakörnyezet szintű: Klaszterek, feladatok, jegyzetfüzetek, engedélyek és titkos területek kezelése egy adott munkakörnyezet északi területén. Ez a példa a @pulumi/databricks szolgáltatót használja egy Azure Databricks munkakörnyezet URL-jével, és a munkakörnyezet erőforrás mintázat ugyanúgy alkalmazható, amint a szolgáltatód konfigurálva van a cél munkakörnyezethez. Erről a bemutatóról feltételezzük, hogy már rendelkezel egy meglévő Databricks munkakörnyezettel, és szeretnéd kezelni az abban található erőforrásokat. A hitelesítő adatok konfigurálása Pulumi ESC-vel Mielőtt kódot írnál, konfigurálnunk kell a hitelesítő adatainkat. A Pulumi ESC (Környezetek, Titkok és Konfiguráció) biztonságosan kezeli ezeket. Létrehozhat egy környezetet, amely a Databricks hitelesítő adatokat a Pulumi konfigurációba térképezi a Databricks szolgáltatóhoz: értékek: databricks: host: "https://adb-123456789.0.azuredatabricks.net" token: fn::secret: databricks-token pulumiConfig: databricks:host: ${databricks.host} databricks:token: ${databricks.token} Miután konfiguráltad, importáld ezt a környezetet a Pulumi stackbe. A Databricks szolgáltató olvassa a konfigurációs értékeket, mint például a databricks:host és databricks:token, anélkül, hogy statikus titkok szükségesek lennének a stack konfigurációban. Az adat-infrastruktúrád meghatározása A következő Pulumi program TypeScript-ben külön klaszterpolitikát állít be interaktív és munka feladatokhoz, egy szabályozott megosztott klasztert, egy titkos területet, explicit engedélyeket, egy jegyzetfüzetet és egy ütemezett feladatot, amely politikailag korlátozott számításon fut. import * as databricks from "@pulumi/databricks"; const interactivePolicy = new databricks.ClusterPolicy("interactive-fair-use", { name: "Interaktív Méltányos Használati Politika", definition: JSON.stringify({ "dbus_per_hour": { "type": "range", "maxValue": 10, }, "autotermination_minutes": { "type": "fixed", "value": 20, "hidden": true, }, }), }); const jobPolicy = new databricks.ClusterPolicy("job-fair-use", { name: "Feladat Méltányos Használati Politika", definition: JSON.stringify({ "dbus_per_hour": { "type": "range", "maxValue": 10, }, }), }); const sharedCluster = new databricks.Cluster("shared-cluster", { clusterName: "Megosztott Mérnöki Klaszter", sparkVersion: "17.3.x-scala2.13", nodeTypeId: "Standard_DS3_v2", autoterminationMinutes: 20, numWorkers: 2, policyId: interactivePolicy.id, }); const clusterPermissions = new databricks.Permissions("shared-cluster-permissions", { clusterId: sharedCluster.id, accessControls: [{ groupName: "data-engineers", permissionLevel: "CAN_RESTART", }, { groupName: "analysts", permissionLevel: "CAN_ATTACH_TO", }], }); const secretScope = new databricks.SecretScope("etl-secrets", { name: "etl-secrets", }); const secretScopeAcl = new databricks.SecretAcl("etl-secrets-readers", { scope: secretScope.name, principal: "data-engineers", permission: "READ", }); const etlNotebook = new databricks.Notebook("etl-notebook", { path: "/Shared/ETL/NightlyProcess", language: "PYTHON", contentBase64: Buffer.from("print('Running ETL process...')").toString("base64"), }); const job = new databricks.Job("nightly-etl", { name: "Éjszakai ETL Feladat", tasks: [{ taskKey: "etl-task", newCluster: { numWorkers: 2, sparkVersion: "17.3.x-scala2.13", nodeTypeId: "Standard_DS3_v2", policyId: jobPolicy.id, }, notebookTask: { notebookPath: etlNotebook.path, }, }], schedule: { quartzCronExpression: "0 0 2 * * ?", timezoneId: "UTC", }, }); Ez az alap lefedi azokat az erőforrásokat, amelyekre a platformcsapatoknak elsőként szükségük van a standardizációhoz: Interaktív klaszter politika: korlátozza a DBU fogyasztást és érvényesíti az automatikus leállítást a megosztott interaktív számításhoz. Feladat klaszter politika: korlátozza a DBU fogyasztást a rövid-életű feladat számításon anélkül, hogy alkalmazná az interaktív automatikus leállítási beállításokat. Megosztott klaszter: biztosítja a csapatoknak egy szabályozott interaktív számítási célt. Titkos terület és ACL: lehetővé teszi az ETL titkok hozzáférésének áttekintését. Klaszter engedélyek: csoport szintű hozzáférést rendel a megosztott klaszterhez. Jegyzetfüzet: tárolja a munkaterhelés alapját a munkakörnyezetben. Feladat: ütemezi a jegyzetfüzetet politikailag korlátozott számításon. Érvényesítés A pulumi up futtatása után ellenőrizheted a Databricks alapodat: Databricks UI: Navigálj a „Számítás” szakaszba, és ellenőrizd, hogy a létezik-e az interaktív és feladat méltányos használati politika, az automatikus leállítás csak az interaktív politikán van rögzítve. Klaszter ellenőrzés: Ellenőrizd, hogy a megosztott klaszter hivatkozik-e az interaktív politikára és az elvárt példánytípust használja. Engedély ellenőrzés: Ellenőrizd, hogy a klaszter és titkos területi engedélyek megfelelnek-e a kívánt Databricks csoportoknak. Jegyzetfüzet ellenőrzés: Ellenőrizd, hogy a /Shared/ETL/NightlyProcess létezik-e a munkakörnyezetben. Feladat ellenőrzés: Lépj a „Munkafolyamatok” szakaszba, és erősítsd meg, hogy a „Éjszakai ETL Feladat” ütemezve van és hivatkozik a jegyzetfüzetre. A Databricks munkakörnyezeted kód formájában történő kezelése minden csapat számára egy szabályozott, költségérzékeny alapot biztosít. Használj Pulumi stackeket, hogy ugyanazokat a klaszterpolitikákat, engedélyeket, titkos területeket, jegyzetfüzeteket és feladat mintákat több munkakörnyezetre terjeszd ki a környezet-specifikus konfigurációval. # Telepítés fejlesztésre pulumi stack select dev pulumi up # Előléptetés a produkcióba pulumi stack select prod pulumi up Ez biztosítja, hogy a produkciós ETL feladatok, klaszterpolitikák, titkos területek és engedélykiosztások összhangban maradjanak a fejlesztéssel, miközben mégis lehetővé teszi minden stack számára, hogy a saját Databricks munkakörnyezetére és ESC környezetére kössön. Következtetés Ezután csatlakoztasd ezt a munkakörnyezet alapot a CI/CD pipeline-odhoz és terjeszd előre Pulumi stackeken, hogy a Databricks feladatok, klaszterpolitikák és engedélyek ugyanazon felülvizsgálati úton haladjanak, mint az alkalmazáskód. Kezdj a Databricks szolgáltató dokumentációjával és a Pulumi ESC-vel a hitelesítő adatok kezeléséhez.
Külső link: pulumi.com
Kapcsolódó cikkek
devops
Hét stabil kernel szombatra, köztük két biztonsági javítással.
devops
Miért nem mentik meg az olcsóbb modellek az AI költségvetését?
devops
