Kontenery i mikroserwisy – Managed Kubernetes

Środowiska do zwinnego tworzenia oprogramowania
– w chmurze i na bare metalu

Testuj za darmo Dowiedz się więcej

Kontenery i mikroserwisy

Przewaga dzięki kontenerom

Kontenery to samodzielne pakiety oprogramowania, zawierające wszystkie komponenty niezbędne do uruchomienia aplikacji:
kod źródłowy, środowisko uruchomieniowe, narzędzia i biblioteki systemowe oraz pliki konfiguracyjne.

Taka budowa pozwala na łatwe przenoszenie kontenerów między dowolnymi środowiskami, a także wydajne wykorzystywanie sprzętu fizycznego – a co za tym idzie oszczędności.

Kontenery to samodzielne pakiety oprogramowania

Dlaczego kontenery?

Wydajność kontenerów

Wydajność

Kontenery umożliwiają lepsze wykorzystanie procesora i pamięci, ponieważ współużytkują jądro systemu operacyjnego maszyny fizycznej, na której się znajdują. Takie efektywne używanie zasobów zapewnia też oszczędności.

Skalowalność kontenerów

Skalowalność

Rozbudowane i wymagające aplikacje, dzięki konteneryzacji mogą być dzielone na mikroserwisy zamknięte w kontenerach. Łatwość dokładania kolejnych kontenerów zapewnia im stabilne działanie nawet przy dużym obciążeniu.

Przenośność kontenerów

Przenośność

Kontenery zawierają wszystko, co jest potrzebne do uruchomienia kodu. Software może zostać napisany raz, a następnie być uruchamiany bez ponownego konfigurowania na różnych środowiskach.

Separacja kontenerów

Separacja instancji

Kontenery są od siebie oddzielone, co pozwala na wprowadzanie zmian w jednym z nich bez zaburzania pracy pozostałych. Oznacza to też, że awaria w danym kontenerze nie spowoduje zatrzymania całości aplikacji.

Konteneryzacja w najlepszym wydaniu

Wdrażamy i obsługujemy kontenery oparte na wiodących platformach Kubernetes, w tym:
RedHat OpenShift i OKD, Rancher, VMware Tanzu czy MicroK8S od Canonical.
Jesteśmy partnerem RedHat, VMware i SUSE.

Chcesz przetestować kontenery w MAIN?

