Azure Weekly
Issue #265 - 8th March 2020
There has been a big announcement for CosmosDB this week - Azure Cosmos DB free tier is now available! We love Cosmos DB here at endjin, but have often struggled to justify the high running costs so this is very exciting news! Hopefully this pricing tier might tempt users over from Google FireBase, which offers a similarly compelling free pricing tier.
In the wider community, Bahrudin Hrnjica has written a great walkthrough of building a Predictive Maintenance Model Using ML.NET and Mohit Gupta discusses the Azure Logic Apps integration with Power BI (if you are interested in more Power BI content, why not sign up to Power BI Weekly?).
As I mentioned last week, we have some big news! For the last 9 months we've been working with Microsoft on a new learning resource; inspired by the hugely successful Azure Quickstart Templates GitHub repo, which contains over 850 examples of how to build / deploy solution on Azure using ARM Templates, we've created the Azure CNAB Quickstarts Library. Containers are rapidly becoming not only the building blocks of The Cloud, but also enable those Cloud services to run on-prem and on the edge. Cloud Native Application Bundle is a protocol specifiction created by a number of organisations including Microsoft, Docker, and HashiCorp. Duffle is a tool that has been built to "exercise" the specification. Porter is an opinionated tool, built by Microsoft (via the Deis Labs team) which provides deeper integration into Azure, Helm, Kubernetes, and Terraform via mixins.
At this point, you might be thinking "so what?". We were excited to be part of this project because we saw ourselves as perfect examples of the target audience. When we first started using Azure over a decade ago, we jumped straight onto PaaS services. If that is similar to your journey, then CNAB might sound like a solution in need of a problem. However, many organisations have a journey to the cloud that looks like: physical on-prem, virtualised on-prem, IaaS in the cloud and now containers in the cloud. Much like TypeScript, which seems surplus to requirements until you understand the deficiencies in JavaScript, CNAB is a much needed standard to deal with chaos of different approaches that have emerged from the fast moving, innovative, container ecosystem. There's one futher mindset change required to fully embrace CNAB; and that's the notion that containers aren't just for hosting complex applications or micro-services. You can containerize your entire deployment; the process, the tools and their runtimes. The end result is a Lego-like building block, with strongly-typed parameters.
Now you can build complex applications and micro-services, by layering these building blocks together. That's where the Azure CNAB Quickstarts Library comes in. We wanted to demonstrate the different ways in which you could use CNAB, and in particular Porter, to build deployment packages. We have CNABs that allow you to install commonly used applications like WordPress, Ghost & MatterMost. We built CNABs that deploy SQL Server Always On for AKS and an Apache AirFlow environment. We built CNABs that create a barebones Azure Kubernetes Services, and another that creates a nginx ingress controller, and another that created an OAuth2 Proxy into this barebones AKS cluster, configured with Azure Active Directory. Suddenly we've merged Cloud Native and Azure Native services, in one deployment. My personal favourite CNAB deploys K3S onto an on-prem Raspberry Pi cluster FROM AZURE. Let that sink in for a minute. We also have an example that deploys Dapr onto that Raspberry Pi Cluster.
If any of this is of interest to you, I'd highly recommend the Introduction to Azure CNAB Quickstarts video by Mike Larah, which is a 10 minute overview, containing everything you need to know. I wish something like this existed when we started the project 9 months ago!
To launch the Azure CNAB Quickstarts Library, we publushed a new blog every day this week covering a different aspect. Mike introduces the Azure CNAB Quickstarts Library, he also walks through Setting up Windows Subsystem for Linux WSL 2 for Windows 10 & Docker and Setting up Porter on Windows.
I've also written an An Overview of the Azure CNAB Quickstarts Library and How you can contribute to the Azure CNAB Quickstarts Library. I hope you find these blogs and the Quickstarts Library a useful resource!
If you happen to be near Oxford in the UK, on Tuesday March 10th, Ian Griffiths, Technical Fellow at endjin, and Author of Programming C# 8.0 (O'Reilly) is talking at the .NET Oxford User Group on the subject of C# 8.0: Nullable Reference in Practice.
Finally, thank you to Greg Suttie for his shout out to Azure Weekly! If you find this newsletter a value resource, please share / blog / tweet about it!
⚙️ AI + Machine Learning
- On Code Project, Bahrudin Hrnjica walks through Building a Predictive Maintenance Model Using ML.NET
- On Channel 9, Seth Juarez (@sethjuarez) Ties everything together – Solving a Machine Learning problem in the Cloud Part 4 of 4
- On the DEV site, Cecil L. Phillip describes Empowering digital transformation with .NET, ML and Azure
🔎 Analytics
- The Azure updates team announces that Data Factory adds Flatten transformation, single-row lookups, and updated UI for container activities
⚙️ Blockchain
- On Channel 9, Mike Walker and David Havera discuss Digital ecosystems and GE's journey - Part 2
🖥️ Compute
- The Azure updates team announces Updates to Azure HDInsight, Azure Functions—Support for custom language workers over HTTP is now in preview, that Virtual machine scale sets now simpler to manage and Automatic instance repairs for Azure virtual machine scale sets are now in preview
- Mark Heath (@mark_heath) writes about Durable Functions Upgrade Strategies
🚢 Containers
- On the endjin blog, Mike Larah (@MikeLarah) Introduces the Azure CNAB Quickstarts Library, and walks through Setting up Windows Subsystem for Linux WSL 2 for Windows 10 & Docker and discusses Setting up Porter on Windows
- Also on the endjin blog, Howard van Rooijen (@HowardvRooijen) explains How you can contribute to the Azure CNAB Quickstarts Library and writes An Overview of the Azure CNAB Quickstarts Library
- On the Kloud blog, Santhosh Kumar writes about How-To deploy Docker images to Azure Kubernetes Services AKS
- The Azure updates team announces that Azure Red Hat OpenShift 4.3 is now in preview
- Tobias Zimmergren & Jussi Roine (@CtrlAltAzure) discuss Understanding the basics of Azure Kubernetes Services AKS
- Pixel Robots. writes about Secure access to the Kubernetes API on your existing AKS cluster
- Jessica Deen (@jldeen) describes How to configure Azure Application Gateway V2 on an existing AKS Cluster - CLI Edition!
🗄️ Databases
- On the Azure blog, Raghu Ramakrishnan covers Azure HDInsight and Azure Database for PostgreSQL news
- The Azure updates team announces Azure Cosmos DB free tier is now available, New features in Azure Cosmos DB Jupyter notebooks are now in preview, and Planned maintenance notifications are now in preview for: Azure Database for PostgreSQL, Azure Database for MariaDB, Azure Database for MySQL and finally that Azure SQL Database managed instance now enforces TLS 1.2 on outbound connections
- On the Azure SQL Database blog, Kate Smith (@aKateSmithSQL) has written some great blogs about: Creating an Elastic Jobs Agent, Credentials, and Jobs for Azure SQL Database using T-SQL, Fundamental Concepts for Elastic Jobs in Azure SQL Database, Elastic Jobs in Azure SQL Database – What and Why, Creating an Elastic Jobs Agent, Credentials, and Jobs for Azure SQL Database in PowerShell and Troubleshooting Common issues with Elastic Jobs in Azure SQL Database
- Also on the Azure SQL Database blog, Jovan Popovic (@jocapc) walks through Troubleshooting Database Mail issues in Azure SQL Managed Instance
🛠️ Developer Tools
- On the MSSQL Tips site, Sherlee Dizon writes about Securely Manage Database Credentials Using Visual Studio Manage User Secrets
- The Azure updates team announces that New improvements are now available for the Azure IoT Python SDK v2
- On the Azure SQL Database blog, Silvano Coriani describes Management operations and data access for Azure SQL Database with Golang
🔩 DevOps
- On the Microsoft DevOps blog, Steven Murawski lists the Top Stories from the Microsoft DevOps Community
- Barbara Forbes (@Ba4bes) discusses Azure DevOps for the IT Pro: tips & tricks
- On the .NET Curry blog, Saumilkumar Shah covers Working with Azure DevOps using Azure DevOps CLI
- On the Black Marble blog, Richard Fennell (@richardfennell) writes about why You need to pass a GitHub PAT to create Azure DevOps Agent Images using Packer and asks "Where did all my test results go?"
🎭 Identity
- Anuj Chaudhary explains how to Connect to Azure AD PowerShell with MFA
- The Azure updates team announces Active Directory for authentication on SMB access to Azure File is in preview
- Charbel Nemnom (@charbelnemnom) walks through Step By Step: How to enable Local Active Directory SMB Authentication For Azure Files
- On his blog, Jon Gallant (@jongallant) describes How to use Azure.Identity with Azure Government Cloud, Azure German Cloud, and Azure China Cloud
- Deepak Kaushik (@ThinkForDeepak) explains how to Build Azure Domain And AD integration Foundation
🔌 Integration
- The Azure updates team announces that Service Management REST APIs and support will be retired on November 1, 2021
- Antariksh Mistry discusses Securing your Logic App via Azure Function App Proxies
- On the Serverless360 blog, Pavithra Rajendran weighs up: Azure Storage Queue vs Service Bus Queue
- Also on the Serverless360 blog, Ranjith Eswaran explains how to Defer Mode in Azure Service Bus Queues and Topic Subscriptions
- On the Microsoft Medium site, Mohit Gupta (@MohitGu48372760) blogs about the Azure Logic App Integration with Power BI
- Also on Hackernoon, Sahin Alom asks Why Azure Arc is a Game Changer?
💡 Internet of Things
- On the Azure blog, Tony Shakib (@TonyShakib) talks about how Azure IoT Introduces seamless integration with Cisco IoT
- On Channel 9, Kevin Saye talks about Running Azure IoT Edge on Yocto Linux
- Also on Channel 9, Caitie McCaffrey talks about End-to-end IoT device security with Azure Sphere
- On the DEV site, Cecil L. Phillip discusses On.NET Episode: Finding parking spots with Custom Vision and IoT
⚖️ Management and Governance
- On the Kloud blog, Jesse Loudon discusses Azure Building Blocks – The Forgotten IaC Tool
- The Azure updates team highlights that you need to Migrate your IaaS resources to Azure Resource Manager by March 1, 2023, announces 'Backup Reports is now in preview' and discusses Azure Site Recovery mobility service automated deployment using JetPatch
- On the DEV site, Michael Crump (@mbcrump) gives us some Tips for keeping your Azure Subscriptions Clean
- On the Azure SQL Database blog, Kate Smith (@aKateSmithSQL) walks through Running, Scheduling and Monitoring Elastic Jobs in Azure SQL Database
- On the code project, Kevin Mack discusses Working With Modules in Terraform
- Gunnar Peipman (@gpeipman) walks through Creating storage accounts and blob containers using Azure fluent APIs
- Roy Kim (@roykimyyz) discusses Managing Azure with AZ CLI and Windows Subsystem for Linux
- The Azure updates team blogs about Azure DevTest Labs—Security alerts for lab environments
- Also on the Kloud blog, Lucian Franghiu (@lucianfrango) blogs about Hub and Spoke network topology in Azure
- On the MSSQL Tips site, Vitor Montalvao covers Azure Cost Optimization Best Practices
- Deepak Kaushik (@ThinkForDeepak) discusses Azure deployment and Disaster Recovery for SAP workload
🚌 Migration
- James Serra (@JamesSerra) covers SQL Database MI benefits
- Sarah Lean (@TechieLass) discusses Azure Migrate - How to assess Physical Servers
📱 Mobile
- On the DEV site, Davide Mauri (@mauridb) walks through An amazingly simple solution for Mobile Apps to sync with the Cloud using Change Tracking API
- Matthew Soucoup (@CodeMillMatt) writes about Tweak It (Customizing the UI)
🌐 Networking
- Aidan Finn (@joe_elway) highlights the Azure Firewall Improvements
- James van Den Berg covers Microsoft Azure Private Link to your Cloud Services
- Sam Cogan (@samcogan) blogs about Obtaining A Static Outbound IP from an Azure Virtual Network
- On Azure tips and tricks, Michael Crump (@mbcrump) describes how to Use Ingress Controller to access resources in an Azure Virtual Network
🔐 Security
- Thuan Nguyen covers how to Filter Azure Security Center alert name in Azure Sentinel incident rule
- Charbel Nemnom (@charbelnemnom) describes How To Connect Azure Security Center To Azure Sentinel And Investigate An Alert
- On Azure tips and tricks, Michael Crump (@mbcrump) walks through Securing your managed Databases in Azure
- On the Azure podcast, Cale Teeter (@Windozer) talks about Azure Lighthouse Security
- On the Premier Developer blog, Shany Wiesel talks about Developing SaaS Solutions for Government Customers
- On the Microsoft Cloud IT Pro Podcast, Ben and Scott describe the Azure Certification Updates
📦 Storage
- On the code project, Kevin Mack discusses High Availability – A Storage Architecture
🔗 Web
- Rahul Nath (@rahulpnath) discusses Generating PDF: A .Net Core and Azure Web Application
- Radu Vunvulea (@RaduVunvulea) describes Azure Spring Cloud and DMZ