Разместить объявление
Vibix - надеждый видео-балансир
Rukassa - надёжная платёжная система для сайтов и телеграм ботов
VIPAdmin / PREMIUM / cod / Что такое Микро Сервисы

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


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

Итак, что это такое? Для начала нужно уяснить, что есть 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.club/bot-redirect?https://endway.org/lanutrix/

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

28-03-2024, 15:00 .zip

Скачать

Автор: cod

Дата: 28.03.2024 15:00

Просмотров: 2

Оцените статью:

0 0

Партнерки

Обзор RollerAds: умная пуш-сеть с инновационными инструментами
Обзор RollerAds: умная пуш-сеть с инновационными инструментами
-1
Перейти
Huffson Group: премиальная CPA-сеть для iGaming
Huffson Group: премиальная CPA-сеть для iGaming
-0.5
Перейти

Еще немного интересного

Арбитраж трафика / Мануалы / Статьи Установка трекера Keitaro
Арбитраж трафика / Мануалы / Статьи / Трекеры / Клоака Как установить трекер Keitaro на сервер Beget: Пошаговое руководство
Сервисы / Парсинг A-PARSER - парсер сайтов № 1
Сервисы / Сервера и хостинги Хостинг PrivateAlps (Игнорирует DMCA)
Сервисы / Платёжные системы Merchant001- надежный эквайринг для сайта
Статьи Дорвеи 2023-2024
Арбитраж трафика / Статьи Арбитраж трафика на пуш уведомлениях
Статьи / Софт / Антидетект Браузеры Лучшие антидетект браузеры
Сервисы / Трекеры / Клоака / Арбитраж трафика Keitaro PRO - Трекер для арбитража трафика
Хостинг / Скрипты сайтов / Статьи Как настроить работу почты
Хостинг / Скрипты сайтов / Статьи Урок доступ mysql с любого ip
Хостинг / Скрипты сайтов / Статьи Как сделать моментальную установку сервера? HOSTINPL
Хостинг / Статьи Exim (Восстановление по e-mail)
Скрипты сайтов / Статьи JavaScript - Меняем CSS

Отзывы (0)




To connect permitted only files with the extension: .tpl or .php To connect permitted only files with the extension: .tpl or .php