<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Cloud Drops on Chris Reddington</title><link>https://chrisreddington.com/series/cloud-drops/</link><description>Recent content in Cloud Drops on Chris Reddington</description><generator>Hugo</generator><language>en-GB</language><lastBuildDate>Tue, 20 Jul 2021 00:01:00 +0000</lastBuildDate><atom:link href="https://chrisreddington.com/series/cloud-drops/index.xml" rel="self" type="application/rss+xml"/><item><title>Cloud Drops - What is Continuous Integration (CI)?</title><link>https://chrisreddington.com/video/cloud-drops-what-is-continuous-integration/</link><pubDate>Tue, 20 Jul 2021 00:01:00 +0000</pubDate><guid>https://chrisreddington.com/video/cloud-drops-what-is-continuous-integration/</guid><description>&lt;p&gt;Modern software teams use version control branches so engineers can develop independently without blocking each other. Continuous Integration formalises the step of merging those branches back into the main codebase by requiring every change to pass an automated build and test suite before it can be accepted. Tools like GitHub Actions and Azure Pipelines automate compilation, unit tests, integration tests, and other quality checks triggered on every pull request, providing rapid feedback — if a build breaks or tests fail, the engineer knows immediately rather than discovering hard-to-trace bugs later in production.&lt;/p&gt;</description></item><item><title>Cloud Drops - Building an Event-Driven workflow with Event Grid</title><link>https://chrisreddington.com/video/cloud-drops-event-grid/</link><pubDate>Sat, 15 May 2021 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/cloud-drops-event-grid/</guid><description>&lt;p&gt;Event-driven architectures decouple producers from consumers, making them a natural fit for serverless consumption models where you pay only when work is being done. This Cloud Drop builds a real image-processing workflow step by step:&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;&lt;strong&gt;Source storage account&lt;/strong&gt; — a Blob Storage container called &lt;code&gt;images&lt;/code&gt; where uploads trigger events.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Queue storage account&lt;/strong&gt; — a Storage Queue (&lt;code&gt;work-in-progress&lt;/code&gt;) that acts as a durable buffer guaranteeing at-least-once processing.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Event Grid system topic + subscription&lt;/strong&gt; — created on the source storage account, filtered by subject (&lt;code&gt;/blobServices/default/containers/images&lt;/code&gt;) so only image-container blob-created events are forwarded; the event handler is set to the Storage Queue.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;System-managed identity + RBAC&lt;/strong&gt; — the Event Grid system topic&amp;rsquo;s managed identity is assigned the &lt;em&gt;Storage Queue Data Message Sender&lt;/em&gt; role on the queue storage account, eliminating stored credentials.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Azure Function queue trigger&lt;/strong&gt; — consumes and removes messages from the queue, with Application Insights showing execution logs.&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;The demo also verifies subject filtering by uploading to the &lt;code&gt;thumbnails&lt;/code&gt; container and confirming no extra messages appear in the queue, and discusses dead-lettering, retry policies, and the important distinctions between Azure Storage Queues and Azure Service Bus Queues for message-processing guarantees.&lt;/p&gt;</description></item><item><title>Cloud Drops - Pipelines as Code</title><link>https://chrisreddington.com/video/cloud-drops-pipelines-as-code/</link><pubDate>Tue, 11 May 2021 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/cloud-drops-pipelines-as-code/</guid><description>&lt;p&gt;You may have heard about Software Code or Infrastructure as Code. Well, in this video, we&amp;rsquo;ll be talking about pipelines as code. If you&amp;rsquo;re familiar with tools like Azure DevOps, Circle CI, GitHub, GitLab and Jenkins, you may notice a trend where these platforms are allowing you to define your pipelines as code. Throughout this video, we&amp;rsquo;ll be defining a multi-stage pipeline in Azure DevOps, and picking up some tips along the way.&lt;/p&gt;</description></item><item><title>Cloud Drops - Beginners guide to PowerShell in Azure Functions</title><link>https://chrisreddington.com/video/cloud-drops-powershell-azure-functions/</link><pubDate>Thu, 06 May 2021 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/cloud-drops-powershell-azure-functions/</guid><description>&lt;p&gt;Azure Functions supports multiple runtime stacks — including PowerShell Core — meaning that operations teams already fluent in PowerShell can build serverless automation without switching to a compiled language. The consumption plan charges only per invocation with no idle cost, and Application Insights is enabled by default to provide monitoring and logging from day one.&lt;/p&gt;&#10;&lt;p&gt;The demo creates two functions inside a single Function App. The first uses an &lt;strong&gt;HTTP trigger&lt;/strong&gt; with a simple &lt;code&gt;run.ps1&lt;/code&gt; that reads a query-string parameter and returns it in the response body, illustrating the input-binding and output-binding model. The second uses an &lt;strong&gt;Event Grid trigger&lt;/strong&gt; connected to a subscription-level topic: whenever a resource group is created, the function fires and calls &lt;code&gt;Set-AzResourceGroup&lt;/code&gt; to apply a cost-centre tag based on the environment value. Before the Az module commands work, you must declare the dependency in &lt;code&gt;requirements.psd1&lt;/code&gt; (under App Files) and restart the Function App. A system-assigned managed identity with the Contributor role on the subscription provides the necessary RBAC permissions without storing any credentials in code.&lt;/p&gt;</description></item><item><title>Cloud Drops - Using Microsoft Learn to get started with Azure</title><link>https://chrisreddington.com/video/cloud-drops-microsoft-learn-azure/</link><pubDate>Mon, 05 Apr 2021 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/cloud-drops-microsoft-learn-azure/</guid><description>&lt;p&gt;Microsoft Learn at docs.microsoft.com is a free, gamified education hub covering Azure, GitHub, Microsoft 365, Dynamics 365, and more. Modules and learning paths award XP that accumulates across levels, letting you track progress toward specific roles and certifications. The platform also surfaces official certification exam pages alongside their mapped learning paths, and offers a renewal-assessment path so recertification no longer requires retaking the full exam. LearnTV rounds out the experience with a schedule-driven video broadcast channel for learners who prefer watching over reading.&lt;/p&gt;</description></item><item><title>Cloud Drops - How Windows Terminal can make YOU productive with Azure</title><link>https://chrisreddington.com/video/cloud-drops-windows-terminal-productive-azure/</link><pubDate>Sat, 03 Apr 2021 00:01:00 +0000</pubDate><guid>https://chrisreddington.com/video/cloud-drops-windows-terminal-productive-azure/</guid><description>&lt;p&gt;Windows Terminal is available in the Microsoft Store as both a stable release and a preview channel, and also via &lt;code&gt;winget&lt;/code&gt;. It unifies all your command-line environments — WSL Ubuntu, PowerShell Core, Windows PowerShell, and Windows Command Prompt — into a single tabbed window. The Azure Cloud Shell profile type uses device code authentication to spin up a managed Azure container with tools like kubectl, Terraform, and the Azure CLI pre-installed, plus a mounted Azure Storage file share to persist your files across sessions.&lt;/p&gt;</description></item><item><title>Cloud Drops - Git 101 - Why use Git, and how to get started</title><link>https://chrisreddington.com/video/cloud-drops-git-101/</link><pubDate>Tue, 30 Mar 2021 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/cloud-drops-git-101/</guid><description>&lt;p&gt;Git is a distributed version control system — unlike centralised tools, every developer clones the full repository and history to their own machine, enabling productive offline work and independent branching without locking files.&lt;/p&gt;&#10;&lt;p&gt;The core workflow starts with &lt;code&gt;git init&lt;/code&gt; to create a new repository in any folder, then &lt;code&gt;git add&lt;/code&gt; to stage changes and &lt;code&gt;git commit -m &amp;quot;message&amp;quot;&lt;/code&gt; to record them. &lt;code&gt;git status&lt;/code&gt; shows which files are staged, modified, or untracked, while &lt;code&gt;git log&lt;/code&gt; displays the full commit history. Once you create a remote repository on GitHub (or Azure DevOps, GitLab, Bitbucket), &lt;code&gt;git remote add origin &amp;lt;url&amp;gt;&lt;/code&gt; links it to your local repo, and &lt;code&gt;git push&lt;/code&gt; sends your commits up. Use &lt;code&gt;git pull&lt;/code&gt; to receive changes others have pushed, or &lt;code&gt;git clone &amp;lt;url&amp;gt;&lt;/code&gt; to bring down an entirely new repository. VS Code&amp;rsquo;s built-in Source Control panel provides a visual interface for all these operations, and the Git Credential Manager handles credential storage for private repositories across platforms.&lt;/p&gt;</description></item><item><title>Cloud Drops - How does Git work behind the scenes?</title><link>https://chrisreddington.com/video/cloud-drops-git-behind-scenes/</link><pubDate>Wed, 24 Mar 2021 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/cloud-drops-git-behind-scenes/</guid><description>&lt;p&gt;After &lt;code&gt;git init&lt;/code&gt;, Git creates a &lt;code&gt;.git&lt;/code&gt; folder containing HEAD, config, description, and sub-directories including &lt;code&gt;branches&lt;/code&gt;, &lt;code&gt;objects&lt;/code&gt;, and &lt;code&gt;refs&lt;/code&gt;. The HEAD file holds a symbolic ref pointing to the current branch — for example &lt;code&gt;ref: refs/heads/master&lt;/code&gt; — and that ref only materialises as a file under &lt;code&gt;.git/refs/heads/&lt;/code&gt; after the first commit is made. Objects (commits, trees, blobs) are stored compressed in two-character subdirectories under &lt;code&gt;.git/objects/&lt;/code&gt; matching the first two hex characters of their SHA-1 hash. Use &lt;code&gt;git cat-file -p &amp;lt;hash&amp;gt;&lt;/code&gt; to inspect any object: a commit points to a tree, a tree lists blobs and sub-trees, and a blob holds the raw file content. Git deduplicates unchanged files across commits by reusing the same blob hash, saving space. After adding a GitHub remote and pushing, a new &lt;code&gt;refs/remotes/origin/main&lt;/code&gt; file appears, confirming that local and remote tip hashes match.&lt;/p&gt;</description></item><item><title>Cloud Drops - Introducing and Setting up Git LFS (Large File Storage)</title><link>https://chrisreddington.com/video/cloud-drops-git-lfs/</link><pubDate>Tue, 23 Mar 2021 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/cloud-drops-git-lfs/</guid><description>&lt;p&gt;Storing large binary files directly in Git forces every developer to download the full history of those files on every clone — a growing pain as the number of assets increases. Git LFS solves this by replacing tracked files with small pointer files containing a version, an ID, and a size, while the actual content lives on the remote LFS server. Run &lt;code&gt;git lfs install&lt;/code&gt; once per machine, then &lt;code&gt;git lfs track &amp;quot;*.mp3&amp;quot;&lt;/code&gt; per repository to create a &lt;code&gt;.gitattributes&lt;/code&gt; entry. All subsequent &lt;code&gt;git add&lt;/code&gt;, &lt;code&gt;git commit&lt;/code&gt;, and &lt;code&gt;git push&lt;/code&gt; operations work exactly as normal; LFS handles the upload transparently. When cloning, pass &lt;code&gt;--config lfs.fetchExclude=&amp;quot;*.mp3&amp;quot;&lt;/code&gt; to skip downloading the large files and receive only the lightweight pointers instead.&lt;/p&gt;</description></item><item><title>Cloud Drops - Introduction to GitHub Codespaces</title><link>https://chrisreddington.com/video/cloud-drops-github-codespaces/</link><pubDate>Tue, 16 Mar 2021 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/cloud-drops-github-codespaces/</guid><description>&lt;p&gt;Have you ever had to setup a development environment from scratch? You have to install a ton of dependencies, probably a few tools along the way as well. It&amp;rsquo;s not fun, it takes a lot of time and it prevents you from being productive. This is where GitHub Codespaces comes in.&lt;/p&gt;</description></item><item><title>Cloud Drops - Installing, Upgrading and Auto-Upgrading the Azure CLI</title><link>https://chrisreddington.com/video/cloud-drops-azure-cli/</link><pubDate>Wed, 10 Mar 2021 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/cloud-drops-azure-cli/</guid><description>&lt;p&gt;The Azure CLI runs on Windows, macOS, Linux, Docker containers, and Azure Cloud Shell, giving you a consistent scripting interface across every environment. After installing, run &lt;code&gt;az login&lt;/code&gt; to authenticate via browser, then &lt;code&gt;az account set --subscription&lt;/code&gt; to pin your default subscription. Use &lt;code&gt;az group list&lt;/code&gt; to verify resource-group access. From version 2.11 onwards, &lt;code&gt;az upgrade&lt;/code&gt; handles in-place updates, and &lt;code&gt;az config set auto-upgrade.enable=yes&lt;/code&gt; configures automatic silent upgrades so your CLI stays current without manual intervention.&lt;/p&gt;</description></item></channel></rss>