AzCopy basics: upload, download and sync files with Azure Blob Storage
Install AzCopy, sign in with Entra ID instead of keys, copy and sync folders to and from Blob Storage, and read the job logs when a transfer fails part-way.
Home / Tracks / Basic
Start here: foundations, first-time setup and everyday checks, explained step by step. 142 posts.
24 posts
Install AzCopy, sign in with Entra ID instead of keys, copy and sync folders to and from Blob Storage, and read the job logs when a transfer fails part-way.
A first-day guide to the Azure CLI. Sign in safely, make sure you are in the right subscription, set a default resource group and location, and filter output with --query so you read only what matters.
Find out what costs money in a subscription, group spend by resource group and tag, create a budget with email alerts, and export daily cost data so surprises show up in days, not at month end.
What each VM power state means, why "Stopped" can still bill for compute, how to deallocate, start and resize from the CLI and PowerShell, and what changes (IPs, temp disk) when you do.
What a managed identity is, when to pick system-assigned or user-assigned, and a worked example that lets a VM read a Key Vault secret and a storage blob with no password or key in the code.
Deleting a Recovery Services vault fails with "existing resources within the vault". Find what still depends on it, clear each dependency in order, and understand soft-deleted items and vaults.
Work out whether an Azure Monitor alert never fired, fired but was suppressed, or fired and the action group failed to deliver, then fix the gap and test it.
Decode AuthorizationFailed and LinkedAuthorizationFailed errors, find which role a user, pipeline or managed identity is missing, and grant the smallest role that fixes it.
When users suddenly can't reach Azure DevOps, first decide whether it's a service incident or something in your tenant - Conditional Access, expired PATs, organisation policies or network. Then fix the right thing and keep pipelines running with the CLI extension patched.
A delete, scale-out, key listing or backup fails with ScopeLocked. Find the lock (it may be inherited), understand ReadOnly side effects and change locks without leaving production unprotected.
Both of Azure's late-September 2026 incident reviews end with the same advice - configure Service Health alerts. Set up one alert per event type and scope, route them to the right people, and include health advisories so model and service retirements don't arrive as surprises.
CLI, PowerShell, KQL and Resource Graph queries to find who changed, restarted or deleted an Azure resource, when, from where and what changed.
Dev, test and training environments usually run 168 hours a week but are used for about 50. Tag environments with schedules, stop VMs, AKS clusters, Application Gateways and databases automatically out of hours, let people opt out for late work, and report the savings.
Copy-paste Resource Graph queries for inventory, orphaned resources, risky NSG rules, unprotected VMs, resource health and who changed what, across every subscription at once.
Commands and queries to find which NSG rule allowed or denied a flow (effective rules, IP flow verify, next hop and VNet flow logs) and to add the narrowest fix.
Fix "System error 53", error 5 and mount timeouts on Windows and Linux by checking port 445, credentials, identity-based auth and SMB encryption settings.
A naming convention, mandatory tags enforced by policy, budgets with alerts and a monthly cost review routine, so every resource has an owner and spend surprises are caught early.
Use Run Command and VM insights to find the process behind high CPU on Windows and Linux VMs, even when RDP or SSH is too slow to use.
Grow an Azure managed OS disk, then extend the partition and filesystem on Windows and Linux, with the checks to run before and after.
Identify which policy assignment blocked a deployment, understand what it requires, and either fix the template or request a scoped exemption.
Plan sizing, deployment slots, health checks, private access, identity and monitoring for an App Service web app that runs in one region without surprises.
Redundancy choice, network isolation, identity-based access, soft delete, versioning, immutability and lifecycle rules for a storage account that holds customer data.
When a workload runs on one VM, these settings decide whether it gets the single-instance SLA, survives a disk or host failure, and can be restored. Disks, backup, patching, access and monitoring.
The AADSTS codes behind most sign-in tickets, what each one means, and where to look in the sign-in logs to fix it quickly.
20 posts
Create a private bucket with sensible defaults, upload, download and sync folders, share a single file safely with a presigned URL, and turn on versioning so mistakes can be undone.
Install AWS CLI v2, sign in with IAM Identity Center instead of long-lived keys, use named profiles for several accounts, and always confirm the account and region before you run a change.
The IAM building blocks in plain terms, how a policy document is read, how roles are assumed, and a small worked example that gives an EC2 instance read access to one S3 bucket without keys.
Understand metrics, statistics and periods, create a CPU and a status-check alarm that emails you through SNS, test it on purpose, and avoid the beginner settings that make alarms noisy or silent.
Find every pending RDS and Aurora maintenance action, know which ones cause downtime, and apply them in your own window instead of AWS's.
How security groups and network ACLs differ (stateful vs stateless, allow-only vs allow and deny), sensible defaults for web and database tiers, and a step-by-step check when traffic does not get through.
Copy-paste AWS CLI --filters and JMESPath --query patterns for everyday questions such as which instances are running, which volumes are orphaned and what still allows IMDSv1.
Get an EC2 instance out of stopping or shutting-down, read the state reason when a start bounces back to stopped, and fix the KMS, capacity and volume causes.
Run shell or PowerShell commands on many instances at once with SSM Run Command. Target by tag, limit concurrency and errors, send output to S3, and check results per instance, with no SSH or RDP needed.
Development and test environments are typically used about a third of the week but run all of it. Tag resources with a schedule, stop EC2, RDS, Aurora, EKS node groups, ECS services and Redshift automatically, give teams an override, and report savings.
Copy-paste CloudWatch Logs Insights queries for error spikes, slow Lambda invocations, rejected VPC flows and CloudTrail AccessDenied, plus running them from the CLI.
Move EBS volumes from gp2 to gp3 live with Elastic Volumes. Find gp2 volumes across regions, set IOPS and throughput so performance doesn't drop, convert in batches, and update launch templates and IaC so gp2 doesn't come back.
Commands and queries to find who changed a security group, IAM role, bucket or instance, from CloudTrail event history to Athena and AWS Config history.
Enforce a tag schema with tag policies, activate cost allocation tags, set budgets and Cost Anomaly Detection per account, and run a short monthly savings review.
Get memory, disk and log data flowing again by checking the agent status, its config, the IAM role, endpoint access and the namespace you're looking in.
The error message tells you which layer is broken. Here's how to check each one, from security groups and route tables to sshd, keys and EC2 Instance Connect.
Increase an EBS volume online with modify-volume, then grow the partition and filesystem on Linux (ext4, XFS, LVM) and Windows, with a snapshot first.
Settings every production S3 bucket should have, from account-level Block Public Access and ownership controls to encryption, TLS-only policies, versioning, lifecycle and access logging.
A checklist for a single production EC2 instance that is secure, patchable, recoverable and monitored, plus the auto-recovery settings that limit downtime from host failures.
Prove where a connection breaks between instances, subnets, peered VPCs or Transit Gateway attachments, using Reachability Analyzer and VPC Flow Logs instead of guesswork.
29 posts
Pick a shape and image, create an SSH key pair, launch an Oracle Linux instance from the CLI, connect directly or through the Bastion service, and know which default user to use for each image.
The OCI vocabulary every new engineer trips over. What a tenancy, compartment and OCID are, how regions, availability domains and fault domains relate, and CLI commands to find your way around.
Create a block volume, choose paravirtualized or iSCSI attachment, format and mount it on Linux, write a safe /etc/fstab entry with nofail, and detach it cleanly.
What OCI Cloud Shell gives you out of the box, how to change region and profile, keep files in its home directory, reach private resources with Cloud Shell networking, and its limits so you know when to use a real workstation.
How OCI security lists and NSGs differ, how they combine, why stateless rules break replies, and a step-by-step checklist when you cannot reach an instance on SSH or an application port.
Use the Oracle Cloud Agent Run Command plugin to run a shell or PowerShell script on an instance with no SSH key, no bastion and no open port, and collect the output.
Find which OCI instances and processes still call the v1 metadata endpoints, test IMDSv2, switch instances to "Version 2 only" and make new launches default to it.
One table of the OCI service changes announced in 2026, with the date that matters and what to do, so each one gets an owner before it turns into an outage. Covers Fleet Application Management, Data Safe, Database Migration, Compute audit events, API Gateway, Data Science, Database Management and ADM.
Copy-paste OCI Logging Search queries for application errors, Audit events, load balancer access logs and VCN flow logs, plus running them from the OCI CLI.
Quick CLI and console recipes to break OCI spend down by service, compartment and tag, find daily spikes, and pull the detailed cost reports for your own analysis.
Moving many files or very large files into OCI Object Storage is slow with one-by-one put. Use multipart uploads, bulk-upload with parallelism, and sync for repeat runs, then verify with checksums and counts.
Every tenancy accumulates resources that cost money and do nothing - detached volumes, preserved boot volumes, old manual backups, idle load balancers and forgotten test databases. Search for each type across compartments, confirm owners, clean up safely with a backup-first approach and keep it from coming back.
Dev and test environments run all week but are used during working hours. Use OCI Resource Scheduler (or Functions for unsupported resources) to stop and start instances, instance pools, Autonomous Databases and DB system nodes on a schedule, select resources by tags, give teams an override and track savings.
A step-by-step runbook to change an OCI VM's shape or flex OCPU and memory, covering limits, image compatibility, the reboot, rollback and post-change checks.
Create an OCI bastion, open managed SSH and port forwarding sessions to private instances and databases, and fix the usual connection failures.
Fix RDP problems on OCI Windows instances, covering the initial opc password, security rules on 3389, the Windows firewall and NLA, and using Run Command or a console connection when locked out.
Resize a boot or block volume without stopping the instance, rescan the device, and extend the filesystem with oci-growfs on Oracle Linux or manually elsewhere.
Create defined tag namespaces with tag defaults per compartment, set budgets with forecast alerts, use quotas to cap spend, and review cost reports monthly.
What availability domains and fault domains protect against, how to place HA pairs in single-AD and multi-AD regions, and which OCI services are regional, AD-bound or FD-aware.
Policy syntax, the four verbs, resource families, dynamic groups, conditions and service policies, plus how to debug NotAuthorizedOrNotFound.
Tell capacity shortages from tenancy service limits and compartment quotas, and get the instance launched with the right fix for each.
Which logs to enable before you need them, plus Logging Search queries for VCN flow logs, load balancer errors, Object Storage access and Audit events.
Production settings for OCI Object Storage buckets, including visibility, IAM-scoped access, customer-managed keys, versioning, retention rules, lifecycle tiers, logging and Cloud Guard detection.
Create a replication policy from a source bucket to a DR-region bucket, set the required IAM policy, monitor last sync, and stop replication to make the destination writable during failover.
Why OCI returns 404 when you lack permission, how to check namespace, region and policies, and how to create and debug pre-authenticated requests for customers.
Which gateway each kind of traffic needs, how route tables and security rules interact, and how to use Network Path Analyzer to prove where a packet stops.
Create a Notifications topic, write MQL alarm queries for CPU, memory, load balancers and databases, and avoid the common no-data and noisy-alarm problems.
Shape, fault domain, boot and block volume settings, backups, Bastion access, OS Management, monitoring and the recovery behaviour you get from a single OCI instance.
Set up the OCI CLI once, then use these commands to find resources across compartments, start and stop instances, and script output with JMESPath.
13 posts
Write a small, correct Airflow DAG with the TaskFlow API, set a schedule without the classic start_date and catchup surprises, pass data between tasks, add retries, and test it with airflow dags test before deploying.
What each common data file format is good and bad at, why Parquet is the default for analytics, where Avro and JSON still fit, and how to inspect and convert files with Python, Spark and DuckDB.
Set up a dbt Core project, declare sources, build staging and mart models with ref(), add built-in tests, choose materializations, and generate documentation, with the commands you will run every day.
A first hands-on tour of Delta Lake. Create a Delta table, append and upsert data with MERGE, read the transaction history, travel back to an older version and restore it, with SQL and PySpark side by side.
The core Kafka concepts in plain terms. Create a topic, produce and consume messages, see how partitions and keys affect ordering, and read consumer group lag, all with the standard Kafka command-line tools.
The Airflow CLI commands, environment variable formats and secrets backend settings for managing connections and variables, plus how to move them between environments.
When a report shows stale or missing data, work backwards from the report through the semantic model, warehouse tables, pipelines and source. Find the first layer where the data stops, fix it, backfill and tell users.
The Kafka command-line tools on-call engineers use most, grouped by task. Check cluster health, manage topics and configs, inspect and reset consumer groups, and move partitions safely.
The dbt selectors, graph operators and CLI flags you need on support duty to rebuild one model, its downstream, only what changed, or only what failed.
Read the refresh history error, then fix gateway connectivity, expired credentials, mismatched data source definitions, timeouts and capacity limits.
When a single-node cluster is the right choice, how to configure it, how it differs from multi-node job clusters and serverless compute, and policies that stop small workloads from burning large budgets.
Run a single combined broker/controller Kafka node with KRaft for development and test, set replication factors that work on one node, and list the settings you must change before production.
Work through the active role, the USAGE chain on database, schema and warehouse, future grants and ownership when Snowflake users can't see objects.
11 posts
Databricks spend shows as untagged in Azure cost analysis or chargeback reports. Find which tag path failed (pool, workspace, conflict, restart, serverless) and fix it.
A guided first hour in an Azure Databricks workspace. What each sidebar area is for, which compute to pick (serverless, all-purpose, job, SQL warehouse), creating a small cluster with auto-termination, and a first notebook that reads and writes a table.
Turn a working notebook into a reliable scheduled job. Pick job compute, set a schedule and timezone, pass parameters, configure retries and timeouts, get alerts on failure, and run it as a service principal.
The notebook features you use every day. Language magics (%sql, %python, %sh, %pip), widgets for parameters, the most useful dbutils commands for files, secrets and notebooks, and how %run differs from dbutils.notebook.run.
Create or pick a SQL warehouse, write and save queries in the SQL editor, read query history and the query profile when something is slow, build a simple AI/BI dashboard and schedule it, with sizing tips that keep costs down.
The Unity Catalog object model explained for newcomers. The three-level namespace, managed vs external tables, volumes for files, and the handful of GRANT statements you need to share data safely with a team.
Set up Databricks job notifications that page the right people on failure, slow runs and streaming lag, without alert noise from retries, skipped or canceled runs.
The Databricks CLI commands an on-call engineer actually uses on Azure - sign in, find and stop clusters, rerun failed jobs, move notebooks and files, and check Unity Catalog grants.
Unity Catalog needs privileges at every level - catalog, schema and object. Copy-ready SQL for granting read, write and create access to groups, checking effective grants, changing owners and fixing the most common permission errors.
Create Key Vault-backed and Databricks-backed secret scopes, grant READ/WRITE/MANAGE, read secrets from notebooks, SQL and cluster config, and fix the usual "secret does not exist" and 403 errors.
Driver disk, DBFS, workspace files or Unity Catalog volumes? Which path works from Spark, Python, %sh and the CLI, how to move files between them, and how to retire DBFS mounts.
26 posts
Read the user@host in the error, check which mysql.user row matches, and fix wrong passwords, host patterns, anonymous users, plugins, TLS rules and locked accounts.
First-day MySQL administration. Connect safely with option files, understand user@host accounts, create application and read-only users with least privilege, use roles, and inspect sessions and basic health from the client.
Connect to Oracle with SQL*Plus or SQLcl, understand the container database and pluggable databases, find the right service name, create a user with only the privileges it needs, and check basic health.
A practical first session in psql. Connect locally and remotely, use the backslash commands you need daily, understand databases vs schemas, create an application role with least privilege, and fix the most common connection errors.
What an index does, how to create one without locking a busy table, how to read a simple EXPLAIN plan, multi-column index order, and the common reasons PostgreSQL ignores an index you expected it to use.
Understand SIMPLE vs FULL recovery, take full, differential and transaction log backups with T-SQL and PowerShell, check that backups are usable, and practise a restore to a new database name before you ever need one.
Decode PostgreSQL connection errors, check pg_hba.conf rules with pg_hba_file_rules, fix SSL, md5 and SCRAM mismatches, and reload safely without a restart.
The redis-cli commands you reach for every week - connecting, health checks, finding keys safely, memory, clients, slow commands, replication, persistence, ACLs and cluster.
Copy-ready SQL for common PostgreSQL access patterns - owner, read-write and read-only roles, default privileges for future tables, checking who has what, and fixing the usual permission denied errors.
After restoring a database to another server, users can't log in because database users point to login SIDs that don't exist there. Find orphaned users, re-map them with ALTER USER, and copy logins with their original SIDs to prevent it.
Walk through the New Job dialog in SQL Server Management Studio page by page, with the choices that matter for production. Owner, category, step flow, retries, output, schedule and notifications. Then script the job out so it can be rebuilt.
Test emails from Database Mail arrive, but job failure and alert notifications never do. The usual reason is that SQL Server Agent isn't set to use Database Mail, or wasn't restarted after it was. Fix it in SSMS or T-SQL, then verify the whole path.
Find jobs with no failure notification and fix them all with one script. Also covers keeping new jobs covered automatically, writing failures to the event log for monitoring tools, and making sure the emails actually leave the server.
Three ways to stop a SQL Server Agent job from running, and what each one does to manual runs, shared schedules and other jobs. Includes T-SQL for each, a check for jobs left disabled by accident, and a habit that stops them being forgotten.
A first tour of SQL Server Agent for people new to SQL Server operations. What each building block does, how they fit together, and a first useful automated task built end to end.
Short, practical answers to the SQL Server Agent questions that come up again and again. Where jobs are stored, who they run as, why a job didn't run, time zones, Express edition, Azure options, and more.
The client always sees state 1. Pull the real state from the SQL Server error log, map it to the cause (bad password, disabled login, missing database, Windows-only mode) and fix it.
Job categories are a free, built-in way to group SQL Server Agent jobs by team, application or purpose. Create a simple category scheme, assign jobs in bulk, use categories in reports, bulk enable and disable, and notifications, and avoid the built-in categories that other features depend on.
A routine for keeping SQL Server Agent healthy. Daily checks for failures, long runs and disabled jobs, a weekly review of owners, notifications and history, and monthly housekeeping and testing. Each check comes with the query or dbatools command, and links to the deep-dive posts in this series.
Start SQL Agent jobs from SSMS, T-SQL, another job, PowerShell, sqlcmd, schedules, Agent alerts or an application. Includes how to start at a specific step, wait for a job to finish (sp_start_job doesn't wait), and give non-admins permission to run only the jobs they need.
Most monitoring platforms already read the Windows Application log. Configure every SQL Server Agent job to write an event on failure, write your own custom events from job steps, find the events with PowerShell, and forward them to Azure Monitor, SCOM or a SIEM.
SQL Server Agent has three fixed database roles in msdb that let people create, view or operate jobs without sysadmin. What each role can and can't do, how to grant them to groups, how they interact with job ownership and proxies, and how to review who has Agent access.
SQL Server Agent keeps only 1,000 history rows by default, 100 per job, so busy servers lose history within days. Three ways to keep what you need. Raise the row limits, switch to time-based purging, or archive history to a table, with scripts and msdb sizing advice.
Get in when every slot is taken, see which users and hosts hold connections, kill sleepers and long queries, and right-size max_connections and pools.
Unlock Oracle accounts, find which host keeps locking them with failed logins, and use profiles so application accounts don't expire in production.
Find who holds the connections, clean up idle-in-transaction sessions, and fix the cause with connection pooling instead of raising max_connections.
19 posts
Embeddings turn text into lists of numbers where similar meaning means nearby vectors. Learn cosine similarity, why approximate nearest-neighbour indexes exist, and build a tiny semantic search over your runbooks with Python before reaching for a vector database.
Estimate how much GPU memory a model needs from its parameter count and precision, add KV cache for context and concurrency, understand FP16, FP8 and 4-bit quantization, and read nvidia-smi to see what is really using the GPU.
Make a first chat completion call to Azure OpenAI and Amazon Bedrock from Python, understand system/user/assistant messages, what tokens are and how they drive cost and limits, and which parameters (temperature, max tokens) to set first.
The nvidia-smi commands on-call engineers actually use on GPU inference nodes - what is installed, who is using memory, why clocks are low, ECC and row remap errors, and NVLink topology.
Practical prompt patterns for day-to-day operations work. Give the model a role, the right context and constraints, ask for structured output, use examples, and review results safely, with ready-to-use prompts for log triage, runbook drafting and change summaries.
The four steps of RAG (chunk, embed, retrieve, generate) explained with a small Python example over your own runbooks, plus the prompt that keeps answers grounded, how to show sources, and the first checks when answers are wrong.
The Chroma Python API on one page - choosing a client, creating collections with an explicit distance, add vs upsert, query and get with metadata and document filters, includes, updates, deletes, counts and the errors you'll hit most.
The Pinecone operations you use every day on one page - connecting by host, upsert, query with metadata filters and every filter operator, fetch, partial updates, deletes, stats and the metadata rules that cause most filter bugs.
The Qdrant calls you need day to day - create and inspect collections, upsert and delete points, filter syntax, the Query API, scroll, count, aliases, snapshots and health endpoints - side by side in curl and Python.
The az commands, test calls, metric names and KQL you need day to day for Azure OpenAI - from listing deployments and quota to keys, network rules and diagnostic logs.
One table of the Foundry models that retire between mid-November and mid-December 2026, with replacements where Microsoft names one, plus what each retirement means for your app. Partner models such as Claude and Mistral follow a 12-month lifecycle and have shorter notice.
The AWS CLI commands you need day to day on Amazon Bedrock. Find model IDs, send a test prompt, check guardrails and invocation logging, read CloudWatch metrics and look up quotas.
One table per provider mapping LLM API status codes and error types to their usual cause and fix, plus which errors to retry, how to back off, and what to log so incidents are quick to diagnose.
Teams collect dozens of GenAI ideas and build the most exciting rather than the most useful. Describe each idea in a standard way, score value, feasibility and risk, check data readiness, start with a few high-value low-risk cases with clear success measures, and stop those that don't prove themselves.
Fix model pulls that fail at startup with 401, 403 gated-repo, timeout or not-in-cache errors, then pin revisions and pre-stage weights so pods never depend on the Hub.
Turn on Bedrock model invocation logging, then use CloudWatch metrics and Logs Insights to find the role, model and team behind a token or cost spike.
Work through model access, IAM actions and resources, inference profiles, region availability, SCPs and VPC endpoint policies when Bedrock calls fail with access or validation errors.
Understand context windows vs output limits, count tokens before calling the model, and trim chat history and RAG context so requests fit and answers aren't truncated.
Build a private RAG proof of concept on one VM, with a local model served by Ollama and an embedding model, document chunks in PostgreSQL with pgvector, and a small Python script for ingesting and answering questions. Ends with what to change before production.