Еуропада Python Flask үшін бұлттық сервер
Flask - API және микросервистер жасауға арналған Python-дағы ең танымал веб-фреймворктердің бірі. Ол жеңіл, икемді және орналастыруға қарапайым. Бірақ қай жерде орналастыратыныңыз қалай орналастыратыныңыздан кем маңызды емес. Еуропалық қолданушылар және GDPR сәйкестігі үшін Flask-ты еуропалық серверде іске қосу - дұрыс шешім.
ЕО-дағы хостинг Python Flask үшін неге маңызды
Еуропалық қолданушыларға қызмет көрсететін Flask API-лері қысқа желі маршруттарынан тікелей ұтады. ЕО-да орналасқан REST API Берлиннен, Варшавадан немесе Амстердамнан келген сұрауларға 10 мс-тен аз желі уақытында жауап береді. АҚШ дата-орталығындағы сол API тек беруге 80-120 мс қосады.
GDPR Flask қолданбасы ЕО тұрғындарының дербес деректерімен жұмыс істегенде қолданылады. Бұған қолданушыларды аутентификациялау, тапсырыстарды өңдеу, кері байланыс нысандары және сәйкестендіретін ақпаратты сақтайтын кез келген нүкте кіреді. Бэкендті ЕО ішінде іске қосу деректерді сақтау орнына қойылатын талаптарға сәйкестікті жеңілдетеді және трансатлантикалық беру үшін стандартты шарттық ережелердің қажеттілігін алып тастайды.
Flask сонымен бірге ірі архитектуралар құрамындағы ішкі микросервистерге жиі қолданылады. Стектің қалғаны ЕО-да орналасса, Flask-ты да сол жерде ұстау сервистер арасындағы кешігуді азайтады және сәйкестік тұрғысынан архитектураның біртұтастығын сақтайды.
Серверге қойылатын ең аз талаптар
Flask-тың артықшылықтарының бірі - ресурсты аз тұтынуы. Gunicorn-мен базалық Flask қолданбасы қарапайым жабдықта қолайлы жұмыс істейді.
- RAM - SQLite-пен қарапайым Flask API үшін кемінде 1 ГБ. Бірнеше Gunicorn воркері бар PostgreSQL қолданбаларына 2 ГБ тиімдірек.
- CPU - формальды түрде 1 ядро жетеді, бірақ 2 ядро Gunicorn-ды бірнеше жұмыс процесімен іске қосуға және қатар жүктемеде өткізу қабілетін арттыруға мүмкіндік береді.
- Диск - кемінде 10 ГБ. Flask қолданбаларының өзі шағын, дискті негізінен PostgreSQL деректері мен журналдар алады.
- Python - 3.10 нұсқасы немесе жаңасы. Python 3.12 - өнімділігі жақсартылған, ағымдағы ұсынылатын нұсқа.
- ОЖ - Ubuntu 22.04 LTS - Flask продакшені үшін ең көп қолдау көрсетілетін платформа.
DCXV-тің ұсынылатын конфигурациясы
DCXV бұлттық VPS тарифтері айына EUR 15-тен басталады және Flask API үшін ең аз талаптарды толық жабады. Бастапқы тариф ЕО-дағы Tier III деңгейлі дата-орталықта бөлінген ресурстар береді, трафик шарықтағанда процессорыңызды тұншықтыратын шулы көршілер жоқ.
Продакшен трафигі және PostgreSQL дерекқоры бар Flask қолданбалары үшін 2 ядро / 2 ГБ RAM тарифі - оңтайлы нүкте. Ол 4-8 Gunicorn воркерін қолдайды және әдеттегі API міндеттерінде секундына жүздеген сұрауды ұстайды.
Чехия мен Португалиядағы дата-орталықтар Орталық және Шығыс Еуропаны жақсы қамтиды. Тәулік бойғы инженер қолдауы әр тарифке кіреді: түнгі үште бірдеңе бұзылса, сіз өтінім кезегімен емес, инженермен байланысасыз. Тарифтерді https://dcxv.com/data-center#cloud бетінде қараңыз
Реттеу нұсқаулығы
Келесі қадамдар Flask қолданбасын Gunicorn-мен Ubuntu 22.04-те орналастырады. Дерекқоры бар қолданбалар үшін PostgreSQL орнату қосылған.
# Python 3.12 және PostgreSQL орнату
sudo apt update && sudo apt install -y python3.12 python3.12-venv python3-pip postgresql postgresql-contrib nginx
# Виртуалды орта жасау және Flask орнату
python3.12 -m venv /var/www/flaskapp/venv
source /var/www/flaskapp/venv/bin/activate
pip install flask gunicorn psycopg2-binary
# Gunicorn үшін systemd қызметін жасау
sudo nano /etc/systemd/system/flaskapp.service
# ExecStart=/var/www/flaskapp/venv/bin/gunicorn --workers 4 --bind unix:/tmp/flaskapp.sock app:app
# Қызметті қосу және іске қосу
sudo systemctl daemon-reload
sudo systemctl enable flaskapp && sudo systemctl start flaskapp
# Nginx-ті сокетке проксилеуге реттеу
sudo nano /etc/nginx/sites-available/flaskapp
# proxy_pass http://unix:/tmp/flaskapp.sock
sudo ln -s /etc/nginx/sites-available/flaskapp /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
Күтілетін өнімділік
Прагадағы 2 ядро / 2 ГБ инстансында Gunicorn-мен Flask API міндеттері үшін жақсы көрсеткіш береді:
- Жауап беру уақыты - жадыдағы деректермен қарапайым JSON нүктелері үшін 5-15 мс. PostgreSQL-ге жүгінетін нүктелер әдетте 10-30 мс береді.
- Өткізу қабілеті - процессорды жүктемейтін нүктелер үшін 4 Gunicorn воркерімен секундына 500-1200 сұрау. Ауыр есептеулерде немесе ORM арқылы сұрауларда көрсеткіш төмен.
- ЕО қолданушыларына дейінгі желі кешігуі - Прагадан Батыс және Орталық Еуропаның көп орнына дейін 20 мс-тен аз.
- Ауқымдау - Gunicorn воркерлерін қосу процессор шегіне жеткенше сызықты ауқымдалады. Ядро санын арттыру бұл шекті қолданба кодын өзгертпей көтереді.
Flask-тың жеңілдігі салынған әр еуроға жоғары өнімділікті білдіреді. Бұл бұлтта орналастыруға ең үнемді фреймворктердің бірі.
Бұл өз зертханамыздағы өлшеу емес, осы сыныптағы жабдыққа арналған күтілім. Оларды өлшемді есептеудің бастау нүктесі деп санаңыз және өз жүктемеңізді өлшеңіз: нақты сандар провайдерден гөрі сіздің деректеріңізге, сұрауларыңызға және баптауыңызға әлдеқайда қатты байланысты.
