• Redis Sentinel failover with no downtime. The hard way.
    by Rhommel Lamas 18 Jun 2014

    Redis Sentinel is a system built to manage Redis instances providing monitoring, notification, automatic failover, and configuration provider.

  • If git --patch is not solving your problems you're not using it enough.
    by Raimon Grau 28 Mar 2014

    How git -p lets you slice and dice your commits

  • Hands on with the New NGINX Plus.
    by Rhommel Lamas 23 Aug 2013

    Nginx released NGINX Plus with more functionalities, dynamic configurations, upstream health checks, new monitoring options and syslog agregation.

  • Performance variance between AWS zones
    by Josep M. Pujol 19 Aug 2013

    Choosing between amazon availability zones on EC2 can have an effect on performance, we share some figures from our monitors that show that -- for our backend -- there is a difference on performance across zones due to network. Note that our ordering cannot be extrapolated to other systems, but some order can also exist in your system too. All [zones] are equal but some are more equal than others.

  • Extending REST APIs with API Aggregator
    by Josep M. Pujol 18 Apr 2013

    REST APIs are too chatty for their own good. This problem is critical on mobile apps due to the large latency of wireless networks. We present a demo of a mobile app consuming a REST API, this app uses API Aggregator to reduce its page load times by a factor of three. API Aggregator is a system that combines lua and nginx to have a sandbox environment where you can safely run user generated scripts that do API aggregation. Stored procedures anyone? This is the API "version" of them.

  • Teaching GDB and Ruby to play nice together
    by Michal Cichra 09 Apr 2013

    Story about how how painful can be debugging Ruby processes with gdb and how to fix it.

  • Augmenting APIs with Nginx and Lua.
    by Raimon Grau 09 Jan 2013

    The Nginx + Lua combo is an amazing framework to augment the capabilities of an API. We would like to share our enthusiasm by showing how trivial is to create mashups to aggregate data from different API methods, to do data transformation like JSON to XML and to create new API method definitions. The flexibility and power of the Nginx and Lua will hook you up, we are a living proof of it.

  • Having fun with Redis Replication between Amazon and Rackspace.
    by Josep M. Pujol 25 Jul 2012

    This is the story of the latest and biggest issue that we have had with Redis. 3scale has a three layer fail-over on different data-centers (Amazon and Rackspace). Turns out that if your Redis write throughput is above 20 Mbps you better watch out or your master will silently crash due to an out of memory. Redis fault? Nope, a simple network I/O bottleneck that was quite a pain to track down. The solution? Compression. Clean, simple and it will save you some (hundreds) of bucks on your Amazon bill.

  • IRC Driven Development II
    by Michal 29 Jun 2012

    aka November Brain. Do you know how to write a self-deploying daemon? How to integrate your CI with GitHub? No? Well, we already do.

  • Enabling IPv6 on Amazon EC2
    by Tiago Macedo 29 Jun 2012

    In preparation for the World IPv6 Launch Day we decided that we should try and make all portals powered by 3scale available over IPv6 using our current Amazon Web Services infrastructure.

  • Mining gems in Emacs
    by Jakub Hozak 22 Jun 2012

    Once (or twice) upon a time you just have to look at the source code of a gem. Maybe you remember where your gems are located. Maybe you use RVM or Bundler to help you find them. But we all know that your mojo will grow like potatoes if you do it directly in your editor (read 'Emacs').

  • IRC Driven Development
    by Michal 06 Jun 2012

    Inspired by Github’s Hubot and fueled by Cinch and Ruby, we’ve slowly changed our IRC from a communication channel to a public and remote REPL device designed to do the boring and tedious tasks: searching for test failures, issuing pull requests, or filing new bugs. If you are interested, read on.