If you hadn’t seen (and you might not have, it was a developer kind of
thing after all) there was a big uproar caused by the removal of 11 lines of
thousands of other projects and basically broke them all. Because those
projects not only relied on that code, but relied on code stored in an online
Now before we go further, I have to say that despite the millions (yes,
repositories, this is one of the first incidences of something like this
happening. And there’s a lot more to this story than just the
ramifications. But as I’m not a lawyer (and don’t play one on the
Internet nor did I stay at a Holiday Inn Express last night) I’m just goin... (more)
Remember when you were in school, learning math, and you learned about the
importance of the order of operations? You do? Okay, good. Pop quiz:
1 + 1 * 8 = ?
The answer is 9, not 16. Why? Because multiplication has precedence. If you
want to get to 16 with those numbers, we’ll need to add some parentheses:
(1+1) * 8 = 16
Because parentheses have precedence over everything else.
Okay, enough math for today. The point of this little exercise was simply to
emphasize that order matters. And not just in math, but in just about
anything that involves a series of steps. Like operations.
It is an unwritten rule that web/app servers should never, ever pushed to
Ignoring this unwritten rule will invariably result in the phenomenon we’ll
call “up for thee but not for me”, which is simply the situation in which
a web site or app responds to the guy in the next cube – but not for you.
This usually occurs because the connection limit of the resources serving
that app have been reached. The guy in the next cube already managed to get a
connection before resources ran dry and thus he’s actually part of the
problem. He’s got an open connection (or f... (more)
Over the years I've shared a lot of posts on using programmability in the
network to do, well, a lot of different things. Like implement A/B testing,
and Canary deployments, and proxying requests for memcached. All these
patterns can be and are implemented by proxies that offer a platform for
taking advantage of data path programmability.
One ingredient in the secret sauce that is data path programmability (a.k.a.
programmability in the network) is the ability to match data. Usually that
data is the URI, but sometimes it's a cookie or the user-agent or even data
in the payload. ... (more)
Proxies are one of the more interesting (in my no-doubt biased opinion)
“devices” in the network. They’re the basis for caching, load
balancing, app security, and even app acceleration services. They’re also a
bridge between dev and ops and the network, being commonplace to all three
groups and environments in most data center architectures.
But not all proxies are built on the same architectural principles, which
means not all proxies are created equal. A large number of proxies are
half-proxies while others are full-proxies, and the differences between them
are what mean the d... (more)