SEO SMM Арбитраж трафика Инструменты Программирование Веб-разработка Графика Софт Cоц. сети Скрипты сайтов Боты
хостинг
Vibix - надеждый видео-балансир

Telegram Expert

Купить резедентные прокси

Что такое Микро Сервисы


Доброго времени суток всем форумчанам, сегодня наконец дошли руки до того, чтобы поведать вам всем о микросервисах.

Итак, что это такое? Для начала нужно уяснить, что есть 2 основные архитектуры постройки web приложений: монолитная и микросервисная. При монолитной архитектуре ты собираете какое-то N-ое число своих функций и классов в одно приложение, подключëнное к единой базе данных. Это прекрасное решение, если у тебя лëгкий небольшой проект, в котором не предполагается длительная поддержка кодовой базы. Данный подход поможет максимально быстро собрать MVP (минимально жизнеспособный продукт), но при длительной поддержки становится крайне трудно вносить изменения и нововведения (твои прошлые костыли ломаются, а багов становится всё больше и больше).

- А что там с микросервисами? https://www.docker.com/get-started/7. Благодаря нему ты сможешь создать минимальную среду для работы твоей программы, именуемый контейнером. Как же собрать своë приложение в docker? Делается это достаточно просто, есть много шаблонов под разные ЯП, в этой статье я буду показать на примере python с фреймворком flask. Для начала разберëмся, как этот контейнер устроен. А на самом деле его структура, как Ханойская башня. По сути своей есть первый слой - ОС, с минимальным количеством софта, служб и прочего шлака. Дальше идëт какая-нибудь абстракция например ЯП, БД или какая другая утилита, например Nginx. А уже третим слоем мы переносим в эту среду все файлы нашего приложения-сервиса и устанавливаем нужные зависимости. Ты можешь взять чистый контейнер с Ubuntu и накидать в него хоть впн, хоть react app, хоть среду для обучения пентесту. Всё ограничивается только твоими знаниями, что впрочем можно сказать про любое направление программирования.

Итак, практика, соберëм наш "Hello, World!" на Flask в Docker контейнер

from flask import Flask
from flask import request, jsonify
app = Flask(__name__)
@app.route('/', methods=['POST','GET'])
def home():
 return b"Hello, World!"
if __name__ == '__main__':
 from waitress import serve
 serve(app, port=9753)


blinker==1.6.2
click==8.1.6
colorama==0.4.6
Flask==2.3.2
itsdangerous==2.1.2
Jinja2==3.1.2
MarkupSafe==2.1.3
waitress==2.1.2
Werkzeug==2.3.6


# Выбираем образ от которого наследоваться
FROM python:3.10
# Устанавливаем переменную среды для предотвращения вывода буфера при стандартных операциях ввода/вывода
ENV PYTHONUNBUFFERED 1
# Создаем и переходим в рабочую директорию
RUN mkdir /app
WORKDIR /app
# Копируем все файлы приложения
COPY . /app/
# Устанавливаем зависимости с помощью pip
RUN pip install --no-cache-dir -r requirements.txt
# Команда для запуска приложения
CMD [ "python", "main.py" ]


Итак, в принципе я комментариями к коду всë расписал, но сделаю акцент на ключевых словах

  • FROM- импорт образа, на базе которого ты будешь деплоить своë приложение
  • RUN- выполнение команды в bash
  • WORKDIR- выбор рабочей директории
  • COPY- копирование (почему не через bash, потому что она не имеет доступ к памяти вне контейнера)
  • CMD - что-то типо финальной команды для запуска всего приложения


- Хм, а как это запустить?

docker build
docker run -p 9753:9753 my-first-image


- А если несколько контейнеров и их нужно вместе запускать?
- В таком случае поможет docker-compose, конечно, есть ещё Kubernetes. Но это уже для продвинутых и нереальное сложных систем, где может быть несколько одинаковых микросервисов запущенных на разных серверах, нагрузка между которыми балансирует Nginx, а запускается этим самым Kubernetes. https://vipadmin.net/bot-redirect?https://endway.org/lanutrix/
127
Рейтинг:

Что такое Микро Сервисы

28-03-2024, 15:00 .zip

Скачать

Что такое Микро Сервисы

Сохранить или отправить

Оставить комментарий

Партнёрские программы

Смотреть все
1WIN ПАРТНЕРКА

1WIN ПАРТНЕРКА

1 403
  • 40
Партнерские программы / Гемблинг партнерки
Обзор Partners House для монетизации сайтов и лендингов + отзывы вебмастеров

Обзор Partners House для монетизации сайтов и лендингов + отзывы вебмастеров

795
  • 0
Арбитраж трафика / Партнерские программы / PUSH партнерки
Смотреть все

Магазин

Смотреть все
Купить
Бот для продажи VPN 3X-UI для Telegram

Бот для продажи VPN 3X-UI для Telegram

Telegram-бот для продажи VPN! Автоматизированный бот для продажи вашего...

Купить
Мониторинг хайп проектов на движке DLE

Мониторинг хайп проектов на движке DLE

В данном скрипте есть возможность включить функцию чтобы пользователи сами...

Купить
Скрипт казино с 5 классическими играми.

Скрипт казино с 5 классическими играми.

Разработчики онлайн-казино, хотим поделиться отличной новостью: в январе мы...

Купить
Customer WishList / Избранные товары покупателей

Customer WishList / Избранные товары покупателей

Данный модуль позволяет просматривать избранные товары пользователей. Есть...

Купить
Меняем заголовок и favicon

Меняем заголовок и favicon

Меняет favicon и title, при переходе пользователя на другую вкладку в браузере....

Смотреть все

Сервисы

Смотреть все
Смотреть все