TWIL: May 8, 2022

Two very busy weeks led me to skip one TWIL, but here is This Week I Learned! I’m highlighting a set of podcast episodes on topics such as Open Service Mesh and IaC, as well as a few articles on Azure Cosmos DB, Azure Functions and Azure Container Apps. So much to learn, and so little time…


.NET Rocks

Episode 1790: Comparing Infrastructure-as-Code with Chris Klug
How do you do Infrastructure-as-Code? Carl and Richard talk to Chris Klug about his experiences with different IaC approaches. Chris talks about using HashiCorp’s Terraform – one of the original IaC solutions, with many providers to work with all sorts of platforms – but do they keep up with the latest? Microsoft has released Bicep as a domain-specific language over Azure Resource Manager, but it’s only for Azure. And then there’s Pulumi, letting you create IaC in C# – as always, there’s no one right way, but there is a path to nirvana out there somewhere. You just have to find it!

Episode 1791: Pivoting your Startup with Phil Haack
When should you pivot your startup? Carl and Richard talk to Phil Haack about his experiences with Abbot – the chatbot designed to work within Slack. Phil talks about starting with Abbot focused on ChatOps, where Abbot would help with automation around the deployment of applications. And while there were some customers, it wasn’t enough. The pivot was to customer support that also depends on tools like Slack. The conversation digs into focusing on understanding where customers have challenges and learning to solve them, rather than trying to offer a platform for everything!

Episode 1792: Studio 2022 Extensions with Mads Kristensen
How are extensions in Visual Studio changing? Carl and Richard talk to the extension master himself, Mads Kristensen. With over 150 extensions in the Marketplace, Mads has a lot of experience building tooling that can streamline your Studio experience. The conversation digs into why an extension makes sense rather than being built into Studio. Although in the case of the Markdown Editor, that does happen! Mads also as the VSIX Community space if you want to get into building your extensions, with libraries and tooling to guide you to the pit of success with your extension project. Check it out!

The Azure Podcast

Episode 422: Open Service Mesh
Thomas Stringer is a Software Engineering Lead in the Open Service Mesh team at Microsoft and he gives us insights into the OSM add-on for AKS and tells us why that makes applications on AKS so much more secure.

Azure Cosmos DB

Understanding the differences between NoSQL and relational databases
This article will enumerate some of the key benefits of NoSQL databases over relational databases. We will also discuss some of the challenges in working with NoSQL.

Azure Cosmos DB resource model
Azure Cosmos DB is a fully managed platform-as-a-service (PaaS). To begin using Azure Cosmos DB, you should initially create an Azure Cosmos account in your Azure resource group in the required subscription, and then databases, containers, items under it. This article describes the Azure Cosmos DB resource model and different entities in the resource model hierarchy.

Partitioning and horizontal scaling in Azure Cosmos DB
Azure Cosmos DB uses partitioning to scale individual containers in a database to meet the performance needs of your application. In partitioning, the items in a container are divided into distinct subsets called logical partitions. Logical partitions are formed based on the value of a partition key that is associated with each item in a container. All the items in a logical partition have the same partition key value.

Microsoft Teams

Optimize your bot with rate limiting in Teams
Rate limiting is a method to limit messages to a certain maximum frequency. As a general principle, your application must limit the number of messages it posts to an individual chat or channel conversation. This ensures an optimal experience and messages do not appear as spam to your users.

Azure Functions

Best practices for reliable Azure Functions
Azure Functions is an event-driven, compute-on-demand experience that extends the existing Azure App Service application platform with capabilities to implement code triggered by events occurring in Azure, in third-party service, and in on-premises systems. This article details some best practices for designing and deploying efficient function apps that remain healthy and perform well in a cloud-based environment.

Improve the performance and reliability of Azure Functions
This article provides guidance to improve the performance and reliability of your serverless function apps. The following are best practices in how you build and architect your serverless solutions using Azure Functions.

What are Durable Functions?
Durable Functions is an extension of Azure Functions that lets you write stateful functions in a serverless compute environment. The extension lets you define stateful workflows by writing orchestrator functions and stateful entities by writing entity functions using the Azure Functions programming model. Behind the scenes, the extension manages state, checkpoints, and restarts for you, allowing you to focus on your business logic.

Durable Functions types and features
Durable Functions is an extension of Azure Functions. You can use Durable Functions for stateful orchestration of function execution. A durable function app is a solution that’s made up of different Azure functions. Functions can play different roles in a durable function orchestration.

Azure Container Apps

Introduction to Azure Container Apps
This article gives you a brief introduction to what Azure Container Apps is, which technologies are used to provide this fantastic serverless container runtime and how you can build and run containerized workloads on Azure Container Apps.

Azure Container Apps – an overview
AKS is certainly powerful, but managing the cluster is under your responsibility. In addition, AKS doesn’t allow for scaling based on events (other than CPU/RAM utilization). That’s what Azure Container Apps has been created for. Azure Container Apps (ACA) provides you with a managed container orchestration service in a serverless manner. You and your team can then focus more on your applications (microservices) and less on the underlying infrastructure.

Have a great week!

Photo by Brooke Cagle on Unsplash