Przejdź do treści
Podobają Ci się nasze treści?
Sięgnij po unikalną wiedzę prosto od developerów i marketingowców. Zapisz się do newslettera.
CAPTCHA
Dziękujemy za zapisanie się do newslettera!
Aby otrzymywać najświeższe, branżowe informacje, potwierdź subskrypcję w mailu, który od nas dostałeś.
PS. Nawet tak ważne wiadomości lubią czasem pomylić folder, dlatego upewnij się, że mail nie trafił do SPAMU
Otwórz swoją skrzynkę e-mail

Czym jest Symfony Cloud?

Kategoria: 
Data aktualizacji: 
Czas czytania
: 7 min

W idealnym świecie wszystko – commit kodu, testy, staging – dałoby się zrobić jednym poleceniem i z poziomu jednej platformy. SymfonyCloud w dużej mierze to umożliwia oraz eliminuje konieczność budowania i utrzymywania własnej infrastruktury. Jeśli należysz do 600 tysięcy użytkowników Symfony i chcesz przyspieszyć cały cykl wdrożeniowy bez wchodzenia w szczegóły konfiguracji serwerów i baz SQLowych – warto znać tę platformę.

Definicja i zastosowanie Symfony Cloud

SymfonyCloud – czym dokładnie jest?

SymfonyCloud jest określane przez producentów jako PaaS, czyli Platform-as-a-Service (platforma jako usługa). Można je opisać jako hosting zoptymalizowany pod Symfony lub PaaS z pełną integracją z tym ekosystemem. Platforma zarządza infrastrukturą projektu – sam programista nie musi samodzielnie instalować ani konfigurować serwerów webowych czy baz danych, wystarczy zadeklarować potrzebne usługi w pliku konfiguracyjnym. Całość jest silnie zintegrowana z Symfony; wykorzystuje jego modułową konstrukcję, umożliwia integrację z zewnętrznymi systemami cache i wspiera funkcje autowiringu.

SymfonyCloud powstało na jednej głównej idei: infrastruktura serwerowa jest częścią Twojej aplikacji, więc powinna ewoluować razem z kodem.

Każda gałąź w repozytorium Git może wprowadzać nie tylko zmiany w logice aplikacji, ale również modyfikacje środowiska – jak nowe usługi, aktualizacje baz danych czy poprawki konfiguracyjne. Plus, SymfonyCloud umożliwia tworzenie izolowanych środowisk testowych dla każdej gałęzi, co pozwala niezależnie sprawdzać działanie aplikacji oraz powiązanych z nią usług jeszcze przed wdrożeniem. W ten sposób platforma pozwala np. na bieżąco weryfikować, jak będzie wyglądała tworzona strona internetowa, jeśli w czasie pracy wprowadzisz mniejsze lub większe zmiany.

Główne korzyści SymfonyCloud

Jakie są zalety SymfonyCloud i samego wdrażania aplikacji Symfony w chmurze z perspektywy developerów (oraz project managerów)?

