Platforma UniCloud zapewnia gotowe środowisko uruchomieniowe przeznaczone dla aplikacji pisanych w języku Python. Zoptymalizowana i przygotowana do natychmiastowego zarządzania platforma, umożliwia szybkie uruchomienie środowiska bez konieczności ręcznego konfigurowania każdego z jego parametrów.
Uruchomienie środowiska dla aplikacji pisanych w Python
Przełącz się na zakładkę Python, dodaj Apache Python jako serwer aplikacji, a także pozostałe inne stosy oprogramowania wymagane przez projekt (np. mechanizm cache, bazę danych czy dodatkowy storage). Serwer aplikacji Apache Python jest automatycznie dodawany w pakiecie z modułem mod_wsgi. Na typ etapie określisz także liczbę węzłów, limity cloudletów dla poszczególnych zasobów oraz np. włączysz publiczny adres IPv4.
Wersje Python
Aktualnie obsługiwane są następujące wersje Python:
- 2.7.15
- 3.x.x
Możesz wybrać wymaganą wersję Pythona bezpośrednio z kreatora topologii podczas tworzenia nowego środowiska, a także dostosować go do już istniejących, używając ponownego rozmieszczenia kontenerów.
Wdrażanie Aplikacji Python
Wdrożenie do zarządzanych serwerów aplikacji (Apache Python) jest zautomatyzowane przez platformę i może być wykonane przy użyciu jednego z następujących sposobów:
- ze zdalnego repozytorium VCS (np. GitHub)
- przez archiwum aplikacji załadowane przez zewnętrzny adres URL lub z lokalnego komputera.
Przepływ Git zapewnia możliwość wdrażania sekwencyjnego lub jednoczesnego, jak również automatycznego wdrażania ponownego z repozytorium, gdy pojawią się nowe zmiany kodu.
Sprawdź przykłady hostingu aplikacji opartych na Pythonie w Jelastic:
Zarządzanie pakietami i modułami Pythona
Aby pomyślnie wdrożyć i uruchomić aplikację Python, konieczne może być zainstalowanie niektórych dodatkowych modułów lub innych pakietów. W związku z tym powszechną praktyką jest uruchamianie aplikacji internetowych Python w izolowanych środowiskach wirtualnych, na przykład przy użyciu narzędzia środowiska wirtualnego, które umożliwia zarządzanie projektami niezależnie i bez uprawnień administratora.
- Aby utworzyć i uruchomić nowe środowisko wirtualne, przejdź kolejno do sekcji Ustawienia > SSH> Web SSH i uruchom następujące polecenia:
virtualenv {appName}
source {appName}/bin/activate
- Zarządzanie wymaganymi pakietami oprogramowania jest zwykle dostarczane przez pip – popularny system zarządzania pakietami Pythona dla repozytorium PiPI. Poniżej wymieniono niektóre z najczęściej używanych poleceń:
- pip install {packageName} – instaluje niezbędny moduł
- pip uninstall {packageName} – usuwa wcześniej zainstalowany moduł
- pip install -upgrade {packageName} – aktualizuje określony moduł do najnowszej wersji
- pip install -r requirements.txt – instaluje wszystkie moduły podane w pliku requirements.txt
- pip list – pokazuje zestaw już zainstalowanych modułów
Wskazówka: W przypadku wstępnie skonfigurowanych pakietów aplikacji (archiwów) wszystkie zależności są dostarczane za pomocą pliku requirements.txt, który jest odczytywany podczas procesu wdrażania w celu automatycznego zainstalowania wymienionych modułów Pythona. Powinien również zawierać plik wsgi.py ze skryptem punktu wejścia do uruchamiania aplikacji w środowisku wirtualnym przy użyciu mod_wsgi dla Apache.
Zarządzanie Domenami
Do środowiska przeznaczonego na hosting aplikacji Python możesz podpiąć własną, zewnętrzną domenę i używać jej zamiast domyślnej, systemowej nazwy środowiska. Istnieją dwie możliwości przypisywania domen:
- rekord CNAME: w wypadku używania Wspólnego Równoważnika Obciążenia (Shared Load Balancer); zalecana dla środowisk developerskich oraz testowych
- rekord A: w wypadku używania Publicznego IP; jest w stanie poradzić sobie z dużym obciążeniem i nadaje się do środowisk produkcyjnych.
Co więcej, istnieje możliwość łatwego przełączania się między domenami, w celu przekierowania ruchu z jednego środowiska do innego (na przykład przełączając się na nowszą wersję aplikacji bez okresu przestoju).
Automatyczne Skalowanie Pionowe
Automatyczne skalowanie pionowe pozwala dynamicznie przydzielać dodatkowe zasoby (RAM, procesor) na podstawie bieżącego użycia i zgodnie z granicznymi wartościami ustawionymi dla serwera. Ta funkcja pozwala alokować tylko te zasoby, które w danym momencie są wymagane do prawidłowego, stabilnego działania aplikacji. Pozwala także oszczędzić czas dzięki pełnej automatyzacji przydzielania zasobów(dodawania lub ich odejmowania).
Aplikacja będzie działała zgodnie z ustawionymi ograniczeniami, zmniejszając użycie zasobów gdy obciążenie jest mniejsze, i zwiększając je w wypadku znacznego obciążenia. W ten sposób płaci się tylko za zasoby, które rzeczywiście się zużywa.
Ręczne Skalowanie Poziome
Istnieje możliwość łatwego dodania kolejnych serwerów Python poprzez asystenta topologii w trakcie tworzenia środowiska lub jego dostosowywania. Należy kliknąć przycisk „+” w sekcji Skalowanie poziome i dodać wymaganą liczbę instancji.
Maksymalna liczba serwerów tego samego typu wewnątrz pojedynczej warstwy środowiska to 16 węzłów. Co istotne, jeśli na etapie tworzenia środowiska nie dodamy load balancera, ale włączymy automatyczne skalowanie, zostanie on dodany przez platformę automatycznie.
Automatyczne Skalowanie Poziome
Automatyczne skalowanie poziome może być wprowadzone poprzez użycie regulowanych wyzwalaczy (tzw. triggery), które dostosowują liczbę węzłów do stopnia obciążenia aplikacji. Aby skonfigurować skalowanie automatyczne należy przejść do sekcji Ustawienia > Monitorowanie > Automatyczne skalowanie poziome i wybrać przycisk dodaj.
W tym miejscu można skonfigurować wyzwalacze dla konkretnych stosów i zasobów (CPU, RAM, Sieć, Dysk) poprzez dostosowanie warunków skalowania.
Więcej informacji na temat uruchamiania aplikacji tworzonych w języku Python znajdziesz w dokumentacji Jelastic: