|
| 1 | +--- |
| 2 | +title: "Azure Infrastructure" |
| 3 | +meta_desc: Infrastructure as Code in any programming language. Enable your team to get code to any cloud productively, securely, and reliably. |
| 4 | +layout: gads-template |
| 5 | +block_external_search_index: true |
| 6 | +aliases: |
| 7 | + - /azure-resource-manager |
| 8 | + - /azure-infrastructure |
| 9 | + |
| 10 | +heading: "Tame Azure with Code" |
| 11 | +subheading: | |
| 12 | + Pulumi is a free, open source infrastructure as code tool, and works best with Pulumi Cloud to make managing infrastructure secure, reliable, and hassle-free. |
| 13 | +
|
| 14 | +overview: |
| 15 | + title: Infrastructure as Code<br/>in any Programming Language |
| 16 | + description: | |
| 17 | + Pulumi Cloud is the smartest and easiest way to automate, secure, and manage everything you run in the cloud using programming languages you know and love. |
| 18 | +
|
| 19 | +key_features_above: |
| 20 | + items: |
| 21 | + - title: "Azure Infrastructure you can Write, Reuse, and Test" |
| 22 | + sub_title: "Turn Azure Best Practices into Reusable Code" |
| 23 | + description: | |
| 24 | + Write IaC in the languages you know, such as C#, TypeScript, Python, Go, Java, or YAML. Pulumi manages 100% of your Azure resources, from containers to serverless. Go further with **components**: modular, reusable building blocks that cut down copy-paste and simplify your architecture. Write once, deploy anywhere → Build your first component in minutes. |
| 25 | + ide: |
| 26 | + - title: C# |
| 27 | + language: csharp |
| 28 | + code: | |
| 29 | + using Pulumi; |
| 30 | + using Pulumi.AzureNative.Storage; |
| 31 | + using Pulumi.AzureNative.Storage.Inputs; |
| 32 | + |
| 33 | + class MyStack : Stack |
| 34 | + { |
| 35 | + public MyStack() |
| 36 | + { |
| 37 | + var config = new Config(); |
| 38 | + var resourceGroupNameParam = config.Require("resourceGroupNameParam"); |
| 39 | + var storagecreatedbyarm = new StorageAccount("mystorage", |
| 40 | + new StorageAccountArgs |
| 41 | + { |
| 42 | + AccountName = "mystorage", |
| 43 | + Kind = "StorageV2", |
| 44 | + Location = "westeurope", |
| 45 | + ResourceGroupName = resourceGroupNameParam, |
| 46 | + Sku = new SkuArgs |
| 47 | + { |
| 48 | + Name = "Standard_LRS", |
| 49 | + }, |
| 50 | + }); |
| 51 | + } |
| 52 | + } |
| 53 | + button: |
| 54 | + text: "Try Pulumi Cloud for FREE" |
| 55 | + link: "https://app.pulumi.com/signup" |
| 56 | + |
| 57 | +key_features: |
| 58 | + title: Key features |
| 59 | + items: |
| 60 | + - title: "Azure Resource Manager → Pulumi" |
| 61 | + sub_title: "Move from static JSON to reusable code" |
| 62 | + description: | |
| 63 | + Many Azure teams hit a wall with ARM templates. Pulumi provides a flexible, code-first alternative using your favorite language. Get full IDE support, CI/CD integration, reusable components, modern workflows, and testability. For .NET teams, Pulumi’s C# support delivers a far better experience than static JSON. |
| 64 | + ide: |
| 65 | + - title: C# |
| 66 | + language: csharp |
| 67 | + code: | |
| 68 | + using Pulumi; |
| 69 | + using AzureNative = Pulumi.AzureNative; |
| 70 | + |
| 71 | + class MyStack : Stack |
| 72 | + { |
| 73 | + public MyStack() |
| 74 | + { |
| 75 | + var config = new Config(); |
| 76 | + var resourceGroupNameParam = config.Require("resourceGroupNameParam"); |
| 77 | + var storagecreatedbyarm = new AzureNative.Storage.StorageAccount("storagecreatedbyarm", new AzureNative.Storage.StorageAccountArgs |
| 78 | + { |
| 79 | + AccountName = "storagecreatedbyarm", |
| 80 | + Kind = "StorageV2", |
| 81 | + Location = "westeurope", |
| 82 | + ResourceGroupName = resourceGroupNameParam, |
| 83 | + Sku = new AzureNative.Storage.Inputs.SkuArgs |
| 84 | + { |
| 85 | + Name = "Standard_LRS", |
| 86 | + }, |
| 87 | + }); |
| 88 | + } |
| 89 | + } |
| 90 | + - title: typescript |
| 91 | + language: typescript |
| 92 | + code: | |
| 93 | + import * as pulumi from "@pulumi/pulumi"; |
| 94 | + import * as azure_native from "@pulumi/azure-native"; |
| 95 | + |
| 96 | + const config = new pulumi.Config(); |
| 97 | + const resourceGroupNameParam = config.require("resourceGroupNameParam"); |
| 98 | + const storagecreatedbyarm = new azure_native.storage.StorageAccount("storagecreatedbyarm", { |
| 99 | + accountName: "storagecreatedbyarm", |
| 100 | + kind: "StorageV2", |
| 101 | + location: "westeurope", |
| 102 | + resourceGroupName: resourceGroupNameParam, |
| 103 | + sku: { |
| 104 | + name: "Standard_LRS", |
| 105 | + }, |
| 106 | + }); |
| 107 | + - title: go |
| 108 | + language: go |
| 109 | + code: | |
| 110 | + package main |
| 111 | + |
| 112 | + import ( |
| 113 | + "github.com/pulumi/pulumi-azure-native/sdk/go/azure/storage" |
| 114 | + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" |
| 115 | + "github.com/pulumi/pulumi/sdk/v3/go/pulumi/config" |
| 116 | + ) |
| 117 | + |
| 118 | + func main() { |
| 119 | + pulumi.Run(func(ctx *pulumi.Context) error { |
| 120 | + cfg := config.New(ctx, "") |
| 121 | + resourceGroupNameParam := cfg.Require("resourceGroupNameParam") |
| 122 | + _, err := storage.NewStorageAccount(ctx, "storagecreatedbyarm", &storage.StorageAccountArgs{ |
| 123 | + AccountName: pulumi.String("storagecreatedbyarm"), |
| 124 | + Kind: pulumi.String("StorageV2"), |
| 125 | + Location: pulumi.String("westeurope"), |
| 126 | + ResourceGroupName: pulumi.String(resourceGroupNameParam), |
| 127 | + Sku: &storage.SkuArgs{ |
| 128 | + Name: pulumi.String("Standard_LRS"), |
| 129 | + }, |
| 130 | + }) |
| 131 | + if err != nil { |
| 132 | + return err |
| 133 | + } |
| 134 | + return nil |
| 135 | + }) |
| 136 | + } |
| 137 | +
|
| 138 | +
|
| 139 | + - title: python |
| 140 | + language: python |
| 141 | + code: | |
| 142 | + import pulumi |
| 143 | + import pulumi_azure_native as azure_native |
| 144 | + |
| 145 | + config = pulumi.Config() |
| 146 | + resource_group_name_param = config.require("resourceGroupNameParam") |
| 147 | + storagecreatedbyarm = azure_native.storage.StorageAccount("storagecreatedbyarm", |
| 148 | + account_name="storagecreatedbyarm", |
| 149 | + kind="StorageV2", |
| 150 | + location="westeurope", |
| 151 | + resource_group_name=resource_group_name_param, |
| 152 | + sku=azure_native.storage.SkuArgs( |
| 153 | + name="Standard_LRS", |
| 154 | + )) |
| 155 | + button: |
| 156 | + text: "Try Pulumi Cloud for FREE" |
| 157 | + link: "https://app.pulumi.com/signup" |
| 158 | + features: |
| 159 | + - title: 100% API Coverage |
| 160 | + description: | |
| 161 | + Full API coverage for Azure with same-day updates. Every property of each resource is always represented in the SDKs. |
| 162 | + - title: Policy as Code for Azure |
| 163 | + description: | |
| 164 | + Set guardrails for resources to ensure best practices and security compliance are consistently followed, using [CrossGuard](/docs/iac/crossguard/). |
| 165 | + - title: Everything In One Place |
| 166 | + description: | |
| 167 | + Full coverage for Azure services, including Azure Static Web Apps, Azure Logic Apps, Azure DevOps, Azure Blockchain Service, Azure API Management and more. |
| 168 | +
|
| 169 | + - title: "Deliver infrastructure through software delivery pipelines" |
| 170 | + sub_title: "CI/CD Integrations" |
| 171 | + description: | |
| 172 | + Version, review, test, and deploy infrastructure code through the same tools and processes used for your application code. |
| 173 | + image: "/images/product/pulumi-cicd.png" |
| 174 | + button: |
| 175 | + text: "Try Pulumi Cloud for FREE" |
| 176 | + link: "https://app.pulumi.com/signup" |
| 177 | + features: |
| 178 | + - title: Version and review |
| 179 | + description: | |
| 180 | + Manage infrastructure code in Git and approve changes through pull requests. |
| 181 | + - title: Shift left |
| 182 | + description: | |
| 183 | + Get rapid feedback on your code with fast [unit tests](/docs/iac/concepts/testing/unit/), and run [integration tests](/docs/iac/concepts/testing/integration/) against ephemeral infrastructure. |
| 184 | + - title: Continuous delivery |
| 185 | + description: | |
| 186 | + [Integrate your CI/CD provider](/docs/iac/packages-and-automation/continuous-delivery/) with Pulumi or use GitOps to [manage Kubernetes clusters](/docs/iac/packages-and-automation/continuous-delivery/pulumi-kubernetes-operator/). |
| 187 | +
|
| 188 | +stats: |
| 189 | + title: Open source. Enterprise-ready. |
| 190 | + description: | |
| 191 | + Pulumi's Infrastructure as Code CLI and SDK is an [open-source project](https://github.com/pulumi/) that's supported |
| 192 | + by an active community. We maintain a [public roadmap](https://github.com/orgs/pulumi/projects/44) and welcome feedback and contributions. |
| 193 | + community: |
| 194 | + number: "350,000+" |
| 195 | + description: engineers building with Pulumi |
| 196 | + company: |
| 197 | + number: "3,700+" |
| 198 | + description: companies in production |
| 199 | + integration: |
| 200 | + number: "1,000s" |
| 201 | + description: of cloud and service providers |
| 202 | + |
| 203 | +key_features_below: |
| 204 | + items: |
| 205 | + - title: "The fastest and easiest way to use Pulumi IaC at scale" |
| 206 | + sub_title: "Pulumi Cloud" |
| 207 | + description: | |
| 208 | + A fully-managed service for Pulumi IaC plus so much more. Manage and store infrastructure state & secrets, collaborate within teams, view and search infrastructure, and manage security and compliance using Pulumi Cloud. |
| 209 | + image: "/images/product/pulumi-cloud-iac-stylized-01.png" |
| 210 | + button: |
| 211 | + text: "Try Pulumi Cloud for FREE" |
| 212 | + link: "https://app.pulumi.com/signup" |
| 213 | + features: |
| 214 | + - title: Pulumi IaC |
| 215 | + description: | |
| 216 | + Utilize open-source IaC in C#, TypeScript, Python, Go, Java and YAML. Build and distribute reusable components for 170+ cloud & SaaS providers. |
| 217 | + - title: Pulumi ESC |
| 218 | + description: | |
| 219 | + Centralized secrets management & orchestration. Tame secrets sprawl and configuration complexity securely across all your cloud infrastructure and applications. |
| 220 | + - title: Automate deployment workflows |
| 221 | + description: | |
| 222 | + Orchestrate secure deployment workflows through GitHub or an API. |
| 223 | + - title: Search and analytics |
| 224 | + description: | |
| 225 | + View resources from any cloud in one place. Search for resources across clouds with simple queries and filters. |
| 226 | + - title: Pulumi Automation API |
| 227 | + description: | |
| 228 | + Build custom deployment and CI/CD workflows that integrate with Pulumi Developer Portal, custom portals, or CLIs. |
| 229 | + - title: Developer portals |
| 230 | + description: | |
| 231 | + Create internal developer portals to distribute infrastructure templates using Pulumi or the Backstage-plugin. |
| 232 | + - title: Identity and access control |
| 233 | + description: | |
| 234 | + Manage teams with SCIM, SAML SSO, GitHub, GitLab, or Atlassian. Set permissions and access tokens. |
| 235 | + - title: Policy enforcement |
| 236 | + description: | |
| 237 | + Build policy packs from 150 policies or write your own. Leverage compliance-ready policies for any cloud to increase compliance posture and remediation policies to correct violations. |
| 238 | + - title: Audit logs |
| 239 | + description: | |
| 240 | + Track and store user actions and change history with the option to export logs. |
| 241 | +
|
| 242 | +case_studies: |
| 243 | + title: Customers innovating with Pulumi Cloud |
| 244 | + items: |
| 245 | + - name: Atlassian |
| 246 | + link: /case-studies/atlassian/ |
| 247 | + logo: atlassian |
| 248 | + description: | |
| 249 | + Developers reduced their time spent on maintenance by 50%. |
| 250 | +
|
| 251 | + - name: Elkjop |
| 252 | + link: /case-studies/elkjop-nordic/ |
| 253 | + logo: elkjop-nordic |
| 254 | + description: | |
| 255 | + Increased developers' agility and speed through platform engineering. |
| 256 | +
|
| 257 | + - name: Starburst |
| 258 | + link: /blog/how-starburst-data-creates-infrastructure-automation-magic-with-code/ |
| 259 | + logo: starburst |
| 260 | + description: | |
| 261 | + Increased velocity and speed, with deployments that are up to 3x faster. |
| 262 | +
|
| 263 | + - name: BMW |
| 264 | + link: /case-studies/bmw/ |
| 265 | + logo: bmw |
| 266 | + description: | |
| 267 | + Enabled developers to deploy across hybrid cloud environments. |
| 268 | +
|
| 269 | + - name: Lemonade |
| 270 | + link: /case-studies/lemonade/ |
| 271 | + logo: lemonade |
| 272 | + description: | |
| 273 | + Standardized infrastructure architectures with reusable components. |
| 274 | +
|
| 275 | + - name: Snowflake |
| 276 | + link: /case-studies/snowflake/ |
| 277 | + logo: snowflake |
| 278 | + description: | |
| 279 | + Built a multi-cloud, Kubernetes-based platform to standardize all deployments |
| 280 | +--- |
0 commit comments