<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Vital F</title>
    <description>The latest articles on Forem by Vital F (@vitalf).</description>
    <link>https://forem.com/vitalf</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2677017%2F2b0d2bcf-2ade-4849-95bb-17c035450853.jpeg</url>
      <title>Forem: Vital F</title>
      <link>https://forem.com/vitalf</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/vitalf"/>
    <language>en</language>
    <item>
      <title>AWS. GCP. Azure. Pocket vocabulary.</title>
      <dc:creator>Vital F</dc:creator>
      <pubDate>Fri, 30 Jan 2026 23:00:32 +0000</pubDate>
      <link>https://forem.com/vitalf/aws-gcp-azure-pocket-vocabulary-29hp</link>
      <guid>https://forem.com/vitalf/aws-gcp-azure-pocket-vocabulary-29hp</guid>
      <description>&lt;p&gt;This is a quick lookup sheet for abbreviations and cloud terms. Each entry aims to be: &lt;strong&gt;what it is&lt;/strong&gt;, in plain English, plus &lt;strong&gt;when it matters&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cloud names (obvious, but included for completeness)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AWS&lt;/strong&gt;: Amazon Web Services.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GCP&lt;/strong&gt;: Google Cloud Platform.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Azure&lt;/strong&gt;: Microsoft Azure.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Identity, access, and governance
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;IAM (Identity and Access Management)&lt;/strong&gt;: The permission system: who/what can do what to which resource. Many cloud incidents boil down to IAM being too broad or attached at the wrong scope.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;RBAC (Role-Based Access Control)&lt;/strong&gt;: A permission model where you assign roles (sets of permissions) to identities. It's the normal way teams grant access without hand-writing one-off permissions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;MFA (Multi-Factor Authentication)&lt;/strong&gt;: Logging in with a second factor (app code, hardware key) in addition to a password. It's one of the highest-ROI protections you can add to any account.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;SSO (Single Sign-On)&lt;/strong&gt;: Log in once with your company identity and access multiple tools/services. It simplifies onboarding/offboarding and makes auditing access much easier.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Tenant (Azure)&lt;/strong&gt;: Your organization's top-level identity boundary in Microsoft Entra ID (directory). It's "where your users live," and where many org-wide controls begin.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Microsoft Entra ID (formerly Azure AD)&lt;/strong&gt;: Azure's identity directory service (users, groups, app registrations). It's the backbone for Azure authentication and lots of governance workflows.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;AWS Organizations&lt;/strong&gt;: AWS governance feature to group multiple AWS accounts and apply org-level controls. It's how larger AWS setups stop being "a pile of accounts" and start being manageable.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;OU (Organizational Unit) - AWS Organizations&lt;/strong&gt;: A logical grouping of AWS accounts inside an Organization. You typically group accounts by environment or business unit so you can apply the same guardrails to all of them.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;SCP (Service Control Policy) - AWS Organizations&lt;/strong&gt;: A policy that limits what an account is allowed to do, even if IAM would otherwise allow it. Think "safety rails" that prevent entire categories of mistakes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Cloud Organization (GCP)&lt;/strong&gt;: The top-level GCP resource that represents your company. It enables org-wide policy and a clean hierarchy above projects.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Folder (GCP)&lt;/strong&gt;: A grouping layer between Organization and Projects. It's how you apply policy/IAM to many projects at once (for example: "everything under Prod").&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Management Group (Azure)&lt;/strong&gt;: A governance grouping above subscriptions. It's commonly used to apply policy/RBAC across many subscriptions consistently.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Policy (generic)&lt;/strong&gt;: Rules/guardrails you apply to restrict or validate configurations (for example: "no public storage," "only approved regions"). Good policies prevent accidents instead of just detecting them later.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Billing / ownership "containers"
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Account (AWS Account)&lt;/strong&gt;: A strong isolation boundary in AWS; often the unit for billing, IAM boundaries, and blast-radius control.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Project (GCP Project)&lt;/strong&gt;: The main unit where resources live and APIs are enabled. Projects often map cleanly to "one app" or "one environment."&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Subscription (Azure Subscription)&lt;/strong&gt;: The main Azure billing and RBAC boundary. It's commonly used as an environment boundary (dev vs prod) when you want hard separation.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Resource Group (Azure)&lt;/strong&gt;: A group of Azure resources managed together (lifecycle, RBAC, and organization). A common pattern is "one resource group per app per environment," even within one subscription.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Quotas / limits&lt;/strong&gt;: Per-service capacity limits (number of instances, IPs, API requests, etc.). Hitting a quota often looks like a mysterious outage if you're not watching for it.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Geography and availability
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Region&lt;/strong&gt;: A geographic area where cloud resources run (for example: "us-east-1"). Regions affect latency, data residency/compliance, and which services/features are available.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Location (Azure)&lt;/strong&gt;: Azure's term for a region. Many Azure resources have a "location" property.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;AZ (Availability Zone) - AWS&lt;/strong&gt;: A separate fault domain inside a region (independent power/cooling/building). High-availability designs often spread across 2-3 AZs.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Zone (GCP)&lt;/strong&gt;: Similar concept to AWS AZ: a fault domain inside a region. Many compute resources are zonal, so spreading across zones improves availability.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;HA (High Availability)&lt;/strong&gt;: Designing systems to keep working through failures (instance failure, zone failure, etc.).&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Networking (private networks and segments)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;VPC (Virtual Private Cloud) - AWS&lt;/strong&gt;: Your private network boundary (routing, subnets, connectivity) in AWS.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;VPC Network - GCP&lt;/strong&gt;: GCP's VPC. Key difference: it is &lt;strong&gt;global&lt;/strong&gt; within a project; subnets are regional.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;VNet (Virtual Network) - Azure&lt;/strong&gt;: Azure's private network boundary (similar role to AWS VPC).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Subnet / Subnetwork&lt;/strong&gt;: A smaller IP range "inside" your VPC/VNet/VPC Network used for segmentation.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Notes: AWS subnets are AZ-scoped; GCP subnetworks are region-scoped.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;CIDR (Classless Inter-Domain Routing)&lt;/strong&gt;: The notation for an IP range (example: &lt;code&gt;10.0.0.0/16&lt;/code&gt;). Your CIDR choices determine how many IPs you have and whether networks can be connected cleanly later.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;Routing / route table&lt;/strong&gt;: Rules that decide where traffic goes (internet, NAT, peered network, etc.).&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;NAT (Network Address Translation)&lt;/strong&gt;: A way for private IPs to reach the internet without being directly reachable from the internet. Commonly used for "private subnets that still need outbound access."&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;Peering&lt;/strong&gt;: Connecting two private networks so they can route traffic to each other. It's how you get private service-to-service communication across network boundaries.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;VPN (Virtual Private Network)&lt;/strong&gt;: Encrypted tunnel over the internet between networks (office ↔ cloud, cloud ↔ cloud).&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;AWS Direct Connect&lt;/strong&gt;: Dedicated private connectivity from your datacenter/office to AWS. It gives more predictable performance than a VPN and can be cheaper at scale.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;Azure ExpressRoute&lt;/strong&gt;: Dedicated private connectivity to Azure (similar role to Direct Connect).&lt;/p&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;h2&gt;
  
  
  Security controls at the network layer
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Security Group (AWS)&lt;/strong&gt;: Stateful firewall rules attached to network interfaces/resources. It's one of the most common "allow/deny" controls for AWS workloads.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Firewall rules (GCP)&lt;/strong&gt;: Network-level firewall rules with targets (tags/service accounts) rather than a single "security group object." This different attachment model changes how you group and reason about access.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;NSG (Network Security Group) - Azure&lt;/strong&gt;: A set of allow/deny rules attachable to subnets and/or NICs. It's a common access control layer for Azure networks.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;NIC (Network Interface Card) / network interface&lt;/strong&gt;: The virtual network adapter attached to a VM or similar resource.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;ENI (Elastic Network Interface) - AWS&lt;/strong&gt;: AWS's name for a virtual network interface.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Storage (mentioned in examples)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;S3 (Amazon Simple Storage Service)&lt;/strong&gt;: AWS's object storage service.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Bucket (S3 bucket)&lt;/strong&gt;: A named container in object storage that holds objects (files) and metadata. The "public bucket" mistakes people talk about are usually bucket policies/ACLs set too open.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Data and analytics (common "cloud data" vocabulary)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Amazon Redshift (often said as "Redshift")&lt;/strong&gt;: AWS managed data warehouse for analytics SQL (reporting/BI). Common equivalents are &lt;strong&gt;BigQuery (GCP)&lt;/strong&gt; and &lt;strong&gt;Azure Synapse / Fabric Warehouse (Azure)&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Data warehouse&lt;/strong&gt;: A database optimized for analytics queries (lots of reads, big scans, aggregations) rather than app transactions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;OLTP (Online Transaction Processing)&lt;/strong&gt;: App-style databases optimized for many small reads/writes (orders, users, payments).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;OLAP (Online Analytical Processing)&lt;/strong&gt;: Analytics-style queries optimized for reporting and aggregation ("show revenue by region for the last 12 months").&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Data lake&lt;/strong&gt;: A storage-based approach where raw/curated data lives in object storage (like S3) and multiple tools query/process it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;ELT / ETL&lt;/strong&gt;: Two ways to move/transform data. &lt;strong&gt;ETL&lt;/strong&gt; transforms before loading into the warehouse; &lt;strong&gt;ELT&lt;/strong&gt; loads first, then transforms inside/near the warehouse.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Kubernetes (only if you use Kubernetes)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Kubernetes (K8s)&lt;/strong&gt;: An orchestration system for running containers at scale (scheduling, scaling, rollout, service discovery).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;EKS (Elastic Kubernetes Service) - AWS&lt;/strong&gt;: Managed Kubernetes on AWS.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;GKE (Google Kubernetes Engine) - GCP&lt;/strong&gt;: Managed Kubernetes on GCP.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;AKS (Azure Kubernetes Service) - Azure&lt;/strong&gt;: Managed Kubernetes on Azure.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Cluster&lt;/strong&gt;: The Kubernetes control plane + worker nodes that run your workloads. It's a major operational boundary (upgrades, policies, networking modes, cost allocation).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Namespace&lt;/strong&gt;: A logical partition inside a cluster. It helps organize teams/apps and apply quotas/RBAC, but it's not "hard isolation."&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Pod&lt;/strong&gt;: The smallest schedulable unit in Kubernetes (one or more containers sharing networking/storage context).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Deployment&lt;/strong&gt;: Kubernetes controller for stateless replicated pods with rolling updates.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;StatefulSet&lt;/strong&gt;: Controller for workloads that need stable identity and stable storage patterns.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;DaemonSet&lt;/strong&gt;: Controller that runs one pod per node (often for agents like logging/monitoring).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Ingress&lt;/strong&gt;: Kubernetes API/resource pattern for HTTP routing into services (usually implemented by an ingress controller).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;CNI (Container Network Interface)&lt;/strong&gt;: The plugin system that provides pod networking. CNI differences affect IP consumption, networking limits, and migration surprises.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Observability and operations (mentioned or commonly paired)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Audit logs&lt;/strong&gt;: Records of "who did what" actions in the cloud control plane.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AWS example&lt;/strong&gt;: CloudTrail (see below).&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;CloudTrail (AWS)&lt;/strong&gt;: AWS service that records API calls and account activity. It's foundational for investigations and compliance.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;CI/CD (Continuous Integration / Continuous Delivery)&lt;/strong&gt;: Automated build/test/deploy pipelines. It's how most teams ship changes safely and repeatedly.&lt;/p&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;h2&gt;
  
  
  Billing, pricing, and "usage" vocabulary
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Metered billing / pay-as-you-go&lt;/strong&gt;: You pay based on measured usage (time running, requests, GB stored, GB transferred).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Usage&lt;/strong&gt;: The measurable thing that gets billed (hours, requests, GB-months, vCPU-seconds, etc.).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Billing period&lt;/strong&gt;: The time window for an invoice (often monthly).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Invoice&lt;/strong&gt;: The official bill for a billing period.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Line item&lt;/strong&gt;: One charge on an invoice (for a specific service, region, SKU, or usage type).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;SKU&lt;/strong&gt;: A specific priced unit/variant of a service (often how providers break down billing).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Rate card / price sheet&lt;/strong&gt;: A list of prices per SKU/usage type (often region-specific).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Free tier&lt;/strong&gt;: "Free within limits" pricing (limited time, limited usage, or specific services). It's easy to exceed quietly if you don't set budgets/alerts.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Credits&lt;/strong&gt;: Promotional or contract credits that offset charges on the invoice.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Budget&lt;/strong&gt;: A spending target with alerts when you're trending over it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Cost allocation&lt;/strong&gt;: The practice of mapping spend to teams/apps/environments (usually via tags/labels and account structures).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Tagging (AWS tags) / Labels (GCP labels) / Tags (Azure tags)&lt;/strong&gt;: Key/value metadata used for organization, automation, and cost reporting.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Chargeback / showback&lt;/strong&gt;: Internal accounting patterns. &lt;strong&gt;Showback&lt;/strong&gt; reports cost per team; &lt;strong&gt;chargeback&lt;/strong&gt; actually bills teams internally.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Commitment / reserved capacity&lt;/strong&gt;: You commit to a certain spend or capacity in exchange for a discount.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AWS examples: &lt;strong&gt;Reserved Instances (RIs)&lt;/strong&gt;, &lt;strong&gt;Savings Plans&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;GCP examples: &lt;strong&gt;Committed Use Discounts (CUDs)&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Azure examples: &lt;strong&gt;Reserved Instances / Reserved Capacity&lt;/strong&gt;, &lt;strong&gt;Savings Plan (Azure)&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;On-demand&lt;/strong&gt;: Default pricing with no long-term commitment (usually the highest unit price, but most flexible).&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;Spot (AWS) / Preemptible (GCP) / Spot (Azure)&lt;/strong&gt;: Deeply discounted compute that can be interrupted. Great for batch jobs; risky for always-on services unless designed for interruption.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;Amortization&lt;/strong&gt;: Spreading the cost of a commitment (like a 1-year reservation) across the time it benefits, so reports reflect "true" monthly cost.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;Blended vs unblended rates (AWS Cost concept)&lt;/strong&gt;: Different ways to compute unit cost when discounts/commitments are involved; the "right" view depends on whether you're allocating shared discounts across accounts.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;FinOps&lt;/strong&gt;: The discipline/practice of managing cloud cost with shared ownership between engineering, finance, and product.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;vCPU&lt;/strong&gt;: "Virtual CPU" - a billing/performance unit for compute. It's not always a perfect match to a physical core, but it's commonly used in pricing.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;GB-month / GiB-month&lt;/strong&gt;: Storage pricing unit meaning "this many gigabytes stored for a month" (often prorated by day/hour).&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;IOPS&lt;/strong&gt;: Input/Output Operations Per Second (common in disk pricing/performance).&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Data transfer&lt;/strong&gt;: Network traffic that is often billed separately from compute/storage.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Ingress&lt;/strong&gt;: data coming into a cloud/provider (often free, but not always).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Egress&lt;/strong&gt;: data leaving a cloud/provider (commonly billed, sometimes expensive).&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;Cross-zone / inter-AZ traffic&lt;/strong&gt;: Traffic between zones inside a region; often billed in some clouds/services.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;Inter-region transfer&lt;/strong&gt;: Traffic between regions; commonly billed and relevant to DR/multi-region designs.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;API request / API call&lt;/strong&gt;: A billed operation for some services (for example: "requests to object storage," "reads/writes," "list operations").&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;Quotas / limits&lt;/strong&gt;: Provider-enforced caps on usage (also relevant for cost control and safety).&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;AWS CUR (Cost and Usage Report)&lt;/strong&gt;: AWS's detailed billing export used for deeper analysis and FinOps tooling.&lt;/p&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;h2&gt;
  
  
  Quick "overlay" concept (important for the article's mental model)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;"Policy overlay"&lt;/strong&gt;: A way to think about security rules (SG/Firewall/NSG, org policies, etc.) as layers that can apply across many resources rather than a neat nested folder. This mental model helps during migrations because you stop hunting for a perfect 1:1 "container equivalent."&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>aws</category>
      <category>gcp</category>
      <category>azure</category>
      <category>cloud</category>
    </item>
    <item>
      <title>SVG vs Canvas vs WebGL for Diagram Viewers: Tradeoffs, Bottlenecks, and How to Measure</title>
      <dc:creator>Vital F</dc:creator>
      <pubDate>Wed, 31 Dec 2025 17:14:35 +0000</pubDate>
      <link>https://forem.com/vitalf/svg-vs-canvas-vs-webgl-for-diagram-viewers-tradeoffs-bottlenecks-and-how-to-measure-34n7</link>
      <guid>https://forem.com/vitalf/svg-vs-canvas-vs-webgl-for-diagram-viewers-tradeoffs-bottlenecks-and-how-to-measure-34n7</guid>
      <description>&lt;p&gt;Building an interactive diagram viewer isn’t just “draw some boxes and lines.” In real life you’ve got thousands of shapes, labels everywhere, selection handles, arrows, hover states, drag interactions, pan/zoom, maybe a minimap, plus hit-testing that needs to feel instant. Sometimes you also have auto-routing that wants to run right when the user drops a node. So when folks ask “SVG or Canvas or WebGL?”, what they’re really asking is: who owns the scene graph and the interaction model: you or the browser, –  and what kind of workload are you optimizing for? Let’s break it down, nice and practical.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg5vmfi0hkqui7nsk1usk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg5vmfi0hkqui7nsk1usk.png" width="800" height="554"&gt;&lt;/a&gt;&lt;br&gt;DoiT - CloudDiagrams
  &lt;/p&gt;

&lt;h2&gt;
  
  
  1. The mental model: what a diagram viewer is actually doing
&lt;/h2&gt;

&lt;p&gt;Most diagram viewers have three layers whether you call them that or not:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Scene graph: your nodes/edges/labels, geometry, styles, z-order.&lt;/li&gt;
&lt;li&gt;Interaction: hit-testing (click/hover), dragging, selection boxes, snapping, keyboard shortcuts.&lt;/li&gt;
&lt;li&gt;Redraw strategy: how you repaint when the user pans/zooms, drags one thing, or updates a subset of edges.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;SVG, Canvas, and WebGL differ mainly in this: SVG gives you a built-in retained-mode scene graph (DOM), while Canvas and WebGL are immediate-mode and you manage the data + picking yourself.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. SVG: the “it just works” option … until it doesn’t
&lt;/h2&gt;

&lt;h3&gt;
  
  
  When SVG is the right call
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Small to medium diagrams (think: hundreds to a few thousand DOM elements, – depends on browser and styling).&lt;/li&gt;
&lt;li&gt;Text-heavy diagrams where labels matter and you want decent typography without building a text engine.&lt;/li&gt;
&lt;li&gt;You want simple events: click/hover handlers attached to elements, easy accessibility hooks, CSS theming.&lt;/li&gt;
&lt;li&gt;You want fast iteration: it’s a great way to ship an MVP.&lt;/li&gt;
&lt;li&gt;You want clean exports: SVG for lossless scaling and easy post-processing, with raster formats available when you need flat images. SVG is an image format itself, with broad native support across all platforms.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Where SVG usually bottlenecks
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;DOM size: every node/edge/label/handle is a DOM element. Too many and the browser starts paying for it in layout/paint/compositing.&lt;/li&gt;
&lt;li&gt;Frequent attribute updates: if you’re updating transform, path d, x/y, classes, styles every frame, you’ll feel it.&lt;/li&gt;
&lt;li&gt;Expensive visuals: filters (blur/shadow), lots of strokes, dash patterns on thousands of paths can get rough.&lt;/li&gt;
&lt;li&gt;Text churn: measuring and re-rendering lots of text on zoom/drag adds up.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Practical SVG tips
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Pan/zoom on one parent , not on every element.&lt;/li&gt;
&lt;li&gt;Avoid “always-on” UI chrome (handles/guides) for every node. Render that only for selection/hover.&lt;/li&gt;
&lt;li&gt;Keep heavy filters rare. Use them surgically.&lt;/li&gt;
&lt;li&gt;Cache text measurements and don’t re-measure every tick.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;SVG can feel buttery for the right scale. Past a point, the DOM becomes your tax bill.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Canvas 2D: fast drawing, but you own the engine
&lt;/h2&gt;

&lt;p&gt;Canvas is immediate-mode: you redraw what you want each frame. It can be very fast for big scenes, but you’re responsible for the stuff SVG gives you for free.&lt;/p&gt;

&lt;h3&gt;
  
  
  When Canvas is the right call
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;You’re hitting SVG/DOM limits and pan/zoom/drag needs to stay smooth.&lt;/li&gt;
&lt;li&gt;You’re fine implementing picking (hit-testing), selection, and a scene structure yourself.&lt;/li&gt;
&lt;li&gt;You want predictable performance: fewer DOM nodes, more “just pixels.”&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Common Canvas bottlenecks
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Full-scene redraw: naive implementations repaint everything every frame. Sometimes that’s okay; sometimes it’s your biggest cost.&lt;/li&gt;
&lt;li&gt;Text: often the first thing to hurt. measureText, lots of labels, and zooming text are expensive.&lt;/li&gt;
&lt;li&gt;Complex paths: thousands of polylines, arrowheads, and strokes can get heavy if you rebuild them constantly.&lt;/li&gt;
&lt;li&gt;Hit-testing: doing a linear scan of every object on every mousemove will absolutely cook your CPU.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Practical Canvas tips
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Use layers: one canvas for the “base scene,” one for interactions (selection box, guides, hover glow).&lt;/li&gt;
&lt;li&gt;Add a spatial index: grid/quadtree/R-tree so you only consider nearby objects for hit-testing and visibility.&lt;/li&gt;
&lt;li&gt;Cache geometry: precompute Path2D where it helps, cache arrowheads/icons.&lt;/li&gt;
&lt;li&gt;Consider OffscreenCanvas/Workers when feasible for heavy redraw or routing work.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Canvas is usually the best “grown-up step” when SVG is struggling. Just know you’re signing up to build more infrastructure.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. WebGL: the throughput king (with a big engineering price tag)
&lt;/h2&gt;

&lt;p&gt;WebGL shines when you have a lot of primitives and need to push them efficiently on the GPU.&lt;/p&gt;

&lt;h3&gt;
  
  
  When WebGL is the right call
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Very large scenes: tens/hundreds of thousands of primitives.&lt;/li&gt;
&lt;li&gt;You need GPU-friendly effects and smooth zooming/panning at scale.&lt;/li&gt;
&lt;li&gt;You’re willing to build a rendering pipeline (batching, buffers, shaders).&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Common WebGL bottlenecks
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;CPU → GPU uploads: if you rebuild and upload massive buffers every frame, you lose the whole point.&lt;/li&gt;
&lt;li&gt;Too many draw calls/state changes: lack of batching/instancing kills performance.&lt;/li&gt;
&lt;li&gt;Text: you’ll likely need SDF (Signed Distance Field) fonts, glyph atlases, or a hybrid approach.&lt;/li&gt;
&lt;li&gt;Picking: you’ll implement CPU indexing, or color picking, or both.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Practical WebGL tips
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Batch and instance aggressively.&lt;/li&gt;
&lt;li&gt;Keep buffers stable and update only what changed.&lt;/li&gt;
&lt;li&gt;Go hybrid: WebGL for geometry, DOM/SVG/HTML overlay for editable text and UI controls is a very common “best of both worlds” move.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;WebGL pays off when you’re truly operating at scale. For many viewers, it’s overkill unless you know your targets.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Choosing quickly: some solid rules of thumb
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Shipping fast + lots of labels: start with SVG, maybe with a plan to hybridize later.&lt;/li&gt;
&lt;li&gt;You need consistent 60 FPS on moderately large scenes: Canvas 2D (with indexing + layers).&lt;/li&gt;
&lt;li&gt;You’re aiming at huge graphs or GPU-level visuals: WebGL, often hybridized for text/UI.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And yeah, hybrids are normal:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Canvas/WebGL for the scene + HTML/SVG for labels and UI&lt;/li&gt;
&lt;li&gt;SVG for editing overlays + Canvas for the heavy background layer&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  6. Where diagram viewers actually bottleneck (the usual suspects)
&lt;/h2&gt;

&lt;p&gt;In practice, it’s rarely “drawing one line” that hurts. It’s stuff like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Hit-testing on mousemove without a spatial index&lt;/li&gt;
&lt;li&gt;Text layout/measurement and label placement churn&lt;/li&gt;
&lt;li&gt;Mass style effects (shadows, blurs, opacity layers)&lt;/li&gt;
&lt;li&gt;Huge DOM updates (SVG) during drag/zoom&lt;/li&gt;
&lt;li&gt;Heavy computations on the main thread (routing/layout) without worker/batching&lt;/li&gt;
&lt;li&gt;GC pressure from allocating tons of temporary objects per frame&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If your viewer “feels laggy,” one of these is usually the culprit.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. How to measure (so you’re not arguing vibes)
&lt;/h2&gt;

&lt;h3&gt;
  
  
  7.1 Define workloads
&lt;/h3&gt;

&lt;p&gt;Pick 3-5 scenarios and fix the scale (N nodes, M edges, labels per node):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Pan/zoom around a dense diagram&lt;/li&gt;
&lt;li&gt;Drag a node (update connected edges)&lt;/li&gt;
&lt;li&gt;Box selection over many elements&lt;/li&gt;
&lt;li&gt;Hover highlight (mousemove)&lt;/li&gt;
&lt;li&gt;Auto-route/reroute (if applicable)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  7.2 Track the right metrics
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Frame time: average plus p95/p99 (60 FPS target is ~16.6ms per frame)&lt;/li&gt;
&lt;li&gt;Long tasks: anything over 50ms on the main thread&lt;/li&gt;
&lt;li&gt;Input latency: how long between pointer move and visible response&lt;/li&gt;
&lt;li&gt;Memory &amp;amp; GC: heap growth, GC spikes&lt;/li&gt;
&lt;li&gt;CPU vs GPU: what’s dominating in the profile&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  7.3 Use the right tools
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Chrome DevTools Performance: record pan/zoom/drag and inspect Main + Rendering/Paint.&lt;/li&gt;
&lt;li&gt;performance.mark() / performance.measure() for your own hotspots (routing, redraw, hit-test).&lt;/li&gt;
&lt;li&gt;PerformanceObserver for long tasks.&lt;/li&gt;
&lt;li&gt;Optional: a simple FPS overlay, but treat it as secondary to frame-time percentiles.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  7.4 Benchmark fair
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Warm up once (first render is often slower).&lt;/li&gt;
&lt;li&gt;Measure with DevTools closed for “final numbers” (DevTools adds overhead).&lt;/li&gt;
&lt;li&gt;Compare apples-to-apples UX (SVG gives event handling “for free”; Canvas/WebGL need picking logic, include that cost).&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  8. The bottom line
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;SVG is fantastic for shipping quickly and for text-heavy diagrams, until DOM + paint cost catches up.&lt;/li&gt;
&lt;li&gt;Canvas 2D is the practical performance workhorse if you can own hit-testing and scene management.&lt;/li&gt;
&lt;li&gt;WebGL is what you reach for when your scene is big-big and you’re ready to build a rendering pipeline, often paired with DOM for text/UI.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>webdev</category>
      <category>svg</category>
      <category>canvas</category>
      <category>webgl</category>
    </item>
  </channel>
</rss>
