Reliable Event Delivery with Apache Kafka®confluent
Reliable Event Delivery with Apache Kafka®
Jacek Grobelny, Technology Lead at Consdata
Meetup link: https://www.meetup.com/Poznan-Kafka/events/282272378/
Presentation is in Polish
Tworzenie niezależnego środowiska do developmentu aplikacji frontendowejTomasz Borowski
Poznaj zalety, jakie niesie ze sobą praca w niezależnym środowisku do developmentu aplikacji frontendowej. W prezentacji znajdziesz wskazówki jak samodzielnie skonfigurować niezależne środowisko developerskie, bazujące na fake’owym API restowym.
Prezentacja pochodzi z serii szkoleń BiteIT organizowanych przez firmę Jcommerce - http://www.jcommerce.pl/biteit/
Reliable Event Delivery with Apache Kafka®confluent
Reliable Event Delivery with Apache Kafka®
Jacek Grobelny, Technology Lead at Consdata
Meetup link: https://www.meetup.com/Poznan-Kafka/events/282272378/
Presentation is in Polish
Tworzenie niezależnego środowiska do developmentu aplikacji frontendowejTomasz Borowski
Poznaj zalety, jakie niesie ze sobą praca w niezależnym środowisku do developmentu aplikacji frontendowej. W prezentacji znajdziesz wskazówki jak samodzielnie skonfigurować niezależne środowisko developerskie, bazujące na fake’owym API restowym.
Prezentacja pochodzi z serii szkoleń BiteIT organizowanych przez firmę Jcommerce - http://www.jcommerce.pl/biteit/
Automatyzacja tworzenia frontendu z wykorzystaniem GraphQLThe Software House
W ramach tej prezentacji pokażę jak efektywnie wykorzystać GraphQL `codegen` do generowania hooków i typów, które pomogą obsłużyć dowolne query i mutation, czyniąc kod nie tylko czytelniejszym, ale również łatwiejszym w utrzymaniu. W tym celu wspólnie postawimy przykładowy projekt, a także poświęcimy kilka minut na skonfigurowanie IDE. Dzięki temu nasza codzienna praca stanie się przyjemniejsza i efektywniejsza.
Testy wydajnościowe to nie tylko JMeter. Podobnie jak w przypadku testów automatycznych, liczba frameworków do badania wydajności stale rośnie. Poza wprowadzeniem w tematykę testów wydajnościowych, w trakcie prezentacji przyjrzymy się ich implementacji we frameworku k6. Opowiemy również dlaczego w The Software House postawiliśmy na jego wybór i jak dzięki prostym skryptom testowym zoptymalizowaliśmy kilka naszych projektów.
W trakcie prelekcji Krzysiek opowie o tworzeniu systemu z wykorzystaniem serwisów poziomu Platform as a Service, dostępnych na Microsoft Azure.
Wyjaśni, jak dzięki dobremu wykorzystaniu dostępnych narzędzi możemy skoncentrować się na tym, co tworzymy i zepchnąć problem deploymentu i utrzymania systemu na drugi plan.
Michał Żyliński: Cortana dla niewtajemniczonychAnalyticsConf
Praktyczne wprowadzenie do nowoczesnych narzędzi analitycznych na przykładzie usług wchodzących w skład Microsoft Cortana Analytics Suite. Na konkretnych przykładach postaram się pokazać uczestnikom, jak przygotować się do przetwarzania dużej ilości danych. Jakie (darmowe i komercyjne) technologie znaleźć można na rynku? Jakie role i kompetencje przydadzą się wewnątrz organizacji? Jak dobrać właściwe narzędzia? Na czym warto skupić się samemu, a kiedy szukać pomocy na zewnątrz? Omówione zostaną również pierwsze komercyjne wdrożenia Cortany.
Spróbujemy odpowiedzieć na pytanie: Jaki framework będzie dla nas najlepszy? Opowiem dlaczego to pytanie jest takie ważne oraz o tym czego potrzebujemy by znaleźć na nie odpowiedz, która wcale nie jest taka trywialna.
Automatyzacja tworzenia frontendu z wykorzystaniem GraphQLThe Software House
W ramach tej prezentacji pokażę jak efektywnie wykorzystać GraphQL `codegen` do generowania hooków i typów, które pomogą obsłużyć dowolne query i mutation, czyniąc kod nie tylko czytelniejszym, ale również łatwiejszym w utrzymaniu. W tym celu wspólnie postawimy przykładowy projekt, a także poświęcimy kilka minut na skonfigurowanie IDE. Dzięki temu nasza codzienna praca stanie się przyjemniejsza i efektywniejsza.
Testy wydajnościowe to nie tylko JMeter. Podobnie jak w przypadku testów automatycznych, liczba frameworków do badania wydajności stale rośnie. Poza wprowadzeniem w tematykę testów wydajnościowych, w trakcie prezentacji przyjrzymy się ich implementacji we frameworku k6. Opowiemy również dlaczego w The Software House postawiliśmy na jego wybór i jak dzięki prostym skryptom testowym zoptymalizowaliśmy kilka naszych projektów.
W trakcie prelekcji Krzysiek opowie o tworzeniu systemu z wykorzystaniem serwisów poziomu Platform as a Service, dostępnych na Microsoft Azure.
Wyjaśni, jak dzięki dobremu wykorzystaniu dostępnych narzędzi możemy skoncentrować się na tym, co tworzymy i zepchnąć problem deploymentu i utrzymania systemu na drugi plan.
Michał Żyliński: Cortana dla niewtajemniczonychAnalyticsConf
Praktyczne wprowadzenie do nowoczesnych narzędzi analitycznych na przykładzie usług wchodzących w skład Microsoft Cortana Analytics Suite. Na konkretnych przykładach postaram się pokazać uczestnikom, jak przygotować się do przetwarzania dużej ilości danych. Jakie (darmowe i komercyjne) technologie znaleźć można na rynku? Jakie role i kompetencje przydadzą się wewnątrz organizacji? Jak dobrać właściwe narzędzia? Na czym warto skupić się samemu, a kiedy szukać pomocy na zewnątrz? Omówione zostaną również pierwsze komercyjne wdrożenia Cortany.
Spróbujemy odpowiedzieć na pytanie: Jaki framework będzie dla nas najlepszy? Opowiem dlaczego to pytanie jest takie ważne oraz o tym czego potrzebujemy by znaleźć na nie odpowiedz, która wcale nie jest taka trywialna.
Nowoczesna architektura Systemów IT w OSD na podstawie Energa-Operator
GraphQl w Magento 2.3 - wprowadzenie, porównanie i customowe endpointy
1. GraphQl w Magento 2.3 -
wprowadzenie, porównanie
i customowe endpointy
Anna Kurnat
a.kurnat@wearevirtua.com
2. 1. Ewolucja API w Magento
2. REST - rozwiązania problemów
3. GraphQl
a. Czym jest?
b. Zalety i wady
c. Budowa graphQl
d. GraphQl vs REST
e. Customowe grafy
4. Ewolucja API w Magento
● każda metoda ma swój endpoint
● ACL per endpoint
● sztywna struktura zapytania i otrzymywanych danych
● pobieranie za małej lub za dużej ilości danych
○ jeden request może pobrać dane, które nie są potrzebne
○ wiele requestów koniecznych, aby pobrać konieczne dane
● rozwój frontendu uzależniony od zmian w backendzie
● w Magento 2 cała funkcjonalność dostępna w UI jest pokryta
RESTem
5. Ewolucja API w Magento
● jeden endpoint
● łączone requesty
● elastyczny schemat danych
● szybszy development
● niezależny rozwój frontu od backendu
● brak konieczności tworzenia service kontraktów + możliwość
wykorzystania istniejących
9. Lepszy rozdział funkcjonalności
Minimalizacja konfliktów między modułami
Ukryta logika biznesowa z zachowaniem
spójności danych
Lepsza dokumentacja
Trudniejsza implementacja małych
modyfikacji, wymagająca więcej ilości zmian
10. Service contracts - zestaw
interfejsów wykorzystywanych do
zdefiniowania API
API - zestaw interfejsów, które moduł
udostępnia innym modułom, aby
mogły korzystać z ich implementacji.
25. Czym jest graphQl?
● graphQL - język zapytań dla API
● nowy standard, definiuje jak klient może pobierać dane z servera
● stworzony przez Facebook
● rozwijany jako open source
● w Magento dodany obok SOAP i REST
● cel:
○ optymalizacja zapytań = szybszy front
○ rozdzielenie developmentu frontendu od backendu
● https://graphql.org/
26. Czym jest graphQl?
GraphQL - język zapytań dla APIs
● Aplikacje pobierają dane z servera, gdzie te dane są przechowywane
w bazie. Za pobieranie danych, które odpowiadałyby
zapotrzebowaniom aplikacji odpowiada API, ono też tworzy w tym
celu interfejs.
● GraphQL często jest mylony z technologią bazodanową. Jednak
GraphQL jest językiem zapytań dla APIs - nie baz danych. Dzięki temu
nie jest zależny od rodzaju ani rozplanowania bazy danych i możemy,
go efektywnie używać w każdym kontekście, gdzie mamy API.
APIQUERY DATA
27. Zalety:
1. silne typowanie schematów
○ w innych API często brakuje informacji jakie dane są przyjmowane i zwracane
○ brak określonych kontraktów (Magento tworzyło dodatkowo Service Contracts i Data
Contracts dla REST)
○ podpowiedzi w edytorze - automatyczne generowanie dokumentacji
2. ACL per obiekt
3. nie pobieranie za dużej, ani za małej ilości danych
○ pobierane są akurat te dane, które będą potrzebne
○ jeden request, szybsza praca
○ użytkownik określa jak ma być zbudowana odpowiedź z servera
4. szybszy rozwój UI produktu
○ realtime, caching, szybkie zmiany UI (nie trzeba czekać na update endpointów)
○ gotowe biblioteki - Apollo, Relay, Urql
5. łączenie wielu schematów
○ umożliwia zachowanie modularności
6. szeroki ekosystem open-source i wsparcie community
○ przykłady i wsparcie
○ toolsy
28. Wady:
200 jest zwracane przy każdej odpowiedzi
sami musimy szukać błędów - dobry exception handling
36. Subskrypcje
Subskrypcje umożliwiają aplikacji połączenie z serverem w czasie rzeczywistym, aby mogła być
informowana o ważnych eventach na bieżąco.
Gdy klient subskrybuje się do eventu, graphQl zachowa między nimi stałe połączenie
klient-server. Gdy dany event się wydarzy, server wypycha powiązane dane do klienta.
Subskrypcje w przeciwieństwie do queries nie są w cyklu request-response, tylko streamuja
dane z servera do klienta.
45. Queries
REST API:
● dane są ładowane z określonego endpointu.
● każdy endpoint ma ściśle określoną strukturę wg. której zwraca informacje
● wymagane dane wejściowe są zakodowane w URLu, z którym klient się łączy
GraphQL:
● zamiast wielu endpointów jest jeden
● zwracana struktura danych jest bardzo elastyczna, klient decyduje jakie dane są mu
aktualnie potrzebne
● klient musi wysłać więcej informacji o tym jakich danych potrzebuje pod postacią query
51. Plany na przyszłość?
1. Mutacje do checkoutu i płatności
2. API dla storefront’u dla checkoutu, orderów, my account
3. Poprawki w dotychczasowych endpointach:
a. cachowanie
b. wydajność zapytań
55. Resolver
Każde pole w schema GraphQL posiada resolver.
W podstawowej formie GraphQL ma 1 resolver per pole w schema. Każdy resolver wie jak
pobierać dane do swojego pola. Query GraphQL to kolekcja pól, więc aby zebrać dane z każdego
z nich, należy odpalić wszystkie resolvery.
STRUKTURAGRAPHQL ZACHOWANIE
schema resolver