Skip to content
DevMeme
1134 of 7435
The 'Simple' DIY Application Platform Starter Kit
DevOps SRE Post #1269, on Apr 5, 2020 in TG

The 'Simple' DIY Application Platform Starter Kit

Why is this DevOps SRE meme funny?

Level 1: Bring Lots of Glue

Imagine you wanted to build your own car from scratch instead of buying one. "No problem," someone says, "all you need is: an engine, four wheels, a frame, a steering wheel, brakes, a transmission, headlights, a battery, seats, a fuel tank... oh, and you'll also need a garage full of tools, a bunch of skilled friends to help, and lots of glue (to hold all the bits together)!" 😅 Pretty overwhelming, right? The joke here is that making something really complex by yourself is way harder than it sounds. Just like building a car isn't just about having the parts, creating your own tech platform means needing a whole bunch of different tools and a ton of effort to connect them. In other words, what sounds like a simple DIY project ("sure, I’ll build it myself!") can turn out to require an entire toolkit and team (plus extra glue) to succeed. The meme is funny because it lists so many requirements that by the end you realize, "Hmm, maybe I'll just use an existing solution instead!" It's a playful reminder that big projects have big needs, and you'd better bring your glue if you're going to try it on your own.

Level 2: Cloud-Native Starter Pack

