Server Control via Instant Messaging
We examine the use of XMPP to manage hundreds of servers in various environments.
Cloud infrastructures have provided a great deal of power and versatility, but come at a cost of management overhead. In many cases, a node in a cloud infrastructure has no guarantee of being there at any given moment, has an indeterminable spin up time, and has no way of determining apriori where it will be. These make it hard to coordinate work across the nodes.
The typical approach for these setups is to provide an HTTP based registrar. While that works in many cases, the lack of bidirectional communication introduces a bit of ambiguity. What is happening between checkins? Does a node need to unregister itself? What happens when a node goes down?
Botnet shepherds have long been dealing with similar problems as cloud shepherds are dealing with now. A botnet node can go down at any time, there is no way to determine when a node will come into the botnet, and botnet nodes come from all over the place. Currently, the primary mechanism that botnet shepherds use to control their networks is over IRC channels. While the primary appeals have been the low barrier to entry, the always on messaging infrastructure, and the inability to lock down the channel, this approach provides an efficient way to coordinate activity in an environment with the above issue with little overhead.
Given the similarities between managing a botnet herd and managing a cloud herd, why not use the same management mechanisms that botnets use for more above the board purposes? How well do instant messaging infrastructures work for cloud infrastructures?
In this talk, we examine how we can use the botnet herding techniques to manage a large host of servers in a couple of scenarios. We will look at using XMPP as a transport mechanism for a traditional hosting environment as well as a cloud environment.