Akamai, with a network of well over 100,000 globally distributed servers running custom software for optimizing Internet traffic, tackles many problems relating to scale, management, and software quality. Many different groups within the corporate ecosystem maintain largely disparate stacks of software deployed to overlapping subsets of these servers, with complex and loosely-defined interdependencies between many of these software systems. Describing the complete state of a given system, much less a group of these systems, is often difficult or impossible. This makes it difficult for a given team to “stub out” such systems for outside teams to use in their development and testing efforts. Because we’ve found that the use of well-managed, realistic environments is integral to the eventual success of our software deployments, we’ve maintained multiple test networks that are complete copies of the deployed Akamai network for general use internally.
However, as the company grows in size and scope, maintaining these has become an increasingly difficult burden. As a possible solution, we’ve begun to leverage OpenNebula to build multiple well-maintained instances of the groupings of servers that comprise our network. We’ve created the ability to manage and maintain each of these instances as a single independent unit, and to quickly and easily create perfect clones of these instances in our private OpenNebula cloud. Use of these well-maintained cloned instances can then be distributed to various groups, and even individuals, that require them. Groups can integrate their own machines into these cloned instance units to realize the benefits of virtualization as well as the ability to provide their software as infrastructure for other internal development groups.
The talk will discuss some of the technical details of our solution, how it or similar approaches might fit the needs of other companies like Akamai, and how OpenNebula has been instrumental in its development.