This meme is basically presenting a "starter pack" for anyone brave enough to build their own application platform. The list is full of modern DevOps and cloud-native technologies. Each item is a tool or component you'd typically find in a big enterprise or cutting-edge startup setup. The joke is that it’s a huge list – far more than a beginner might expect – but each piece has a real role. Let’s break down what each of these things is and why you’d need it, in simpler terms:

  • Linux: The operating system. Think of Linux as the foundation or the ground floor – it's the OS running on your servers. Most cloud servers and containers run on Linux because it's stable, efficient, and open-source. So if you're building a platform, you're almost certainly doing it on top of Linux machines.
  • Docker: Containerization software. Docker is used to package applications into containers, which are like little lightweight virtual machines. A container bundles your app with all the libraries and dependencies it needs, ensuring it runs the same anywhere. Docker made it easy for developers to create and manage these containers (using Dockerfile recipes and simple commands). In a DIY platform, Docker is how you’d encapsulate each microservice or component.
  • Kubernetes: Container orchestrator. Kubernetes (k8s for short) helps you run lots of Docker containers across many servers. It automates the deployment, scaling, and management of containerized applications. For example, if you have an app that needs to always have 10 copies running for reliability, Kubernetes will make sure if one container (copy) dies, another is started. It’s like the manager that keeps the container workforce in line, deciding which server each container runs on, restarting them if they fail, and handling network access, etc. It essentially turns a bunch of Linux servers into a single big computer for your containers.
  • Istio: Service mesh. When you have many microservices (different apps) running in Kubernetes, they need to talk to each other over the network. Istio is a tool that helps manage that inter-service communication. It deploys a sidecar proxy (like a little helper program) alongside each service. All the traffic between services goes through these proxies. Why? Because then Istio can do fancy things: it can encrypt the traffic (for security), retry or reroute requests if one service is slow or down, and collect telemetry about the calls. Basically, Istio makes your network calls smarter and more reliable without you changing your application code. Think of it as an air traffic controller for service-to-service calls, ensuring they’re safe and efficient.
  • Prometheus: Monitoring system. Prometheus collects metrics – numeric data about your systems. For instance, how much CPU is each service using? How many requests per second is the web server handling? What's the error rate on the payment service? Prometheus scrapes these metrics periodically from your applications and stores them, letting you query them later. It also can alert you if something is wrong (e.g., "alert if error_rate > 5% for 5 minutes"). This helps you keep an eye on the health and performance of your platform. Essentially, Prometheus is your thermometer and heart-rate monitor for all the parts of your system.
  • Fluentd: Log aggregator. Each service and component produces logs – streams of text that record what’s happening (like errors, warnings, or just info messages). In a platform with dozens of services, you can't manually check logs on each server; you want them collected in one place. Fluentd’s job is to take logs from all over (stdout of containers, log files, etc.) and ship them to a central log system or database (like Elasticsearch or a cloud logging service). This way, you can search and analyze all your logs together. When something goes wrong, unified logs help you pinpoint the issue by scanning all services’ outputs around the time of the error.
  • Grafana: Dashboard and visualization tool. Grafana takes data (like the metrics from Prometheus) and lets you create dashboards – graphs, charts, gauges – that visualize that data over time. Instead of staring at raw numbers, you get plots and colors that are easier to read at a glance. For example, you can have a dashboard showing a graph of request latency on your services, or a real-time chart of how many users are online. Grafana is what you might display on a big screen in an ops war-room or at your desk to monitor key stats. It's highly customizable and can pull from many data sources (not just Prometheus). Essentially, Grafana turns metrics into actionable visuals.
  • Jaeger: Distributed tracing system. Jaeger helps trace a single request as it travels through multiple services in your platform. Say a user clicks "buy now" – that request might go through the web frontend, then the payments service, then the inventory service, etc., before returning a result. Jaeger attaches a unique ID to that transaction and follows it, measuring how long each step takes. The result is like a timeline of the request: e.g., 50ms in service A, 200ms in service B, 100ms in service C, etc. This is invaluable for debugging performance issues or errors because you can see exactly where the bottleneck or failure occurred in the chain. Jaeger basically gives you x-ray vision into the path of a request across your system.
  • Harbor: Container registry. A container registry is like an app store or library for your Docker images (the packages that contain your applications). Harbor is an open-source, on-premises registry solution. After Jenkins builds a Docker image for your app, it needs to store it somewhere so Kubernetes can pull it when it’s time to run that app. Harbor provides a web UI and security scanning for images, plus control over who can access/publish images. Think of it as your private Docker Hub for your company – ensuring your containers are stored safely and only available to your systems (and not out on the public internet).
  • Open Policy Agent (OPA): Policy enforcement tool. OPA is like the rule enforcer for your platform. You write rules in OPA’s policy language that define what is and isn't allowed. For example, a rule might say "no service is allowed to talk to the database directly except the API service" or "any container running must have an approved base image." OPA can integrate with Kubernetes (and other systems) to check these rules automatically. When someone tries to deploy something that breaks a rule, OPA can stop it or at least log a warning. It ensures that best practices, security guidelines, and compliance requirements are followed consistently, without relying on every developer remembering every rule. It's your platform's automated security guard.
  • Vault: Secrets manager. Vault is used to securely store and manage sensitive information: things like passwords, API keys, certificates – collectively called secrets. Instead of putting a password in a config file (where it might be seen by too many people or accidentally uploaded somewhere), you store it in Vault. Vault keeps it encrypted and only hands it out to services that authenticate properly. It also can generate secrets dynamically (e.g., create a temporary database password for an application to use, which expires after an hour). The idea is to reduce the chance of secret leaks and make managing credentials easier and safer. Vault is like a heavily guarded safe combined with an automated locksmith – keep the secrets safe, but deliver them to the right hands when needed.
  • Spinnaker and Jenkins: CI/CD pipeline tools. Jenkins is a popular automation server for continuous integration (CI). This means Jenkins can automatically build and test your code whenever developers push changes. If something’s wrong (tests fail), it alerts you; if everything is good, it can produce an artifact (like a Docker image). Spinnaker is a continuous delivery (CD) tool that takes those built artifacts and deploys them to your infrastructure. It handles the release strategies – for instance, deploying a new version to 10% of servers and seeing if it's healthy before rolling it out everywhere (canary deployment), or doing blue-green deployments (where new version is deployed alongside the old and then traffic is switched over). Together, Jenkins and Spinnaker automate the path from code being written to code running in production. They reduce manual steps and make deployments more repeatable and safer.
  • Glue: In this context, "glue" means all the custom stuff that ties the above components together. It's not a single product; it's more like your own code and configuration. Imagine you have all the items listed above laid out on a table – the glue is what you use to connect them into a unified platform. Concretely, this could mean writing configuration files (lots of YAML!) so that each tool knows about the others (for example, telling Prometheus where to scrape metrics, or configuring Jenkins to trigger Spinnaker). It could also mean scripting (with Bash, Python, etc.) to automate tasks that span multiple systems. For instance, maybe you write a script to automatically update a Grafana dashboard whenever a new service is added, or a little program to sync data from Vault into Kubernetes secrets. Glue is the "some assembly required" part – it's your team's unique code that makes all these pieces work together for your specific needs.

So, taken together, this list is basically saying: if you want to build a platform like the big cloud providers or fancy tech companies, here are the building blocks. Why is that humorous? Because it's a ton of stuff. It's as if someone asked "How do I make my own Heroku or AWS?" and got the answer: "Oh, that's easy, just use all these things!" 😅 Any one of these components can be a full-time job to learn and maintain, and combining them all is a monumental task. The tweet exaggerates to emphasize that point – "all you need" turns out to be a laundry list of advanced tools.

