Tech Summary 2021

data: 17 grudnia, 2021
czas czytania: 6 min
autor: Michał Depta

Koniec roku to świetny moment na podsumowanie i dlatego publikujemy Tech Summary 2021. Tegoroczny przegląd technologii w FP powstał na podstawie merytorycznych dyskusji naszej społeczności ekspertów na wewnątrzfirmowym Yammerze. Po niemal 4 tygodniach wymiany zdań, krążącej wokół 4 kluczowych obszarów: Cloud, DevOps, Data i FrontEnds nadszedł czas na przyjrzenie się danym i wyciągnięcie wniosków. 

CHMURA

O tym, że rozwiązania chmurowe cieszą się coraz większą popularnością, nie trzeba nikogo przekonywać. Cloud rośnie w siłę i raczej nic nie zapowiada zmiany trendu. Inżynierowie w FP już od lat zdobywają doświadczenie w pracy z chmurą obliczeniową. Obecnie jest to de facto domyślny sposób wdrażania nowych projektów. Jednym z powodów takiego stanu rzeczy jest dostępność nowoczesnych, dojrzałych narzędzi, ale i preferencje klientów, którzy chętnie korzystają z możliwości oferowanych przez dostawców chmury. W tym gronie zdecydowanie prym wiodą AWS i Azure: 

Tematów związanych z chmurą jest mnóstwo i nie sposób kompleksowo zaopiekować merytorykę podczas krótkiego wydarzenia. Dlatego pochyliliśmy się nad wybranymi aspektami cloud computingu. 

Koszty chmury 

To zdaje się najgorętszy temat w świecie chmury obliczeniowej. Rozwiązania cloudowe same z siebie nie są najtańsze. Co więcej, przy nieumiejętnej konfiguracji mogą być droższe w porównaniu do tradycyjnych rozwiązań on-premise. Dlatego warto pamiętać o poniższych uwagach, jeśli chcemy zyskać możliwie najwięcej najniższym kosztem:   

  • Konfiguracja budżetów i alertów na ich podstawie to „must have”. 
  • Długotrwające procesy mogą się zawiesić i generować dodatkowe koszty, dlatego warto je monitorować. 
  • Skalowanie i wyłączanie środowisk – jeśli środowiska developerskie lub testowe generują duży koszt, warto rozważyć ich wyłączanie poza godzinami pracy. 
  • Cenniki oparte o faktyczne zużycie (consumption plans) pozwalają sporo zaoszczędzić w przypadku dopiero rosnących biznesów.  

Serverless 

Ten model dostarczania usług chmurowych niezmiennie zyskuje na popularności. Nie wszyscy wiedzą, że obiecywane przez niego możliwości wiążą się również z pewnymi ograniczeniami. Do jakich wniosków doszli nasi inżynierowie? 

  • Ten model pozwala znacząco ograniczyć koszty w przypadku niewielkiego zużycia.  
  • Niski próg wejścia w chmurę. 
  • Bardzo dobre narzędzie do budowania reaktywnych systemów. 
  • Typowe problemy: zimny start i sprzężenia zwrotne. 

Wysoka dostępność (High Availability)  

Zdarza się, że w kontekście usług chmurowych ten temat jest marginalizowany. Jednak musimy pamiętać, że system, który nie jest w stanie obsłużyć ruchu użytkowników de facto nie działa, a w konsekwencji nie zarabia. Przy High Availability warto pamiętać o: 

  • Blue/Green deployment w najważniejszych komponentach – problemem są migracje baz danych oraz schematów wiadomości. 
  • Retry Policy w komponentach jest dobrą i tanią praktyką. 
  • Chaos Engineering / Design for Failure to techniki warte stosowania w większych systemach/. 

FRONTEND 

Frontend od dawna wzbudza duże zainteresowanie podczas podsumowań technologicznych w FP. W tym roku było podobnie. W organizacji dostrzegamy rosnące znaczenie społeczności, wsparcia i ekosystemu przy wyborze frameworka, co jest zgodne z branżowym trendem, w którym produkty wspierane przez dużych graczy zgarniają większość rynku. Jakie frameworki dominują w projektach:

Co możemy wywnioskować z dyskusji wokół front-endu, toczącej się na Yammerze? 

  • Doświadczenie i osobiste preferencje są istotnym czynnikiem przy wyborze frameworka. 
  • Z biznesowego punktu widzenia React i Angular gwarantują dostęp do największego grona programistów i długoterminowe wsparcie. 

