Skip to content

Commit

Permalink
More CTAs for my articles (#13586)
Browse files Browse the repository at this point in the history
* Add related content section with tips and recommended articles in Cosmos DB blog post

* Refactor tags and add related articles in blog posts for improved organization and reader engagement.

* Add sections on managing container and database infrastructure with Pulumi to relevant blog posts.

* Fix capitalization and consistency in headers, improve tag structure, and standardize "You Might Also Like" section formatting across multiple blog posts.

* Add new tags to Cursed Container Iceberg post
  • Loading branch information
adamgordonbell authored Dec 13, 2024
1 parent 58c76cc commit d51ef8f
Show file tree
Hide file tree
Showing 3 changed files with 95 additions and 14 deletions.
58 changes: 44 additions & 14 deletions content/blog/cursed-container-iceberg/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,14 @@ authors:
- adam-gordon-bell
tags:
- k8s, containers, cloud-native, docker
- k8s
- kubernetes
- containers
- cloud-native
- docker
social:
twitter: There are 105+ ways to run containers in production! From familiar cloud providers to quantum computers, smart toasters, and even phone farms.
linkedin: There are 105+ ways to run containers in production! From familiar cloud providers to quantum computers, smart toasters, and even phone farms.

---
If a computer can be connected to the internet, someone has tried to run a [container](https://www.pulumi.com/containers) on it. From quantum computers to smart toasters, from phones in AWS racks to CI pipelines, there's many ways to deploy containers. While most people only know about the mainstream cloud providers at the surface, there's actually a vast world of increasingly unusual and specialized options beneath.

Expand All @@ -23,13 +27,13 @@ This guide serves two purposes: to showcase the surprising breadth of container

But first, we need ground rules for our container adventures. All listed items should:

- **Technically Possible:** Must work today with existing tech, even if the setup makes you question your life choices.
- **Runs Real Containers:** OCI containers only. No JavaScript "containers" pretending to be the real thing.
- **Actually Doable:** You can set this up right now with a laptop and a credit card. No theoretical schemes allowed.
- **Technically possible:** Must work today with existing tech, even if the setup makes you question your life choices.
- **Runs real containers:** OCI containers only. No JavaScript "containers" pretending to be the real thing.
- **Actually doable:** You can set this up right now with a laptop and a credit card. No theoretical schemes allowed.

![The Cursed Container Iceberg](iceberg.jpg)

## Above the Iceberg – The Usual Suspects
## Above the iceberg – The usual suspects

These are the familiar faces of container orchestration—the ones you'd introduce to your parents. Reliable, well-documented, and about as exciting as watching paint dry.

Expand All @@ -44,7 +48,7 @@ These are the familiar faces of container orchestration—the ones you'd introdu
- **Azure App Service for Containers**
- **Google Compute Engine with Containers**

## On the Iceberg – The Slightly Less Obvious
## On the iceberg – The slightly less obvious

As we dip just below the surface, we find services like a rare B-side acoustic release from a big band. It's not as mainstream but still a respectable choice for running your containers.

Expand All @@ -54,7 +58,7 @@ As we dip just below the surface, we find services like a rare B-side acoustic r
- **Google App Engine Flexible Environment** – PaaS for Containerized Apps
- **Azure Container Instances (ACI)** – Kubernetes without the chaos

## The Kubernetes Multiverse – Because One Universe of K8s Wasn't Enough
## The kubernetes multiverse – Because one Universe of k8s wasn't enough

Diving deeper, we discover there's an entire multiverse of regional and specialty K8s providers, helpfully cataloged [by the CNCF](https://landscape.cncf.io/guide#platform--certified-kubernetes-hosted
). Think parallel universes, but instead of evil twins, you get slightly different container runtime implementations.
Expand All @@ -67,7 +71,7 @@ Diving deeper, we discover there's an entire multiverse of regional and specialt

- **The Specialists' Society** – For when regular K8s isn't quirky enough: OKESTRO VIOLA orchestrates your containers with musical flair, while Petasus, De Novo, Aruba, and Taikun provide enough specialty K8s options to ensure every cluster is a unique snowflake.

## Below the Water – Kubernetes Everywhere – Let a Thousand K8s Bloom
## Below the water – Kubernetes everywhere – Let a thousand K8s bloom

Let's plunge deeper. Because one Kubernetes cluster is never enough, why not sprinkle them everywhere? On-premises, in the cloud, under your desk—there's a K8s solution for all that.

Expand All @@ -90,7 +94,17 @@ Let's plunge deeper. Because one Kubernetes cluster is never enough, why not spr
- **Nutanix Karbon** - Because regular Kubernetes wasn't converged enough
- **Metal Stack Cloud Kubernetes** - For when virtual machines are too virtual

## Middle of the Iceberg – Serverless and Function Containers – Now You See Me, Now You Don't
{{% notes type="tip" %}}

**You might also like:**

- [Unified and Programmatic Approach to Infrastructure Management at BMW Using Pulumi](/blog/unified-programmatic-approach-infrastructure-management-bmw-using-pulumi/)
- [Introducing the new Docker Build provider](/blog/docker-build/)
- [Getting Started with ECS Anywhere](/blog/ecs-anywhere-launch/)

{{% /notes %}}

## Middle of the iceberg – Serverless and function containers – Now you see me, now you don't

As we descend to the depths, we find containers with commitment issues. They appear, do their job, and disappear.

Expand All @@ -100,7 +114,7 @@ As we descend to the depths, we find containers with commitment issues. They app
- **Google Cloud Functions** – Containers pretending to be functions, but now on Google Cloud.
- **Alibaba Function Compute** – You get the idea.

## Bottom of the Iceberg – Specialized and Hybrid Platforms – The Swiss Army Knife of Container Hosting
## Bottom of the iceberg – Specialized and hybrid platforms – The swiss army knife of container hosting

Down here, containers run in ways that make people question your life choices. These platforms let you host containers in environments many fear to tread.

Expand All @@ -109,7 +123,7 @@ Down here, containers run in ways that make people question your life choices. T
- **IBM Cloud Code Engine** – Run anything, anywhere, if you can figure it out
- **Alibaba Elastic Container Instance (ECI)** – Containers that disappear faster than you can say "Jack Ma"

## Below the Iceberg – Containers on the Edge of Reason
## Below the iceberg – Containers on the edge of reason

In these lightless depths, you want your containers to live life on the edge—literally. Because nothing says "enterprise-ready" like running production workloads on a smart toaster.

Expand All @@ -126,7 +140,7 @@ In these lightless depths, you want your containers to live life on the edge—l
- **StarlingX** - Edge computing platform for when 5G and IoT buzzwords aren't enough
- **ZStack Edge** - Edge computing with Chinese characteristics, now at the edge of the network, too

## The Abyss – Where Containers Fear to Tread
## The abyss – Where containers fear to tread

And now we reach the darkest depths. For the bravest souls who look at conventional container platforms and think, "Not edgy enough." Here lie the most unusual ways to run containers in production.

Expand All @@ -140,15 +154,31 @@ And now we reach the darkest depths. For the bravest souls who look at conventio
- **Azure Cognitive Services in Containers** – Offline AI containers that promise not to become self-aware. Terms and conditions may apply.
- **Azure DevTest Labs** – Run containerized test environments that self-destruct like Mission Impossible tapes. Perfect for when temporary becomes permanent.

## Beyond the Abyss
## Beyond the abyss

There you have it, the container iceberg. And I didn't even have room to add the extra cursed ways you can run containers. Here is some of what didn't make it:

- **Cloud IDEs and Workspaces** – Want to turn your development environment into a sneaky container platform? Take your pick: GitHub Codespaces, GitPod for the GitLab enthusiasts, or Eclipse Che for the masochists who miss Eclipse crashing locally. JetBrains Space or Replit? All this lets you run a container until you close your browser tab.

- **GitHub Actions et al.** – Ever wanted to run a production service disguised as a CI job? Just label your production API start-up script as "integration_test_step_42", add a `sleep 21600` and a call to retrigger itself, and hope nobody notices your "test" has been running for months. Apply this same trick to AWS CodeBuild, GitLab CI/CD, CircleCI, Azure Pipelines, Travis CI, Bitbucket Pipelines, Drone CI, Jenkins Cloud, TeamCity Cloud, and Google Cloud Build for Bonus points.

## The Final Word
## Managing your container zoo with pulumi

Whether you're deploying containers to mainstream cloud providers or attempting to run them on quantum computers (really, please let us know how that goes), Pulumi helps you manage it all with real code instead of config file soup. Our [Kubernetes support](/registry/packages/kubernetes/) means you can wrangle your containers wherever they might roam – from AWS to Azure, GCP to Kubernetes, or even that smart toaster you're eyeing for production deployment.

With Pulumi, you get:

- [Cloud-native container orchestration](https://www.pulumi.com/registry/) across all major platforms and Kubernetes distributions
- [Infrastructure testing](/docs/iac/concepts/testing/) to ensure your containers deploy correctly (even in the weird places)
- [Provider templates](/blog/pulumi-go-boilerplate-v2/) for when you invent yet another way to run containers
- [Stack references](/docs/concepts/stack/#stackreferences) for managing multiple environments without losing your mind
- [Automation API](/docs/iac/packages-and-automation/automation-api/) for programmatically herding your container fleets

Ready to bring some sanity to your container deployment strategy? Get started with Pulumi:

{{< blog/cta-button "Try Pulumi for Free" "/docs/get-started/" >}}

## The final word

At this point, **105** options in, you might wonder: "Has cloud container hosting gone too far?" Well, I've a solution to propose:

Expand Down
25 changes: 25 additions & 0 deletions content/blog/fargate-vs-ec2/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,16 @@ Fargate on EKS could be a great solution for this type of chunky, resource-heavy

But there are lots of situations where Fargate is less of a fit.

{{% notes type="tip" %}}

**You might also like:**

- [Pulumi for AWS: Automate, Secure, and Manage Your Cloud](/blog/pulumi-for-aws-automate-secure-manage/)
- [Easy LangServe Apps with Pulumi on AWS](/blog/easy-ai-apps-with-langserve-and-pulumi/)
- [Advanced AWS Networking, Part 2](/blog/advanced-aws-networking-part-2/)

{{% /notes %}}

## Example: Go Services for E-commerce

<img src="cash-register.webp" alt="sketch of fog clearing" style="width: 30%; float: right; margin-left: 10px;">
Expand Down Expand Up @@ -190,6 +200,21 @@ But really, pure compute cost calculations are an insufficient metric for making
- **It's simpler and more reliable**
It may be, but it may not be. The complexity shifts to networking, pod configuration, and working within Fargate's constraints. You trade node management for new operational challenges like slower startups and possible networking complexity.

## Managing Container Orchestration with Pulumi

Whether you choose EC2 or Fargate, Pulumi makes it easy to manage in your favorite programming languages. With its rich AWS support and infrastructure as code capabilities, you can define, deploy, and manage your entire Kubernetes infrastructure using familiar tools and practices. Pulumi's [AWS provider](/docs/iac/clouds/aws/) helps you implement the right solution for your needs.

With Pulumi, you get:

- [Complete control over EKS cluster configuration](/docs/iac/clouds/aws/guides/eks/), including node types, scaling policies, and networking setup
- [Built-in support for both EC2 node groups and Fargate profiles](/docs/iac/clouds/kubernetes/guides/worker-nodes/) within the same cluster
- [Infrastructure testing capabilities](/docs/iac/concepts/testing/) to validate your cluster configuration before deployment
- [Automation APIs](/docs/iac/packages-and-automation/automation-api/) for programmatic infrastructure management and custom tooling

Ready to streamline your EKS infrastructure management?

{{< blog/cta-button "Try Pulumi for Free" "/docs/get-started/" >}}

## Why Not Both

I hope my examples point to a pragmatic approach: use EC2 as your foundation for efficient microservices that can share resources, like our Go e-commerce setup. Add Fargate when you need isolation or flexible scaling - like for the static analysis workload. Better yet, combine both approaches in the same cluster, for cost-efficency and isolation where needed.
Expand Down
26 changes: 26 additions & 0 deletions content/blog/when-to-use-azure-cosmos-db/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -199,6 +199,16 @@ See also [Cosmos DB vs MongoDB, Know The Differences](/what-is/cosmos-db-vs-mong

After learning about partitioning and seeing the Cassandra API, you might think Cosmos DB is basically managed by Cassandra. And there are some key similarities. In many ways, Cosmos DB is Cassandra-inspired, but there are key differences.

{{% notes type="tip" %}}

**You might also like:**

- [Pulumi + Azure Deployment Environments: Better Together for Enterprise Developers](/blog/azure-deployment-environments/)
- [Infrastructure Testing Best Practices of Sam Cogan, Puluminary & Azure MVP](/blog/sam-cogan-testing-best-practices/)
- [Azure Native Provider 2.0: Streamlined, Expanded, and More Powerful than Ever](/blog/introducing-azure-native-v2/)

{{% /notes %}}

### How Cosmos DB and Cassandra Relate

1. **Partitioning**: Both use logical partition keys for scalability to distribute data across nodes. Cassandra requires manual management, while Cosmos DB automates partitioning and scaling, reducing operational burdens, though at the cost of flexibility.
Expand Down Expand Up @@ -314,6 +324,22 @@ Since this article came out, I've had a chance to talk to several Cosmos DB user
- **Guaranteed Low Latency:** Cosmos DB offers SLAs on read and write latency (<10ms P99), a guarantee few other databases can match. This speed is achieved by co-locating compute and storage on the same cluster, minimizing data access times.
{{% /notes %}}

## Managing Database Infrastructure with Pulumi

Whether you choose Cosmos DB, PostgreSQL, or Azure Table Storage Pulumi simplifies the process of provisioning and managing database infrastructure on Azure. With infrastructure as code in your favorite programming languages, you can define, deploy, and maintain your entire database infrastructure using familiar development practices. Pulumi's [Azure Native provider](/docs/iac/clouds/aws/) helps you implement the right database solution for your specific needs.

With Pulumi, you get:

- [Rich Azure database provisioning](/docs/iac/clouds/azure/) capabilities for Cosmos DB, PostgreSQL, and Azure SQL
- [Automated configuration management](/docs/iac/concepts/config/) to handle connection strings and secrets securely
- [Infrastructure testing capabilities](/docs/iac/concepts/testing/) to validate your database configuration before deployment
- [Stack references](/docs/concepts/stack/#stackreferences) for managing multiple database environments
- [Custom components](/docs/concepts/resources/components/) for creating reusable database infrastructure patterns

Ready to streamline your database infrastructure management?

{{< blog/cta-button "Try Pulumi for Free" "/docs/get-started/" >}}

## Summary

If you need something that is document-based, scales globally, and handles different consistency levels well, Cosmos DB could be a great choice - especially if you're already using Azure. Azure takes it seriously - it's in every data center they have, and they treat it as mission-critical. But here's the thing - while it's easier to manage than the alternatives we looked at, you'll pay more for that convenience.
Expand Down

0 comments on commit d51ef8f

Please sign in to comment.