NATS 2.0: Like Containers for Messaging
At the core of a microservices software architecture lies the ability for each containerized workload to communicate with one another in a secure and dynamic fashion. Cloud native messaging system NATS has been providing this sort of functionality since its inception in 2010, and now with NATS 2.0, the open source messaging service has upped the ante, providing something that NATS creator Derek Collison says is akin to “containers for messaging,” with improved security, multitenancy, decentralized management and global scale.
Now the CEO of Synadia Communications, which maintains the codebase for the open source NATS server and client software and associated libraries, Collison said that NATS 2.0 was envisioned as a way to provide a globally available messaging service that could run anywhere and handle the complexities of modern, large scale distributed computing.
“We had a vision that this could be a technology that could bridge not only between on-premise and cloud, but to edge gateways and even down to IoT devices, whether it’s hardware or software,” said Collison. “We felt that there was a massive opportunity, if we did this right, to introduce secure multitenancy with very, very well defined methods to share data between isolation contexts. Think of it like containers for messaging.”
NATS 2.0 “provides both scalable service and microservice communications, observability, and data and event streaming … with many communication patterns to support many use cases” such as replacing technologies like RPC systems, service meshes, event streaming, load balancers, policy and proxy sidecars as well as external security and authentication systems, according to a statement.
“Service mesh is coming along and I think it’s the right idea, but the wrong solution and implementation.” — Derek Collison.
Early last year, the open source NATS project joined the Cloud Native Computing Foundation (CNCF) as an incubation-level project, and later that year Synadia released NGS, a commercially available global communications system built with NATS 2.0, that is “decentralized by design, easy to use and manage, secure by default, and globally available in all major cloud providers,” according to the statement. NGS showcases NATS 2.0 features, in what Synadia says is “the first decentralized and secure global utility that can connect all the world’s digital systems, services and devices.”
NATS 2.0 includes decentralized security, with securely-isolated accounts that can easily share streams and services, the ability for teams to create their own accounts where they can define their own imports and exports and policies, a bundling of the most common and valuable messaging patterns including request/reply with transparent scaling and observability, and event and data streaming, into one technology, as well as superclusters and built-in disaster recovery.
Of the new features, Collison explained that security was a primary focus for NATS 2.0, with an emphasis on simplicity.
“We were on par with pretty much every other infrastructure software component today, but we didn’t think that was where the future needed to go, so we leaned in really hard on security such that the system now does not require any passwords, any private keys whatsoever,” said Collison. “It does not require a priori configuration of an individual server. The server can dynamically discover its environment from people trying to connect to it but totally secure. And it has a chain of trust very similar to the way the web works.”
The release notes for NATS 2.0 offer a rationale for the release, again focusing on simplicity as a solution:
Current distributed systems increase significantly in operational complexity as they scale upward. Problems arise around service discovery, connectivity, scaling for volume, and application onboarding and updates. Disaster recovery is difficult, especially as systems have evolved to operate in silos defined by technology rather than business needs. As complexity increases, systems become expensive to operate in terms of time and money. They become fragile making it difficult to deploy services and applications hindering innovation, increasing time to value and total cost of ownership.
In describing the current state of technologies, Collison further explained that, while NATS may not be the one to do it, he thought that things were ready for what he called a “Tesla moment,” wherein someone comes along and introduces a simple, reliable replacement for complex technology. In the case of Tesla, this was the relatively maintenance-free electric motor taking the place of the gas engine.
“I believe these platform technologies and communication technologies are ripe for disruption and in a way to move back towards simpler solutions. The complexity has reached a point where at least we’re seeing a lot of frustrated customers,” said Collison. “We’ve seen this since the dawn of technology — once a technology establishes itself as something that most people would need or want, it gets pushed down the stack and it disappears into the infrastructure. I think we’re in that weird area because service mesh is coming along and I think it’s the right idea, but the wrong solution and implementation.”
For those considering an upgrade, NATS 2.0 offers complete backward compatibility and is offered under the Apache 2.0 license.
Feature image by Settergren from Pixabay.