For a junior developer, some of these terms might be new or buzzwordy, but they're commonly encountered as you delve into DevOps and modern infra:

  • Containerization (that’s Docker) and orchestration (Kubernetes) are about how we deploy software these days.
  • Observability is covered by Prometheus (metrics), Fluentd (logs), and Jaeger (traces) – it's all about being able to observe and understand your system’s behavior.
  • CI/CD is about how we build and release software continuously (Jenkins/Spinnaker).
  • Security/governance appear in things like OPA (policies) and Vault (secrets).
  • And underlying everything is infrastructure – Linux and actual servers (physical or virtual) that must run all this stuff.

The phrase "roll your own" basically means building something yourself instead of buying or using a ready-made service. The meme’s joke is that if you try to roll your own cloud platform, you’ll reinvent a huge wheel and need to maintain it. Companies like Amazon, Google, Microsoft have already done this work internally (that’s what their cloud platforms are), and they have thousands of engineers working on it. So when a single team or a small company tries to do the same by assembling open-source pieces, it’s possible but very demanding. The tweet lists almost everything except the kitchen sink (and you might need that too 😜) to really drive home that point. It's a bit like saying, "To build your own house, all you need is bricks, wood, nails, cement, wiring, pipes, insulation, a roof, windows... and a lot of elbow grease." Technically true, but quite daunting when spelled out!

In summary, this "starter pack" is both a realistic outline of a full-fledged platform and a tongue-in-cheek way to say "this is overly complex." If you're new: don't worry, nobody expects a junior dev to know how to set all this up from scratch! It's making fun of how our industry sometimes casually throws around big undertakings. Each of these technologies solves an important problem, and learning about them one by one is a great journey. Just maybe not all at once! And always remember that behind the scenes, glue code and integration work are the unsung heroes that actually make these different pieces work together.

Level 3: Some Assembly Required

On a practical level, this tweet nails the collective DevOps/SRE eye-roll at the phrase "roll your own platform." It humorously enumerates nearly every major component in the cloud-native toolbox, effectively saying: "Sure, DIY your platform… just assemble this entire DevOps toolchain and hope it holds together." The combo of Linux, Docker, Kubernetes, Istio, Prometheus, Fluentd, Grafana, Jaeger, Harbor, Open Policy Agent (OPA), Vault, Spinnaker, and Jenkins reads like a "who's who" of the modern infrastructure stack. In other words, it's listing all the pieces you typically need for a production-grade, microservices-based environment. The joke is that each item on this list is itself a complex system that usually takes specialized knowledge (or even a dedicated team) to run properly – and you're being told to juggle all of them at once. It’s a sly way of saying, "Nothing up my sleeve... except an entire cloud-native platform!"

For seasoned engineers, this hits close to home. Many have experienced the tool sprawl that happens when adopting Kubernetes and microservices. You start with a simple idea: "Let's containerize our app with Docker." Then you need Kubernetes to coordinate those containers across multiple servers (because soon you have too many to handle manually). Once Kubernetes is in place, you quickly realize you need a whole supporting cast: monitoring and observability tools (Prometheus + Grafana) to understand what's going on inside all those containers, log aggregation (Fluentd) to collect logs from dozens of services into one place, a service mesh (Istio) to manage traffic between microservices reliably (with retries, timeouts, and security policies like mTLS encryption), and distributed tracing (Jaeger) because when something breaks, you need to follow a single user request as it hops through maybe 5 different services to pinpoint where the problem is. Then come the “Day 2” concerns: how do we store and distribute our container images? Let's add Harbor (a private container registry) so we have a trusted place for our Docker images. How do we enforce security and configuration standards? Bring in OPA to automatically check that deployments meet our rules (for example, no one runs a container with admin privileges or all services have certain labels). What about secrets like database passwords and API keys? We can't just bake those into images or put them on GitHub – better deploy Vault to manage and supply those secrets securely. Finally, how do we continuously build, test, and deploy our applications onto this platform? Enter the duo of Jenkins (for continuous integration – building code and running tests whenever developers make changes) and Spinnaker (for continuous delivery – moving those changes into staging/production with safe deployment strategies). Suddenly, your "simple" platform engineering project has ballooned into integrating a dozen disparate systems. Each solves an important problem, yes, but now you've got 12 problems.

