Technologie / Software House, Agencja Interaktywna

By Weronika Skotnicka

Jak firmy mogą znacząco obniżyć koszty infrastruktury IT i sprostać nowym wyzwaniom?

W obliczu nowych wyzwań związanych z gwałtownym rozwojem gospodarki cyfrowej oraz zagrożeniami bezpieczeństwa firmy szukają coraz lepszych rozwiązań -infrastrukturalnych. Trzecia generacja platformy IBM LinuxONE została zaprojektowana z myślą o potrzebach średnich i dużych firm i płynnej, bezpiecznej obsłudze obciążeń o dużej mocy obliczeniowej.

Najważniejszymi zaletami LinuxONE są: superwydajność i wysoki poziom bezpieczeństwa. Zastosowanie serwerów przynosi oszczędności zarówno w klasycznych zastosowaniach, jak i w środowisku chmurowym, przystosowanym do obsługi intensywnych obciążeń.

IBM LinuxONE jest optymalnym rozwiązaniem zarówno dla aplikacji open source, jak i certyfikowanego oprogramowania takiego jak Oracle uruchamianego pod kontrolą systemu operacyjnego Linux. Na platformie LinuxONE działają KVM, Postgres, MariaDB, Docker, Kubernetes i setki innych aplikacji. Do tego całkowity koszt posiadania (TCO) jest niższy niż w przypadku konkurencyjnych serwerów.

Niezawodne serwery LinuxONE

LinuxONE bazuje na technologii IBM Z. Po dziesięcioleciach udoskonalania platformy sprzętowej IBM udostępnił swoją platformę również dla społeczności open source.

Serwery LinuxONE mają udokumentowaną 100% niezawodność, mierzoną już od pięciu dekad (bezawaryjne działanie MTF). Poza swą niezawodnością, dostępnością i skalowalnością, platforma LinuxONE zwraca uwagę obecnością zapasowego rdzenia do przełączania awaryjnego, podsystemu RAIM eliminującego awarie oraz wbudowanym zabezpieczeniem w postaci funkcji DPP (Data Privacy Passports).

Platforma jest wyposażona w najszybszy na świecie komercyjny procesor (5,2 GHz) z pamięcią nawet do 40 TB.LinuxONE jest szczególnie dobrze przystosowany do aplikacji intensywnie korzystających z I/O. Żądania I/O są przenoszone z chipów zakupionych przez klienta na setki dedykowanych wbudowanych rdzeni IBM Power, zaprojektowanych do ich szybkiej obsługi.

Skalowalność – konsolidacja obciążeń

Wydajność i skalowalność systemu to kluczowe czynniki wyróżniające platformę IBM LinuxONE. Wyobraź sobie… 2 miliony kontenerów Docker skalowanych na większym serwerze LinuxONE (Emperor II) lub 330 000 kontenerów Docker na mniejszym serwerze LinuxONE (Rockhopper II). To robi wrażenie. Emperor II obsługuje 17 TB baz danych MongoDB, podczas gdy Rockhopper II obsługuje do 7 TB. Oprogramowanie open source, działające w kontenerze, jest administrowane na serwerze IBM LinuxONE w taki sam sposób, jak inne platformy, dzięki czemu żadne dodatkowe szkolenia dla zespołu nie są potrzebne.

IBM LinuxONE zapewnia elastyczne podejście do wdrażania zasobów obliczeniowych, z możliwością udostępniania zasobów na żądanie, dostosowywania ich do określonych wymagań oraz przyspieszania na chipie dla określonych obciążeń.

Rozwiązania IBM LinuxONE to również większa wydajność wirtualizacji. Zintegrowane funkcje dla systemu Linux (IFL), większe zasoby pamięci i potężna kompresja oznaczają szybkie udostępnianie danych. Kontenery i serwery wirtualne można uruchomić w ciągu kilku minut, – dużo szybciej w porównaniu z rozwiązaniami x86, które wymagają intensywnego udziału pracownika.

JAVA2020 - prognozy vs rzeczywistość

Na początku 2020 roku w świecie IT mówiono o wielu zmianach technologicznych, również w obszarze Javy. Poruszono między innymi wpływ GraalVm na ulepszenie środowiska uruchomieniowego, zmniejszenia roli Spring Frameworka na rzecz Quarkus oraz o zmianach w projektach opartych o stos JVM – czyli dominacji Azure.

W ostatnim kwartale roku weryfikujemy zapowiedzi z jego początku. Zmiany w obszarze Javy – komentuje Andrzej Kicinger- Ekspert IT.

