Haskell is often seen as an powerful and interesting language — but one which isn’t really designed for the masses, and certainly not for large-scale business applications. And yet, it turns out that Facebook, one of the largest Web sites in the world, has been using Haskell for certain tasks. This means that they not only had to train developers to use Haskell, but also to scale Haskell programs up in ways that had never been done before. In this talk, Jon Coens describes what he and his team and Facebook did in order to accomplish this task, giving us insights into the Haskell language, team organization, and the ways in which such technologies might gain acceptance in the broader business world.
What can you do with lots of computers? Cloud computing allows us to scale up (and down) very quickly, but how do we do that? And what do we do with such scale when we can? Well, worry no longer, because Aja Hammerly has come up with many ideas for what you can do with large numbers of computers. Between playing games, solving problems, and building huge regular expressions, this talk is fun and interesting, and shows what you can do with some Ruby, lots of computers, and a playful imagination.
How do you deploy your services? A decade ago, the assumption was that you were deploying your application to each of a number of servers, and that you would update the software on each server as you released new versions. But today, a growing number of organizations are making use of containers and virtual machines to deploy in a totally different way, using immutable servers that are deployed a single time. Why have so many companies started to adopt this model, what are the advantages, and (just as importantly) what are the disadvantages? What considerations should you have in mind when you switch to a set of immutable containers? In this talk, John Willis describes the thinking behind immutability, and what you should keep in mind if and when you switch to that approach.
For several years now, PostgreSQL has supported streaming replication. The idea, simply put, is that a master database streams database changes to one or more slave machines. The slave machines then replay those changes, providing us with identical PostgreSQL machines that can be queried in read-only mode. But the setup of such slaves can be a bit complex, and the streaming describes the precise changes that occurred in the database, rather than a logical description of those changes. Logical decoding is a new feature in PostgreSQL that opens to door to better streaming replication, and also to new applications that can take advantage of these logical descriptions. In this talk, Alvaro Hernandez describes the motivation behind logical decoding, the ways in which you can implement it, and ways in which you might want to take advantage of it — for replication, but beyond it, as well.
PostgreSQL is a popular open-source database. But can it handle large-scale applications? In particular, can it scale up to handle large Web applications, with millions of users and many billions of dollars at stake? The answer is “yes,” but that just raises the question of “how,” and what techniques can (and should) be used to scale it up in this way. In this talk, Sean Chittenden describes the aspects of scaling, and some of the different ways and layers that can fail. He then describes how Groupon has tried to reduce the risk of failure, and how they have used PostgreSQL in this context, and the ways that you can tune context appropriately (and inappropriately) to scale it up.
How does Uber store its data? Uber uses MySQL, a popular open-source relational database. But it also uses a NoSQL system known as “schemaless,” which is an append-only system that takes a functional approach to data. How does this work, and how did Uber come to decide on it for their storage needs? How does this system scale at a company that’s growing at such a phenomenal rate? And what does the future hold for Uber’s “schemaless” system? In this talk, Rene Schmidt addresses all of these questions and issues, describing the types of messages that Uber sends and stores, and the ways in which schemaless has helped them succeed as a company.