Mar 12 2016

Managing Frontend in the Microservices Architecture

Microservices are now the mainstream approach for scalable systems architecture. There is little controversy when we are talking about designing backend services. Well-behaved backend microservice should cover one BoundedContext and communicate over the REST API. Things get complicated when we need to use microservices as building blocks for a frontend solution. How to build a consistent website or a mobile app using tens or sometimes hundreds of microservices?




Feb 8 2016

The great adventure of migrating Allegro infrastructure to new Data Center - DC5

Moving Allegro’s services and infrastructure from its main Data Center (DC) was considered a huge endeavour fraught with high risk from the very start. This particular Data Center, known as DC2, was situated in Poznań, Poland. It was our first genuine Data Center and back in 2007, when we moved in there, it was the state—of—the—art DC in Poland. For a couple of years our infrastructure was growing along with the company and the number of devices grew up to 2,000 filling 90 rack cabinets in 2014. DC was used by Allegro core sites such as allegro.pl, aukro.ua and aukro.cz as well as other Naspers-owned Polish operations like: payu.pl, olx.pl, ceneo.pl, otomoto.pl, otodom.pl. To make the story simpler, Allegro synonym is used to name them all.


Jan 8 2016

Microservices and macro mistakes

Microservices architecture has been given a lot of attention in recent years. You can find many articles defining what it is and explaining the difference between microservices and monolithic applications. Unfortunately, the dark side of the solution is rarely mentioned — such as its level of complexity and how difficult it is to design it correctly. Nevertheless, I would like to talk about my experience with microservices architecture. I hope that this article will help you avoid the mistakes I made and save time.


Dec 10 2015

Mini rant: V for Viable

Building a Minimum Viable Product (MVP) is a method of developing new products by validating hypotheses using feedback from real users as soon as possible. This is supposed to reduce risk and to ensure a good return on investment. It is most often used together with Agile development methodologies. But there’s no such thing as a free lunch and while it reduces some types of risk, MVP also introduces some risks of its own.


Nov 25 2015

Let your tests tell a story

In the team that develops Allegro Recommendation Platform we weren’t happy with our integration tests. Long setup and assertions blocks resulted in a low signal—to—noise ratio and poor readability. These tests were also full of ad hoc variables like 1, ABC, OK or NOK, which caused that it was hard to find a connection between input and output data. Moreover, any change in an API caused changes in many tests.


Nov 16 2015

Agile Teams — where to start?

Whether you are forming a new agile team or mixing people in an already existing team you start somewhat afresh. In an existing team the balance and group dynamics changes, in a new team people are experiencing each other for the first time and checking what the boundaries are. I don’t want to get into details of what can possibly happen — it’s best if you dig into works of Bruce Tuckman and his four-stage model or Gustave Le Bon’s “The Crowd”. The former indicated that the team goes through the stages of Forming - Storming - Norming - Performing. I would like to concentrate on the very initial stage of “Forming” the team in the first weeks of it’s existence.


Nov 10 2015

Real-time Web Application with Websockets and Vert.x

At Allegro, you can sell items at a fixed price (buy now) or at auction. Auctions are still a popular sales format, especially in categories such as antiques and art or clothing. So far, buyers fighting for an item had to refresh the web page in the last seconds of the auction to verify that the offer had not been overbid. This made bidding difficult and less fun. Last year real time bidding process for all mobile users was introduced. In this article I want to show how to create a simple application that provides real-time bidding, based on Allegro auctions. We will use WebSockets, SockJS and the latest, third version of Vert.x. We will create a frontend for fast bidding that communicates with a microservice written in Java 8 and based on Vert.x.




Sep 24 2015

Comparison of WebDriver-based solutions for test automation

Today, in an age of great popularity of test automation, we can observe a growing number of different frameworks which allow us to write scripts and programs that simulate human actions performed on the website under test. The most popular solution is Selenium WebDriver framework, which is compatible with the majority of common languages. Broad compatibility is a big advantage of Selenium especially in cases when we have to write some tests integrated to our application project, because no matter in which language we write the application, Selenium probably has an API for that language too. But there are also situations, like writing a standalone test suite, when we can decide which technology we’d most like to use. Taking into consideration this case, let me introduce to you a short comparison of three JDK-based technologies:


Sep 16 2015

Scrum-ban applied

This is a story about a Team working in Scrum that wanted to turn to Kanban and ended up, deliberately, working in something resembling Scrum-ban. Scrum-ban basics can be found in Wikipedia. We did not follow all of them.


Sep 8 2015

Scaling Graphite

Switching from monolith to microservices requires a very solid technical ecosystem. One of the most crucial subsystems is monitoring. But for monitoring to work, you need data to monitor. At Allegro, we decided to use Graphite as metrics storage and to build our monitoring ecosystem around tools that integrate with it.



Aug 24 2015

Introducing Slinger - deep linking library for Android

Consider you are an Android application developer. You created a mobile application for your website and you would like to enable your users to browse content of your website using a mobile app. It’s easy if a website uses RESTful guidelines for creating URLs. Problem comes when a website uses SEO friendly URLs. Handling such links is hard because regular expression mechanism in Android manifest is flawed.




Jul 27 2015

Martin Thompson and other IT Stars at Allegro

At Allegro we try to take advantage of all opportunities to learn something new and to share our knowledge with others. So far, we’ve held a number of internal conferences and meetings, and you may have seen our employees talk at JUGs and conferences such as Devoxx PL or Confitura.


Jul 9 2015

Testing server faults with Wiremock

SOA (Service Oriented Architecture) as a modern approach to build distributed enterprise applications gives us many benefits, including resiliency and fault-tolerance. On the other hand, there are many new kinds of SOA-specific faults, like publishing, discovery, composition, binding or execution faults (as stated in A Fault Taxonomy for Service-Oriented Architecture). Error handling is one of the most important things to have services right designed and implemented (see article Error Handling Considerations in SOA Analysis & Design). In this article, I want to focus only on a small aspect of this broad subject: unexpected service behaviors which, if not properly handled by the client, can lead to application inaccessibility.


Jul 2 2015

PyWaw Summit - a Python conference for everybody

Recently I had a chance to take part in the first edition of a new Python event in Poland, PyWaw Summit conference. Python has a very active community in Poland, Europe and around the globe. What sets the community apart is its accessibility and friendliness. After all, as mentioned by Marc-André Lemburg in his PyWaw Summit day one keynote, the language is a tribute to Monty Python, and is designed to be fun. The fun factor and friendliness were evident at PyWaw Summit, a conference organized by Warsaw Python User Group. Being a sysadmin in my first ever conference devoted to programming only, I felt very welcome and got a lot of very useful first hand information on the newest features, trends and techniques from Python professionals.



Jun 17 2015

Allegrotech.youth – our educational project

The pace of today’s world seems to be getting faster and faster. Trends, technologies, requirements and possibilities change in a blink of an eye. When I graduated from the Complex of Mechanical, Electrical and Electronic Schools in Toruń (ZSMEiE) 7 years ago, I knew that one day I would work on the largest projects at Allegro Group as well as I know that many others Students don’t have any vision of their future role in their own life. After almost 4 years of my career I decided to share my experience with people who face the same choice I faced 7 years ago.



Jun 1 2015

WebP at Allegro

A lot has already been written about WebP, a new image format created by Google that provides both lossy and lossless compression of images displayed on the web. However, this solution is still not popular in web development.

Prev Showing 7 of 10 Pages Next