DCG: GraalVm – jego wpływ na Javę. Czy faktycznie ulepszył środowisko uruchomieniowe? Jak wpłynął na codzienną pracę?

Andrzej Kicinger: GraalVM powstał przede wszystkim z myślą o skróceniu czasu uruchamiania i szybszym wykonywaniu programów w środowisku maszyny wirtualnej Javy, a także ulepszeniu mechanizmów zarządzania pamięcią. W zależności od typu aplikacji możemy liczyć na nawet kilkukrotny wzrost szybkości wykonywania aplikacji w stosunku do OpenJDK. Dodając do tego nawet 50-krotne skrócenie czasu uruchamiania, a także 5 krotne zmniejszenie zapotrzebowania na pamięć GraalVM, nie dziwi fakt, że jest on coraz częściej wykorzystywany w środowisku mikroserwisów.

Niemniej jednak należy mieć na uwadze, że chociaż GraalVM jest rozwijany już od wielu lat, to dopiero w zeszłym roku została wydana pierwsza jego produkcyjna wersja. Potrzeba jeszcze trochę czasu, aby to narzędzie w pełni potwierdziło gotowość do zastosowań w systemach produkcyjnych i przekonało społeczność do jego szerokiego stosowania.

DCG: Czy Spring Framework zmniejszył swoją popularność? Co stało się jego alternatywą i dlaczego?

AK: Myślę, że Spring Framework jest nadal bardzo popularny i szeroko wykorzystywany po stronie backendu do tworzenia średnich i większych systemów w oparciu o technologię Java i framework ogólnego przeznaczenia. Jeżeli jednak spojrzeć szerzej, poza ekosystem Javy, to warto zwrócić uwagę na rewolucję, jaka dokonała się w wyniku dokeryzacji. Środowiska dokerowe realizują paradygmat „write once run everywhere”, który był jedną z podstaw popularności technologii Java. Dodatkowo umożliwiają również efektywne wdrażanie heterogenicznych mikroserwisów. To pozwala na tworzenie systemów ze względnie małych klocków z wykorzystaniem różnych technologii, niekoniecznie tak zaawansowanych jak Spring Framework. W tym ogólnie upatrywałbym źródeł nieco mniejszej popularności tego frameworku.

DCG: Jak kultura DevOps wpłynęła na świat Javy?

AK: Developerzy Java musieli nauczyć się nowych narzędzi :), analogicznie jak developerzy używający innych technologii. Myślę, że patrząc na korzyści płynące z DevOps nie było wątpliwości czy warto. Automatyzacja budowania, sprawdzania jakości kodu, testowania i wdrażania aplikacji daje więcej czasu na programowanie, pozwala na zachowanie odpowiedniej jakości kodu i wychwycenie potencjalnych problemów na wczesnym etapie. Nie do przecenienia jest również skrócenie cyklu od zgłoszenia potrzeb przez użytkowników do dostarczenia im nowych wersji aplikacji z odpowiadającymi na nie funkcjonalnościami. Trudno chyba sobie dzisiaj wyobrazić rozwój jakiegokolwiek systemu bez DevOps.

DCG: Intellij IDEA czy Visual Studio Code? Które z tych narzędzi jest skuteczniejsze i dlaczego?

AK: Nie ma prostej odpowiedzi na to pytanie. Wszystko zależy od indywidualnych potrzeb.

Visual Studio Code należy do kategorii edytorów kodu źródłowego zintegrowanego z narzędziami wykorzystywanymi przez programistów np. do kontroli wersji czy do budowania aplikacji. Wspiera wiele języków programowania, w tym również Javę. Oferuje także rozszerzenia ułatwiające korzystanie z różnych frameworków np. Spring Boot. Jest lekki, prosty i dostępny na licencji open source.

Z kolei Intellij IDEA należy do kategorii zintegrowanych środowisk do rozwoju oprogramowania. Oferuje zarówno zaawansowaną edycję kodu źródłowego jak i rozbudowane narzędzia wspierające cały cykl rozwoju oprogramowania, od integracji z systemami kontroli wersji po zarządzanie obrazami dokerowymi ze zbudowanymi wersjami aplikacji. Jest o wiele bardziej rozbudowany niż Visual Studio Code, co początkowo może przytłaczać, niemniej w pracy nad większymi systemami jest to niewątpliwie zaleta. Być może dlatego programiści Java zdecydowanie częściej korzystają z Intellij IDEA niż Visual Studio Code.

