Design & Deploy an Azure Logic App using Terraform and Azure Devops
This tutorial is intended to outline a process where you can deploy a piece of serverless technology using infrastucture as code and continuous integration / continuous deployment tools. This logic apps solution with have the following devops practices or gates applied if in bold:
- source control
- branching strategy
- code coverage
- static code analysis
- security analysis
- OSS
- artifact storage
- code deployment
- infrastructure as code
- build / unit test
- behavior driven design / automated test driven design (BDD/ATDD)
- performance testing
- automated rollback
- automated change order
- zero downtime
- feature toggle
Tools:
- Azure subscription
- Azure devops account
- github account / code repo
- text editor / IDE
Concepts:
- Logic App: cloud based serverless function that executes a task based on a trigger. There are no servers; once the task is triggered and completed, no further compute resources are used. Billing is based on time it takes the function or app to execute.
- Infrastructure as Code: cloud resources created via a declarative state language, such as terraform. There is no cost for terraform (open source), but the resources it creates may have costs in the cloud. Proceed at your own risk.
- CI/CD: task automation via pipelines. Abstract tasks to patterns, inputs and outputs.
Steps:
- Design the app
- send text message when object added to storage account
- test in portal logic app designer
- portal create app
- Basics:
- resource group
- instance details: consumption / standard
- logic app name (DNS compliant and unique)
- Publish: workflow / docker container
- region
- Hosting:
- storage account
- plan type (workflow standard / app service plan(not supported in my location?))
- windows plan (creates new plan)
- SKU (WS1, WS2, WS3)
- Monitoring:
- Enable App Insights
- Tags:
- Name / Value
- Review + create
It creates windows plan that allocates resources on the “serverfarms”
- New Workflow
- Workflow Name
- State Type (stateful, stateless)
- Edit in designer
- add trigger: Azure Blob
- create connection
- connection name
- blob storage connection string
References
- Choosing between Azure Logic Apps and Azure Functions
- 10 Differences between Azure Functions and Logic Apps
- Pluralsight: Logic Apps: Getting Started
- Pluralsight: Creating Enterprise Logic Apps
- Pluralsight: Logic Apps: Fundamentals
- MS Docs: Common scenarios, examples, tutorials, and walkthroughs for Azure Logic Apps
-
Site Root