Fueling innovative software
July 15-18, 2019
Portland, OR

Simple, secure, and reliable: Building cloud native applications with NATS

Wally Quevedo (Synadia Communications, Inc)
5:05pm5:45pm Wednesday, July 17, 2019
Secondary topics:  Cloud Native
Average rating: ***..
(3.00, 5 ratings)

Who is this presentation for?

  • Developers, architects, and service operators

Level

Beginner

Description

NATS is a mature, high-performance publish/subscribe messaging system that’s part of the Cloud Native Computing Foundation (CNCF). NATS has a goal of connecting services in the simplest, most secure and reliable way possible, and cloud native applications built using NATS inherit much of that simplicity and become easier to operate, benefiting from the performance and resiliency characteristics from the server.

Waldemar Quevedo walks you through how to build an application using NATS and how to set up, deploy, and operate a NATS cluster on top of Kubernetes. You’ll learn core NATS features like publish/subscribe, load-balanced queue subscribers, request/response, and handing connection events and examine NATS cluster setup and client application failover, graceful NATS server shutdown and NATS server configuration reload, and graceful client shutdown with NATS Drain mode. You’ll also learn how to secure a NATS cluster with Transport Layer Security (TLS) and secure streams and services with permissions, account isolation and NATS keys (NKEYS) (ed25519 based), and decentralized permissions via JSON Web Tokens (JWTs).

After covering the basics, Waldemar dives into NATS on Kubernetes, explaining how to use the NATS operator to quickly set up a secure cluster and how to set up Prometheus monitoring to monitor NATS and NATS applications. You’ll also learn global uses for NATS, such as NATS gateways and superclusters and deploying a NATS supercluster on top of Kubernetes, and see how to handle potential issues with NATS, such as slow consumers, application debugging, and remotely introspecting message streams and services.

Prerequisite knowledge

  • A laptop with latest versions of Go, Docker, Minikube, and kubectl installed
  • Experience developing in Go (useful but not required)

What you'll learn

  • Understand the benefits gained by using the lightweight messaging features from NATS in comparison to HTTP, gRPC, or complex service mesh approaches
  • Learn the latest best practices for using NATS in production
Photo of Wally Quevedo

Wally Quevedo

Synadia Communications, Inc

Waldemar (Wally) Quevedo is a software engineer at Synadia and is a core maintainer of NATS and author of Practical NATS. Previously, he worked on a container orchestration system that used NATS for its control plane at Apcera and formed part of the PaaS team at Rakuten in Tokyo.