Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Návod
Tento obsah je výňatek z elektronické knihy Architektura cloud-native .NET aplikací pro Azure, která je k dispozici na .NET Docs nebo jako bezplatné PDF ke stažení, které si můžete přečíst offline.
Klíčovou vlastností aplikací nativních pro cloud je, že ke zrychlení vývoje využívají možnosti cloudu. Tento návrh často znamená, že úplná aplikace používá různé druhy technologií. Aplikace se můžou dodávat v kontejnerech Dockeru, některé služby můžou používat Azure Functions, zatímco jiné části můžou běžet přímo na virtuálních počítačích přidělených na velkých kovových serverech s hardwarovou akcelerací GPU. Žádné dvě aplikace nativní pro cloud nejsou stejné, takže je obtížné poskytnout jediný mechanismus pro jejich odeslání.
Docker kontejnery lze spustit na Kubernetes pomocí Helm Chartu pro nasazení. Funkce Azure Functions se můžou přidělovat pomocí šablon Terraformu. Nakonec mohou být virtuální počítače přiděleny pomocí Terraformu, ale sestaveny pomocí Ansible. Jedná se o širokou škálu technologií a neexistuje způsob, jak je všechny zabalit do rozumného balíčku. Doteď.
Balíčky cloudových nativních aplikací (CNABs) jsou společným úsilím mnoha společností založených na komunitě, jako jsou Microsoft, Docker a HashiCorp, a vyvíjejí specifikaci pro zabalení distribuovaných aplikací.
Úsilí bylo oznámeno v prosinci 2018, takže stále zbývá poměrně hodně práce, aby se úsilí zviditelnilo širší komunitě. Existuje však otevřená specifikace a referenční implementace označovaná jako Duffle. Tento nástroj, který byl napsán v Go, je společným úsilím mezi Dockerem a Microsoftem.
CNAB mohou obsahovat různé druhy instalačních technologií. Tento aspekt umožňuje, aby věci jako charty Helm, šablony Terraform a playbooky Ansible společně existovaly ve stejném balíčku. Po sestavení jsou balíčky samostatné a přenosné; mohou být nainstalovány z USB flash disku. Balíčky jsou kryptograficky podepsané, aby se zajistilo, že pocházejí od strany, kterou deklarují.
Jádrem CNAB je soubor s názvem bundle.json
. Tento soubor definuje obsah sady, ať už jde o Terraform, obrázky nebo cokoli jiného. Obrázek 11–9 definuje CNAB, který vyvolá nějaký Terraform. Všimněte si však, že ve skutečnosti definuje spouštěcí obraz, který se používá k vyvolání Terraformu. Při zabalení je soubor Dockeru, který se nachází v adresáři cnab , integrovaný do image Dockeru, která bude součástí sady. Když je Terraform nainstalovaný uvnitř kontejneru Dockeru v sadě prostředků, znamená to, že uživatelé nemusí mít na svém počítači nainstalovaný Terraform, aby mohli spouštět sdružování.
{
"name": "terraform",
"version": "0.1.0",
"schemaVersion": "v1.0.0-WD",
"parameters": {
"backend": {
"type": "boolean",
"defaultValue": false,
"destination": {
"env": "TF_VAR_backend"
}
}
},
"invocationImages": [
{
"imageType": "docker",
"image": "cnab/terraform:latest"
}
],
"credentials": {
"tenant_id": {
"env": "TF_VAR_tenant_id"
},
"client_id": {
"env": "TF_VAR_client_id"
},
"client_secret": {
"env": "TF_VAR_client_secret"
},
"subscription_id": {
"env": "TF_VAR_subscription_id"
},
"ssh_authorized_key": {
"env": "TF_VAR_ssh_authorized_key"
}
},
"actions": {
"status": {
"modifies": true
}
}
}
Obrázek 10–18 – ukázkový soubor Terraformu
Tento bundle.json
také definuje sadu parametrů, které se předávají do nástroje Terraform. Parametrizace sady umožňuje instalaci v různých prostředích.
Formát CNAB je také flexibilní a umožňuje ho používat pro jakýkoli cloud. Dá se dokonce použít pro místní řešení, jako je OpenStack.
Rozhodnutí o DevOps
V těchto dnech je v devOps tolik skvělých nástrojů a ještě více fantastických knih a dokumentů o tom, jak uspět. Oblíbená kniha k získání základních znalostí na cestě DevOps je The Phoenix Project, která sleduje transformaci fiktivní společnosti z NoOps na DevOps. Jedna věc je jistá: DevOps už při nasazování složitých, cloudově nativních aplikací není pouze příjemnou výhodou. Je to požadavek a mělo by se s ním počítat a zajistit potřebné zdroje na začátku jakéhokoliv projektu.