Netflix is a big user of Amazon's cloud infrastructure services—such a big user, in fact, that it has built multiple software programs that make Amazon resources more reliable. Recently, Netflix described its "Chaos Monkey," which randomly takes Amazon virtual machines offline to help engineers identify network weaknesses. Netflix released its Chaos Monkey as open source, and this week did the same with another project, known as Eureka.

Released on GitHub and described in the Netflix Tech Blog yesterday, Eureka fills a gap in Amazon Web Services by providing load balancing and failover for middle-tier servers, Netflix explained.

"In AWS cloud, because of its inherent nature, servers come and go," Netflix's Karthikeyan Ranganathan wrote. "Unlike the traditional load balancers which work with servers with well known IP addresses and host names, in AWS load balancing requires much more sophistication in registering and de-registering servers with the load balancer on the fly. Since AWS does not yet provide a middle tier load balancer, Eureka fills a big gap in that area."

Amazon offers its own Elastic Load Balancer, but this is for services exposed to end-user Web traffic, as opposed to mid-tier services intended to be private. Netflix thinks Eureka will be useful for Amazon customers who have services they don't want exposed to traffic from the outside world.

Eureka is a REST-based service with a Java client. Besides mid-tier load balancing, Netflix uses Eureka with its Cassandra database (for taking instances offline for maintenance) and with its Memcached-based services. Netflix isn't done releasing open source software. The company said to stay tuned for Eureka integration with Asgard, a Netflix tool for managing cloud deployments, and for "more sophisticated Netflix mid-tier load balancing solutions."