Open Source

Oprogramowanie Open Source stanowi podstawę wielu naszych rozwiązań oraz niewyczerpane źródło inspiracji. Pamiętamy jednak, że nie ma nic za darmo!

 
 
 

Od samego początku naszej działalności w maksymalnie szerokim zakresie staramy się stosować oprogramowanie o otwartym kodzie źródłowym. Dotyczy to zarówno platformy systemowej Linux, na której tworzymy i zazwyczaj uruchamiamy nasze systemy, jak również komponentów oprogramowania, które mogą być zastosowane w projektach dla naszych Klientów.

Cenimy sobie możliwość dostępu do kodu źródłowego tych komponentów, co pozwala nam na ich pełne poznanie, a niejednokrotnie na reagowanie w sytuacjach kryzysowych na poziomie, który jest niedostępny przy zastosowaniu produktów komercyjnych.

Linux jako platforma serwerowa i deweloperska

Uważamy, że system operacyjny Linux tworzy obecnie najlepsze środowisko pracy dla inżynierów zajmujących się oprogramowaniem internetowym. Dotyczy to zarówno stacji roboczych, na których pracujemy na co dzień (Linux Ubuntu), jak również środowiska produkcyjnego, w którym pracują systemy naszych Klientów (Linux Debian).

Przeczytaj więcej o naszych narzędziach i środowisku pracy oraz o zastosowaniu Linux'a w warstwie hostingu.

Serwery HTTP, serwery aplikacji, bazy danych

Wytwarzane przez nas systemy do swojego działania potrzebują pewnego podstawowego zestawu oprogramowania, do którego należą między innymi serwery HTTP, serwery aplikacji Java Enterprise czy bazy danych. W naszej praktyce korzystamy w tym obszarze z wielu elementów Open Source, między innymi z:

Posiadamy bogatą praktykę w tym zakresie obejmującą korzystanie zarówno z oprogramowania komercyjnego jak i Open Source. Możemy śmiało stwierdzić, że w obszarze bazowego oprogramowania aplikacyjnego komponenty Open Source sprawdzają się równie dobrze jak komercyjne, a w niektórych aspektach je przewyższają.

Biblioteki oprogramowania

Przeciętny system zbudowany w technologii Java Enterprise zawierać może od kilku do kilkudziesięciu bibliotek pomocniczych. Duża część z nich to biblioteki Open Source, które można zgrać bezpośrednio z Internetu i użyć we własnym projekcie.

Zastosowanie bibliotek o otwartym kodzie źródłowym przynosi szereg korzyści:

  • niski początkowy koszt pozyskania biblioteki,
  • wygoda programowania – szczególnie debugowania,
  • możliwość szybkiego naprawiania błędów ujawniających się podczas wdrożenia i eksploatacji systemu,
  • lepsze zrozumienie sposobu działania systemu jako całości.

Z naszych doświadczeń wynika, że główną korzyścią stosowania bibliotek Open Source jest posiadanie kodu źródłowego. Przede wszystkim ze względu na możliwość szybkiej analizy i usuwania błędów wykrywanych podczas eksploatacji systemu.

Nie ma nic za darmo

Pamiętamy jednak o starej maksymie „Nie ma nic za darmo". Zastosowanie oprogramowania Open Source wiąże się z określonymi problemami i kosztami, choć nie są one tak wprost widoczne jak przy użyciu komponentów komercyjnych.

Linux is only free if your time has no value

Jamie Zawinski

Poniżej przedstawiamy najczęściej występujące niedogodności związane z zastosowaniem komponentów Open Source. Chcemy jednak podkreślić, że część z tych problemów dotyczy również zastosowania komponentów komercyjnych.

  • Brak opieki nad starszymi wersjami komponentów. Bardzo często pełne zaangażowanie uczestników projektu przenosi się wyłącznie na pracę nad najnowszą wersją.
  • Świetna idea, ale kiepska implementacja. Środowisko Open Source to nieograniczona kopalnia znakomitych pomysłów. Często jednak osobom czy zespołom tworzącym to oprogramowanie brakuje doświadczenia inżynierskiego.
  • Wersje binarne nie odpowiadają wersjom źródłowym. Wynika to zazwyczaj z braku doświadczenia w utrzymaniu systemów. Sprzyja temu zjawisku rozproszenie geograficzne członków zespołu.
  • Słaba jakość dokumentacji. Część zespołów Open Source koncentruje się wyłączenie na programowaniu, a zaniedbuje dokumentację.
  • Brak źródeł lub dokumentacji (zazwyczaj do starszych wersji komponentów). Bardziej kłopotliwa wersja problemów z pierwszego punktu. Zdarza się, że projekt zostaje zarzucony, a w skrajnych przypadkach jest zupełnie niedostępny.

Z większością tego typu problemów można sobie śmiało poradzić. Wymaga to jednak doświadczenia i dobrej znajomości specyfiki rynku komponentów Open Source. Więcej na temat kosztów stosowania komponentów Open Source, związanych z tym problemów i możliwościach radzenia sobie z nimi można znaleźć w naszej prezentacji i artykule.

Wielu dostawców oprogramowania traktuje korzystanie z komponentów Open Source wyłącznie w kategoriach obniżenia kosztów wytworzenia projektu. Jest to podejście błędne, gdyż nie obejmuje całego cyklu życia oprogramowania, a szczególnie etapu jego utrzymania i rozwoju po wdrożeniu produkcyjnym.

My pamiętamy, że zadaniem stworzonego przez nas systemu jest zapewnienie jego rozwoju i niezawodnej pracy przez wiele lat. Dlatego zawsze dobieramy komponenty oprogramowania kierując się długookresowym rachunkiem ekonomicznym w konkretnym projekcie - niezależnie od tego czy są to elementy Open Source czy produkty komercyjne.

Aspekty prawne

Zastosowanie komponentów Open Source w komercyjnych rozwiązaniach niesie za sobą określone uwarunkowania prawne. Dostawca rozwiązania może udzielić licencji na elementy wykonane przez niego. Natomiast oprogramowanie Open Source będące częścią całego rozwiązania licencjonowane jest zgodnie z warunkami licencji tego oprogramowania. Sytuację komplikuje duża liczba typów licencji, na jakich oprogramowanie Open Source może być udostępniane. Wielu dostawców oprogramowania pomija ten złożony aspekt.

My rozumiemy, że dla naszych Klientów ważna jest pewność, że system, który dostarczamy, nie jest obarczony wadami prawnymi. Dlatego dbamy o to, aby wszystkie użyte w konkretnym rozwiązaniu komponenty Open Source pozwalały na ich bezpłatne zastosowanie komercyjne.

 
 

Oglądaj nasz kanał na YouTube

 
 

Masz pytanie?

 
 
 
Jarosław Błąd
 
Jarosław Błąd

Dyrektor Pionu Produktów

jaroslaw.blad at e-point dot pl