📜 ⬆️ ⬇️

Performance in all senses: how did DotNext 2017 Moscow go



Last year, the DotNext conference was held in Moscow one day, and this was a two-day one. Now that the next Moscow DotNext is over, and the viewers have sent their feedback, it's time to look back: how did it go, and what went into the increased timing? Details under the cut, and for the seed we say that the word "performance" turned out to be relevant in both meanings: both "performance" and "artistic performance".

The first speaker of the first day was Andrey DreamWalker Akinshin (JetBrains), whom DotNext viewers are no longer required to submit: his reports each time receive excellent marks. But if on the previous Moscow DotNext he talked about such a “common” topic as arithmetic operations, now about “close to production”: performance testing. It is not enough just to check the performance once - what to do, so that with each new release you can be sure that it will not suddenly drop? Many people choose the option “nothing”, but they scolded them in the performance in passing.


')
It is clear that for Andrew himself this topic is relevant in connection with his work on Rider, and, talking about possible problems, he referred to the experience of the project: “when switching from Mono 4.9 to Mono 5.2, a number of our tests began to suddenly fly out by timeout. What to do? Speak, increase the timeout? Stay on the old version of Mono? No, these are all bad options. ” And I also took ways to cope with problems from my own practice: “we have merge robots, which automatically run tests with every merge, and if they do not pass, then nothing will disappear”.



The word “performance” on the first day could be heard from other speakers - for example, from Karel Zikmund (Microsoft) it was contained directly in the title of the report “.NET Core Networking stack and Performance”. But attention to performance does not mean that there was nothing more to listen to. For example, Dmitry Soshnikov (Microsoft) turned out to be one of the favorites of the public: he had previously told about DotNext about the AI ​​solutions from Microsoft, but then they were focused primarily on Python, and now they were more suitable for .NET developers, so his new report on artificial intelligence was very warmly received.

Anatoly Kulakov , like Andrei Akinshin, decried the approach when they simply write working code and are not interested in its further fate - in his opinion, developers need to understand what happens in production later, and the report was devoted to collecting and presenting various metrics. From it it was possible, in particular, to learn interesting details about the time series databases, storing everything with reference to time. Since such databases are heard less often than about relational or graphical ones, it is easy to ignore them, considering the trend graphs - here they are supposedly growing actively. But Anatoly drew the attention of the audience to the fact that, in fact, just the time series is far ahead in terms of growth rates. Of course, this does not say anything about absolute numbers (it is easy to grow quickly when you are small), but it gives a reason to take a closer look.



When you start to collect and store a lot of data, the question of volume arises - and among other things, Anatoly showed how impressively in a time series database they squeeze information like “timestamp / tags / fields”. For timestamps, you can not save the full time each time, but to specify the delta with the previous measurement - this saves space. And if you take readings at regular intervals, this difference turns out to be the same, and then the second order delta is more useful: it becomes zero at all. Thanks to this, everything on Facebook found that 96% of their timestamps are being compressed to a single bit. With tags, too, there is much to make room for: when the number of possible combinations is not astronomical, you can encode each of them and specify only the code. Well, what about the fixed values ​​themselves, which are much more unpredictable? Practice has shown that even here it is much more economical to store instead of the full value of its XOR with the previous one.

Vagif Abilov talked about Akka Streams - for example, about how “backpressure” (backpressure) helps data flow at the right speed, using both a pull and push approach. The most surprising moment for many turned out to be the ending of the report, when Vagif “to consolidate what had been traversed” performed the composition of his own composition “Akka Stream Rap” (there also could not do without “using backpressure to cope with the increasing tempo of the song”). The viewers reacted to this in the spirit of "now I have seen everything, it remains only to read the source code. NET Core under the" kostok ".



But in fact, at that moment, the audience saw far from everything: this performance was just a warm-up. After all the reports of the first day were over, it came to a party, and a larger show began. In addition to Vagif, another musical speaker was present on DotNext - Englishman Dylan Beatty , who likes to remake rock hits into songs about development. An idea of ​​his work can be obtained from this parody of Pink Floyd "Another Brick in the Wall (Part 2)":



Dylan carries a compact guitar with him at the conference, and Vagif plays keyboards, so they decided to combine their efforts and have a joint performance, performing a number of Dylan's parodies, and the same Akka Stream Rap by Vagif. Those present got a lot of pleasure: the same Karel Zikmund wrote a whole series of tweets in the course of the action, which became more and more admired, and later on YouTube under “Enterprise Waterfall” there appeared a comment “we decided to hang with the team leader in the office with quotes from this song” .