The tweet’s punchline is in that last line: "Oh, almost forgot, you're also going to need servers, people, and glue. Bring lots of glue." This is where the real-world pain shines through the humor. Servers – obviously, all these fancy tools need to run somewhere. If you're self-hosting, that means provisioned machines or VMs (and redundancy, and networking, and... on it goes). If you're on the cloud, it means managing cloud resources and paying for them, and you still deal with setup. Either way, it's not just one neat laptop running everything; it's an actual infrastructure footprint with all the headaches that implies (capacity planning, updates, backups, etc.). And people – arguably the toughest "dependency" of all. You need skilled engineers, often a whole platform engineering or DevOps team, who understand each of these tools well enough to deploy, tune, and maintain them. We're talking about folks who know how to troubleshoot when the cluster is slow (is it Kubernetes? the app? the network?), or when logs stop coming in, or when Jaeger’s UI goes blank, etc. The tweet implicitly acknowledges that a DIY platform is a human-intensive endeavor. It's not "set and forget;" it's "set up and then babysit forever." Each additional system is another potential 3 AM page for your SRE on-call when it misbehaves or when an upgrade goes sideways.

Then there's the glue – the cheeky way to describe all the custom integration work needed. In tech, we often call this glue code or glue work: the scripts, config files, and odd little programs that connect all the big components together. No single off-the-shelf product is going to magically make Prometheus talk to Vault, or Jenkins trigger deployments on Kubernetes exactly the way your company wants. So you end up writing that connective tissue yourself. This could be anything: a bunch of YAML files that define how Prometheus scrapes metrics from all your microservices, a custom Jenkins plugin or pipeline script to push images to Harbor and notify Spinnaker, or a script that periodically rotates secrets in Vault and updates them in Kubernetes. Glue is the unseen force that makes the whole system operate as one platform rather than a bunch of isolated parts. It's often specific to your environment and needs, which is why you have to "bring it yourself." The meme saying "bring lots of glue" is basically winking and saying, "prepare to do a ton of integration and automation work that nobody outside your org will ever see, but which is absolutely critical."

Why is this funny (and a bit painful) to experienced devs? Because it's so true. We've all heard someone in a meeting casually suggest, "Why don't we build our own platform?" or "We can manage those ourselves, it's free open-source software!" and we’ve learned to immediately see the iceberg under the tip. Kelsey Hightower (the tweet’s author, a respected voice in cloud native tech) is using humor to warn and remind: if you go down this road, know what you're signing up for! The list is purposely long and exhaustive to make the point that an "application platform" is not a single thing; it's an amalgamation of many, many things. The humor comes from the escalating absurdity – it reads like a recipe that starts simple and ends with "...and a dash of unicorn magic." By the time you hear "people and glue," you realize this isn't a shopping list for a weekend project, it's describing an entire IT department's responsibilities.

There's also a bit of industry history and inside jokes woven in. Back in the day (say 10+ years ago), if you wanted to run a web application, you might just need a LAMP stack (Linux, Apache, MySQL, PHP) and some shell scripts – a far cry from this list. As systems grew and we embraced microservices and containers for better scalability and agility, the complexity didn't disappear; it shifted to this new layer of infrastructure. Kubernetes itself is often jokingly called "a platform for building platforms" – meaning, by itself Kubernetes is not a complete PaaS (Platform as a Service); you have to add all these other pieces to get something developer-friendly. That joke is exactly what this meme is illustrating. It’s poking fun at the trend in the tech world where every company thought, "Hey, Netflix, Google, and Facebook built their own internal platforms – we should too (using open source)!" And then they discover the hidden engineering costs of doing so. Things like: each of these tools has its own learning curve and gotchas. Upgrading any one of them can be a project in itself (e.g., moving to a new version of Istio or Kubernetes might break your custom scripts or require re-testing everything). And don't forget compatibility issues – maybe version X of Spinnaker doesn’t play nice with version Y of Kubernetes, etc. It's a delicate juggling act.

The mention of glue and needing lots of it also hints at how integration is often the most underestimated part of any "roll your own" endeavor. Companies might assume using open-source components is like plugging Lego blocks together, but in reality it's more like a puzzle where pieces from different boxes almost fit but not quite, and you have to carve out custom adapters. A lot of real war stories hide behind this humor: e.g., an organization spends months setting up this dream stack, then the person who wrote all the glue scripts leaves, and suddenly nobody knows how the automated deployment really works. Or a bug in one component triggers a cascade (say Vault goes down and now every service that depended on getting a secret fails, which causes half your apps to crash – yes, that can happen!). Running such a platform is rewarding if done right, but it’s a constant, proactive effort.

