This Week in Scalability: The KEG Hangover
“Is it plugged in? At both ends?” — Ed Vielmetti, celebrating Sysadmin day (July 28) on Twitter.
Unnecessary levels of specification get you in trouble every time.
This week we got hella feedback from an article penned by an occasional contributor and friend-of-TNS, Sirish Raghuram, who is the CEO of Kubernetes service provider Platform9. When the essay hit our inbox, we immediately understood — and appreciated — the premise of the piece, as captured in the provocative headline “Should the ‘KEG’ Stack Replace the LAMP Stack?”
Raghuram argued that LAMP (Linux/Apache/MySQL/Python Perl or PHP) has admirably served the world for the past two decades with an easy-to-assemble open source stack for creating websites, but now we are entering an age where companies are communicating with the outside world in terms of apps rather static web pages, and this architecture requires a new stack altogether, preferably of an open source variety. Raghuram, riffing on the acronym idea, served up KEG, which is indeed a catchy algorithm for Kubernetes-etcd-Go. It’s not so much that KEG would replace LAMP on a component-by-component level, we figured, but there are the new kinds of interlocking tools that everyone can use to spin up their own scalable, distributed, microservices-based cloud-native apps (Woot! All the acronyms!).
Trouble started, however, when Raghuram took the next step and suggested specific component-by-component drop-ins for the LAMP stack. He asserted that Kubernetes, which has been called a data center operating system by more than one observer, would replace Linux, an actual operating system, which would still be required to run anything. So, not a replacement.
The biggest howler was the assertion that etcd, a distributed key value store for holding small bits of data for quick retrieval, could replace MySQL, a full-fledged relational database for permanently storing large amounts of data. This got many with a familiarity with Kubernetes (which relies on etcd for coordinating and tracking containerized microservices), scratching their heads. More than one person pointed out one is not a replacement for the other. “In no universe is etcd a generic replacement for an RDBMS. In some scenarios, sure you could use one instead of the other. But not most,” pointed out developer Chris Hoffman in a Tweet.
Ok… what editor/tech reviewer let "etcd replaces MySQL" get published? https://t.co/ZjykZX0jf1
— Ryan Scott Brown 🇺🇦 (@ryan_sb) July 26, 2017
What else? Oh yeah, others also brought up the point that, in most all cases, the “P” in LAMP stands for PHP, not for Python. But Raghuram, who like Amazon CTO Werner Vogels, seems to find the language tired. He derided Python for not resolving its dependencies at build time. But we were less concerned about the sleight-of-hand move from PHP to Python. Really, I’m sure we can find plenty of legacy-related reasons to hate on PHP if we really tried.
Raghuram’s final point though is that we have perhaps passed the point when any single stack should be a drop-in for most workloads. With a wealth of open source technologies, everyone could customize their own stack. And that’s an idea well worth keeping in mind.
We were even thinking of our Kubernetes-Linkerd-Unix-Docker-gRPC-etcd stack. We call it KLUDGE.
This Week on the Web
- You might not even need machine learning to predict the future if you rock some basic skills in the Naive Bayes family of probabilistic algorithms.
- Tutorial: Deploy Kubernetes on Openstack with Ansible.
- An anatomy of a serverless application, from serverless.com.
- What’s more important, the speed of the code, or the speed at which the developer can code? Elixir is built for the latter.
- How the Amazon Web Services’ “Burst Balance” feature can actually slow container performance, as explained by Jeremy Eder.
- It may be time to rethink how we do passwords, argues Troy Hunt.
- Meet the newest member of the Netflix Simian Army of chaos bringers, named ChAP (the Chaos Automation Platform), which was designed “to inject microservice-level failure in production.”
- All the public JSON APIs for use in web development, as compiled by Todd Motto.
- Traffic-jammed beltways and people-stuffed trains beckon: Teleworkers trudge back to the office, at the behest of managers willing to trade productivity for an increase in the serendipitous exchange of ideas, the Wall Street Journal reports.
- Kelsey Hightower asks why it takes 30 machines to run Pivotal Cloud Foundry in production.
This Week in Amusing Viral Memes
Your daily metaphor for the infosec industry. pic.twitter.com/SOPRPl04pl
— lcamtuf (@lcamtuf) July 26, 2017
— Joe Beda (@jbeda) July 26, 2017
This Week in Art
The image above is of Robert Rauschenberg’s installation, “Mud Muse” (1968-1971) being shown currently at the NYC Museum of Modern Art in a new exhibition, “Among Friends.” Mud Muse is a system for creating an audio feedback, one channeled through a metal tank holding 1,000 gallons of clay and water that periodically emits bubbles and spurts. “Microphones located close to the tank were installed on the ceiling or on a nearby wall to protect them from mud splashes. Soundtracks of the bass track, and of the eruption sounds of the work itself, played underneath the tank and were selected electronically by an apparatus controlling a pneumatic system comprised of air inlets, air pressure sources, and solenoid valves powered by electricity,” explained art site Art Orbit.
Joab Jackson is the managing editor for the New Stack Web Site. Send tips, complaints, driving directions, story ideas, help.