Be the first to like this
As software is increasingly deployed in public cloud environments, foundational platforms such as Apache BookKeeper must also continuously evolve to effectively work in multi availability zone environments and be designed to work around problems unique to such environments.
We at Salesforce added to BookKeeper the ability to function effectively in a Multi-AZ public cloud environment. The first step to this was adding awareness in bookies about their location in the cluster. We propose an approach to this problem which when using a kubernetes based deployment in public cloud environments, makes use of information natively provided by Kubernetes API, to determine their ‘location in the cluster’ also known as their ‘networkLocation’. The second step was to make this information available to the client. This was accomplished by adding the aforementioned ‘networkLocation’ as a field in the ‘cookies’ in a multi AZ environment. The field would be used to store the position of the bookie in the cluster. To make this network location available to the client, we added a mapping allowing client code to read this directly from the cookie.