Reaching the Summit of Web Performance with otto.de

OpenSpeedMonitor-on white

Introduction

Performance has become critical to the success of websites, and of e-commerce sites in particular. With customers expecting web pages to load increasingly faster, they will often lose patience, especially in a purchase process, if they have to wait for too long. The key question is figuring out how long each of the various pages can be allowed to take – at maximum – to load and present relevant content in the browser.

This leads to the next question: what is the relevant page content? What are the must-have elements, and which functions have to be accessible in order for the page to catch and retain the user’s attention? At OTTO we have been engaging with these questions for a number of years, and have made some interesting discoveries during this time.

OpenSpeedMonitor-on whiteIn this process, iteratec has been assisting us in designing the concept and taking the system into practice. Our collaboration over the past two years has produced a tool for measuring the performance of websites: the OpenSpeedMonitor, which we would like to introduce here.

Logo Velocity

Uwe Beßle and Nils Kuhn from iteratec will be presenting the tool on November 18-th at the Velocity Europe Conference event. In this first part of our interview, they give us an overview of the OpenSpeedMonitor tool and a taste of their Lightning Talk in Barcelona. Read more ›

Tagged with: , , , ,
Veröffentlicht in Development, Testing

Die Lhotse Architektur und ihre Grundlagen auf der XConf in Hamburg

Am 23.09.2014 veranstaltet ThoughtWorks die XConf Hamburg – und Otto präsentiert die “Lhotse”-Architektur von otto.de unter dem Titel

Teile und Herrsche: Kleine Systeme für große Architekturen

“Personalisierte Inhalte, häufige Datenänderungen, steigende Anforderungen an das Datenvolumen und last but not least die Notwendigkeit, organisatorisch zu skalieren: Ziele dieser Art erfordern neben modernen Entwicklungsprozessen eine Abkehr von klassischen Systemarchitekturen. Im Rahmen der Neuentwicklung des Online-Shops otto.de haben wir Lösungen gefunden, die auf einer vertikal fragmentierten und daher in mehreren Dimensionen skalierbaren REST Architektur beruhen.”

Siehe auch:

Tagged with: , , ,
Veröffentlicht in Architektur, Grundlagen

Scaling with Microservices and Vertical Decomposition

The architecture of otto.de is based on the concept of vertical decomposition: the whole system is vertically split into several loosely coupled applications. Every “vertical” is responsible for a single business domain such as “Order”, “Search & Navigation”, “Product”, etc. It has its own presentation layer, persistence layer and a separate database. From the development perspective, every vertical is implemented by exactly one team and no code is shared between the different systems. We have already described the details of this architecture in an article in  OBJEKTspektrum (German), a different blog post (German) and at conferences like QCon (English).

Vertical Decomposition

Vertical Decomposition

For some time, a different approach to decompose large systems is becoming more and more popular: microservices. What are the similarities and differences of both kinds of architectures and how is it possible to get the best of both? This is what I want to discuss in this text. Read more ›

Tagged with: , , , , ,
Veröffentlicht in Architektur

The adventure continues. Day two of EuroClojure 2014.

upfront vs real world architecture

This is part two of my roundup of  EuroClojure 2014. If you missed the first part, find it here.

Day two started with the keynote by David Nolen about Invention, Innovation & ClojureScript. After some interesting discussion on the difference between invention and innovation, he talked about the history of clojurescript, a clojure implementation that does not target the jvm but javascript as a runtime environment. It was released 3 years ago and since then undergoes constant innovation. To date, the innovations come from 81 different contributors. Examples for contributed innovations are persistent immutable datastructures and source maps, which are very useful for debugging clojurescript. David introduced the basics on react.js and then of om. Om is a clojurescript library on top of react.js. It adds a key ingredient to react: Immutability. By having an immutable global application state, communication between components becomes feasible without any of those crazy interactions, that make classical user interface development so hard. As an example David  showed Goya, a pixel editor for the browser. Due to clojurescript’s persistent datastructures it features undo/redo of a virtually unlimited number of steps with little to no performance impact at all. David finished with an outlook on clojurescript 1.0. Among the goals is better code sharing between clojure and clojurescript. Read more ›

Tagged with: , , , , , , , ,
Veröffentlicht in Development, Grundlagen

#bonded2014 – the first OTTO tech conference

BrJFSVaIMAAUCGS

“To code or not be” - Johannes Mainusch

“Projects only become successful the moment you commit yourself” – Ali Jelveh

“The value of a Software Architect is inversible proportional to the number of decisions he makes” – Erik Dörnenburg

Those are some, by far not all, quotes from the first OTTO tech conference. Read more ›

Tagged with: , , , , , , , ,
Veröffentlicht in Grundlagen

My Kraków adventure. Day one of EuroClojure 2014.

multi-armed-bandit optimisation strategies
view from the conference center

