Build resilient systems at scale
28–30 October 2015 • Amsterdam, The Netherlands

Open components as microservices in the front-end world

Matteo Figus (OpenTable)
16:10–16:50 Friday, 30/10/2015
Location: G104/105
Average rating: ***..
(3.52, 25 ratings)

Prerequisite Knowledge

Familiar with SOA practices, methodologies, techniques. Familiar with concepts of distributed software, CDN, continuous delivery. Interest in front-end agile techniques in big organisations.

Description

Writing front-end code today is very challenging, when you have to be resilient and robust in a big corporation. Working on a website that involves dozens of engineers based on three different continents, I learned that the complexity lies not only within the code itself. Allowing people to develop new features and deploy the code multiple times a day, keeping it up and running, is hard to achieve: we want small teams to be independent and not to interfere with each other, in order to be quick and happy, but we also want to optimise cooperation when it is needed.

In the front-end world components are very small units of code, providing application functionality, that are all connected in order to become a website.

During this talk I’m going to speak about how we tried to approach components at OpenTable. After breaking our monolithic back end into smaller parts, we tried to break the front end into smaller parts too, called micro-sites. Then, following SOA principles, we tried to elevate components as services, in order for engineers to be able to create and consume them via clear and well-defined contracts and interfaces. This allowed us to put in place the infrastructure to optimise testing, and to have hundreds of live changes every day without conflict. The result is OpenComponents, a framework that we recently open-sourced.

References:

http://tech.opentable.co.uk/blog/2015/02/09/dismantling-the-monolith-microsites-at-opentable/

https://github.com/opentable/oc

Photo of Matteo Figus

Matteo Figus

OpenTable

Matteo Figus is an Italian developer based in London, with more than 15 years of experience in writing code. He works at OpenTable, where he writes code, tests, deploys, and monitors it. Matteo’s main interests are node.js, C#, the open-source world, and the DevOps movement.