Blake Dournaee covers the often forgotten back-end architecture for mobile apps which should expose cross-platform APIs to mitigate some of the effects of mobile O/S fragmentation.
Garrett Smith discusses building reliable systems starting with lessons from Erlang, then outlining a set of principles and the practices for applying these principles in languages such as Ruby, Python, and Java.
Stephen Burton discusses how the people, processes, collaboration and tools employed in Formula 1 can be used to manage performance and reliability and ultimately achieve success by DevOps.
Michael Nygard shares essential Reliability Engineering techniques that can keep systems from falling apart, but the discipline has some limitations to be considered.
Blake Mizerany presents various ways that can lead to system failure in distributed systems and how to recover using Doozer, a highly available, consistent data store.
Steve Vinoski explains how to avoid some of the Erlang errors that can bring down a system starting from the premise that not all the crashes are welcome as the “Let It Crash” philosophy might suggest.
Arnon Rotem-Gal-Oz discusses creating a SOA implementation that maintains a good overall reliability in spite of using smaller and a larger number of components.
Rolf Russell & Andy Duncan discuss how to have rapid and reliable releases from the perspective of build, release, and devops, considering the relationship between the teams involved, the metrics needed to measure the performance achieved, the required skills, and the need to remove waste and bottlenecks.
Joe Armstrong explains through Erlang examples that message passage concurrency represents the foundation of scalable fault-tolerant systems. Some of his presentation’s nuggets are: using the wrong abstractions makes life artificially difficult; it’s not about objects, it’s about messages; no shared memory; messages enforce isolation if communication is asynchronous; it’s all about protocols.
In this presentation from QCon London 2009, Steve Vinoski discusses what RPC means, the origin and history of RPC, RFC 707, the origins of Distributed Computing Environment (DCE), the growth of the Internet, standardization, distributed objects, CORBA, DCOM, Java, SOAP, WS-*, the fundamental flaws in RPC, REST properties and constraints, REST vs RPC philosophy, Erlang reliability and concurrency.
Joe Armstrong presents 6 laws to obey in order to obtain high system reliability, Isolation, Concurrency, Failure Detection, Fault Identification, Live Code Upgrade, and Stable Storage, showing how they are respected in Erlang and followed by some examples from practice.