Upgrade Public Load Balancing Layer

Replaced the previous nginx-and-haproxy public load balancing layer for Bitbucket Cloud with a cluster of vTMs, providing a more consistent management interface with other Atlassian cloud products. Adapted logging, monitoring, and HTTP-based request routing rules to the newer systems; ported back-end pools in HTTP and SSH to the newer systems. Prepared end-user communications, through blog posts, tweets, site banners, and CLI-based messages. Completed the upgrade through DNS, which additionally incorporated some improvements to public networking.

As part of this work, I added the “maintenance hook” to Bitbucket - a post-receive hook, managed through a feature flag, where we could embed maintenance notifications in the command-line response to Git or Mercurial pushes. That first implementation used ANSI escape codes to enforce yellow text on a transparent background; this choice was somewhat controversial, since some users have a white background in their terminal, and yellow text on a white background is difficult to read. (But they still read it.) Later iterations included a defined background color.

Project link: https://bitbucket.org/blog/making-bitbuckets-network-better-faster-and-ready-to-grow

Nifty tech tag lists fromĀ Wouter Beeftink