Chcesz być jak najbliżej open source? Daj szansę IBM Cloud

Chcesz być jak najbliżej open source? Daj szansę IBM Cloud

Chcesz być jak najbliżej open source? Daj szansę IBM Cloud

Kiedyś myślałem, że open source to po prostu oprogramowanie z opublikowanym dla wszystkich chętnych kodem źródłowym. Dziś już rozumiem, że to cały ruch związany z rozwojem oprogramowania i dążeniem do doskonałości. IBM ze swoją chmurą również wyznaje te wartości.

Open Source Software to, wbrew powszechnemu mniemaniu nie jest również oprogramowanie, które posiada kod źródłowy bez licencji. Wręcz przeciwnie – oprogramowanie open source (otwarte oprogramowanie) zawsze posiada konkretną licencję, na podstawie której daje swoim użytkownikom możliwość:

  • używania oprogramowania,
  • badania jego kodu źródłowego
  • zmiany kodu źródłowego w celu stworzenia nowej jakości
  • rozpowszechniania zmienionej lub niezmienionej wersji na podstawie tej samej licencji.

Te proste zasady, połączone z faktem, że dzięki internetowi chętni programiści są w stanie współpracować nad jednym produktem, spowodowało, że programy open source stały się standardowymi i wzorcowymi rozwiązaniami w wielu kategoriach. Dzięki możliwości używania ich jako komponentu oprogramowania komercyjnego, stały się też elementem software’u w wielu miejscach wokół nas. Praktycznie każde urządzenie, które masz w domu zapewne ma w menu pozycję pozwalające wyświetlić używane w nim biblioteki open source. Znajdziemy takie informacje np. w smart TV i w telefonach.

Przez długi czas myliłem ruch otwartego oprogramowania z ruchem wolnego oprogramowania, utożsamianego z nieco szalonym z zachowania i wypowiedzi Richardem Stallmanem. Dowiedziałem się w pewnym momencie, że Richard woli nazywać swoje koncepcje „wolnym oprogramowaniem”, i nie lubi się z ludźmi od open source – np. z Erikiem Raymondem.

Mimo to, koncepcje obu grup są bardzo podobne i wiele osób utożsamia się z oboma, po prostu widząc zalety otwartości kodu. Należę do nich i ja.

Jakie są zalety open source?

Można by spytać, jakie są zalety oprogramowania, którego kod źródłowy może poznać każdy? Przede wszystkim jest to bezpieczeństwo – łatwo przeprowadzić audyt, czy oprogramowanie nie robi czegoś, czego nie chcemy i nie aprobujemy. Dzięki współpracy wielu programistów, najczęściej też pojawiają się szybko poprawki do błędów. Według badań przeprowadzonych przez IBM aż 40 proc. szybciej niż w przypadku oprogramowania zamkniętego (ang. proprietary). To bardzo istotne dla każdej organizacji, która dba o to co „wpuszcza” do swojego systemu.

Wydawać by się mogło, że firmy produkujące oprogramowanie powinny nie lubić czegoś, co ktoś może zaoferować za darmo. Okazuje się jednak, że zarobić można na wielu innych rzeczach niż na konkretnej licencji. Pojawiły się nawet komercyjne usługi oferujące tzw. open source transformation – czyli pozbycie się płatnych licencji oprogramowania na rzecz otwartych odpowiedników.

Programiści uwielbiają narzędzia i biblioteki, które oferowane są na tej zasadzie. Nie dość że są popularne, więc mają też dużą społeczność, ale i łatwo w nich się zorientować jeśli coś nie działa – mamy w końcu dostęp do kodu źródłowego.

Jak na tym zarabiać?

Modele biznesowe oparte na open source są bardzo różnorodne. Można oferować za darmo oprogramowanie, a opłatami objąć część funkcji lub szkolenia albo wdrożenia. Możemy otworzyć część kodu jako open source – wtedy rozwijana jest przez społeczność, a resztę zamknąć jako naszą usługę. Tak zrobiono z systemem operacyjnym Android. Czasami też oferuje się aplikację za darmo dla użytkowników indywidualnych, każąc płacić za nią instytucjom i firmom.

Bez przesady można powiedzieć, że internet stoi na oprogramowaniu open source. Najpopularniejszą kombinacją, na której uruchamiane są strony i aplikacje internetowe to tzw. LAMP – czyli:

  • Linux
  • Apache
  • mySQL
  • PHP

