- Processes, standards and quality
- Technologies
- Others
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!