Google, Facebook, Allegro, Twitter, Ebay, Samsung, Netflix – co łączy te firmy? Wszystkie postawiły na tworzenie oprogramowania w architekturze mikrousług. Trend ten nie dotyczy jednak tylko największych firm IT. Jak pokazują badania firmy Lightbend, już ponad połowa programistów Java na całym świecie korzysta albo zamierza wkrótce korzystać z mikrousług w procesie tworzenia oprogramowania.

Badania Lightbend: Java stawia na mikrousługi

Lightbend przeprowadził swoje badania latem 2016 roku na grupie 2151 programistów Java z różnych firm z całego świata. Wyniki pokazały, że 30 proc. z nich korzysta z architektury mikrousług w procesie wytwarzania oprogramowania, a 20 proc. planuje ich wykorzystanie w projektach realizowanych w swojej firmie w bliskiej przyszłości.

Czym są mikrousługi?

Zwrot w kierunku oprogramowania opartego o mikrousługi i kontenery to cicha rewolucja, która w ostatnich miesiącach dokonuje się na globalnym rynku IT.

„Mikrousługi stanowią alternatywę dla monolitycznego stylu tworzenia oprogramowania. Tworząc aplikacje z wykorzystaniem architektury mikrousług i kontenerów, programiści mogą odpowiednio dobrać jej poszczególne elementy, nie zajmując się całością aplikacji, co ma miejsce w przypadku podejścia monolitycznego. Tym samym cykl produkcyjny ulega skróceniu, a związane z nim koszty obniżeniu nawet o 60 proc. Zwiększa się także elastyczność oraz szybkość wprowadzania innowacji” – tłumaczy Rafał Głąb, Business Technology Unit Director, odpowiedzialny za rozwój Onwelo Microservices Lab, największego w Polsce centrum kompetencyjnego dotyczącego mikrousług.

Czym są mikrousługi?

Jak podkreśla przedstawiciel Onwelo, oprogramowanie oparte o architekturę mikrousług pozwala też na nawet dziesięciokrotnie efektywniejsze wykorzystanie infrastruktury serwerowej, na której jest zainstalowane. Dodatkowo zastosowanie mikrousług zapewnia niezależność aplikacji od platformy, technologii i kompetencji zespołu IT.

W świecie DevOps i chmury mikrousługi już królują

Rozwój mikrosuług napędza przede wszystkim konieczność coraz szybszego tworzenia i modyfikowania oprogramowania, który wymuszają na działach IT i dostawcach oprogramowania zarządzający firmami w praktycznie każdej branży na świecie. Chcą oni w ten sposób umożliwić swoim firmom rozwój i wykorzystanie szansy, jaką stwarza cyfrowa rewolucja.

„Szefowie IT w firmach radzą sobie z tymi wymaganiami stosując nowe metodyki pracy swoich zespołów, jak np. podejście Agile – umożliwiające tworzenie funkcjonujących komponentów oprogramowania w ciągu dni lub tygodni, pomimo zmieniających się czy nie do końca sprecyzowanych wymagań, czy DevOps – polegające na współpracy programistów, administratorów systemów i wdrożeniowców w celu dostosowania oprogramowania do potrzeb użytkowników. Bardzo powszechne jest także stosowanie nowych rozwiązań technologicznych, jak mikrousługi czy kontenery, które ułatwiają i przyśpieszają pracę programistów” – mówi Rafał Głąb.

DevOps i chmura napędzają rozwój

Z architektury mikrousług w procesie tworzenia oprogramowania korzysta już 78 proc. zespołów DevOps. Ujawniło to badania firmy Logz.io, która przeprowadziła je niedawno wśród 360 zespołów DevOps z całego świata. Podobne rezultaty przyniosło w ostatnim czasie badanie firmy Nginx, które zostało przeprowadzone wśród 1825 programistów związanych z środowiskiem DevOps z całego świata. Pokazało ono, że z mikrousług korzysta lub rozważa rozpoczęcie korzystania 68 proc. respondentów.

„W takim tempie rozwoju mikrousługi mogą się stać najpopularniejszą metodą tworzenia oprogramowania na świecie w rekordowo niskim czasie” – podsumowuje Rafał Głąb z Onwelo.  

Więcej informacji o budowaniu i zarządzaniu usługami w świecie kontenerów i mikrousług można znaleźć tutaj: www.onwelo.com/mikrousługi.