Choć zaczyna się to zmieniać, przez lata był to „standardowy zestaw” do stawiania aplikacji i stron (np. na WordPressie). Nie wiązał się z żadnymi opłatami licencyjnymi.

Duże firmy i open source

Duże firmy, takie jak IBM, mają swój wkład w rozwój otwartego oprogramowania. Korzyści wynikają z tego wielorakie – firma zyskuje renomę i zainteresowanie kandydatów do pracy, ciekawe technologie zostają powiązane z marką firmy. Udostępnione przez firmę oprogramowanie może też zyskać zainteresowanie społeczności, dzięki czemu zostanie rozwinięte lub zostaną w nim znalezione i poprawione błędy.

Wiele firm dopiero w ostatniej dekadzie dołącza do wspierania otwartego oprogramowania – można powiedzieć, że stało się to cool. Natomiast jedną z firm, która już od kilkudziesięciu lat udziela się w rozwoju najbardziej znanych pakietów open source, jest IBM.

Zaczęło się jeszcze w latach 90. dwudziestego wieku. Inżynierowie z IBM zaangażowali się w rozwój całkiem nowego wtedy systemu operacyjnego Linux, a sama firma wsparła inicjatywę pomagając w zakupie patentów oraz współuczestnicząc w założeniu Linux Foundation. Ogółem firma wtedy wsparła Linuksa zasobami wartymi około miliarda dolarów.

IBM jest również jednym z założycieli Apache Software Foundation (ASF), a programiści IBM byli pośród najbardziej aktywnych kontrybutorów kodu. Java, a później OpenJDK – wersja open source SDK, również była od początku adoptowana i wspierana przez IBM.

Nad projektami open source pracuje około trzy tysiące pracowników IBM, głównie programistów, generujących około 15000 tzw. commitów, czyli zmian w kodzie wysyłanych do repozytorium w ciągu miesiąca. Na samym GitHub, IBM opiekuje się 1900 repozytoriami kodu.

Open Source w chmurze

W czasach, kiedy rozwiązania software’owe przenoszą się do chmury, nadal możemy poważnie myśleć o korzystaniu z oprogramowania open source. IBM Cloud ma dobrą ofertę dla wszystkich zwolenników otwartego oprogramowania, zarówno takich, którzy chcą swoje rozwiązanie udostępnić, jak i tych, którzy w swojej aplikacji chcą z tych narzędzi korzystać.

Cloud Foundry

Cloud Foundry to platforma aplikacji chmurowych oparta o otwarte oprogramowanie. Służy do rozwoju i publikowania aplikacji klasy enterprise, a IBM zaangażował sie rozwój platformy już w 2010 roku.

Aplikacje działające na Cloud Foundry są natywnie pomyślane jako aplikacje chmurowe. Cloud Foundry działa z najpopularniejszą platformą kontenerową Kubernetes.

Cloud Foundry jest tak świetnie zintegrowane z konsolą IBM Cloud, że nawet nie zauważamy, kiedy jej używamy. Po prostu wybieramy środowisko uruchomieniowe naszej aplikacji, wskazujemy gdzie mamy kod źródłowy i… to wszystko. Żadnego uruchamiania serwerów i dbania o maszyny wirtualne.

Do wyboru mamy:

  • Liberty for Java – jest to otwarte środowisko dla aplikacji w Javie, zawierające Jakarta EE, Eclipse MicroProfile oraz Java EE
  • Python
  • PHP
  • Node.js
  • Ruby
  • Go
  • Swift – odmiana serwerowa języka stworzonego przez Apple
  • .NET Core – do aplikacji ASP
  • Tomcat

Jak widać, pozostajemy wciąż w obrębie środowisk open source.

OpenWhisk

W 2015 roku IBM zaczął rozwijać platformę serverless. Podjęto wtedy decyzję, że powinna ona być jak najbardziej otwarta i rozwijana przez społeczność. Tym sposobem pojawiła się szansa na rozwój i rozbudowę ekosystemu bez ograniczeń. Implementacja ta została udostępniona w 2016 roku pod nazwą OpenWhisk.

Przy pomocy kilku partnerów, takich jak RedHat czy Adobe, projekt przybrał formę Apache OpenWhisk, i jest do dziś rozwijany.