So, the meme resonates because it's a reality check delivered with a smile. It's telling us that "just" doing it yourself can snowball into a monumental project. Readers familiar with these technologies nod and chuckle because they've felt the weight of at least some of these tools. Maybe they've stayed up late writing YAML to connect systems, or twiddled with Grafana graphs at 2 AM to debug an incident, or cursed when an update to one tool required touching six other integrations ("so much for free and easy!"). The humor is in how understated the tweet’s tone is versus how overwhelming the actual task is. "All you need is X, Y, Z..." (and a hundred other things they didn't mention!). It's a gentle jab at the tendency in tech to oversimplify huge undertakings. Experienced devs laugh because they've learned, often the hard way, that “some assembly required” is putting it mildly – it's more like assembly absolutely required, batteries not included, good luck!.

Level 4: Combinatorial Cloud Conundrum

The meme highlights an entire ecosystem of distributed systems jam-packed into one "simple" platform. At a theoretical level, this scenario underscores the intrinsic complexity of modern cloud-native architecture. Each additional component you add isn't just a plug-and-play feature – it represents a distinct branch of computer science and systems theory. Rolling your own platform means solving multiple hard problems simultaneously, and the interactions between those solutions can become combinatorial. In fact, if you imagine each tool as a node in a graph, the number of ways they need to connect and integrate grows explosively. For 12 components, there could be on the order of (\binom{12}{2} = 66) pairwise integration points in the worst case. In practice it's a bit less, but still, the potential integration surface is massive. It's a cloud conundrum: with every new capability (like monitoring or security), you introduce new relationships and dependencies. There's a kind of "complexity tax" that scales faster than linearly – almost as if the system’s complexity grows with O(n²) as you bolt on more subsystems.

Under the hood, each of these tools tackles a classic distributed systems challenge. For example, Kubernetes' cluster scheduling and state reconciliation touches on NP-hard problems (like bin-packing for allocating containers to servers) and relies on consensus algorithms to keep its cluster state in sync. Each Kubernetes cluster has an etcd datastore using the Raft consensus algorithm to agree on what’s running where. This implicates the famous CAP theorem – etcd prioritizes consistency over availability to ensure the cluster has a single source of truth for deployments, even if network partitions occur. Istio, on the other hand, introduces a service mesh by injecting network proxies (Envoy sidecars) alongside each service. Every service-to-service call goes through an extra hop, giving you fine-grained control but requiring a consistent configuration distribution. Ensuring hundreds of proxy instances share up-to-date routing rules and security policies is essentially a distributed configuration problem – a challenge of propagating state across many nodes reliably. The control plane must coordinate updates so that all those sidecars behave as one cohesive mesh, which is a nuanced form of eventual consistency and convergence.

The observability tools in the list (like Prometheus and Jaeger) bring in another layer of theoretical intrigue. Prometheus is fundamentally a specialized time-series database and query engine dealing with high-cardinality data. Designing it involves compression algorithms for storing metrics efficiently and careful sampling theory (deciding how often to capture data points) to balance resolution vs. cost. It's addressing something at the heart of large-scale systems: how to measure everything without being overwhelmed by data. Jaeger implements distributed tracing, which in theoretical terms touches on the concept of causal ordering and context propagation across services. To reconstruct a single transaction's path through a microservice chain, Jaeger passes unique trace identifiers along with each request – reminiscent of Lamport timestamps or vector clocks that help align events across a distributed system. By analyzing these traces, you're effectively solving a distributed debugging problem: figuring out where and why a request slowed down or failed in a web of services. This has formal underpinnings in concurrency theory, as it requires piecing together a timeline from partial, distributed knowledge.

Now consider Open Policy Agent (OPA) and Vault – these dive into formal logic and cryptography. OPA uses a declarative policy language (Rego) to enforce rules cluster-wide; under the hood it’s like a continuously evaluating logical engine. This is akin to applying ideas from datalog or business rule engines in real time: every action in the system is checked against invariant rules (e.g. "no container runs as root") by a mini theorem prover. It’s an everyday use of formal methods ensuring that your platform’s state always respects certain safety properties. Vault, responsible for secrets management, revolves around rigorous cryptographic principles. It deals with encryption (so that secrets at rest are safe), secure distribution (so applications get secrets only if they’re allowed), and key management (rotating and revoking credentials). Essentially, Vault implements real-world applied cryptography: think of it like an automated lockbox that uses math (hashes, ciphers, key derivation) to keep your passwords and keys secure. Designing such a system means grappling with cryptography’s hard questions – how to generate true random numbers for keys, how to do encryption/decryption efficiently, how to guard against attacks – all while being highly available and user-friendly.

All these specialized subsystems must somehow operate in concert, which leads to emergent complexity. The "glue" we joke about is actually the coordination logic that binds these parts together. In a sense, you're creating an operating system for your cloud: orchestrating processes, managing inter-process communication, enforcing security and policies, monitoring health, and so on – but instead of one computer, it's across a distributed network of machines and services. There's a well-known principle that distributing a system introduces new complexity; you can't just take a simple program and split it into microservices without incurring new problems like network reliability and data consistency. Each tool on this list is an answer to one of those inevitable problems. So the humor here acknowledges a paradox: the more microservices and independence you introduce, the more orchestration and glue logic you need to re-create the cohesion that a simpler system might have had by default. It's like the Conservation of Complexity – if you remove complexity from the app by breaking it into services, that complexity reappears in the infrastructure that connects them. In summary, the meme is pointing out that building this platform yourself means tackling a host of deep, thorny technical challenges all at once. It's practically a tour of advanced topics in distributed computing (consensus, scheduling, data pipelines, security, etc.) rolled into one endeavor. "All you need," indeed – nothing less than half a dozen sub-disciplines of CS and a truckload of integration work to make them gel.

Description

A screenshot of a tweet from Kelsey Hightower (@kelseyhightower). The tweet begins, "So you want to roll your own application platform. All you need is:" followed by a list of twelve technologies: Linux, Docker, Kubernetes, Istio, Prometheus, Fluentd, Grafana, Jaeger, Harbor, Open Policy Agent, Vault, and "Spinnaker and Jenkins." The tweet concludes with, "Oh, almost forgot, you're also going to need servers, people, and glue. Bring lots of glue." The tweet, posted at 3:32 AM on April 3, 2020, has 872 Retweets and 3.6K Likes. The meme uses sarcasm to critique the immense complexity of building a custom application platform from scratch. By listing a dozen powerful but notoriously complex cloud-native tools, Kelsey Hightower, a prominent expert in the field, highlights the massive, often hidden, effort required. The punchline, "servers, people, and glue," resonates with experienced engineers who understand that the real challenge isn't just installing the tools, but integrating them and managing the human processes around them. "Glue" is a metaphor for the immense amount of custom scripting, configuration, and maintenance work needed to hold such a complex system together

Comments

7
Anonymous ★ Top Pick The hardest part of that stack is the 'glue.' It's a proprietary, undocumented framework written in YAML, Bash, and the tears of the on-call team
  1. Anonymous ★ Top Pick

    The hardest part of that stack is the 'glue.' It's a proprietary, undocumented framework written in YAML, Bash, and the tears of the on-call team

  2. Anonymous

    Congrats, you dodged vendor lock-in - now you’re locked into 12 CNCF projects, 47 Helm charts, and the only engineer who remembers which glue-script restarts Fluentd when Jaeger’s sidecar OOMs

  3. Anonymous

    The real platform-as-a-service was the 47 YAML files we debugged along the way, plus the three engineers who quit when they realized 'glue' meant writing custom operators for every edge case the vendor platforms already solved five years ago

  4. Anonymous

    Ah yes, the classic 'just' 11 technologies to run a simple app - because who doesn't want to spend six months integrating a service mesh, debugging Istio mTLS certificates at 3 AM, and explaining to leadership why your 'simple platform' now requires a dedicated SRE team of eight? The real kicker is that 'glue' Kelsey mentions - it's not Elmer's, it's the artisanal, hand-crafted YAML and bash scripts that somehow become the most critical, undocumented part of your entire infrastructure. Bonus points if your glue is maintained by that one engineer who's been threatening to leave for two years

  5. Anonymous

    “Roll your own platform”: install half the CNCF landscape, then invent a team called GlueOps to maintain 40k lines of YAML so it looks like a product

  6. Anonymous

    Roll your own platform? Just 12 tools shy of Kubernetes, plus servers and glue - because managed services are for amateurs who hate 3AM pages

  7. Anonymous

    Congratulations, you didn’t build a platform - you hired one: 80% YAML, 20% OPA exceptions, with an on-call platform team to keep the glue from setting

Use J and K for navigation