When the parodies were over, they just went over to cover versions, but even here Dylan surprised many, especially for DotNext, by learning the Russian chorus “Songs for the radio” Noize MC. In general, the party was a success.



The second day also began with one of the favorite speakers of the DotNext audience: Sasha Goldstein talked about debugging and profiling of .NET Core applications under Linux. And the phrase from the beginning of the report speaks well about the level of his immersion in the topic: “Some of what I’m showing now rests on scripts written by me, but I hope that official support will appear in the future.” When the speaker is dissatisfied with what the vendor provides (“Microsoft suggests creating a file mytrace.zip under Linux, and then copying it to a Windows machine and opening it with PerfView — but we may not even have Windows at hand”), and he himself has not yet implemented, it is worth a lot.



Due to the fact that the situation with Linux-tools in the .NET-world still leaves much to be desired, earlier in connection with Linux, Sasha drew attention to Java and even spoke at our JPoint conference. It's funny that the speaker with the opposite situation turned out to be in the same time slot on DotNext: Javista have known Yegor Bugaenko for a long time, and here he tried himself for the first time before the dotnetchiki.



Egor is known for the fact that when he appears, everything starts to seethe: some violently object to his radical ideas, others agree, and still others say "I do not agree, but there is reason to think." On DotNext, he talked about TDD (this topic is not tied tightly to a specific stack) - and the same thing happened here. The position “why write tests when bugs have not yet made themselves known” burned more than one spectator chair. Here is an exponential detail: when, after the conference, viewers sent feedback on the reports, in the case of Yegor, one of the reviews was not a standard short reply, but an objection to three thousand signs . It is not surprising that in the discussion area, where each speaker would go after his report, Yegor also heard a lot of counterarguments from the audience. By the way, these zones are generally loved by DotNext speakers:


Despite Yegor's “holivarism”, Federico Luis became the champion of the time spent in the discussion area. And although in his report he brought everyone back to the topic of performance (“Patterns for high-performance C #”), the seriousness of the topic did not prevent him from winning our hearts with a small spectacular gesture. As visitors of our conferences, all reports, we affix badges, indicating their level of complexity (“introduction to technology”, “for practicing engineers” and “hardcore”), let's say, Federico himself was “hardcore”. And he took and used the same icons in the report itself, demonstrating three other “levels of difficulty” there:



After lunch, Dylan Beatty came onto the stage of the first hall - and showed that he was no worse than a musician as a speaker. He didn’t immediately dive into technical specifics, but began with general considerations about how a technology product can facilitate a developer’s development (letting play and explain what’s wrong, instead of just starting, go study the documentation). This stimulates the regular emissions of dopamine - and thanks to them, the developer not only gets more pleasure, but also remembers everything better.

At the same time, according to Beatty, we often see the concept of UX as “something for front-tenders,” although in fact any code we write will later be used by other people. So, it will have user experience (in particular, the same learning curve), and this is worth thinking about. Then Dylan turned to examples of what exactly you can do, and as a result, the audience liked the report so much that the ratings gave only to the performance of Sasha Goldstein. Particular attention was drawn to the slide “as it would be really worth mentioning the logging levels”:



Then Goldstein appeared again, but in a different role: he led a round table on profiling and optimization with the participation of other DotNext speakers - from the same Akinshin to Sergey Bykov (Microsoft). Reviews show that such a format took many viewers by surprise, and the opportunity to ask your question to a whole board of experts was not used to its fullest. But she clearly has potential, and we will take this into account when conducting the following DotNext.



Finally, the keynout of another speaker with a big name, Dino Esposito , ended the conference. On the first day, Dino made a more serious report, “I have a microservices architecture and I don't know,” and here, when something complicated was difficult for viewers to perceive, I allowed myself to dream. He imagined “DotNext 2048”, taking place in the blockchain future - in which, for example, speaker Alex Thyssen, instead of his current theme “serverless computing”, talks about “developerless computing”. Given Dino's artistry, there was also a kind of performance, and there were some references to famous songs (even the name of Keynout, “Unchain my heart”, taken from Joe Cocker) - so the second day, like the first, was closed very brightly.



As a result, at the conference there was something to load up to our ears, and something to laugh afterwards. The two meanings of the word “performance” complemented each other well, and two days gave enough time for both of these things and many reports on completely different topics (from security to Apache Kafka). But here the detailed description of the rest of the reports will no longer fit into this text - otherwise, you would also have to read it for two days.

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


All Articles