DCG: Czy Kotlin zwiększył swój udział w byciu bazą dla architektury mikroserwisów?

AK: W moim przekonaniu nie nastąpiła w tym obszarze jeszcze istotna zmiana. Ale warto śledzić, co się dzieje w świecie mikroserwisów, JVM i Kotlina. Coraz większą popularność zdobywają frameworki typu Micronaut czy Quarkus, które umożliwiają tworzenie systemów z wykorzystaniem Kotlina. JetBrains, który rozwija Kotlina, bardzo duży nacisk kładzie na rozwój komponentów Kotlin for Native oraz Multiplatform programming (obecnie w statusie odpowiednio Beta i Alpha). Zastosowanie tych komponentów pozwala na zachowanie możliwości przenoszenia kodu źródłowego przy jednoczesnej możliwości jego uruchamiania po skompilowaniu do natywnego kodu. Dzięki temu programy wykonują się szybciej i mają mniejsze wymagania na pamięć. Z pewnością jest to bardzo dobra wiadomość dla architektów IT.

DCG: Dlaczego Developerzy dalej używają Java 8?

AK: Tak, wiele raportów potwierdza, że Java 8 nadal jest najchętniej i najczęściej używaną wersją Javy (np. Składa się na to wiele czynników.

Jednym z nich jest z pewnością zmiana zasad licencjonowania oraz wsparcia począwszy od Javy 9. Ogólnie, nie wnikając w szczegóły, oznacza to, że koszty licencji oraz wsparcia dla Javy 9+ w przypadku wykorzystywania do celów komercyjnych są wyższe niż dla Javy 8. Dodatkowo zmieniły się zasady wydawania nowych wersji, które pojawiają się o wiele częściej niż miało to miejsce do Javy 8 – co pół roku, ale w większości z krótkimi półrocznymi okresami wsparcia. Wersje z kilkuletnimi okresami wsparcia będą pojawiać się co 3 lata – obecnie wśród wersji 9+ takie wsparcie ma tylko Java 11.

Drugim bardzo ważnym czynnikiem ciągle dużej popularności Javy 8 są dość głębokie zmiany wprowadzone do samej maszyny wirtualnej Javy 9 w związku z implementacją funkcjonalności modularyzacji, które spowodowały dość dużą ostrożność w ekosystemie do udostępniania nowych wersji bibliotek.

Warto również wspomnieć, że niektóre technologie zostały usunięte z Javy 11. Mam tu na myśli przede wszystkim platformę Java Enterprise Edition oraz CORBA. Jedyną opcją dla tych technologii pozostaje Java 8.

DCG: Jak sztuczna inteligencja wpłynęła na zmiany w Javie?

AK: Algorytmy sztucznej inteligencji wymagają dużej ilości danych i efektywnego ich przetwarzania, aby były skuteczne. Dlatego pojawiły się w świecie Javy nowe narzędzia i frameworki do tego celu. Warto tu wymienić chociażby powszechnie znany Hadoop przeznaczony do rozproszonego składowania i przetwarzania dużych zbiorów danych, czy Spark – platformę do przetwarzania wielkich wolumenów danych i wykonywania obliczeń na dużą skalę.

Za sztuczną inteligencją kryją się także skomplikowane modele matematyczne, które specjaliści (Data Scientists) dostosowują/kalibrują do konkretnych potrzeb. Data Scientists korzystają z różnych języków i narzędzi, w szczególności z Pythona czy R. Dlatego konieczne okazało się wprowadzenie mechanizmów integracji z tymi językami i narzędziami do rozwiązań Javowych. Przykłady takich mechanizmów znajdziemy np. w Sparku.

Technologie / Software House, Agencja Interaktywna

Nasi specjaliści posiadają wiedzę i kompetencje, które pozwalają nam tworzyć skuteczne rozwiązania informatyczne. Podczas wdrożenia, korzystamy z naszych autorskich platform – Edito CMS oraz Logito DMS – ale równie dobrze czujemy się w środowisku rozwiązań Open Source. Wspólnie z Klientem analizujemy jego potrzeby i cel, jaki chce osiągnąć, by dobrać technologię, która pozwoli je zrealizować w optymalny sposób. W codziennej pracy wykorzystujemy metodyki Scrum, IPMA lub Prince 2 – zależnie od preferencji Klienta.

Łącząc technologię z odpowiednim podejściem do zarządzania projektami budujemy narzędzia, dzięki którym nasi Klienci rozwijają swój biznes jeszcze skuteczniej. Narzędzia, z których jesteśmy po prostu dumni.