On Monoliths and Microservices

When we began the development of our new Online Shop otto.de, we chose a distributed, vertical-style architecture at an early stage of the process. Our experience with our previous system showed us that a monolithic architecture does not satisfy the constantly emerging requirements. Growing volumes of data, increasing loads and the need to scale the organization, all of these forced us to rethink our approach.

Therefore, this article will describe the solution that we chose, and explain the reasons behind our choice.

Read more ›

Tagged with: ,
Veröffentlicht in Architektur, Development

The Do’s and Dont’s of bringing Commercial E-Commerce Software to Otto.de

In this blog you will find a lot of information on how we implement code for our shop in the best way. But in some cases we also buy commercial standard software, for instance for components which give us a faster time to market or which cannot be implemented by us in a better or more cost effective way.

Another reason to buy software is data exchange with external systems using standard interfaces when there are products on the market which have already implemented those interfaces.

Additionally, we want to improve experience in using software as a service (SAAS).

In the past months some of my team members and me had several workshops with different vendors to find commercial software components for some parts of our ecommerce platform. Independently from concrete products and vendors, we made some good and some not so good experiences in presentations held by vendors to help us find what we need. And that is what we want to share in this article.

So, read this carefully if you are a software vendor 😉

Read more ›

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

Microservices: CI with LambdaCD – Current architecture and vision for the future (3/3)

Abstract

In the last two months, we started our journey towards a new microservices architecture. Among other things, we found that our existing CD tools were not ready to scale with new requirements. So we tried a new approach, defining our pipelines in code using LambdaCD. In combination with a Mesos cluster we can deploy new applications after a few minutes to see how they fit into our architecture by running tests against existing services.

Part 1: The underlying infrastructure
Part 2: Microservices and continuous integration
Part 3: Current architecture and vision for the future

Read more ›

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

Microservices: CI with LambdaCD – Microservices and continuous integration with LambdaCD (2/3)

Abstract

In the last two months, we started our journey towards a new microservices architecture. Among other things, we found that our existing CD tools were not ready to scale with new requirements. So we tried a new approach, defining our pipelines in code using LambdaCD. In combination with a Mesos cluster we can deploy new applications after a few minutes to see how they fit into our architecture by running tests against existing services.

Part 1: The underlying infrastructure
Part 2: Microservices and continuous integration
Part 3: Current architecture and vision for the future

In this part of my article I want to explain how we define microservices and why we think they are the best choice for our applications. Furthermore I will give you a brief introduction outlining which problems we have with common CI tools and how we want to solve them with LambdaCD.

Read more ›

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

A tale of two lambdas: The joys of working in a polyglot team.

technologies in our lambda architecture

A little more than a year ago, things at work were completely different for me than they are now. I was a Java programmer working on a big, monolithic piece of software. There was also some JavaScript for frontend and MongoDB, some Groovy for scripting Gradle and the occasional Bash script, but if you had called me a 100% Java programmer, I would not have objected. Don’t get me wrong, I enjoyed my job and I always loved to work with Java but as you may relate to, after years of hacking Java, I was a little tired of it. As you may also relate to, I had little hope for the situation to change significantly anytime soon. As it turned out, I was wrong about that. Hugely wrong.

Read more ›

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

Von Monolithen und Microservices

Als wir 2011 mit der Neuentwicklung unseres Online-Shops otto.de starteten, wählten wir frühzeitig eine verteilte, vertikal geschnittene Architektur. Erfahrungen mit unserem Altsystem zeigten uns, dass eine monolithische Architektur den stetig wachsenden Anforderungen nicht gewachsen ist: Steigendes Datenvolumen, immer höhere Last und die Notwendigkeit, auch organisatorisch skalieren zu können, erforderten ein Umdenken.

Welche Lösungen wir gewählt haben – und warum – darum geht es in dem Artikel „Von Monolithen und Microservices“, der gerade bei informatik-aktuell.de erschienen ist:

English translation is now available here: https://dev.otto.de/2015/09/30/on-monoliths-and-microservices/

Andere Artikel zum Thema:

Tagged with: , ,
Veröffentlicht in Architektur

Microservices: CI with LambdaCD – The underlying infrastructure (1/3)

Abstract

In the last two months, we started our journey towards a new microservices architecture. Among other things, we found that our existing CD tools were not ready to scale with those new requirements. So we tried a new approach, defining our pipelines in code using LambdaCD. In combination with a Mesos cluster we can deploy new applications after a few minutes to see how they fit into our architecture by running tests against existing services.

Part 1: The underlying infrastructure
Part 2: Microservices and continuous integration
Part 3: Current architecture and vision for the future Read more ›

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

Das OTTO IT-Bootcamp: Ein Kampf gegen mangelnde Berufsschulbildung

Als ich im August 2012 meine Ausbildung zum Fachinformatiker bei OTTO begann, startete ich hoch motiviert und mit ebenso hohen Erwartungen in die Ausbildung. Doch durch eine Berufsschule, welche außer Unterrichtsausfall, festgefahrenen Lehrern und einem Rahmenlehrplan von 1997 nichts zu bieten hat, ließ das Motivationstief leider nicht lange auf sich warten.

Damit stellte ich keinen Einzelfall dar, was folgende Fragen aufruft: Wie kompensiert man die Wissenskluft zwischen veraltetem Rahmenlehrplan und einer sich immer schneller entwickelten IT-Welt? Wie kann man das Potential einer E-driven-Company nutzen um zukünftigen IT-Azubis eine individuelle, verantwortungsvolle und zeitgemäße Ausbildung zu bieten? Read more ›

Tagged with: , , ,
Veröffentlicht in Grundlagen

Varnish Developer Day 15Q1 Loft 6

On March 6th, we hosted the Varnish Developer Day VDD at our Loft 6. We are proud to give the community a place to meet and to support the open source project Varnish.

Why do we do this?
Varnish is one of the main software products we have integrated into otto.de to make our shop fast and to achieve our business goals. Keeping in mind that we have a ’shared nothing‘ software architecture, we need at least one central system where everything comes together. How should each of our independent applications receive HTTP requests? A reverse proxy fulfills this role naturally.

Read more ›

Tagged with:
Veröffentlicht in Operations

Tutorium – Mario Kart

Hallo liebe Technikfreunde!

Im folgenden Beitrag wollen wir euch einen kleinen Einblick in das Tutorium „Lego Mindstorms: Mario Kart“ geben, welches im Rahmen der Ausbildung zum Fachinformatiker für die Jahrgänge 2012/13 an den Start ging.

Wer arbeitet daran, welche Technik kommt zum Einsatz und was ist eigentlich das Ziel des Ganzen? Mehr dazu jetzt! Read more ›

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