OpenWhisk jest otwartą, bezserwerową platformą opartą na koncepcji programowania akcji (logiki funkcjonalnej), w dowolnym języku programowania, które mogą być uruchamiane pod wpływem wyzwalaczy (triggers) lub w zaplanowanym momencie. Publikować te rozwiązania można dosłownie wszędzie, a przede wszystkim na platformach takich jak Kubernetes, i integrować z różnymi usługami dostępnymi w IBM Cloud takich jak Kafka (kolejka wiadomości) czy bazy danych.

Kubernetes

Szybko rozwijające się kontenery wprowadziły nowy standard na rynku. Najbardziej popularną implementacją samych kontenerów jest zdecydowanie Docker natomiast w sferze zarządzania wieloma kontenerami, jest to Kubernetes i OpenShift. Obie platformy to zarządzania klastrami kontenerów są dostępne na IBM Cloud. Dodatkowo, IBM Cloud zawiera wiele gotowych do użycia obrazów, które jednym kliknięciem mogą być uruchomione w klastrze: RabbitMQ, PostreSQL, Redis, Apache i wiele, wiele innych.

OpenStack

OpenStack to projekt typu infrastucture-as-a-service nadający się do publikowania zarówno w prywatnych sieciach, jak i w chmurze. Twórcy nazywają go systemem operacyjnym dla chmury. Pozwala na zarządzanie wszystkimi rodzajami chmurowych zasobów takich jak moc obliczeniowa, maszyny wirtualne, usługi kontenerowe czy składowanie. IBM wspiera ten projekt od jego powstania.

Hyperledger Fabric

Projekt, który rozpoczął się jako Open Blockchain po uzyskaniu dojrzałości przemianowany został na Hyperledger Fabric. Jest to otwarta platforma, do tworzenia modularnych aplikacji korzystających z sieci blockchain i jej podstawowych, ważnych w biznesie, walorów: niezaprzeczalności i przejrzystości.

Hyperledger Fabric potrafi być bardzo wydajny w porównaniu do implementacji blockchain powolnych sieci publicznych takich jak Bitcoin lub Ethereum. Ważną jego cechą jest bezpieczeństwo, ponieważ każdy uczestnik sieci jest zidentyfikowany certyfikatem. Takie komponenty, jak usługi członkostwa czy consensus (uzgadnianie) mogą być w Hyperledger Fabric komponentami typu plug and play.

Więcej o technologii blockchain i tego, jak używać można Hyperledger Fabric w chmurze IBM Cloud pisaliśmy przy okazji poprzedniego artykułu.

Jupyter Notebook, Tensorflow, Spark

Specjalistów Data Science z pewnością ucieszy fakt, że IBM Cloud wspiera otwarte standardy również w ich obszarze. Watson Studio, środowisko do tworzenia modeli data science, wspiera pracę na plikach notebook, oraz wykorzystuje popularne w analityce biblioteki – Anaconda, Tensorflow, Keras, Theano i inne.

IBM aktywnie wspiera projekt Spark od jego powstania. Jest to widoczne również w chmurze IBM, gdzie możemy odpalić czystą usługę Spark, albo na przykład, możemy wykonać nasz plik notebookowy na środowisku Sparkowym.

Open source stanowi szkielet IBM Cloud

Jeśli ufasz rozwiązaniom open source ze względu na ich otwartość, bezpieczeństwo i dostępność wsparcia od społeczności, zaufaj rozwiązaniom w IBM Cloud. Po darmowej rejestracji większość usług można wykorzystać do swojego projektu bez żadnych kosztów, skalując je w górę w razie potrzeby.

Co ważne, tak duża obecność niezmienionych technologii open source daje gwarancję braku tzw. vendor-lock, czyli uzależnienia się od unikalnej usługi dostawcy. Oczywiście mamy tu wiele opcji typu „enterprise”, ale to jest już wybór użytkownika, najczęściej obok w katalogu serwisów, znajdziesz usługę tańszą i opartą na czystym open-source. Dzięki otwartości, nie będziemy związani z jednym dostawcą chmury na stałe, i w każdej chwili możemy podjąć decyzję przeniesienia naszej aplikacji i danych.

* Tekst powstał we współpracy z IBM.

Nie przegap nowych tekstów. Obserwuj Spider’s Web w Google News.

Dołącz do dyskusji