Pojęcia z artykułu

Nginx — Serwer WWW i reverse proxy. Oprogramowanie serwerowe obsługujące HTTP/HTTPS, serwowanie statycznych plików i przekazywanie ruchu do aplikacji backendowych. Często realizuje terminację TLS, kompresję, limity i podstawową kontrolę ruchu.

Dlaczego to ważne: Stoi na froncie serwera: przyjmuje ruch, serwuje statyczne pliki błyskawicznie, a resztę przekazuje aplikacji. Do tego terminacja szyfrowania, kompresja i limity — wszystko w jednym, sprawdzonym miejscu.

Kiedy się stosuje: Przed niemal każdą aplikacją webową: jako serwer statyk, reverse proxy i punkt terminacji TLS.

Czym grozi pominięcie: Bez warstwy przed aplikacją każde żądanie — także o obrazek — obciąża backend, a konfiguracja szyfrowania i limitów rozprasza się po aplikacjach.

Nginx — Webserver und Reverse Proxy. Server-Software zur Unterstützung von HTTP/HTTPS, zum Bereitstellen statischer Dateien und zur Weiterleitung von Traffic an Backend-Anwendungen. Häufig übernimmt sie die TLS-Terminierung, Komprimierung, Rate-Limiting und grundlegende Traffic-Steuerung.

Dlaczego to ważne: Steht im Vordergrund des Servers: nimmt den Traffic entgegen, liefert statische Dateien blitzschnell aus und leitet den Rest an die Anwendung weiter. Dazu noch Verschlüsselungsterminierung, Komprimierung und Limits – alles an einem bewährten Ort.

Kiedy się stosuje: Vor nahezu jeder Webanwendung: als Static-File-Server, Reverse Proxy und TLS-Terminierungspunkt.

Czym grozi pominięcie: Ohne eine Schicht vor der Anwendung belastet jedes Anfrage – auch eine für ein Bild – den Backend-Server, und die Konfiguration von Verschlüsselung und Limits ist über mehrere Anwendungen verteilt.

Nginx. HTTP/HTTPSを処理し、静的ファイルを配信し、バックエンドアプリケーションにトラフィックを転送するサーバーソフトウェア。TLS終端、圧縮、リミット、基本的なトラフィック制御をよく実行する。

Dlaczego to ważne: サーバーのフロントエンドに位置し、トラフィックを受け取り、静的ファイルを高速に配信し、残りをアプリケーションに転送する。さらに、暗号化終端、圧縮、リミットなど、すべてが一つの信頼できる場所で実現される。

Kiedy się stosuje: ほぼすべてのウェブアプリケーションの前に使用される:静的ファイルサーバー、リバースプロキシ、TLS終端ポイントとして。

Czym grozi pominięcie: アプリケーションの前にレイヤーがない場合、画像などのすべてのリクエストがバックエンドを負荷し、暗号化やリミットの設定がアプリケーションに分散してしまう。

Nginx — Web server and reverse proxy. Server software supporting HTTP/HTTPS, serving static files, and forwarding traffic to backend applications. Often handles TLS termination, compression, rate limiting, and basic traffic control.

Dlaczego to ważne: Sits at the front of the server: accepts traffic, serves static files instantly, and forwards the rest to the application. Plus, TLS termination, compression, and rate limits — all in one, proven place.

Kiedy się stosuje: In front of nearly every web application: as a static file server, reverse proxy, and TLS termination point.

Czym grozi pominięcie: Without a layer in front of the application, every request — even for an image — burdens the backend, and encryption and rate-limiting configurations are scattered across applications.

Podsumowanie

Mikrousługi to alternatywa dla monolitycznego tworzenia oprogramowania — pozwalają dobierać poszczególne elementy aplikacji bez zajmowania się całością. Zdaniem Rafała Głąba z Onwelo skraca to cykl produkcyjny i obniża koszty nawet o 60 proc., a infrastruktura serwerowa bywa wykorzystywana dziesięciokrotnie efektywniej.

Badania Logz.io pokazały, że z architektury mikrousług korzysta już 78 proc. zespołów DevOps, a ankieta Nginx wśród 1825 programistów dała wynik 68 proc. Wcześniejsze badanie Lightbend na grupie 2151 programistów Java wskazało 30 proc. obecnych użytkowników i 20 proc. planujących wdrożenie.