Development / Technology

This Week in Programming: Why NOT to Run Kubernetes

13 Jun 2020 6:00am, by

Here at The New Stack, you read article after article extolling the virtues of containerization, Kubernetes, and the myriad tools that make up the burgeoning ecosystem around the open source container orchestration tool, but today, we thought we might bring you an opposing opinion. This week, digital currency exchange site Coinbase authored a blog post explaining why Kubernetes is not part of its stack, and beside offering a quick, down and dirty history of containerization and orchestration of the last decade, the post provides some insight into why Kubernetes may work for some, but perhaps not for all. And before you dismiss this outright, even Kubernetes advocate Kelsey Hightower calls the piece “an analysis worth studying,” noting that “asking people to manage their own Kubernetes cluster is like asking people to manage their own hypervisors when they just want VMs.”

Now, to note (and as Hightower also pointed out) — Coinbase is not arguing against containerization or the need for an orchestration tool. In fact, the company built its own “extremely simple (on purpose)” orchestration platform called Odin, which is run with Amazon Web Services’ auto-scaling groups (ASGs).

The article concedes that “Container orchestration platforms are complex and amazing technologies, helping some businesses and teams solve a whole suite of problems,” but argues that “what’s commonly overlooked, however, is that container technologies also create a large set of challenges that must be overcome to prevent failures.” The crux of Coinbase’s argument is later restated, arguing that “running Kubernetes does not solve any customer (engineering) problems. Running Kubernetes would actually create a whole new set of problems.”

Further breaking down their reasoning for not using Kubernetes, they cite the need for a large, full-time compute team to handle operationally heavy cluster upgrades and management, the relative infancy of managed Kubernetes offerings, and the fact that “securing Kubernetes is not a trivial, easy, or well-understood operation.” Today, they write, “we do not carry this burden.”

Really, though, it seems that from here on out, the focus is on one thing — “the complexity of securing and running Kubernetes as a business that stores more than $8 billion in crypto assets.” While the complexity of running Kubernetes is a known pain point, Coinbase argues that complexity, with the added burden of securing that complexity, is the real reason to turn elsewhere for container orchestration — even building your own tool to do the job.

On a final note, Coinbase writes that Kubernetes “is a great tool despite its challenges” that “has moved our industry forward in an increasingly positive direction.” Nonetheless, they also write that “at this time we have no plans to build/own/operate Kubernetes.”

This Week in Programming

  • Visual Studio Code’s Go Extension and May Release: Each month, the Visual Studio Code team puts out a release with an accompanying blog post and this month is no exception, with the Visual Studio Code May 2020 looking at a number of new features, including accessibility improvements, the addition of GitHub remotes, GitHub Issue Notebooks, and Windows ARM64 support among others. In a separate blog post, the team also notes that the Visual Studio Code Go extension has joined the Go project, which the Go team writes comes with “two critical changes.” First, the Go extension publisher will shift from “Microsoft” to “Go Team at Google”, and second, the project’s repository is moving to join the rest of the Go project. Moreso, Microsoft writes in its blog post that “the Go team has officially stepped up as the new maintainer of the Go extension” and that “being part of the Go project will also ensure that the community is engaged on every step along the way.” For those of you interested in getting involved, there’s a #vscode channel on the Gophers Slack.
  • Android 11 Beta Arrives After Delay: Google took some time to read the room, and decided to postpone the beta release of Android 11, abandoning the livestream event entirely and instead “sharing a few videos and online resources to consume at your own pace when the time is right for you.” In its blog post on the developer blog, Google writes that the release includes a number of treats for Android developers, ranging “from Kotlin coroutines, to progress on the Jetpack Compose toolkit, to faster builds in Android Studio, even a refreshed experience for the Play Console,” with a focus on developer friendliness. While the range of additions is far too long to list here, they’re outlined in detail on the developer blog, and a dozen talks have been posted to the Android Developers YouTube channel.

  • Rust’s 2020 Event Lineup: By now, you’re well familiar with the pandemic disruption of tech conferences, and this week the Rust team has updated us on the 2020 event lineup, which includes staples such as RustConf. As you might expect, these events are no exception and the majority of them have morphed into virtual events, with just Rust LATAM canceling entirely. For details on other events such as meetups, check out the community calendar and the This Week in Rust newsletter, as well as the curated list of Rust streams.
  • PHP Joins Java in the 25-Year Club: It’s been just a few weeks now since we celebrated the 25th anniversary of Java, and this week it’s PHP’s turn, with a nifty PHP timeline by JetBrains to commemorate the occasion.  The timeline itself is publicly available on GitHub, but beyond that, it’s fun to click around too, with links ranging from the original message where Rasmus Lerdorf introduces the Personal Home Page (PHP) tools to the upcoming and awaited PHP 8.
  • Amazon Intros Package Management with AWS CodeArtifact: There’s no shortage of package managers out there, and for enterprises this can present a challenge in terms of “both versions of, and access to, the software dependencies of their applications,” writes Amazon in their introduction to AWS CodeArtifact. A central repository, instead, offers control over access and version changes, and AWS CodeArtifact is just that: a fully managed artifact repository service to help securely store and share software packages that can be used with “popular build tools and package managers such as Maven and Gradle (for Java), npm and yarn (for Javascript), and pip and twine (for Python), with more to come.” They also note that “CodeArtifact is a polyglot artifact repository, meaning it can store artifact packages of any supported type.” For more info, tune in on June 12th at noon (PST) to Twitch.tv/aws or LinkedIn Live, where the team will show how to get started.

Amazon Web Services is a sponsor of The New Stack.

Feature photo by Alyssa Mae on Unsplash.

A newsletter digest of the week’s most important stories & analyses.