newrelic/sidecar: Gossip-based service discovery. Docker native, but supports static discovery, too.
november 2017 by jm
An AP gossip-based service-discovery sidecar process.
clustering
docker
go
service-discovery
ap
sidecar
haproxy
discovery
architecture
Services communicate to each other through an HAproxy instance on each host that is itself managed and configured by Sidecar. It is inspired by Airbnb's SmartStack. But, we believe it has a few advantages over SmartStack:
Native support for Docker (works without Docker, too!);
No dependence on Zookeeper or other centralized services;
Peer-to-peer, so it works on your laptop or on a large cluster;
Static binary means it's easy to deploy, and there is no interpreter needed;
Tiny memory usage (under 20MB) and few execution threads means its very light weight
november 2017 by jm
consistent hashing with bounded loads
august 2017 by jm
'an algorithm that combined consistent hashing with an upper limit on any one server’s load, relative to the average load of the whole pool.'
Lovely blog post from Vimeo's eng blog on a new variation on consistent hashing -- incorporating a concept of overload-avoidance -- and adding it to HAProxy and using it in production in Vimeo. All sounds pretty nifty! (via Toby DiPasquale)
via:codeslinger
algorithms
networking
performance
haproxy
consistent-hashing
load-balancing
lbs
vimeo
overload
load
Lovely blog post from Vimeo's eng blog on a new variation on consistent hashing -- incorporating a concept of overload-avoidance -- and adding it to HAProxy and using it in production in Vimeo. All sounds pretty nifty! (via Toby DiPasquale)
august 2017 by jm
In search of performance - how we shaved 200ms off every POST request — GoCardless Blog
august 2015 by jm
tl;dr: don't use Ruby's Net::HTTP and/or HAProxy prior to 1.4.19
http
ruby
tcp
nagle
performance
rtt
networking
haproxy
ack
curl
august 2015 by jm
Yelp Product & Engineering Blog | True Zero Downtime HAProxy Reloads
april 2015 by jm
Using tc and qdisc to delay SYNs while haproxy restarts. Definitely feels like on-host NAT between 2 haproxy processes would be cleaner and easier though!
linux
networking
hacks
yelp
haproxy
uptime
reliability
tcp
tc
qdisc
ops
april 2015 by jm
Smart Clients, haproxy, and Riak
october 2014 by jm
Good, thought-provoking post on good client library approaches for complex client-server systems, particularly distributed stores like Voldemort or Riak. I'm of the opinion that a smart client lib is unavoidable, and in fact essential, since the clients are part of the distributed system, personally.
clients
libraries
riak
voldemort
distsys
haproxy
client-server
storage
october 2014 by jm
Shutterbits replacing hardware load balancers with local BGP daemons and anycast
may 2014 by jm
Interesting approach. Potentially risky, though -- heavy use of anycast on a large-scale datacenter network could increase the scale of the OSPF graph, which scales exponentially. This can have major side effects on OSPF reconvergence time, which creates an interesting class of network outage in the event of OSPF flapping.
Having said that, an active/passive failover LB pair will already announce a single anycast virtual IP anyway, so, assuming there are a similar number of anycast IPs in the end, it may not have any negative side effects.
There's also the inherent limitation noted in the second-to-last paragraph; 'It comes down to what your hardware router can handle for ECMP. I know a Juniper MX240 can handle 16 next-hops, and have heard rumors that a software update will bump this to 64, but again this is something to keep in mind'. Taking a leaf from the LB design, and using BGP to load-balance across a smaller set of haproxy instances, would seem like a good approach to scale up.
scalability
networking
performance
load-balancing
bgp
exabgp
ospf
anycast
routing
datacenters
scaling
vips
juniper
haproxy
shutterstock
Having said that, an active/passive failover LB pair will already announce a single anycast virtual IP anyway, so, assuming there are a similar number of anycast IPs in the end, it may not have any negative side effects.
There's also the inherent limitation noted in the second-to-last paragraph; 'It comes down to what your hardware router can handle for ECMP. I know a Juniper MX240 can handle 16 next-hops, and have heard rumors that a software update will bump this to 64, but again this is something to keep in mind'. Taking a leaf from the LB design, and using BGP to load-balance across a smaller set of haproxy instances, would seem like a good approach to scale up.
may 2014 by jm
AWS Case Study: Hailo
april 2014 by jm
Ubuntu, C*, HAProxy, MySQL, RDS, multiple AWS regions.
hailo
cassandra
ubuntu
mysql
rds
aws
ec2
haproxy
architecture
april 2014 by jm
Video Processing at Dropbox
february 2014 by jm
On-the-fly video transcoding during live streaming. They've done a great job of this!
ffmpeg
dropbox
streaming
video
cdn
ec2
hls
http
mp4
nginx
haproxy
aws
h264
At the beginning of the development of this feature, we entertained the idea to simply pre-transcode all the videos in Dropbox to all possible target devices. Soon enough we realized that this simple approach would be too expensive at our scale, so we decided to build a system that allows us to trigger a transcoding process only upon user request and cache the results for subsequent fetches. This on-demand approach: adapts to heterogeneous devices and network conditions, is relatively cheap (everything is relative at our scale), guarantees low latency startup time.
february 2014 by jm
Hardened SSL Ciphers Using ELB and HAProxy
february 2014 by jm
ELBs support the PROXY protocol
elb
security
proxying
ssl
tls
https
haproxy
perfect-forward-secrecy
aws
ec2
february 2014 by jm
Tuning advice for HTTPS for nginx and HAProxy
january 2014 by jm
from Ilya Grigorik. nginx version here: http://www.igvita.com/2013/12/16/optimizing-nginx-tls-time-to-first-byte/
https
http
performance
nginx
haproxy
speed
january 2014 by jm
Airbnb's Smartstack
october 2013 by jm
Service discovery a la Airbnb -- Nerve and Synapse: two external daemons that run on each node, Nerve to manage registration in Zookeeper, and Synapse to generate a haproxy configuration file from that, running on each host, allowing connections to all other hosts.
haproxy
services
ops
load-balancing
service-discovery
nerve
synapse
airbnb
october 2013 by jm
Scaling: It's Not What It Used To Be
april 2012 by jm
skamille's top 5 scaling apps. "1. Redis. I was at a NoSQL meetup last night when someone asked "if you could put a million dollars behind one of the solutions presented here tonight, which one would you choose?" And the answer that one of the participants gave was "None of the above. I would choose Redis. Everyone uses one of these products and Redis."
2. Nginx. Your ops team probably already loves it. It's simple, it scales fabulously, and you don't have to be a programmer to understand how to run it.
3. HAProxy. Because if you're going to have hundreds or thousands of servers, you'd better have good load balancing.
4. Memcached. Redis can act as a cache but using a real caching product for such a purpose is probably a better call.
And finally:
5. Cloud hardware. Imagine trying to grow out to millions of users if you had to buy, install, and admin every piece of hardware you would need to do such a thing."
scaling
nginx
memcached
haproxy
redis
2. Nginx. Your ops team probably already loves it. It's simple, it scales fabulously, and you don't have to be a programmer to understand how to run it.
3. HAProxy. Because if you're going to have hundreds or thousands of servers, you'd better have good load balancing.
4. Memcached. Redis can act as a cache but using a real caching product for such a purpose is probably a better call.
And finally:
5. Cloud hardware. Imagine trying to grow out to millions of users if you had to buy, install, and admin every piece of hardware you would need to do such a thing."
april 2012 by jm
Scale Something: How Draw Something rode its rocket ship of growth
april 2012 by jm
Membase, surprise answer. In general it sounds like they had a pretty crazy time -- rebuilding the plane in flight even more than usual. "This had us on our toes and working 24 hours a day. I think at one point we were up for around 60-plus hours straight, never leaving the computer. We had to scale out web servers using DNS load balancing, we had to get multiple HAProxies, break tables off MySQL to their own databases, transparently shard tables, and more. This was all being done on demand, live, and usually in the middle of the night. We were very lucky that most of our layers were scalable with little or no major modifications needed. Helping us along the way was our very detailed custom server monitoring tools which allowed us to keep a very close eye on load, memory, and even provided real time usage stats on the game which helped with capacity planning. We eventually ended up with easy to launch "clusters" of our app that included NGINX, HAProxy, and Goliath servers all of which independent of everything else and when launched, increased our capacity by a constant. At this point our drawings per second were in the thousands, and traffic that looked huge a week ago was just a small bump on the current graphs."
scale
scalability
draw-something
games
haproxy
mysql
membase
couchbase
april 2012 by jm
Quora’s Technology Examined
february 2011 by jm
Python, Nginx, Tornado for COMET stuff, MySQL as a data store, memcached, Thrift, haproxy, AWS, Pylons. fantastic, very detailed post (via Nelson)
quora
python
nginx
tornado
comet
mysql
memcached
thrift
haproxy
aws
pylons
via:nelson
from delicious
february 2011 by jm
related tags
ack ⊕ airbnb ⊕ algorithms ⊕ anycast ⊕ ap ⊕ apache ⊕ architecture ⊕ aws ⊕ bgp ⊕ cassandra ⊕ cdn ⊕ client-server ⊕ clients ⊕ clustering ⊕ comet ⊕ consistent-hashing ⊕ couchbase ⊕ curl ⊕ datacenters ⊕ discovery ⊕ distsys ⊕ docker ⊕ draw-something ⊕ dropbox ⊕ ec2 ⊕ elb ⊕ exabgp ⊕ ffmpeg ⊕ games ⊕ go ⊕ h264 ⊕ hacks ⊕ hailo ⊕ haproxy ⊖ hls ⊕ hsts ⊕ http ⊕ https ⊕ juniper ⊕ lbs ⊕ libraries ⊕ lighttpd ⊕ linux ⊕ load ⊕ load-balancing ⊕ membase ⊕ memcached ⊕ mp4 ⊕ mysql ⊕ nagle ⊕ nerve ⊕ networking ⊕ nginx ⊕ openssl ⊕ ops ⊕ ospf ⊕ overload ⊕ perfect-forward-secrecy ⊕ performance ⊕ proxying ⊕ pylons ⊕ python ⊕ qdisc ⊕ quora ⊕ rds ⊕ redis ⊕ reliability ⊕ riak ⊕ routing ⊕ rtt ⊕ ruby ⊕ scalability ⊕ scale ⊕ scaling ⊕ security ⊕ service-discovery ⊕ services ⊕ shutterstock ⊕ sidecar ⊕ speed ⊕ ssl ⊕ storage ⊕ streaming ⊕ synapse ⊕ tc ⊕ tcp ⊕ thrift ⊕ tls ⊕ tornado ⊕ ubuntu ⊕ uptime ⊕ via:codeslinger ⊕ via:nelson ⊕ video ⊕ vimeo ⊕ vips ⊕ voldemort ⊕ web ⊕ yelp ⊕Copy this bookmark: