July 9, 2016
By: Patryk Żmigrodzki

Która to godzina? Czas na Devoxxa! [Dzień 2]

Dzień drugi konferencji Devoxx Poland 2016.

Understanding Microservice performance

Rob Harrop - Skipjaq

Gdzieś zapodziałem notatki, a kompletnie nie pamiętam o czym była ta prelekcja. Cóż, ciężki poranek.

Evolutionary architecture

Neal Ford - Thoughtwork

Kolejne wystąpienie Neala i po obejrzeniu pierwszego, tego nie mogłem opuścić. Na keynocie padło kilka słów o architekturze ewolucyjnej, lecz teraz rozwinął przedstawione wcześniej koncepty.

Przy projektowaniu architektury trzeba rozumieć potrzebę zmian. Prelegent nawiązał do o Dockera i jego niebywałego wpływu na projektowanie systemów komputerowych. To nie jest jednak odosobniony przypadek. środowisko programistyczne zmienia się stale, dynamicznie i nieprzewidywalne. Według Neala jest to jeden z głównych czynników uniemożliwiających długoterminowe planowanie. Zaproponował on podejście ewolucyjne, przyjmujące wsparcie dla ciągłych zmian za podstawową wartość.

Oczywiście nie mogło zabraknąć mikroserwisów. Nigdy nie zastanawiałem nad wymianą w swoim systemie całej warstwy persystencji, a jednak architektura warstwowa jest wciąż bardzo popularna. Neal zauważył, że pomimo wielowymiarowości takiego podejścia, gdy skupimy się na wartości biznesowej, rozproszonej po wszystkich warstwach, to jesteśmy bardzo zamknięci na zmiany. Na ten problem nie cierpią systemy oparte o mikroserwisy, gdyż każdy z nich można stosunkowo łatwo zastąpić. Ta cecha czyni z nich solidną podwalinę pod architekturę ewolucyjną. Innym proponowanym wzorcem, który może ułatwić iteracyjne zmiany aplikacji, są feature toggle.

Później prelegent wspomniał że powinniśmy stosować do BASE (Basic Availability, Soft-state, Eventual Consistency) zamiast ACID (bo świat nie jest spójny, na wszystko trzeba czekać). Powtórzyło się kilka kwestii z keynote, jak zdecentralizowane zarządzanie i prawo Conwaya. Niestety organizatorzy konferencji przeznaczyli po 50 minut na każde wystąpienie, więc prezentacja Neala została obcięta w porównaniu z tą wersją.

Reactive Microservices with DDD and Actors

Vaughn Vernon - for{comprehension}

I przyszedł czas na Vaughna Vernona, pierwszego człowieka który zrozumiał Domain Driven Design Erica Evansa i napisał od tym książkę. Na tej konferencji wszyscy lubią wspominać o big ball of mud, najwyraźniej ładnie wygląda w porównaniu z mikroserwisami (a jak wiadomo te dają dodatkowe punkty w ocenie mówców).

Vaughn również wspominał o ACID i o tym jak kiedyś, przed erą komputerów, wszystko był eventually consistent. Kilka słów o DDD w kontekście mikroserwisów i o tym, że powinny być one wielkości bounded context. Vernon próbował wyjaśnić typy usług (rapids, rivers, ponds), ale wyłączyłem się w momencie jak zaczął pokazywać kod i mówić o Scali, Akka i Play Frameworku. Na tej prelekcji czułem się trochę jak na wykładzie jakieś profesora, który jest całkowicie przekonany do swoich racji i głosi swoją mądrość. Chociaż lubię aktorów i mikroserwisy, to nie kupiłem tego kazania.

Data consistency: Analyse, understand and decide

Louis Jacomet - Terracotta/Software AG

Byłem przekonany, że będzie to kolejna prezentacja o mikroserwisach i eventually consistent, ale myliłem się! Chociaż bardziej prawdopodobne jest, że nie przeczytałem opisu.

Louis trochę poopowiadał o ACID i przytoczył parę definicji z Wikipedii. Zauważył, że w aplikacjach rzadko wykorzystywanych jest kilka connection pooli o różnych stopniach izolacji. Dowiedziałem się, że cache, np. w Hibernacie, też ma poziomy izolacji i dostępu (tyle człowiek używa tego szajsu, a dalej nie wie nic). Prezenter przedstawił bardzo trafne spostrzeżenie, że transakcje nie dają nam całkowitego bezpieczeństwa jeśli stosujemy się do poziomów izolacji ANSI, gdyż nieustannie są opisywane nowe anomalie w systemach transakcyjnych.

Functional data structures with Java 8

Oleg Šelajev - ZeroTurnaround

Chciałem zobaczyć ten panel, gdyż Olega kojarzyłem z sesji vJUG, a i sam temat przykuł moją uwagę. Na prawdę chciałbym lubić to wystąpienie, ale nie mogę. Pomimo ładnych i merytorycznych slajdów oraz wiedzy i chęci prowadzącego coś było nie tak. Wydawał on się zdenerwowany i nie trafił do publiczności. Sprawiło to, że całość sprawiała wrażenie monotonnej i nieinteresującej.

Wracając do treści wystąpienia, Oleg przedstawił czym charakteryzują się funkcyjne struktury danych i czym różnią się od tych powszechnie znanych z zajęć na uczelni (chyba że ktoś miał funkcyjne struktury danych na zajęciach na studiach, zazdroszczę). Prelegent omówił kilka optymalizacji umożliwiających efektywne operowanie na niezmiennych strukturach oraz przedstawił w skrócie ich implementację. Moją uwagę szczególnie przykuł HAMT (Hash Array Mapped Trie).

How to Create a New JVM Language in Under an Hour

Oleg Šelajev - ZeroTurnaround

Ponownie Oleg i ponownie się zawiodłem, nawet opowiadał te same żarty co na poprzednim wystąpieniu. Tak na prawdę poszedłem na tę prezentację, aby zobaczyć salę numer 5, która znajduje się w podziemiach centrum kongresowego, na poziomie -2 (wygląda jak bunkier).

Co do samej prezentacji, był to (mniej więcej) skrót postów Jakub Dziworskiego na temat tworzenia języka Enkel.

The Pendulum

Bruce Tate - icanmakeitbetter.com

Od formatek klienta przetwarzanych przez systemy w COBOL do aplikacji webowych. Bruce Tate opowiada o tym, że historia lubi się powtarzać, nawet w software developmencie. Przyjemna pogadanka, taka felietonistyczna, sam nie wiem co tu opisywać. Z pewnością Bruce bardzo lubi język Elixir (yay!).

I w ten sposób zakończyłem drugi, ciężki dzień. Później jeszcze odbyły krótkie prezentacje i przedstawienia produktów, ale byłem już zbyt zmęczony, aby spędzić kolejną godzinę w centrum kongresowym.

Zobacz także Dzień 1 oraz Dzień 3 z tej serii postów.

You can find english version of this post here

Tags: pl devoxx conference poland