Ważniejsze komponenty open source

Doświadczenie zespołu forCore wskazuje, iż przy budowaniu systemów o wysokich wymaganiach względem funkcjonalności, niezawodności i bezpieczeństwa, kluczową kwestią jest zdefiniowanie kryteriów, jakie musi spełniać oprogramowanie bazowe.

Tym samym, przy doradzaniu klientowi konkretnych rozwiązań, kładziemy nacisk by charakteryzowały się one następującymi cechami:

  • Otwartością, czyli wolnym modelem licencyjnym, wraz z ogólnodostępnym kodem źródłowym. Spełnienie obu tych wymagań gwarantuje brak uzależnienia od jednego dostawcy, możliwość niezależnej modyfikacji kodu oraz jego audyt.
  • Skalowalnością, czyli architekturą, umożliwiającą łatwe zwiększenie wydajności poprzez zwielokrotnienie elementów składowych. Dzięki tej właściwości możliwe jest wdrożenie danego rozwiązania w mniejszej skali, a następnie, wraz ze wzrostem wymagań i dostępnością środków, płynne powiększanie jego pojemności.
  • Łatwością integracji, czyli zespołem cech, które decydują o podatności danej aplikacji bądź narzędzia na łączenie z innymi komponentami w ramach projektowanego rozwiązania. Wśród pożądanych cech wymienić można: rozbudowane możliwości konfiguracji, przejrzyste API, modularną architekturę, jakość dokumentacji etc.
  • Potencjałem, a więc perspektywą stałego rozwoju oraz prawdopodobieństwem utrzymania się na rynku w szerszym horyzoncie czasowym. Przy ocenie tego parametru należy wziąć pod uwagę m.in. innowacyjność produktu, wielkość społeczności bądź rangę organizacji zajmującej się jego rozwojem, stopień wsparcia oraz zaangażowania finansowego udzielanego przez najważniejsze firmy w branży.
  • Zredukowanym kosztem, czyli relatywnie niewielkim, całkowitym, kosztem wdrożenia i utrzymania produktu, którego część składową stanowi określony komponent. Co prawda, w przypadku darmowego oprogramowania nieistotny jest koszt licencji, należy jednak pamiętać, że niezbędne jest poniesienie nakładów na sprzęt, specjalistów i wsparcie techniczne. Ważne jest, aby oceniane rozwiązanie pozwalało na istotne ograniczenie tych wydatków, przy zachowaniu maksimum funkcjonalności.

Poniżej zawarliśmy przykłady rozwiązań, naszym zdaniem, spełniających powyższe warunki, a w których wdrażaniu specjalizujemy się. Budujemy z nich kompletne systemy informatyczne, dostosowując architekturę do wymagań naszych klientów.

OpenStack
OpenStack

Zaawansowana platforma programowa umożliwiająca tworzenie prywatnych i publicznych chmur obliczeniowych. Zawiera szereg komponentów, które pozwalają na oferowanie usług w modelu „infrastruktura jako usługa” (IaaS). Jeden z największych i najaktywniej rozwijanych projektów open source. Zastosowania: chmury obliczeniowe o różnym stopniu złożoności, usługi IasS, PaaS i SaaS.

Docker icon
Docker

Nowoczesny, zyskujący ogromną popularność wśród developerów i dostarczycieli usług cloudowych typu PaaS mechanizm wirtualizacji kontenerowej. Zastosowania: budowa środowisk developerskich i aplikacji w heterogenicznej architekturze, usługi PaaS w chmurach obliczeniowych.

Kubernetes icon
Kubernetes

Otwartoźrółowy system zarządzania kontenerami i skonteneryzowanymi aplikacjami. Pozwala on na uruchomienie tysięcy kontenerów, nadzoruje ich działanie, zapewnia komunikację sieciową oraz umożliwia skalowanie. Kubernetes powstał na bazie doświadczeń Google z uruchamianiem aplikacji w kontenerach i jest m.in. przez tę firmę aktywnie rozwijany. Zastosowania: złożone aplikacje kontenerowe, mikroserwisy, rozległe środowiska testowe i developerskie.

Ceph icon
Ceph

Otwarta platforma udostępniająca współdzieloną blokową i obiektową pamięć masową oraz system plików. Działa w modelu rozproszonym w architekturze bez pojedynczego punktu podatności na awarię, skalowalna horyzontalnie do pojemności eksabajtowych. Zastosowania: uniwersalny storage w chmurach obliczeniowych, przechowywanie dużej ilości danych na potrzeby aplikacji internetowych.

Elasticsearch icon
Elasticsearch

Skalowalny silnik wyszukiwania, umożliwiający indeksowanie dużej ilości danych w czasie rzeczywistym i ich natychmiastową prezentację.  Zastosowania: wyszukiwanie pełnotekstowe, gromadzenie i analiza zdarzeń (w połączeniu z aplikacjami przetwarzania i prezentacji danych).

Redis icon
Redis

Wydajna baza typu klucz-wartość, działająca w pamięci operacyjnej, wyposażona w mechanizmy replikacji. Zastosowania: systemy szybkiego wyszukiwania danych po kluczu, mechanizmy kolejkowania danych, systemy pośredniczące i cache aplikacji.

OpenDaylight icon
OpenDaylight

Dynamicznie rozwijane oprogramowanie, umożliwiające wdrożenie koncepcji sieci zdefiniowanych programowo (SDN – Software Defined Network) i wirtualizacji funkcji sieciowych (NFV – Network Function Virtualization). Zastosowania: sieci w modelu IaaS (Infrastructure as a Service), konsolidacja i ujednolicenie zarządzania sieciami w centrach danych.

Hadoop icon
Hadoop

Otwarta platforma oparta na paradygmacie MapReduce, umożliwiająca obsługę i przetwarzanie bardzo dużych zbiorów danych (big data). Zastosowania: systemy analizujące dużą ilość strukturalnych i niestrukturalnych danych, przechowywanych i przetwarzanych na standardowym i tanim w eksploatacji sprzęcie.

Zabbix icon
Zabbix

Nowoczesny system monitorowania aplikacji, serwerów i urządzeń sieciowych, wspierający hierarchiczną architekturę, wyposażony w bogate możliwości obsługi zdarzeń nadzwyczajnych. Zastosowania: monitorowanie parametrów systemów informatycznych, także rozproszonych geograficznie.

MongoDB icon
MongoDB

Zorientowany na dokument, nierelacyjny (NoSQL) system bazodanowy z mechanizmami zapewniającymi dużą skalowalność horyzontalną oraz wysoką wydajność. Zastosowania: systemy, w których istotne jest przechowywanie dużej ilości dokumentów z możliwością szybkiego dostępu i łatwością wyszukiwania.