After finishing studies at Faculty of Mathematics and Physics at the Charles University, he began to work as Java EE developer and architect at several Czech and international companies. Now he works at Avast a.s. and aside his main job he gives lectures of Java EE programming at the University of Economics, Prague. In the current position he is responsible for designing and developing a private cloud platform and applications build on the Java platform in AVAST Software.
The subject of the presentation deals with designing and implementing backend support (cloud) services used by the Avast antivirus software. The cloud services assist the Avast antivirus program, among other functions, in detecting suspicious activities on users' computers and makes the antivirus up-to-date. Since there are more than 160 million active clients, the resulting load in both directions is quite high and requires that the services as well as their infrastructure be designed with the focus on scalability.
During the presentation we will illustrate on examples the design and implementation of two different types of common Avast cloud services: the traditional request-response and server-push (comet) ones. We will deal with the subject from both high and low level perspectives. In the high-level view we will describe the overall architecture of the cloud and deployment of the services and databases. In the low-level view we will concentrate on using Java technologies, especially the Netty framework and Hbase no-sql database.
In the conclusion of the presentation we will suggest the best practices we have learnt during the development like, for instance, avoiding “black-box” software, abandoning JEE, flattening the design (reducing the number of layers of abstraction), detailed monitoring and using no-sql databases for persistence along with a map-reduce framework for off-line jobs.