1 manual Azure Portal 2 Scripts Imperative 3 Template Declarative
- Browser based
- Exploration
- Visual
- Fully featured
- Performed manually
- Error rpone
- Lack of process integration (DevOps, ITSM)
- Process Integration (DevOps, ITSM)
- Less Error Prone (removes human)
- Unopionoated
- Flexible
- Testable
- Scripting Knowledge
- Complex Logic
- Hand Build
- Process Integration (DevOps, ITSM)
- Less Error Prone (removes human)
- Handles some complex logic
- state management
- Templating Knolwdge
- Opinionated and lack of flexibility
- JSON
- Tooling Visual Studion / Visual Studio Code
- Native Azure portal integration
- Generated directly from REST / Swagger
- Open Source Project
- Cross computing envrionment templating language
- Provision, Update and Delte resources
- Authored in HashiCorp Configuration Language (HCL) or JSON
Youtube: Microsoft Ignite - Cloud native Azure deployments with Terraform - BRK3306
Azure management library for .NET fluent concepts
A fluent interface is a specific form of the builder pattern that creates objects through a method chain that enforces correct configuration of a resource. For example, the entry-point Azure object is created using a fluent interface
var azure = Azure
.Configure()
.Authenticate(credentials)
.WithDefaultSubscription();
var sql = azure.SqlServers.Define(sqlServerName)
.WithRegion(Region.USEast)
.WithNewResourceGroup(rgName)
.WithAdministratorLogin(administratorLogin)
.WithAdministratorPassword(administratorPassword)
.Create();