Języki 

  • Typescript jest językiem pierwszego wyboru. 
  • Języki funkcyjne (kompilowane do js lub WASM) pozwalają na okiełznanie nieprzewidywalności javascriptu. 
  • Nawet w przypadku korzystania z JS/TS warto stosować wzorce zaczerpnięte z programowania funkcyjnego. 
  • Alternatywą dla JS i pochodnych jest wykorzystanie Web Assembly – stosunkowo niski próg wejścia dla programistów C# daje Blazor. 

DATA 

W Future Processing mamy linię biznesową Data Solutions, która na co dzień pracuje z danymi i porusza się w obszarach Business Solutions, Big Data czy Data Science. W przeglądzie technologii z tej działki zdecydowaliśmy bliżej się przyjrzeć tym, które są znane większej grupie FPowiczów, a nie tylko specjalistom z komórki Data Solutions. 

Wybór bazy danych do problemu 

  • W przypadku wolnej ręki programiści stosują następujące kryteria: 
    – dopasowanie narzędzia do problemu, 
    – koszt miesięczny, 
    – znajomość narzędzia (pragmatyczne podejście). 
  • Relacyjne bazy danych są najlepiej znane przez programistów i często inny wybór musi być podparty konkretnymi wymaganiami (co jest sensowne). 
  • W rzeczywistych projektach wymiana silnika bazy na inny jest rzadkością. 

Wartość danych 

  • Ilość i rozkład danych są kluczowe w kontekście analizy i podejmowania decyzji biznesowych: 
    – zbyt mały zbiór może wypaczyć wyniki analizy, 
    – uczenie maszynowe kiepsko działa na małych zbiorach. 
  • Dane są ważniejsze od algorytmów. Nawet najlepsze modele nie wniosą żadnej wartości bez zasilania danymi. 
  • Usługi chmurowe stają się coraz popularniejsze w kontekście zbierania i analizy danych.

DEVOPS 

W Future Processing jednym ze strategicznych celów jest nie tylko odpowiedzialność za przygotowanie kodu, ale przede wszystkim za cały cykl wytwarzania oprogramowania. M.in. dlatego wzięliśmy na tapet technologie z obszaru DevOps, by bliżej przyjrzeć się tym rozwiązaniom, które są używane w projektach.  

Wykorzystanie CI/CD 

Pipeline’y towarzyszą nam od dłuższego czasu, a poziom ich złożoności cały czas rośnie. Absolutnym standardem w FP jest stosowanie automatyzacji procesu na poziomie co najmniej Continuous Integration. Oto jak wygląda to według osób technicznych w FP: 

Wykorzystanie Infrastructure as Code w naszych projektach 

Za pełne wykorzystanie IaC przyjmujemy sytuację, gdy zarówno usługi chmurowe, systemy operacyjne i procedury wdrażania są konfigurowane kodem.

  • Najpopularniejszymi narzędziami są natywne rozwiązania chmurowe: Cloud Formation, Azure Resource Manager (warto zainteresować się bicep-em). 

PODSUMOWANIE 

Zmieniona formuła przeglądu technologicznego w Future Processing pozwoliła nam skupić się na najważniejszych z punktu widzenia organizacji obszarach oraz umożliwiła na uzyskanie odpowiedzi w oparciu o przemyślenia wynikające wprost z doświadczeń projektowych FPowiczów. Tak zawężony zakres badania doprowadził do ciekawych wniosków i z dużym prawdopodobieństwem będziemy go kontynuowali w kolejnych latach. 

Jeszcze raz chcielibyśmy podziękować wszystkim, którzy wzięli udział i pomogli w popularyzacji wydarzenia! 

Newsletter

Zainteresowały Cię nasze treści?
Sprawdź co jeszcze przygotowaliśmy.

Adres e-mail

Dziękujemy! Na Twój adres e-mail wysłaliśmy prośbę o potwierdzenie zapisu do newslettera.

O nie! Coś poszło nie tak. Nie zapisałeś się.

Gdyby tylko dało się zapisać Twojego maila dwa razy :)

Niepoprawny mail. Spróbuj jeszcze raz.

Cookies

W pracy serwujemy suchar dnia. Tutaj musimy Cię poczęstować ciasteczkami. Dowiedz się więcej.

Administratorem Twoich danych osobowych jest Future Processing S.A. z siedzibą w Gliwicach. Twoje dane będziemy przetwarzać w celu przesyłania cyklicznego newslettera dot. wydarzeń i inicjatyw realizowanych w Future-Processing. więcej informacji znajdziesz w naszej polityce prywatności.