Tag: Cloud Cost Comparison

  • Bing Webmaster Tools vs Google Search Console: What Each Tells You (and the 84% Lesson)

    Bing Webmaster Tools vs Google Search Console: What Each Tells You (and the 84% Lesson)

    Here’s the number that reorganized how we think about search: ~84% of our organic traffic comes from Bing. Not Google. Bing — and the Copilot and ChatGPT surfaces that draw on Bing’s index. Yet for a long time, like nearly everyone, we watched only Google Search Console and treated Bing as an afterthought.

    That’s the blind spot this article is about. Short answer: use both consoles, but if Bing drives your traffic, stop treating Bing Webmaster Tools as optional — it has data, indexing controls, and an AI-insights surface that Google Search Console doesn’t, and it’s reporting on the search engine that’s actually sending you readers.

    This is the side-by-side from running both consoles on the same media property: what each one tells you, where Bing is quietly ahead, and how we wired the Bing Webmaster Tools API into our editorial calendar.

    The core reporting — query, position, CTR

    At the surface, the two consoles look like twins. Both give you queries, impressions, clicks, average position, and CTR. The differences are in coverage and freshness.

    How we do it

    Job Bing Webmaster Tools Google Search Console Verdict
    Query / position / CTR Yes, per query and page Yes, per query and page Tie on the basics
    Data freshness Often faster to update ~2-3 day lag Bing edges ahead
    Historical window Generous 16 months Toss-up
    API access Full API: position + CTR per query/page Search Analytics API Bing — the API is the underrated weapon
    AI / Copilot insights Dedicated AI-traffic insights No equivalent surface yet Bing, clearly
    Market it reports on Bing + Copilot + ChatGPT-via-Bing Google only Depends on your traffic mix

    The honest read: for the basic dashboard, they’re close enough that you’d never switch for the UI. The reasons to take Bing seriously are whose traffic it reports on and what it lets you do about it — the AI insights tab and the API.

    Indexing: IndexNow vs crawl-when-it-feels-like-it

    This is the most concrete operational difference, and it’s lopsided.

    How we do it

    Job Bing Webmaster Tools Google Search Console Verdict
    Tell it about a new URL IndexNow — push, indexed near-instantly URL Inspection → “Request indexing” (queued) Bing — push beats poll
    Bulk submission IndexNow ping + sitemap Sitemap, then wait Bing
    Control over crawl Crawl control, block/allow Limited crawl controls Bing — more knobs
    Re-crawl on edit Re-ping IndexNow Hope, or re-request Bing

    IndexNow is the standout. Instead of submitting a sitemap and waiting for a crawler to wander by, you push a URL the moment it changes and it’s picked up almost immediately — and because IndexNow is a shared protocol, one ping notifies participating engines. Google’s model is still largely “request indexing and wait.” For a content site that publishes and edits constantly, push beats poll every time. We ping IndexNow on publish and on every meaningful edit.

    The AI / Copilot insights tab

    Google Search Console has no real equivalent here yet. Bing Webmaster Tools surfaces AI-traffic insights — visibility into how your content shows up across Bing’s AI-powered and Copilot surfaces. Given that those surfaces (and ChatGPT’s web results, which draw on Bing) are an increasing share of how people find answers, this is the single console feature most aligned with where discovery is heading. If you care about GEO at all, it’s the dashboard that tells you whether the AI assistants are actually pulling you in.

    Wiring the BWT API into the editorial calendar

    The Bing Webmaster Tools API is the part most sites never touch, and it’s the most actionable. It returns position and CTR per query and per page — which is a ready-made content-optimization loop:

    1. Pull query/position/CTR from the BWT API on a schedule.
    2. Find pages ranking on page one with weak CTR (good position, bad headline/meta) — fast wins.
    3. Find queries where we rank position 5-15 with real impressions — the “one good edit from page one” list.
    4. Feed both lists straight into the editorial calendar as prioritized rewrites.

    Because Bing drives most of our traffic, this loop is pointed at the engine that actually moves our numbers. Running the same loop off Google Search Console’s API would optimize for the 16% of traffic, not the 84%.

    What surprised us

    • Bing’s data is often fresher than Google’s. We frequently see new queries in Bing Webmaster Tools before they show up in Search Console.
    • IndexNow is faster than anything Google offers — and it’s free and standard. The gap between “push and it’s indexed” and “request and wait” is real and daily.
    • The AI insights tab has no GSC counterpart. For a site doing GEO, that’s the most forward-looking surface either console offers.
    • Almost nobody verifies their site in Bing Webmaster Tools. You can import directly from Google Search Console in a couple of clicks, so the only reason most sites skip it is that they’ve never looked at where their traffic comes from.

    The takeaway

    This was never a “pick one” — it’s “stop ignoring one.” Google Search Console is still essential; Google isn’t going anywhere. But running only GSC is a bet that Google’s view of your site is the only one that matters, and our traffic data says that bet is wrong by a factor of five.

    Use both. Watch Google Search Console for the Google slice. But if a large share of your organic traffic comes from Bing — and a surprising number of content sites are in exactly that position without checking — then Bing Webmaster Tools is your primary console: fresher data, IndexNow for instant indexing, the AI/Copilot insights surface, and an API you can wire straight into your editorial calendar.

    The 84% lesson is simple: measure where your readers actually come from, then watch the console that reports on it. For us, that meant promoting Bing from afterthought to the dashboard we open first.

    This is part of our “Two Clouds, One Site” series — we run the same media property on Azure and Google Cloud, on the free tiers, and report what watching both ecosystems actually teaches us. The lab lives on tygart.media; the findings publish here.

    Frequently asked questions

    Should I use Bing Webmaster Tools if I already use Google Search Console?
    Yes — they report on different search engines, so using only Google Search Console hides all of your Bing performance. If any meaningful share of your traffic comes from Bing, Copilot, or ChatGPT’s Bing-powered results, Bing Webmaster Tools shows data and offers indexing controls that Search Console doesn’t. You can import your site from Search Console in a couple of clicks.

    What is IndexNow and is it faster than Google indexing?
    IndexNow is a protocol that lets you push a URL to search engines the moment it’s published or changed, instead of waiting for a crawler. It’s typically much faster than Google’s “request indexing and wait” model, and because it’s a shared standard, one ping notifies participating engines. For sites that publish or edit frequently, it’s a meaningful indexing-speed advantage.

    Does Bing Webmaster Tools have an API?
    Yes. The Bing Webmaster Tools API exposes per-query and per-page data including position and CTR, plus URL submission. That makes it practical to pull your search performance on a schedule and feed it into a content-optimization loop — for example, flagging page-one results with weak CTR or near-miss rankings to prioritize for rewrites.

    What does the Bing Webmaster Tools AI insights tab show?
    It surfaces how your content appears across Bing’s AI-powered and Copilot surfaces, giving visibility into AI-driven discovery that Google Search Console has no direct equivalent for yet. For sites focused on Generative Engine Optimization, it’s the most forward-looking view either console offers into whether AI assistants are pulling in your content.

    Why would a site get most of its traffic from Bing instead of Google?
    It’s more common than people assume, especially for niche or B2B content, sites strong in Bing-heavy regions or browsers, and content that surfaces well in Copilot and ChatGPT’s Bing-powered results. The lesson is to measure your actual referral mix rather than assume Google dominates — many sites only discover their Bing share once they verify in Bing Webmaster Tools.

  • Azure AI Language vs Google Natural Language: Entity Extraction for AI Search (GEO)

    Azure AI Language vs Google Natural Language: Entity Extraction for AI Search (GEO)

    Generative Engine Optimization (GEO) is the new shape of getting found: instead of ranking a blue link, you make your content legible to AI assistants so they recognize, trust, and cite it. The engine room of that work is entity extraction — pulling the named entities and key phrases out of your content so you can saturate it with the concepts an AI system uses to decide what a page is about.

    We run the same articles through both Azure AI Language and Google Cloud Natural Language, on the free tiers, and compare what each one sees. Short answer: for GEO aimed at Bing and Copilot, Azure AI Language is the pick — not because its NLP is categorically better, but because you’re extracting entities with Microsoft’s own signal family to optimize for Microsoft’s own AI. Google Natural Language is an excellent general-purpose NLP API; it’s just optimizing toward a different reader.

    This is the breakdown from the running lab on tygart.media — entity quality, key phrases, sentiment, free-tier ceilings, and the strategic point underneath all of it.

    The free-tier ceilings

    How we do it

    Azure Google Cloud Verdict
    Service Azure AI Language Cloud Natural Language API
    Free ceiling 5,000 text records/month First 5,000 units/month free per feature Toss-up on raw volume
    “Record” definition Up to 1,000 chars = 1 record Per 1,000 chars = 1 unit, per feature Watch Google — billed per feature
    Cost after free Per record Per 1,000 chars, per feature called Azure simpler to predict
    Always free? Perpetual free tier Free monthly allotment, then billed Tie — both have monthly free

    The subtlety: Google bills per feature — entity analysis, sentiment, and syntax each consume their own free allotment and then their own meter. Azure’s 5,000 text records/month is a cleaner mental model for a content pipeline that runs every article through the same extraction pass. At ~300–400 articles a month, both stay at $0; Azure is just easier to reason about.

    Entity extraction quality

    This is the line that matters most for GEO.

    How we do it

    Job Azure Google Cloud Verdict
    Named entity recognition Strong, typed categories + subcategories Strong, with entity types Toss-up on accuracy
    Entity linking Links entities to a knowledge base Wikipedia/Knowledge Graph links Google for KG links; Azure for Bing alignment
    Key-phrase extraction First-class, clean Not a dedicated feature (infer from entities/salience) Azure — dedicated key phrases
    Salience / ranking Confidence scores Salience score per entity Google — salience is genuinely useful
    Sentiment Document + sentence + aspect-based Document + entity-level Toss-up; both solid

    Both APIs find the obvious entities. The differences are at the edges: Google’s salience score (how central an entity is to the document) is a genuinely useful GEO signal — it tells you which entities the content is actually about, not just which appear. Azure’s dedicated key-phrase extraction is the cleaner input for content saturation — it hands you the phrases to weave back in, where Google makes you infer them.

    For our pipeline, we use Azure’s key phrases as the editing checklist and lean on its typed entity categories to confirm an article is “saturated” with the right concepts before it publishes.

    Sentiment and the extra features

    Both do document- and sentence-level sentiment well. Azure’s aspect-based sentiment (sentiment tied to specific targets within a sentence) is the richer feature if you’re analyzing reviews or feedback. Google’s entity-level sentiment is comparable for most content work. For a media site doing GEO, sentiment is secondary — entity and key-phrase extraction is the main event — but if you also do feedback analysis, Azure’s aspect-based model edges ahead.

    The strategic point — extract with Microsoft’s tooling, optimize for Microsoft’s AI

    Here’s the whole game. When you extract entities to optimize content, you’re implicitly choosing a definition of what counts as an entity. Those definitions aren’t universal — Microsoft’s and Google’s models were trained on different data and tuned toward different downstream systems.

    Bing and Copilot select and ground content using Microsoft’s signal family — the same lineage that powers Azure AI Language. So when we extract entities with Azure and saturate our articles with what it recognizes, we’re tuning content to the exact signals Microsoft’s own AI uses to decide what to surface and cite. That’s not a coincidence we’re exploiting; it’s the most direct alignment available. With ~84% of our traffic from Bing, optimizing toward Google’s entity model would be optimizing for the wrong reader.

    What surprised us

    • Google’s salience score is the feature we wish Azure had. Knowing which entity is central (not just present) is a sharper GEO signal than a flat confidence list.
    • Google bills per feature — that’s the budget trap. Calling entities + sentiment + syntax on one document is three metered features, not one. Azure’s per-record model is harder to accidentally triple.
    • Key-phrase extraction is an Azure advantage that’s easy to miss. Google has no dedicated key-phrase feature; you reconstruct it from entities and salience. Azure just hands you the phrases.
    • Both miss niche industry entities. Neither model reliably tags specialized restoration-industry or proprietary-standard terms. Custom NER (Azure) or a custom dictionary closes that gap — worth it if your content is jargon-dense.

    The takeaway

    These are both strong NLP APIs, and at our volume both run at $0. The decision is about which AI you’re feeding.

    Pick Azure AI Language if your GEO target is Bing and Copilot, you want dedicated key-phrase extraction as a content checklist, and you’d rather extract entities with the same signal family your search traffic actually flows through. That’s us.

    Pick Google Cloud Natural Language if you want the salience score, you’re optimizing for Gemini and Google’s Knowledge Graph, or you need general-purpose NLP across mixed workloads. It’s an excellent API — it’s just tuned toward a different reader than the one sending us traffic.

    If most of your audience arrives through Bing, extracting your entities with Google’s model is optimizing for the wrong index. We extract with Microsoft’s tooling, on purpose.

    This is part of our “Two Clouds, One Site” series — we run the same media property on Azure and Google Cloud, on the free tiers, and publish what the two ecosystems actually do with the same content. The lab lives on tygart.media; the findings publish here.

    Frequently asked questions

    What is entity extraction and why does it matter for SEO?
    Entity extraction (named entity recognition) identifies the people, places, organizations, and concepts in your text. It matters for modern SEO and GEO because search engines and AI assistants understand pages by the entities they contain — saturating content with the right, correctly-recognized entities helps those systems classify and cite it accurately.

    Is Azure AI Language free?
    Azure AI Language includes a perpetual free tier of 5,000 text records per month, where one record is up to 1,000 characters. For a content site processing a few hundred articles a month, that’s enough to run entity and key-phrase extraction on every piece at $0.

    What’s the difference between Azure AI Language and Google Natural Language?
    Both extract entities, key concepts, and sentiment, but they differ at the edges: Azure offers dedicated key-phrase extraction and aspect-based sentiment, while Google offers a salience score that ranks how central each entity is to the document. Google also bills per feature, where Azure bills per text record. They’re tuned toward different downstream AI systems — Azure toward Microsoft/Bing, Google toward Gemini and the Knowledge Graph.

    What is GEO (Generative Engine Optimization)?
    GEO is optimizing content so generative AI assistants recognize, trust, and cite it, rather than optimizing only for blue-link rankings. In practice it means structuring content and saturating it with the right entities and key phrases so the models that answer user questions pull from your pages.

    Which NLP API is better for optimizing for Bing and Copilot?
    Azure AI Language, because it shares Microsoft’s signal lineage — the same family Bing and Copilot use to select and ground content. Extracting entities with Azure and saturating your articles with what it recognizes aligns your content with the exact signals Microsoft’s AI uses, which is the higher-leverage choice when Bing drives your traffic.

  • Azure AI Search vs Vertex AI Search: Site Search on the Engine Behind Bing vs Google

    Azure AI Search vs Vertex AI Search: Site Search on the Engine Behind Bing vs Google

    Most “which managed search?” articles compare feature checklists from the vendor docs. We did something more useful: we indexed the same media property’s content into both Azure AI Search and Vertex AI Search, on the free tiers, and watched what each one did with it.

    Short answer: for a content site that wants to be found and cited by AI assistants, Azure AI Search is the pick — not because the relevance is dramatically better, but because it’s the retrieval lineage that sits behind Bing and Copilot, and ~84% of our organic traffic comes from Bing. Vertex AI Search is the stronger turnkey RAG product and grounds beautifully into Gemini. Which one wins depends entirely on whose AI you’re trying to get in front of.

    This is the desk-by-desk breakdown — free-tier ceilings, setup friction, relevance, and ecosystem grounding — from the running lab on tygart.media.

    The free-tier ceilings

    The first thing that matters at our scale is what each gives you for $0, perpetually.

    How we do it

    Azure Google Cloud Verdict
    Service Azure AI Search (Free tier) Vertex AI Search
    Storage 50 MB Generous indexing quota, but query/extraction billed Azure — true perpetual free
    Indexes 3 indexes Multiple data stores Toss-up
    Documents ~10,000 hosted docs Effectively higher, but pay-as-you-go Azure for “always free” certainty
    Cost model Always free, no card pressure Free trial credits, then per-query/extraction Azure — Vertex bills as you scale
    Semantic ranking Available (limited on free) Built in, very strong Google on raw quality

    The honest read: Azure’s 50 MB / 3-index / ~10,000-document free tier is small but genuinely perpetual — it never starts billing at our volume. Vertex AI Search is more capable out of the box but its free posture is trial credits, after which queries and extractive answers meter. For a small content site, Azure’s ceiling is the one you can forget about.

    Setup friction

    How we do it

    Job Azure Google Cloud Verdict
    Get to first results Create service → index → import data source Create app → data store → point at site/GCS Google — faster to “it works”
    Crawl a website directly Indexer add-on, more wiring Website data store crawls URLs natively Google, clearly
    Schema control Fine-grained fields, analyzers, scoring profiles More opinionated, less to tune Azure for control; Google for speed
    Vector / hybrid search Native vector + hybrid (keyword+vector) Native, with built-in embeddings Toss-up; both strong

    Vertex AI Search gets you to a working search box faster — point it at a sitemap or a Cloud Storage bucket and it crawls and chunks for you. Azure AI Search makes you assemble the indexer, but in exchange you get scoring profiles, custom analyzers, and field-level control that pay off once you care about why a result ranks.

    Relevance and semantic ranking

    On raw relevance for a handful of queries against the same corpus, Vertex was slightly better out of the box — its semantic ranking and extractive answers are tuned and ready. Azure matched it once we turned on semantic ranking and tuned a scoring profile, but that’s manual work Vertex does for free.

    The asymmetry: Vertex is better at answering, Azure is better at being controllable. If you want a search box that produces clean extractive answers with zero tuning, Vertex wins. If you want to deliberately shape what ranks (and you’re optimizing content anyway), Azure rewards the effort.

    The grounding angle — whose AI is reading you

    This is the line that actually decides it for us.

    Neither Azure AI Search nor Vertex AI Search “submits your site to Bing or Gemini.” But the retrieval architecture you build on signals which ecosystem you’re fluent in. Azure AI Search is the same managed-retrieval lineage Microsoft uses to ground Copilot, and it’s the natural backend for “Bring your own data” grounding into Azure OpenAI / Copilot Studio. Vertex AI Search is the canonical retrieval layer for grounding Gemini — it’s literally the “ground with your own data” path in Google’s stack.

    So the question isn’t “which search is better.” It’s: which AI assistant do you most need to recognize and cite your content? For us, with Bing driving the overwhelming majority of organic traffic, building our retrieval inside Microsoft’s lineage and exposing structured, Copilot-groundable content is the higher-leverage bet.

    What surprised us

    • Azure’s 50 MB is smaller than it sounds — and bigger than it needs to be. Pure text content compresses; 10,000 documents of article body is more than a mid-size site has. The ceiling we’d hit first is index count (3), not storage.
    • Vertex’s “free” is the easy thing to misjudge. The trial experience is so smooth you forget it’s metered. Set a budget alert before you point it at a large crawl.
    • Hybrid (keyword + vector) search is now table stakes on both. A year ago this was Azure’s differentiator; Vertex has fully caught up.
    • Vertex crawls websites natively; Azure wants a data source. If your content lives in a bucket or a DB, Azure’s indexer is fine. If you just want to crawl tygart.media and search it, Vertex is less wiring.

    The takeaway

    These are both excellent managed search engines, and at small scale both can run at $0 — Azure perpetually, Vertex on credits. The decision isn’t about relevance deltas measured in single queries.

    Pick Azure AI Search if your strategic goal is to be retrievable and citable inside the Microsoft / Bing / Copilot ecosystem, you want a truly perpetual free tier, and you’re willing to tune scoring profiles for control. That’s us.

    Pick Vertex AI Search if you want the fastest path to a high-quality answering search box, you’re grounding into Gemini, or your content already lives in Google Cloud Storage and you want native crawl-and-chunk with zero schema work.

    If most of your readers arrive through Bing, building your retrieval layer only inside Google’s lineage is the same blind spot as watching only Google Search Console. We build on both — and lean Azure for the citation angle.

    This is part of our “Two Clouds, One Site” series — we run the same media property on both Azure and Google Cloud, on the free tiers, and report what watching both ecosystems actually teaches us. The lab lives on tygart.media; the findings publish here.

    Frequently asked questions

    Is Azure AI Search really free?
    Yes — the Free tier is perpetual, not a trial. It includes 50 MB of storage, 3 indexes, and roughly 10,000 hosted documents, and it does not start billing as long as you stay inside those limits. For a small content site that’s enough to run real site search at $0.

    What’s the difference between Azure AI Search and Vertex AI Search?
    Azure AI Search is a managed retrieval engine you assemble (index, indexer, scoring profiles) and the lineage behind Microsoft’s Copilot grounding. Vertex AI Search is Google’s more turnkey managed search and RAG product that crawls and chunks for you and grounds natively into Gemini. Azure favors control and a perpetual free tier; Vertex favors speed-to-answer and pay-as-you-go scaling.

    Which is better for getting cited by AI assistants?
    It depends on which assistant matters to you. Azure AI Search aligns with Bing and Copilot grounding; Vertex AI Search aligns with Gemini grounding. If most of your traffic and target citations come from Bing, building retrieval inside Microsoft’s lineage is the stronger bet.

    Does Vertex AI Search have a free tier?
    Vertex AI Search runs on Google Cloud free trial credits rather than a perpetual always-free tier, and after that, queries and extractive answers are billed per use. It’s easy to start for free, but set a budget alert before pointing it at a large website crawl, because metering starts once credits run out.

    Can I use Azure AI Search to ground my own AI chatbot?
    Yes. Azure AI Search is the standard “bring your own data” retrieval backend for Azure OpenAI and Copilot Studio, supporting keyword, vector, and hybrid search. You index your content, then have the model retrieve and ground its answers against your index, which keeps responses tied to your source material.

  • Azure Functions vs Cloud Run: We Ran the Same Worker on Both

    Azure Functions vs Cloud Run: We Ran the Same Worker on Both

    Pick a serverless platform and you’re picking a default for the next five years of your stack. Most comparisons of Azure Functions vs Google Cloud Run are written from the docs. This one isn’t — we deployed the same worker to both, in production, on the free tiers, and watched what happened.

    The worker is simple on purpose: it takes a webhook, does a little work, writes a record, returns JSON. The kind of glue every real system has dozens of. Boring is exactly what you want when you’re measuring the platform and not the app.

    The short answer

    If you just want the verdict: Cloud Run wins for anything containerized and anything where you care about not storing deploy keys. Azure Functions wins when your automation already lives in the Microsoft ecosystem and benefits from Logic Apps, Event Grid, and Entra sitting right next door. Both run our worker for $0/month. The tie-breakers are deploy security and what else is in the neighborhood.

    Now the detail.

    Deploying the same worker

    This is where the two platforms feel most different, and where Google Cloud quietly pulls ahead.

    How we do it

    Azure Functions Google Cloud Run Verdict
    Unit of deploy Function app (code + host) Container image Cloud Run if you’re already containerized
    Deploy auth Publish profile / service principal Workload Identity Federation — no stored keys Cloud Run, decisively
    Cold start Noticeable on Consumption plan Negligible at our scale Cloud Run
    Local dev parity Functions Core Tools (good) “It’s just a container” (great) Cloud Run

    The headline is the deploy auth. Our Cloud Run workers deploy from GitHub Actions using Workload Identity Federation — GitHub proves its identity to Google with a short-lived token, and no service-account key is ever stored in the repo. That’s not a convenience; it’s the single biggest reduction in credential risk you can make in a CI/CD pipeline. Azure Functions can get close with OIDC + a service principal, but the container-native, keyless Cloud Run path was simpler to lock down and is the model we standardized on.

    What the free tier actually gives you

    Both platforms have genuinely generous always-free serverless tiers. The numbers that matter for a glue worker:

    How we do it

    Metric Azure Functions Google Cloud Run Verdict
    Free requests/month 1,000,000 2,000,000 Google — 2× headroom
    Free compute 400,000 GB-s 360,000 GiB-s + 180,000 vCPU-s Roughly even
    Scale to zero Yes (Consumption) Yes Tie
    Max instances control Yes Yes (and per-service concurrency) Cloud Run, slightly
    Our actual bill $0 $0 Tie where it counts

    At our volume — thousands of invocations a month, not millions — both are free and stay free. The 2M-vs-1M request gap only matters if you’re genuinely high-traffic. For most glue workloads, you will never see a bill on either.

    The neighborhood effect

    A serverless function is rarely alone. It fires because something happened and it triggers something else afterward. That’s where the ecosystems diverge — and where Azure earns its keep.

    • Azure Functions sits next to Logic Apps (4,000 free built-in actions/month), Event Grid (100,000 free operations/month), and Entra ID for identity. If your automation is event-driven and Microsoft-centric, the glue around the function is already there and already free.
    • Cloud Run sits next to Eventarc, Cloud Workflows, Pub/Sub, and Cloud Scheduler — the same pattern on Google’s side, equally capable.

    Neither is “better” in the abstract. The right answer is whichever cloud your other services already live in. A function that triggers a Logic App next door beats a function that has to reach across clouds to do the same thing.

    What surprised us

    • Cloud Run cold starts basically disappeared. At our concurrency the container was warm often enough that we stopped thinking about it. Azure Functions on the Consumption plan had more noticeable cold starts for the same workload.
    • Azure’s free side-resources are real. Functions itself is free, but watch the storage account and Application Insights it provisions alongside — those can accrue tiny charges. Set a budget alert on day one.
    • Keyless deploy changed our security posture more than any single config. Once the repo holds zero secrets for deploys, an entire category of “leaked key” incidents just can’t happen.

    The takeaway

    For a containerized, security-conscious, GitHub-Actions-driven stack, Cloud Run is our default — the keyless deploy and the request headroom settle it. But “default” isn’t “only”: when a workload belongs in the Microsoft ecosystem — triggered by Microsoft events, feeding Microsoft services, governed by Entra — Azure Functions is the right tool, and it runs for the same $0.

    Run the same worker on both for a week. The platform stops being a religious debate and becomes a placement decision: put the work where its neighbors already are.

    This is part of our “Two Clouds, One Site” series — we run the same media property on both Azure and Google Cloud, on the free tiers, and write up what we learn. The lab lives on tygart.media; the findings publish here.

    Frequently asked questions

    Is Azure Functions or Cloud Run cheaper?
    For typical glue workloads, both are free and stay free. Cloud Run offers more free requests per month (2M vs 1M) and Azure offers 400,000 GB-seconds of free compute. At thousands of invocations a month you will not see a bill on either; the cost difference only appears at high traffic.

    Which is more secure to deploy?
    Cloud Run, because it supports keyless deploys via Workload Identity Federation — GitHub Actions authenticates with a short-lived token and no service-account key is stored in the repo. Azure Functions can approximate this with OIDC and a service principal, but the container-native keyless path is simpler to secure.

    Can I run the same code on both Azure Functions and Cloud Run?
    Yes. If you package the worker as a container, Cloud Run runs it directly and Azure Functions can run it via a custom handler or containerized function. We deploy the same worker logic to both; the differences are in deploy tooling and the surrounding event services, not the code.

    When should I choose Azure Functions over Cloud Run?
    Choose Azure Functions when your automation already lives in the Microsoft ecosystem — triggered by Event Grid, orchestrated by Logic Apps, or governed by Entra ID. Co-locating the function with the services it talks to beats reaching across clouds.

    Do serverless cold starts matter on either platform?
    At moderate concurrency, Cloud Run cold starts were negligible in our testing because the container stayed warm. Azure Functions on the Consumption plan showed more noticeable cold starts for the same workload. For latency-sensitive endpoints, test under your real traffic before deciding.

  • The $0 Cloud Stack: Running a Real Media Site on Azure and Google Cloud Free Tiers

    The $0 Cloud Stack: Running a Real Media Site on Azure and Google Cloud Free Tiers

    Most “Azure vs Google Cloud” articles are written by people who run neither in production. They paraphrase the pricing pages and call it a comparison.

    We do something different: we run the same media property on both clouds at the same time — and the entire thing costs $0/month. Google Cloud is the live operational stack. Azure is a parallel “newsroom” of always-free services running on a dedicated lab domain, tygart.media, mirroring each capability of the live site. Two clouds, one operation, both AI ecosystems watching it work.

    This is the desk-by-desk breakdown — what each cloud actually does for us, where the free tier runs out, and which one wins each specific job. No theory. This is the running system.

    Why run on both clouds at once

    There’s a strategic reason beyond “free is fun.” Search and AI assistants don’t share a brain. Google’s models optimize for Google’s index; Microsoft’s Copilot and Bing optimize for Microsoft’s graph. When ~84% of your organic traffic comes from Bing, having your stack only inside Google’s telemetry is a blind spot.

    Running enrichment through Azure puts the same content inside Microsoft’s service graph the same way Google Cloud puts it inside Google’s. You stop guessing how each ecosystem sees you, because you’re operating inside both.

    The serverless compute plane

    The heart of the stack: code that runs after you push a file and close the laptop.

    How we do it

    Azure Google Cloud Verdict
    Service Azure Functions Cloud Run Cloud Run for containers; Functions for glue
    Free ceiling 1M requests/month 2M requests/month Google, on raw headroom
    Deploy model Functions Core Tools / GitHub Actions Keyless deploy via Workload Identity Federation Google — no stored keys is a real security win
    What surprised us Generous, but watch billable side resources Cold starts negligible at our scale
    Our bill $0 $0 Tie where it counts

    Pick Cloud Run if you’re already containerized and want keyless CI/CD. Pick Azure Functions if your automation lives in the Microsoft ecosystem and you want Logic Apps next door.

    The content enrichment desks

    This is where Azure’s always-free tier quietly outclasses expectations — a full newsroom of AI services that never bill at our volume.

    How we do it

    Job Azure Google Cloud Verdict
    Translation Translator — 2M chars/mo free (~300 articles) Cloud Translation Azure — bigger perpetual free ceiling
    Article audio Neural TTS — 500K chars/mo Cloud Text-to-Speech Toss-up; both natural
    Entity extraction (for GEO) AI Language — 5K records/mo Cloud Natural Language Azure — likely the same signal family Bing uses
    Site search Azure AI Search — 3 indexes free Vertex AI Search Azure — it’s the engine behind Bing

    The entity-extraction line matters most. We feed articles through Azure AI Language to pull named entities and key phrases, then saturate the content with them. We’re optimizing for the same entity signals Microsoft’s own systems use to select content — which is the whole game when Bing drives most of your traffic.

    The storage and front-end layer

    How we do it

    Job Azure Google Cloud Verdict
    Document store Cosmos DB — 1,000 RU/s + 25GB free Firestore Azure — Cosmos free tier is generous (one per subscription)
    Relational Azure SQL — serverless free Cloud SQL (no perpetual free) Azure, clearly
    Static hosting Static Web Apps — 100GB bandwidth Firebase Hosting Tie; both excellent

    For a small operations ledger or a knowledge base, Azure’s always-free Cosmos DB and serverless SQL are the standout — Google Cloud has no equivalent perpetual-free relational tier.

    What it actually costs: nothing (if you’re disciplined)

    The honest caveat: free compute can still trigger billable side resources. A “free” VM drags along disks, public IPs, and monitoring logs that bill immediately with no throttling. The discipline that keeps the bill at zero:

    1. Deploy from the free-services blade, not the general catalog.
    2. Set a budget alert on day one — before you provision anything.
    3. Prefer serverless over VMs — the consumption tiers reset monthly and don’t drag side resources.
    4. One Cosmos DB free tier per subscription — plan around it.

    Do that, and a real, AI-enriched media property runs across two clouds for $0.

    The takeaway

    Single-cloud is a bet that one ecosystem’s view of your content is the only one that matters. When the traffic data says otherwise — when most of your readers arrive through the other company’s search and AI — bilateral cloud stops being a novelty and becomes the obvious posture. The free tiers make it cost nothing but discipline.

    Frequently asked questions

    Is it really free to run on both Azure and Google Cloud?
    Yes, at small-site scale. Both clouds offer always-free serverless tiers (Azure Functions 1M requests/month, Cloud Run 2M requests/month) plus free AI, storage, and hosting services. The cost risk is billable side resources like VM disks and public IPs — avoidable by staying serverless and setting a budget alert.

    Which is better for serverless, Azure or Google Cloud?
    Cloud Run wins on raw request headroom (2M vs 1M/month) and keyless deploys via Workload Identity Federation. Azure Functions wins if your automation already lives in the Microsoft ecosystem and benefits from Logic Apps and Event Grid next door.

    Why would you run the same site on two clouds?
    AI ecosystems don’t share telemetry. Google’s models favor Google’s index; Bing and Copilot favor Microsoft’s graph. If a large share of your traffic comes from Bing, running enrichment through Azure puts your content inside Microsoft’s service graph instead of leaving it a blind spot.

    Does Azure have a better free tier than Google Cloud?
    For perpetual always-free services, Azure is broader — 65+ always-free services including Cosmos DB (1,000 RU/s + 25GB) and serverless Azure SQL, which Google Cloud has no direct perpetual-free equivalent for. Google Cloud wins on serverless request volume and keyless security.

    What’s the catch with Azure’s always-free tier?
    Limits reset monthly and overages bill immediately with no throttling. Free VMs also trigger billable disks, public IPs, and monitoring logs. Deploy from the free-services blade, prefer serverless, and set a budget alert before provisioning.