Hello.
We are the Targetix development group, and we are developing everything related to automated advertising procurement systems on the Internet. At once I will make a reservation that the article is an introductory, let's go over the tops, and detailed analysis of individual moments to be continued ...

Once, back in 2010, everything started with contextual targeting and OpenX, now we have a complete family of independently developed technologies.
The framework of our
DSP (advertising purchase platform) is written in C # .NET. Yes, we love to debate about the meaning of writing such a complex platform on a wine system, but we love windows. First, we raised the boxed IIS server and worked with it. Time went linearly, loads grew exponentially, Katana Framework was implemented to speed up work, but they also abandoned it in favor of a self-written web server, which according to benchmarks gave an increase in productivity by 2 orders of magnitude. Now the DSP response time is less than 10 milliseconds, with a load of 7000 requests per second per server.
SSP (platform for web publishers). It serves to display advertising on partner sites and interacts with our and third-party DSP. It also uses C # .NET and the Windows platform, but there are already the first attempts to move to Linux (by haters). This became possible with the release of the new version of ASP.NET 5 (with the new cross-platform .NET).
')
DMP (data processing platform) was born in the merger of big data, fashion technologies, the desire to do something serious and lazy. Here, Python and Java are trying to snatch from each other Apache Spark cluster resources. Python - because it is the main language for working with data (hello R). Java - because it is native for Spark and simple for C # developers.
Here we tweaked the MongoDB source code for our purposes. Suffered Moved to Couchbase. Spat. Now settled on Aerospike (more like the main DSP base with the prepared data) and HBase. Raised Solr, Kafka, Hive, Flume for data processing for all occasions. Happy
Everything was divided into 3 clusters: web-page analyst, processing first-party data and a huge cluster of processing and research logs. It would seem that the technologies are already rather big, and there was a catastrophic lack of information, especially Russian-speaking, here we are happy to share with you a lot of bumps and abrasions.
There are two
TradingDesk'a - Targetix Studio and Hybrid. By the way, in
Hybrid you can run your advertisement with a budget of just 500r, and they will give you another 1.4K trial money (our managers asked me to write this). And Targetix Studio serves as a large advertising agency, has a huge number of settings and an individual consultant for large companies.
The basis here is still C #, but there is more a patrimony of our front-end gurus. We decided to develop the front end of user applications in a one-page application format. Since there are a huge number of js-frameworks and libraries that can satisfy any fantasy, we decided not to reinvent the wheel and use some of them. During the
booze search and selection of development tools were selected:
- knockout.js - implements the MVVM-pattern framework with a simple and understandable declarative binding of events to elements, which does not impose restrictions on the design of the application architecture;
- require.js - for simple and convenient connection of modules;
- routie.js - for organizing routing by sections of a one-page application;
- underscore.js - convenient work with data;
- jquery.js is a library that needs no introduction.
At the end of the way, they wanted to get a product that is flexible and scalable with well-structured code (for the code of such projects has an unpleasant feature to grow).
The application is developed by a separate project from the backend, the interaction with which is carried out through an API that implements the output of the required data in JSON format.
Our experience is not limited to the software level. We are a young company and our bumps stuffed themselves. We are not in the metropolis, but in the glorious city of Tambov, away from the bustle of the capital. They themselves were able to organize a school where they taught wonderful guys who are now part of our team. We organize
conferences to share knowledge and best practices in our field of activity. We try the most different methods of development, because we are young and we are
interested in working.
Gallop across Europe turned out, we will continue to share our experience in more detail and point by point. See you in the next article.