Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Build Your Azure Infrastructure as Code With .N...
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Hossam Barakat
April 15, 2021
Technology
72
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Build Your Azure Infrastructure as Code With .Net Core - Global Azure 2021
Hossam Barakat
April 15, 2021
More Decks by Hossam Barakat
See All by Hossam Barakat
Build Your Cloud Infrastructure as Code With .Net Core - Build Stuff
hossambarakat
0
95
Kubernetes Blue-Green Deployment Made Easy with Argo Rollouts - ADDO
hossambarakat
0
150
Build Your Azure Infrastructure as Code With .NET Core - Azure Day
hossambarakat
0
51
Practical Domain-Driven Design with EF Core - NDC London 2021
hossambarakat
0
260
Build Your Cloud Infrastructure as Code With .Net Core - ADDO 2020
hossambarakat
0
160
Practical Domain Driven Design With EFCore - NDC Sydney 2020
hossambarakat
0
150
Build Your Cloud Infrastructure as Code With .Net Core - NDC Porto 2020
hossambarakat
2
170
Kubernetes for Developers - All Day DevOps
hossambarakat
2
190
Secure your Kubernetes Containers - All Day DevOps
hossambarakat
0
140
Other Decks in Technology
See All in Technology
LLMリーダーボードアップデートに向けたAgentic Math_SWEのトレースについて
nejumi
0
210
20260608_Codexの可能性_ノンプログラマー向け_大城追記
doradora09
PRO
0
760
サイバー捜査員研修(後半)
nomizone
1
650
サイバー捜査員研修(前半)
nomizone
1
1.7k
【CEDEC2026】『Relink』を拡張せよ - 『GRANBLUE FANTASY: Relink - Endless Ragnarok』の開発速度と品質を守るCI運用
cygames
PRO
0
120
【CEDEC2026】『GRANBLUE FANTASY: Relink - Endless Ragnarok』のバトル制作事例 ~最高のキャラゲーを目指して~
cygames
PRO
0
190
OSPN.JPバージョンアップ作業進捗のご報告 / 20260801-osc26kyoto
akkiesoft
0
270
plamo-3-translateの開発
pfn
PRO
0
280
AIエージェントを前提としたプラットフォーム エンジニアリング:GKEで作るAgent-Ready Golden Path
legalontechnologies
PRO
1
190
モダンフロントエンド 開発研修
recruitengineers
PRO
1
350
メルカリのグローバルアプリで挑んだ AlloyDB 運用と課題解決の実践記
hatappi
0
230
Digitization部 紹介資料
sansan33
PRO
2
7.7k
Featured
See All Featured
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
680
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
2.2k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Navigating Team Friction
lara
192
16k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
360
AI: The stuff that nobody shows you
jnunemaker
PRO
9
870
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.1k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
280
Context Engineering - Making Every Token Count
addyosmani
9
1k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.2k
Typedesign – Prime Four
hannesfritz
42
3.1k
Designing Powerful Visuals for Engaging Learning
tmiket
1
470
Transcript
Build Your Azure Infrastructure as Code With .NET Core Hossam
Barakat Technical Lead at Willow @hossambarakat_ | www.hossambarakat.net
@hossambarakat_ Data Centers
@hossambarakat_ Rise of Cloud Computing
@hossambarakat_ How to provision cloud resources?
@hossambarakat_ Manual AKA Point and Click
@hossambarakat_ Manual AKA Point and Click
@hossambarakat_ Snowflake Servers
@hossambarakat_ Infrastructure as Code
@hossambarakat_ • Managing and provisioning cloud resources using code. Infrastructure
as Code
@hossambarakat_ Imperative: CLI commands and scripts
@hossambarakat_ Idempotency and error handling
@hossambarakat_ Declarative Infrastructure as Code
@hossambarakat_ Tool Declarative Infrastructure as Code Desired State Actual Resources
@hossambarakat_ • Azure Resource Manager • Terraform • Bicep •
AWS CloudFormation • Google Deployment Manager • … Declarative Infrastructure as Code tools
@hossambarakat_ • JSON, YAML, domain specific languages (DSLs),… Infrastructure as
Code tools
@hossambarakat_
@hossambarakat_ Enter Pulumi
@hossambarakat_ • Pulumi is an open source infrastructure as code
tool the lets you use real languages – C#, TypeScript, Go,… – to provision and manage cloud resources. What is Pulumi?
@hossambarakat_ • Control flow with loops and if conditions •
Abstraction with functions, classes, packages,… • Code sharing with package management (Nuget, npm,…) • Authoring with favourite IDEs, refactoring, code completion, static type checking • Testing with existing frameworks and tools Benefits
@hossambarakat_
@hossambarakat_ Terraform vs Pulumi var resourceGroup = new ResourceGroup("pulumi-resources", new
ResourceGroupArgs { Location = " Australia East" }); ); var environments = new string[]{"dev", "uat", "prod"}; foreach (var environment in environments) { var storageAccount = new StorageAccount( $"storage{environment}", new StorageAccountArgs { ResourceGroupName = resourceGroup.Name, Location = resourceGroup.Location, Sku = new SkuArgs{ Name = SkuName.Standard_LRS }, AccessTier = AccessTier.Hot }); } resource "azurerm_resource_group" "rg" { name = "terraform-resources" location = ”Australia East" } variable "environments" { description = "storage account regions" type = list(string) default = ["dev", "uat", "prod"] } resource "azurerm_storage_account" "sa" { name = "iacpulumi${var.environments[count.index]}" resource_group_name = azurerm_resource_group.rg.name location = azurerm_resource_group.rg.location account_tier = "Standard" account_replication_type = "LRS" count = length(var.environments) }
@hossambarakat_ Pulumi Fundamentals
@hossambarakat_ Projects & Stacks web-app (Pulumi.yaml) Project $ pulumi new
Stacks $ pulumi stack init stackName Pulumi.<stack-name>.yaml Pulumi.yaml
@hossambarakat_ Configurations $ pulumi config set dbPassword S3cr37 config: serverless-app:dbPassword:
S3cr37 Pulumi.<stack-name>.yaml var config = new Pulumi.Config(); var password = config.Require("dbPassword"); Pulumi.cs
@hossambarakat_ Secrets $ pulumi config set --secret dbPassword S3cr37 var
config = new Pulumi.Config(); var password = config.Require("dbPassword"); Pulumi.cs Pulumi.<stack-name>.yaml config: serverless-app:dbPassword: secure: AAABAELDrCQE+rQbzTxN43iAD6iGDXTYQ90AzpILkfEY3uwtc+g=
@hossambarakat_ Application architecture on Azure
@hossambarakat_
@hossambarakat_ But that would be imperative, right?
@hossambarakat_ How Pulumi Works State CLI and Engine AWS Azure
Kubernetes Providers Code Plan Apply new Resource()
@hossambarakat_ Continuous Deployment Infrastructure as Code Manual Review State
@hossambarakat_ GitHub Integration
@hossambarakat_ Testing Unit Testing Integration Testing
@hossambarakat_ Unit Testing
@hossambarakat_ Summary
@hossambarakat_
@hossambarakat_ • https://github.com/hossambarakat/pulumi-demos • http://pulumi.com/docs • https://github.com/pulumi/examples Resources https://bit.ly/pulumi-ndc-porto
@hossambarakat_ Questions?
Thanks Hossam Barakat @hossambarakat_ www.hossambarakat.net