Wikipedysta:Hydros2000/Software Stack
Stos oprogramowania (ang. Software Stack) – to grupa programów, zestawów aplikacji oraz narzędzi, które razem tworzą spójny ekosystem, działając w określonej i zdefiniowanej kolejności w kierunku wspólnego celu. Można też tak zdefiniować dowolną grupę narzędzi lub rutynowych aplikacji, które tworzą razem spójny zestaw. Stos to również baza danych oraz odpowiednie pliki do zainstalowania, definicje oprogramowania produktów oraz poprawki. Software stack można wdrażać przy użyciu obrazu lub definicji oprogramowania[1].
Przykładem wyczerpującego stosu oprogramowania aplikacji Facebooka jest: PHP, React, GraphQL, Cassandra, Hadoop, Swift i wiele innych frameworków.
Tworzenie stosu oprogramowania
[edytuj | edytuj kod]Tworzenie stosu oprogramowania polega na dobraniu odpowiednich, zintegrowanych warstw, które tworząc pakiet ułatwiają ich pobieranie i wdrażanie w tym samym czasie.
Składnikami takiego stosu może być ogólne środowisko – np. system operacyjny Mac OS X, Windows lub Linux – oraz bardziej szczegółowe rozwiązania programistyczne, takie jak określona struktura PHP.
Części stosu oprogramowania[2]
[edytuj | edytuj kod]Stos oprogramowania najczęściej wykorzystywany jest w aplikacjach i składają się na niego cztery warstwy, z których aż 3 znajdują się po stronie serwera.
- Warstwa klienta – to jedyny składnik w przeglądarce;
- Warstwa internetowa – serwer WWW lub serwer HTTP;
- Warstwa biznesowa – serwer aplikacji, w tym platforma programistyczna, struktury i języki programowania po stronie serwera;
- Warstwa bazy danych – wybrany serwer bazy danych, który często uzależniony jest od warstwy biznesowej.
Tworzenie stosu oprogramowania: front-end, back-end i full-stack
[edytuj | edytuj kod]Proces tworzenia aplikacji uogólniając można rozdzielić na dwa “obozy”: przedni (widoczny dla klienta front-end) i „od zaplecza” (back-end development). Oczywiście istnieją również programiści, którzy zajmują się pełnym stosem (full-stack developerzy) pracując zarówno na front, jak i back-endzie.
Często zdarza się, że różni programiści, którzy pracują przy takim samym projekcie aplikacji opracowywują różne części stosu oprogramowania.
Przykłady stosów oprogramowania
[edytuj | edytuj kod]LAMP
[edytuj | edytuj kod]W pewnym sensie od tego stosu się zaczęło, jest to jeden z pierwszych software stacków, który składa się ze wszystkich bezpłatnych komponentów oprogramowania, które ma otwarty kod źródłowy. Wszystko składa się w spójną całość, a każdy z elementów zarówno razem, jak i osobno szczególnie dobrze radzą sobie w dynamicznych witrynach internetowych i aplikacjach. Śmiało można uznać, że to najbardziej tradycyjny model, a jednocześnie solidny rodzaj stosu.
W skład tego stosu wchodzą:
- system operacyjny Linux (po zamianie na Windows mamy stos WAMP);
- serwer WWW Apache;
- oprogramowanie aplikacji PHP (wymiennie z językami Python i Perl);
- baza danych MySQL.
Popularne CMS typu open source, jak WordPress i Drupal korzystają z software stack LAMP.
Odmiany obejmują
[edytuj | edytuj kod]- MAMP (Mac OS X / Apache / MySQL / PHP): – Odmiana systemu operacyjnego MacOS X, dostępna zarówno dla Windows, jak i Mac.
- XAMPP (Linux, Mac OS X, Windows / Apache / MySQL / PHP, Perl): Bardziej kompletny pakiet, zawiera serwer FTP, który jest wieloplatformowy i może działać w systemach operacyjnych Linux, Windows i Mac.
- WAMP (Windows / Apache / MySQL / PHP): odpowiednik systemu operacyjnego Microsoft Windows, zawiera wszystkie funkcje i jest łatwy do rozpoczęcia. Stos WIMP jest podobny, ale zawiera serwer IIS.
- LAPP (Linux / Apache / PostgreSQL / PHP): odmiana bazy danych PostgreSQL zoptymalizowana pod kątem projektów na poziomie przedsiębiorstwa.
MEAN
[edytuj | edytuj kod]- MongoDB / Express.js / AngularJS / Node.js
MEAN to nowoczesny stos (jeden z najpopularniejszych w 2020 roku), który próbuje wygryźć LAMP. Tak samo opiera się w całości na JavaScript, dzięki czemu oszczędza czas i pieniądze firmom, które w swoim zespole posiadają wielu frontendowców (w całym stosie używa się tylko jednego języka). Tak jak w LAMP, wszystkie technologie są bezpłatne i mają otwarty kod źródłowy przy wsparciu dynamicznej społeczności.
Kto używa MEAN?
[edytuj | edytuj kod]Aplikacje tego stosu są idealne do hostingu w chmurze, ponieważ są elastyczne, skalowalne i rozszerzalne. Świetnie sprawdza się przy projektowaniu kalendarzy, map i wyszukiwań lokalizacji oraz witryn agregujących wiadomości. Ten stack można łatwo wdrożyć, ponieważ zawiera własny serwer WWW.
Komponenty MEAN
[edytuj | edytuj kod]- baza danych MongoDB,
- wiodącą baza danych NoSQL opartą na JSON, która oferuje większą elastyczność niż relacyjna baza danych SQL;
- framework front-end AngularJS, Express.js ,
- framework sieciowy dla Node.js;
- podstawową platformę środowiska wykonawczego Node.js zamiast systemu operacyjnego.
Oferuje elastyczność i wiele funkcji do tworzenia jedno- i wielostronicowych aplikacji internetowych.
Odmiany obejmują
[edytuj | edytuj kod]- MEEN: stos zastępujący Ember.js dla AngularJS.
- Stos MEVN – W tej wersji MEAN, Angular został zastąpiony przez Vue.js jako front-end framework. Ta struktura zyskała ogromną popularność w ciągu ostatnich kilku lat.
- Stos MERN jest bardzo podobny do MEAN, w którym React zastępuje Angulara.
Ruby Stack
[edytuj | edytuj kod]- Ruby / Ruby on Rails / RVM (Ruby Virtual Machine) / MySQL / Apache / PHP
Odmiany obejmują
[edytuj | edytuj kod]- JRuby – ta wersja jest w całości napisana w języku Java, a Ruby działa na wirtualnej maszynie języka Java (JVM).
Stos Django
[edytuj | edytuj kod]Bitnami DevPack
[edytuj | edytuj kod]- PHP / Django / Ruby on Rails / Java / MySQL, PostgreSQL / Apache Tomcat
BHCS / BCHS
[edytuj | edytuj kod]GLASS
[edytuj | edytuj kod]WIMP
[edytuj | edytuj kod]- Pakiet oprogramowania WIMP obejmuje system operacyjny Windows, serwery internetowe IIS, MySQL lub MS Access jako system zarządzania danymi oraz języki programowania PHP, Perl lub Python.
NMP
[edytuj | edytuj kod]- NMP jest w rzeczywistości zestawem kilku stosów oprogramowania, które zawierają serwery sieciowe Nginx, MySQL i język programowania PHP. Ten zestaw technologii działa ze wszystkimi głównymi systemami operacyjnymi i został oddzielnie spakowany z systemami Linux, Windows i macOS.
MAMP
[edytuj | edytuj kod]- Framework MAMP może być używany do tworzenia witryn internetowych działających na komputerach z systemem Windows lub macOS. Pakiet oprogramowania składa się z systemu operacyjnego macOS lub Windows, serwera WWW Apache, MySQL do zarządzania relacyjnymi bazami danych oraz PHP, Perl lub Python do tworzenia stron internetowych.