Skontaktuj się z nami. Udostępnimy Ci bezpłatnie zasoby do testów wybranej technologii.

    * Pola obowiązkowe

    Michał Kaczorowski

    Michał Kaczorowski
    Head of Infrastructure

    Sprawdzony sposób wdrożenia

    1. Rozpoznanie

    Na tym etapie inżynierowie MAIN zapoznają się z potrzebami Twojej organizacji w zakresie kontenerów, celami biznesowymi i obecną infrastrukturą. Dzięki temu, możemy dobrać technologię konteneryzacji oraz parametry środowiska (np. rodzaj architektury, liczba klastrów) tak aby spełniały specyfikę procesów biznesowych.

    2. Propozycja

    Przedstawiamy ofertę na kontenery, która najlepiej odpowie na potrzeby Twojej organizacji. Oprócz parametrów technicznych precyzujemy w niej takie elementy warunków umowy, jak SLA (czyli określany procentowo poziom dostępności usług; zalecane jest min. 99%) oraz tzw. exit plan, czyli ramy czasowe i działania, które obie strony powinny podjąć w sytuacji rezygnacji z usługi.

    Zależnie od potrzeb Twojego zespołu oferujemy również szkolenia w zakresie korzystania z nowego środowiska.

    Przed podjęciem decyzji o rozpoczęciu projektu z MAIN otrzymujesz kompletny pakiet informacji dotyczących planu wdrożenia, wyceny rozwiązania oraz korzyści płynących z zaprojektowanego środowiska opartego o kontenery.

    3. Wdrożenie

    Na tym etapie realizujemy ustalony plan. Zespół inżynierów MAIN wykonuje prace w sposób, który niweluje negatywne skutki przełączenia środowisk lub ewentualnych niedostępności. Jednocześnie dostosowujemy plany do specyfiki pracy Twojej organizacji, by uniknąć przestojów lub ograniczyć je do minimum.

    Finalne przełączenie się na kontenery można skoordynować z regularnymi przerwami technicznymi. Na koniec przeprowadzamy testy utworzonego środowiska.

    4. Utrzymanie

    Na tym etapie weryfikujesz, czy założone w propozycji wydajność i funkcjonalności zostały przez nas dostarczone.

    W zależności od wybranego modelu świadczenia usługi administracja kontenerami odbywa się w jednym z trzech trybów:

    • IaaS - zarządzamy infrastrukturą, na której osadzone są kontenery. Za pozostałe warstwy środowiska odpowiada zespół IT klienta;
    • PaaS – administrujemy infrastrukturą oraz dbamy o wdrożone środowisko kontenerowe;
    • SaaS – zarządzamy wszystkimi warstwami wraz z instalacją aplikacji końcowej na środowisku kontenerowym.

    Na każdym poziomie administracji zapewniamy też m.in.:

    • Backup – wykonywanie kopii zapasowych wg ustalonego harmonogramu, weryfikacja ich poprawności, testy odtworzenia;

    • Monitoring środowiska – zespół MAIN monitoruje fizyczny sprzęt, na którym uruchomione jest środowisko konteneryzacji;
    • Monitoring procesów biznesowych - oprócz monitoringu infrastruktury sprawdzamy również, czy cały proces biznesowy (np. dokonanie zamówienia w sklepie internetowym) jest możliwy do wykonania.

    Od tego momentu podejmujesz też decyzje o dalszym dostosowaniu środowiska kontenerowego do potrzeb firmy. Służymy Ci radą i pomocą na każdym kroku – do Twojej dyspozycji są opiekunowie biznesowi, techniczni oraz Project Managerowie.

    Ceny przykładowych środowisk

    Parametry zawsze dopasowujemy do indywidualnych potrzeb.

    Środowisko do developmentu i testów aplikacji

    1 maszyna wirtualna o parametrach:
    4 vCPU
    8 GB vRAM
    50 GB vSSD (system)
    50 GB vSSD (aplikacje)

    +1 adres IP
    +1 łącze do 100 Mbps

    394 zł/mies.

    Klaster produkcyjny

    3 maszyny wirtualne o parametrach:
    4 vCPU
    8 GB vRAM
    50 GB vSSD (system)
    50 GB vSSD (aplikacje)

    +1 adres IP
    +1 łącze do 100 Mbps

    1082 zł/mies.

    Chcesz przyspieszyć tworzenie aplikacji?

    Timoni to wewnętrzna platforma deweloperska (IDP) poprawiająca Developer Experience. Ustandaryzuj proces CI/CD w swojej organizacji – za pomocą tylko jednego narzędzia.

    Stworzyliśmy ją aby ułatwić życie specjalistom DevOps i SysOps, przyspieszając znacząco rozwój aplikacji – a tym samym Twoją strategię wypuszczania produktów na rynek.

    Dowiedz się więcej

    Masz pytania?

    Mamy odpowiedzi.

    Czym są kontenery i konteneryzacja?

    Kontenery to lekkie, wykonywalne i odseparowane jednostki oprogramowania, które można uruchomić w dowolnym środowisku.

    Ich najważniejsze cechy to wydajność, przenośność oraz skalowalność. Kontenery ułatwiają rozwój i ciągłe wprowadzanie zmian, dzięki czemu są niezbędnym narzędziem w metodologii CI/CD (Continuous integration and Delivery)

    Konteneryzacja oznacza więc opakowanie kodu aplikacji ze wszystkimi niezbędnymi do działania bibliotekami i zależnościami w odizolowany kontener, który można uruchomić na dowolnej infrastrukturze.

    Czym są mikroserwisy?

    Mikroserwisy to podejście do tworzenia aplikacji podzielonych na wiele modułów. Każdy moduł jest odpowiedzialny za jedną funkcjonalność i komunikuje się z innymi, tworząc spójną całość – aplikację lub system. Taki podział ułatwia zarządzanie i rozwój – odseparowaną funkcjonalność można wymienić, ulepszyć lub naprawić bez zaburzania pracy całości aplikacji.

    Co oznacza orkiestracja kontenerów?

    Orkiestracja kontenerów to system, który automatyzuje i upraszcza tworzenie, wdrażanie oraz zarządzanie kontenerami. Upraszcza on pracę związaną z przydzielaniem zasobów i równoważeniem obciążenia w obrębie kontenerów, a także pomaga organizować i replikować ich instancje oraz grupować je w klastry. Najpopularniejszym narzędziem do orkiestracji kontenerów jest platforma Kubernetes.

    Czym różni się konteneryzacja od wirtualizacji?

    Wirtualizacja i maszyny wirtualne (VM) to podstawa chmury obliczeniowej. Tworzy się je z pomocą hypervisora, który wirtualizuje fizyczny sprzęt. Każda VM zawiera swój system operacyjny wraz z aplikacją oraz związanymi z nią bibliotekami i zależnościami.

    Z kolei kontenery nie wirtualizują sprzętu fizycznego, a jego system operacyjny. Zawierają więc jedynie aplikację oraz biblioteki i zależności.

    Kontenery stanowią podstawowe środowisko dla aplikacji w architekturze mikroserwisów. Gwarantują ich identyczne działanie niezależnie od środowiska. Kontenery są dynamicznie skalowalne i przyspieszają reakcję na zmiany obciążenia.

    Wybór jednej z tych technologii – bądź obu – zależy od potrzeb organizacji.

    Jakie działania realizujecie w ramach zarządzania Kubernetesem?

    Jako podstawowe działanie w ramach usługi dostarczamy API, za pomocą którego można utworzyć własny klaster, korzystając z takich narzędzi jak Ansible czy Terraform.

    Jeśli nie chcesz się zajmować takimi zadaniami, utworzymy dla Ciebie klaster Kubernetes w wybranej technologii:
    - VMware Tanzu
    - SUSE Rancher
    - Google Kubernetes (Vanilla)

    W ramach zarządzanego klastra Kubernetes bierzemy odpowiedzialność za:
    1. Utrzymanie klastra – w tym: zakładanie kont, nadawanie uprawnień, tworzenie i rozszerzanie zasobów;
    2. Aktualizacje i patchowanie klastrów Kubernetes, aby zachować bezpieczeństwo na jak najwyższym poziomie;
    3. Ciągłe dostarczanie aplikacji zgodnie z praktykami CI/CD (Continuous Integration and Delivery).

    Możemy też zadbać o cały proces DevOps. Wówczas dostarczasz nam kod aplikacji, a my zajmujemy się całym procesem życia aplikacji - od budowania obrazu, poprzez testowanie, po wdrożenie i utrzymanie. Stosujemy w tym celu nasze autorskie narzędzie Timoni - wewnętrzną platformę deweloperską (IDP).

    Jak zabezpieczone są środowiska Kubernetes w MAIN?

    Każdy klaster instalowany jest na środowisku serwerowym o wysokiej dostępności (HA – High Availability). Oznacza to, że nody Kubernetesa pracują na min. dwóch serwerach fizycznych, aby uniezależnić się od awarii pojedynczego serwera fizycznego.

    Dla zwiększenia niezawodności możliwe jest uruchomienie środowiska Kubernetes rozpiętego pomiędzy dwie serwerownie (oddzielone geograficznie), co dodatkowo podwyższa poziom odporności, w tym przypadku na niedostępność jednej z serwerowni. Obie serwerownie posiadają dedykowane połączenia światłowodowe oraz łącza internetowe spięte protokołem BGP, co pozwala na nieprzerwaną dostępność Twoich usług uruchomionych w MAIN.

    Możliwe jest też zabezpieczenie danych poprzez ich replikację pomiędzy dwoma ośrodkami MAIN Data Center.

    Wszystkie dane mogą zostać objęte kopiami zapasowymi (backupami) dla zachowania bezpieczeństwa przed utratą danych, jak też dodatkowym zabezpieczeniem backupów przed zaszyfrowaniem przez złośliwe oprogramowanie.

    Więcej o konteneryzacji

    Chmura dla software house? Hatomi wybrał chmurę prywatną w MAIN, by osiągnąć większą elastyczność zarządzania zasobami i środowiskami developerskimi.

    Konteneryzacja z infrastrukturą ARM z platformą IDP Timoni i procesorami ARM i development na Kubernetesie pozwalają na bardziej efektywną pracę z oprogramowaniem w środowiskach Cloud-Native.

    Dzięki chmurze i kontenerom optymalizacja kosztów przedsiębiorstwa bez utraty konkurencyjności jest możliwa - nawet w obliczu skoków cen.