Mitap JavaJam. Javista dispute, log rafting, experiments and microservices

Java developers are cool.

The front-tenders praise them and adopt useful tools , designers bring with special love models, and testers rejoice because everything is automated and life is sugar (but we haven’t told about this yet).

Sometimes we hold java-mitapes for them - we collect experts and ask them to tell something more closely. So this time - colleagues from Sberbank, Odnoklassniki, Yandex and Yandex.Money came to JavaJam and immediately posted a bunch of details about their work.

image

Under the cut:

- The main thing about logging Java applications using examples from Yandex;
- Development of a tool on Low-code for UFS Sberbank;
- Automation of experiments in Odnoklassniki with the help of Kotlin DSL;
- As in Yandex. Money, we made one platform for microservices instead of seven.

And there is a survey about whether it is appropriate to call java-developers javistami.



When the word game comes to a new level

About timecodes
In the descriptions of all videos on YouTube, just in case, there are also built-in time codes with interesting moments, if you are used to watching videos right there.

Guide to rafting on logs (Vladimir Krasilshchik, Yandex)


Important concepts and pitfalls of logging Java applications using examples from the Yandex developer. We will talk about the main concepts in logging Java applications, without which no developer can survive.

I will give examples of unexpected application behavior due to the intricacies of logging from my own practice, and you will learn how to make life with logs easier and more fun - as much as possible. The purpose of the speech is to share practices that will allow you to forget about logging and do some really interesting things.

Internals and timecodes
1:20 - Why don't I see logs?
7:04 - About Logger, Appender and their connection
13:40 - Universal Software Architectural Chart (DCP)
15:14 - Bazzvords from the modern world of Java-logging
20:13 - Trouble 1 - Multiple binding
21:46 - Trouble 2 - log4j or JUL without an adapter
25:09 - “Swiss” file logger appender
29:57 - Trouble 3 - GWT
31:16 - Trouble 4 - Hibernate 4.X.X +
34:06 - Trouble 5 - Temporary non-determinism
37:07 - API Development
40:50 - Logging in microservices and cluster
44:13 - How it is done in Yandex.Market
50:36 - About security in logging
55:08 - How to forget about the logs and start living?



Model-Driven DevOps (Denis Vasin, Sberbank)


You are probably familiar with DevOps culture, which brings together specialists in development and information technology services (Developement and Operations). But few have heard of the Low-code platform - it turns participants in related projects into Citizen Developers.

In the report I will talk about the development of a tool for Sberbank's Low-code for UFS (Unified Front System). And answer the questions that usually arise from MDE-managers. For example, how to manage versions of models, split generated and handwritten code, or integrate your own tool into standard DevOps infrastructure.

Internals and timecodes
01:05 - Life time of a financial product earlier and now
04:24 - Sberbank invented its Low-Code in a "single frontal system"
12:16 - Low-code birth injuries
15:53 ​​- Joint work in corporate infrastructure
25:34 - How to connect the manual code?
28:28 - Enterprise Deployment Architecture
30:19 - Quality control functionality
33:45 - Pipeline Integration
36:13 - Moving from DevOps to Model Driven DevOps



Automation of experiments using Kotlin DSL (Alexander Tarasov, Odnoklassniki)


In a large project, you cannot simply take and make a feature available to all clients. For a smooth start, we conduct experiments that require manual changes — and often this leads to time costs and errors. To get rid of them, we decided to automate the preparation and launch of experiments.

In the report, I will tell you why we wrote custom DSL and how Kotlin helped make it compact and convenient. And also about what problems need to be solved, so that everything works, as you planned.

Internals and timecodes
01:47 - What is an experiment?
04:23 - You can't just take a feature and roll it out.
05:23 - Experiments are needed because ...
07:38 - Problems with experiments
09:00 - Launch of the experiment
10:39 - Solution Concept
11:25 - Demo
15:04 - What to write DSL
16:46 - And where is Kotlin and what else should DSL be written on?
21:22 - DSL Guts
23:46 - How to ensure safety
24:38 - DSL Optimization
29:31 - Kotlin Script
31:31 - And his problems
34:45 - Conclusions + another demo
38:29 - Results and what to read on the topic



Unified microservice platform Yandex.Money (Vasily Sozykin, Yandex.Money)


In Yandex.Money, we have been building microservice architecture for six years - we split up monoliths into small services and implement new functionalities as separate components.

Three years ago, we had seven proprietary platforms — four for Java and three for the JavaScript stack. It was expensive and difficult to accompany all this, but there was no need to talk about automation. We are tired of this life and have created a single platform for Java services based on the Spring Boot stack.

Today we have only two platforms, and for them the development tools have written so many automation tools that the process of testing releases and putting them into production is completely automated. There are almost no holivars on pullrequests now, so you can quickly start developing in any of more than 60 components.

In the report, I will tell you how we improved the testing process, covered most of the components with tests at least 80% and how we managed to achieve all of this.

Internals and timecodes
00:12 - How not to chase a bunch of languages ​​and platforms
01:02 - What has changed in Yandex.Money for three years?
03:51 - At first there were two platforms
05:29 - +1 platform and 10 services (everything got worse)
08:32 - Microservice support patterns
08:44 - Unified Build Instruments
12:11 - CI / CD as a code
15:06 - Busines-free common libraries
18:37 - Component testing
22:56 - Versioning test coverage limits
25:13 - Unified microservice platform
28:40 - 20 minutes from merge to production



And we here with the guys from the frontend argued whether java-developers are offended, if you call them javistami. The guys say it’s okay, but I doubt it, even though it’s not a javist itself.

Source: https://habr.com/ru/post/414431/


All Articles