Najważniejsze plusy SymfonyCloud
  1. Szybkie uruchamianie projektów – wystarczy kilka sekund, aby uruchomić produkt i na nim działać. SymfonyCloud jest zbudowane z myślą o CLI. Projekt może być migrowany do SymfonyCloud poprzez zwykłe przeniesienie kodu i bazy danych.
  2. Synchronizacja z repozytorium Git – należy skorzystać z opisowego pliku konfiguracyjnego przechowywanego bezpośrednio w repozytorium Git, aby zmienić i śledzić wymagania infrastrukturalne wraz z kodem.
  3. Wielowarstwowy system plików wspierający produkcję i optymalizację aplikacji Symfony – bazując na technologii Ceph, możesz stworzyć wiele natychmiastowych klonów tworzonej aplikacji. Każda nowo utworzona „warstwa” projektu zawiera wszystkie zmiany (konfigurację, kod i zawartość) na szczycie istniejącego systemu plików.
  4. Brak potrzeby instalowania usługi na swojej maszynie – z lokalnej maszyny możesz utworzyć „tunel” do infrastruktury SymfonyCloud. Pozwala to przetestować swój kod z usługami na żywo i dokładną kopią danych powstałych w trakcie tworzenia. Nie musisz instalować, konfigurować ani zarządzać żadnymi dodatkowymi usługami.
  5. Kontrola z poziomu terminalu – dzięki SymfonyCloud możesz tworzyć nowe środowiska, ustawiać zmienne środowiskowe, dodawać integracje, wdrażać, skalować i wiele więcej.
  6. Wsparcie dla najnowszych wersji Symfony i PHP – platforma jest rozwijana równolegle z ekosystemem Symfony, dlatego SymfonyCloud wspiera wszystkie aktualne wersje frameworka oraz samego języka PHP – w tym także wydania LTS (Long-Term Support).
  7. Zintegrowane i elastyczne procesy CI/CD – platforma wspiera automatyzację procesu wdrażania dzięki integracji z systemem kontroli wersji Git. Każda nowa gałąź automatycznie generuje środowisko testowe, w którym można uruchomić predefiniowane buildy i testy. Deployment sprowadza się wtedy do scalania gałęzi. Plus, możliwa jest też integracja z zewnętrznymi narzędziami CI/CD (np. GitHub Actions, GitLab CI, CircleCI).
  8. Duża skalowalność – SymfonyCloud pozwala w każdej chwili zwiększyć liczbę instancji lub dodać nowe usługi (kolejki, cache, bazy danych), a dzięki wbudowanemu load balancingowi, automatycznie rozłoży ruch między instancjami.
  9. Przewidywalne modele cenowe – co ważne, SymfonyCloud ma bardzo transparentny model rozliczeń oparty na zużyciu zasobów – płacisz za określoną z góry liczbę instancji, pamięć RAM i przestrzeń na dysku.

Jak działa SymfonyCloud?

SymfonyCloud jest w zasadzie kompletną platformą do zarządzania cyklem życia aplikacji. Opiera się m.in. na repozytorium Git, konteneryzacji, ale też na narzędziach z szerszego środowiska Symfony. Poniżej sprawdzisz, jak to wszystko działa w praktyce.

Integracja z Git i struktura projektu

Sercem całego projektu jest repozytorium Git. Przechowywany jest tam nie tylko kod aplikacji, ale także konfiguracja infrastruktury (np. w pliku .symfony.cloud.yaml). Każdy projekt może składać się z wielu aplikacji (np. frontend, backend API, worker), zarządzanych niezależnie – ale wciąż w ramach jednego repozytorium.

Co chyba najważniejsze, każda gałąź Git automatycznie generuje nowe, izolowane środowisko – co pozwala testować zmiany w kodzie i konfiguracji bez wpływu na inne instancje. Środowiska te dziedziczą ustawienia i konfigurację z głównej gałęzi (np. produkcyjnej), ale można je łatwo dostosowywać pod konkretne cele (np. testy A/B, sandboxy dla klienta, hotfixy).

Konteneryzacja i wirtualne klastry

Każda aplikacja i usługa uruchamiana na SymfonyCloud działa w odizolowanym kontenerze. Takie podejście gwarantuje pełną spójność środowisk oraz większe bezpieczeństwo. Zbiór kontenerów połączonych w ramach jednego środowiska (np. aplikacja Symfony + PostgreSQL + Redis) tworzy tzw. wirtualny klaster.

Dla każdej gałęzi Git tworzony jest osobny klaster – z własną instancją aplikacji i usług towarzyszących. Główna gałąź (main, master lub dowolnie wyznaczona przez developera) staje się środowiskiem produkcyjnym, podczas gdy pozostałe działają jako wersje testowe, stagingowe lub rozwojowe.

Proces budowy aplikacji

Gdy tylko wykonasz git push, SymfonyCloud wykryje aktualizację wybranej gałęzi i automatycznie uruchomi proces budowy aplikacji w pełnej izolacji od działającego środowiska. Wszystkie zależności PHP (np. przez Composer, npm/yarn), assety frontendowe i inne operacje zdefiniowane w hookach buildowych (build i build:assets w .symfony.cloud.yaml) będą wykonywane w tymczasowym build enviroment.

