Thomas Hatch, SaltStack CTO, and Sam Smith, SaltStack director of product development, introduce SaltStack RAET as a new alternative transport medium developed specifically with SaltStack infrastructure automation and configuration management in mind. SaltStack built RAET for customers needing substantial speed and scale to automate management of massive data center infrastructure environments.
SaltStack RAET is primarily an async communication layer over truly async connections, defaulting to UDP. The SaltStack RAET system uses CurveCP encryption by default. SaltStack users can now leverage substantial flexibility via either Salt SSH, ØMQ, or RAET to best address numerous use cases.
2. 2
Salt Air 19!
!
SaltStack RAET!
!
Thomas Hatch, SaltStack CTO!
&!
Sam Smith, SaltStack director product development
3. The need for speed
• From server closet to Web scale, speed and flexibility
matters;!
• SaltStack built for speed and scale at any level;!
• SaltStack supports:!
• SSH!
– Good for limited use cases!
– 50x faster than other other SSH-based tools!
• ØMQ!
– Super fast!
– Good for many use cases, but…!
• RAET (Reliable asynchronous event transport)!
– Even faster!
– From tens of thousands to hundreds of thousands!
– Driven by customer demand (massive infrastructures)!
– More control and infrastructure visibility
4. ØMQ background and overview
• ØMQ!
• The fastest of the integrated queuing services!
• Integrates PubSub Queueing into custom TCP Sockets!
• Difficult to observe and manage problems under load!
• TCP socket delays, reconnect problems!
• Suited for multi-process architectures, context
switching overhead, blocking I/O!
• TCP connection limits, presence, latency
5. SaltStack RAET protocol
• Bringing established automation technology to Salt;!
• Built on a precedent of successful automation
concepts;!
• Support for UDP sockets in addition to TCP;!
• Transactions for reliability;!
• More async;!
• Built in crypto (CurveCP);!
• Built to run on Python2, Python3, PyPy.
5
6. SaltStack RAET layering
• Micro-threaded architecture with non-blocking I/O;!
• Separates event Pub / Sub queue from socket-based transport
layer;!
• Optimize queueing and transport independently;!
• More modularity;!
• Better observability of issues and management of performance
under load;!
• More fine-grained management of events;!
• More maintainable code.
7. SaltStack RAET architecture
• Modular and nested architecture!
• Inter-host communication is transactioned UDP!
• Inter-process communication is paged UXD!
• Unified event-message routing!
• Fully signed and encrypted UDP comms
8. SaltStack RAET
• Built for massive scale to support SaltStack
Enterprise customer environments;!
• Go faster;!
• Driven by customer and user requirements;!
• More flexibility (SSH, ØMQ, now RAET);!
• Salt on RAET appears the same to the user as Salt
on ØMQ.
8