The beautiful view from the conference centre.

Last week I attended the EuroClojure conference 2014. It was a truly fantastic conference in the beautiful city of Kraków. While the big conferences in the US attract thousands of participants, this one was rather cosy with some 300 participants. As a very good side effect of this, the conference was single tracked. So I missed none of the great talks.

If you do not know clojure by now, let me start with a very short primer: Clojure is a modern, functional programming language targeting the java virtual machine. It is a lisp dialect, designed for concurrency, performance and code that is easy to understand and thus easy to reason about. One of the most outstanding features of clojure is its immutable, persistent datastructures directly built into the language. With clojurescript there also exists a version of clojure targeting javascript rather than the jvm as a runtime. Read more ›

Tagged with: , , , , , ,
Veröffentlicht in Development, Grundlagen

Null Toleranz für Fehler – Neuer Artikel im OBJEKTspektrum über Qualität auf otto.de

abb6_ampel_gruen.svg

Null Toleranz für Fehler: Wie wir auf otto.de die Qualität hoch halten
von Robert Breetzmann, Stephan Kraus und Christian Stamm

Wie schafft man dutzende Live-Deployments pro Woche auf einer der größten E-Commerce-Plattformen in Europa? Um permanent neue Features und Korrekturen ausliefern zu können, wird eine wesentliche Ingredienz benötigt: automatisierte Qualität. Mit unserer Geschichte eines Bugs verfolgen wir in diesem Artikel eine konkrete Fehlerbehebung auf otto.de und geben praktische Tipps für Qualität in der agilen Softwareentwicklung.

In der Ausgabe Juli/August 2014 des OBJEKTspektrum haben wir zum Schwerpunktthema “Qualität” einen Artikel veröffentlicht, in dem wir beschreiben, wie wir die Softwarequalität auf otto.de dauerhaft hoch halten und somit in der Lage sind, schnell Veränderungen auf der Plattform in Produktion zu bringen. Read more ›

Tagged with: ,
Veröffentlicht in Development, Testing

Hybrid Apps – Das Beste von Web- und Native Code

otto-ipad-app

Es hat bereits viele Diskussionen über die Vor- und Nachteile von Mobile Web und nativen Apps gegeben. OTTO selbst hat die iPad App hybrid entwickelt. In diesen Beitrag werden wir mehr auf die Vorteile beider Technologien eingehen und nennen Beispiele, wie man diese elegant kombinieren kann. Wir gehen weniger auf eine triviale Pro- und Contra Liste ein, welche bereits genügend im Netz zu finden sind. Wir werden erklären, warum wir uns für die hybride Lösung entschieden haben und weswegen wir keine Cross-Frameworks empfehlen. Read more ›

Tagged with: , , , ,
Veröffentlicht in Architektur, Development, Grundlagen

BedCon 2014 – wir waren dabei

Peng

Ich war am 03. & 04.04.2014 in Berlin auf der BED-CON mit einem Talk über unsere Erfahrungen im Projekt LHOTSE aus Sicht von Operations vertreten. Die Konferenz fand auf dem Gelände der Freien Universität Berlin statt – ein sehr schönes Campusflair war also dabei. Die Talks waren Java & entwicklungslastig und passten daher sehr gut zu OTTO und unserem Shop. Hier mein persönlicher Konferenzbericht. Weiterlesen…

Tagged with: , , , ,
Veröffentlicht in Operations

BDD an der Uni Kiel

BDD - Entwicklung

Ein Team, welches nach BDD zusammenarbeit. Im Handout findet sich eine ausführlichere Beschreibung.

Am Dienstag war ich an der Uni Kiel zu Gast. Dort habe ich einen Gastvortrag über Behaviour Driven Development (BDD) gehalten. Mein kleines Handout dazu kann man sich hier als pdf herunterladen (und bei Bedarf auf 16 DIN-A5 Seiten ausdrucken).

Die Studenten, größtenteils erst im 3. Semester, starten gerade in ein 4-wöchiges Vollzeitpraktikum unter Leitung von Prof. Hasselbring. Dabei entwickeln sie eine Web-Applikation komplett mit Android Clients. Diese soll im Universitätsklinikum Schleswig-Holstein die Überwachung von Antibiotikagaben unterstützen. Ärzte und Pharmazeuten sollen damit wichtige Daten vor Ort erfassen können und dabei ganz erheblich von mühseliger Papierarbeit entlastet werden.

Ein spannendes und anspruchsvolles Projekt. Auf die Ergebnisse bin ich sehr gespannt und hoffe natürlich, dass ich einen kleinen Beitrag zu einer agilen Spezifikation und Implementierung leisten konnte.

Tagged with: , ,
Veröffentlicht in Development
Folgen

Erhalte jeden neuen Beitrag in deinen Posteingang.