Po zakończeniu builda platforma stworzy gotowy do wdrożenia, skonteneryzowany artefakt, który można automatycznie audostępnić w wybranym środowisku.

Proces wdrażania aplikacji

SymfonyCloud umożliwia też stosowanie hooków deploymentowych (deploy, post_deploy). Można w nich uruchomić np. migracje bazy danych, czyszczenie cache czy inne operacje związane z wdrożeniem aplikacji.

Platforma automatycznie zarządza przełączaniem wersji aplikacji; nowa instancja aktywuje się tylko wtedy, gdy cały proces wdrożenia zakończy się sukcesem – to zmniejsza ryzyko przestojów w dostępie do aplikacji.

Zarządzanie usługami i konfiguracją

Sporą zaletą jest to, że platforma umożliwia łatwe zarządzanie usługami zewnętrznymi – bazami danych (PostgreSQL, MySQL), systemami cache (Redis), message brokers (RabbitMQ) czy wyszukiwarkami (Elasticsearch).

Połączenia są automatycznie konfigurowane przez platformę, a dane wrażliwe (np. hasła, klucze API) bezpiecznie przechowywane jako sekrety. Można je dodawać i edytować za pomocą CLI lub dashboardu; są zaszyfrowane i dostępne wyłącznie dla wybranych środowisk, zgodnie z zasadą minimalnego dostępu (principle of least privilege).

Dostęp i interakcja z środowiskami

Środowiskami można w 100% zarządzać z poziomu Symfony CLI – terminala do monitorowania logów, przeglądania statusów buildów i deploymentów, dodawania zmiennych oraz kontrolowania przepływu ruchu.

W razie potrzeby można połączyć się bezpośrednio z kontenerem aplikacji przez SSH, aby wykonać diagnostykę lub uruchomić ręczne komendy (np. php bin/console). Platforma umożliwia również tunelowanie usług (np. bazy danych) na urządzenie lokalne, więc możesz testować aplikację na swoim sprzęcie z danymi ze środowiska stagingowego lub produkcyjnego.

Dla jakich projektów SymfonyCloud jest najlepszym wyborem?

To idealna platforma dla aplikacji, które wymagają jak najkrótszego procesu developmentu, częstych wdrożeń i łatwego zarządzania środowiskami. Świetnie sprawdzi się w projektach prowadzonych przez małe i średnie zespoły: w aplikacjach typu API, mikroserwisach czy rozwijanych iteracyjnie MVP.

Czy SymfonyCloud poradzi sobie z aplikacją o dużym natężeniu ruchu?

Tak – platforma oferuje zarówno skalowanie wertykalne (zwiększanie zasobów instancji), jak i horyzontalne (rozszerzanie liczby instancji), co pozwala dostosowywać infrastrukturę na bieżąco do potrzeb aplikacji. Oczywiście podstawą powinna być dobra architektura aplikacji + konfiguracja backendu. ;)

Jakie podstawowe zabezpieczenia oferuje SymfonyCloud dla mojej aplikacji?

Po pierwsze, system automatycznie generuje certyfikaty SSL/TLS dla każdej aplikacji (np. przez Let's Encrypt). Po drugie – wszystkie środowiska w chmurze są od siebie odizolowane, co minimalizuje ryzyko wpływu jednego środowiska na drugie. Plus, platforma umożliwia pełną kontrolę nad zmiennymi środowiskowymi.

Od czego głównie zależą koszty utrzymania aplikacji w SymfonyCloud?

Koszty usługi zależą przede wszystkim od: liczby i rozmiaru środowisk, zużycia zasobów (CPU, RAM, przestrzeń dyskowa), ilości przesyłanych danych oraz tego, czy korzystasz z dodatkowych, zarządzanych usług (np. MongoDB, Redis, Elasticsearch).

Oceń wpis
4.6
Ocena: 4.7 Liczba głosów: 16

Dziękujemy za ocenę postu!

Mamy więcej darmowych treści. Nie rezygnuj z nich!
Technologie, SEO, marketing - newsletter z poradami, które od razu możesz wdrożyć! Prosto na Twoją skrzynkę. Za darmo i bez spam
CAPTCHA