Dislocate, A distributed service locator
Abstract
dislocate is a service to locate resources on a network. It is written in Javascript, on top of Node.JS. Philosophically, it provides a hybrid of DNS, Monitoring, Load Balancing and Configuration Management, but optimized for dynamic environments, like cloud computing or large scale clusters.
Proposal
- Provide a peer to peer, reliable, service discovery server.
- Provide client APIs in all popular languages and frameworks.
Background
Traditional management techniques for large scale distributed systems have been proprietary. This is because most people don't need to run large systems that are constantly changing. With the evolution of cloud computing and the prospects of automatically scaling services, the need to do this on top of open source stacks is increasing.
Apache Zookeeper is sometimes used for a similar task, but we believe a project optimized for this use case, and one that communicates in a more portable manner, over HTTP and files in JSON, will prove to be more popular for this purpose.
This project was at one time proposed under the Apache Labs PMC, in December 2006. I didn't have time at the time to write the code. Many of the core ideas are the same, but all of the code has been written in 2010, in javascript instead of C & Lua.
Rationale
There is a strong need in the developing cloud infrastructure for a community supported, high quality, and vendor independent tool set for managing dynamic services in the cloud.
Initial Goals
Dislocate is an existing open source project, but without a large community. We view the moving to Apache as a way to improve this community.
Current Status
Dislocate is already open source under the ASL 2.0. It currently only has one main developer (Paul Querna), and is seeking to build a larger community.
Community
Currently Dislocate has not had many external contributors. We would like to increase our userbase as part of the incubator process.
Core Developers
Paul Querna (ASF member) wrote most of the code.
Alignment
Currently there are not many Apache communities involved with cloud computing or javascript based infrastructure. We believe introducing such a community is a good thing for the Apache Software Foundation.
Known Risks
Orphaned products
dislocate currently only has one main developer, so the risk is higher here, but a goal of moving to Apache is to build a community around it.
Inexperience with Open Source
Paul is an ASF member for developer for many open source projects.
Homogeneous Developers
Currently only one main developer.
Reliance on Salaried Developers
No developers are paid to work on Dislocate at this time.
Relationships with Other Apache Products
The Dislocate service itself doesn't share many attributes with existing Apache projects due to it being in Javascript. The client libraries could be used by many projects like CouchDB, Cassandra, HTTPD, etc.
A Excessive Fascination with the Apache Brand
Dislocate project seeks to build a strong community around distributed system and backend services, areas traditionally strong within Apache projects, but it is not fascinated with any short term gains of being associated with the Apache Brand.
Documentation
Initial Source
Initial source is contained completely inside the ndislocate github repository.
External Dependencies
Cryptography
Uses node.js bindings to OpenSSL for SSL and HMACs.
Required Resources
Mailing lists
- dislocate-dev
- dislocate-users
- dislocate-commits
- dislocate-private
Subversion
Issue Tracking
- JIRA (DLCT)
Initial Committers
- Paul Querna <pquerna>
Sponsors
Champion
- Paul Querna
Sponsoring Entity
- Incubator PMC