Тренировки по DevOps. Часть 2
Лекция 7: Сети. Часть 2. Коробки и коты
Лекция 8: Как запустить «облако»
Разбор домашнего задания: Linux инструменты командной строки. Итоговый проект
Разбор домашнего задания 6: Базы данных
Разбор домашнего задания 7: Сети. Часть 2. Коробки и коты
Разбор домашнего задания 2: Облако. Кто виноват и что делать?
источник
#devops #девопс
📲 Мы в MAX
Подпишись 👉@i_DevOps
Лекция 7: Сети. Часть 2. Коробки и коты
Лекция 8: Как запустить «облако»
Разбор домашнего задания: Linux инструменты командной строки. Итоговый проект
Разбор домашнего задания 6: Базы данных
Разбор домашнего задания 7: Сети. Часть 2. Коробки и коты
Разбор домашнего задания 2: Облако. Кто виноват и что делать?
источник
#devops #девопс
Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4👍2
Docker изнутри: исчерпывающее руководство. Механизмы контейнеризации + примеры, эксперименты и реализация
Docker — не магия, а грамотное применение механизмов Linux. Разбираем инструмент, который пугает своей сложностью не меньше блокчейна. Показываем на пальцах как работают: Namespaces, Cgroups, OverlayFS – основные компоненты любого контейнера, и как стандарт OCI объединяет их в единую экосистему. Об этом и не только в статье.
https://habr.com/ru/articles/935178/
#devops #девопс
📲 Мы в MAX
Подпишись 👉@i_DevOps
Docker — не магия, а грамотное применение механизмов Linux. Разбираем инструмент, который пугает своей сложностью не меньше блокчейна. Показываем на пальцах как работают: Namespaces, Cgroups, OverlayFS – основные компоненты любого контейнера, и как стандарт OCI объединяет их в единую экосистему. Об этом и не только в статье.
https://habr.com/ru/articles/935178/
#devops #девопс
Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥2
🚀 Подборка полезных IT каналов в Max
Системное администрирование, DevOps 📌
https://max.ru/i_odmin Все для системного администратора
https://max.ru/bash_srv Bash Советы
https://max.ru/sysadminof Книги для админов, полезные материалы
https://max.ru/i_odmin_book Библиотека Системного Администратора
https://max.ru/i_devops DevOps: Пишем о Docker, Kubernetes и др.
https://max.ru/tipsysdmin Типичный Сисадмин
https://max.ru/channel_win_sysadmin Системный Администратор Windows
https://max.ru/channel_linux_admin Linux: Системный администратор
https://max.ru/channel_linuxmod Linux
https://max.ru/channel_i_linux Системный администратор
https://max.ru/channel_devopslib DevOps, SRE, Sysadmin
https://max.ru/channel_devops_star DevOps Star (Звезда Девопса)
Excel лайфхак 📌
https://t.me/Excel_lifehack Excel лайфхак
Английский с нуля 🇬🇧
https://max.ru/UchuEnglish
1C разработка 📌
https://max.ru/odin1c_rus Cтатьи, курсы, советы, шаблоны кода 1С
https://max.ru/channel_DevLab1C 1С:Предприятие 8
Программирование C++📌
https://max.ru/cpp_lib Библиотека C/C++ разработчика
https://max.ru/channel_cpp_geek C++ geek
Программирование Go📌
https://max.ru/golang_lib Библиотека Go (Golang) разработчика
Программирование React📌
https://max.ru/react_lib React
Программирование Rust📌
https://max.ru/channel_rust_lib
Программирование Python 📌
https://max.ru/python_of Python академия.
https://max.ru/BookPython Библиотека Python разработчика
Java разработка 📌
https://max.ru/bookjava Библиотека Java разработчика
https://max.ru/channel_java_geek Java Geek
GitHub Сообщество 📌
https://max.ru/githublib Интересное из GitHub
Базы данных (Data Base) 📌
https://max.ru/database_info Все про базы данных
Фронтенд разработка 📌
https://max.ru/frontend_1 Подборки для frontend разработчиков
Библиотеки 📌
https://max.ru/programmist_of Книги по программированию
https://max.ru/proglb Библиотека программиста
https://max.ru/bfbook Книги для программистов
Программирование 📌
https://max.ru/bookflow Лекции, видеоуроки, доклады с IT конференций
https://max.ru/itmozg Программисты, дизайнеры, новости из мира IT
https://max.ru/php_lib Библиотека PHP программиста 👨🏼💻👩💻
Шутки программистов 📌
https://max.ru/itumor Шутки программистов
Защита, взлом, безопасность 📌
https://max.ru/thehaking Канал о кибербезопасности
https://max.ru/xakkep_1 Хакер Free
Книги, статьи для дизайнеров 📌
https://max.ru/odesigners Статьи, книги для дизайнеров
Математика 📌
https://max.ru/Pomatematike Канал по математике
https://max.ru/phismat_1 Обучающие видео, книги по Физике и Математике
Вакансии в IT📌
https://max.ru/progjob
https://max.ru/channel_rabotait
Мир технологий 📌
https://max.ru/mir_teh Канал для любознательных
Городские📌
https://max.ru/piterspb_78 Свежие новости Санкт-Петербурга
https://max.ru/mockva_life Свежие новости Москвы
https://max.ru/piterspb Питер Новости: Санкт-Петербург / СПБ / ДТП
https://max.ru/channel_krasnodar_novosty Краснодар Новости
https://max.ru/channel_novosibirsk_novosti Новосибирск
https://max.ru/channel_samara_novosti Новости Самары
https://max.ru/channel_ekaterinburg_novosti Новости Екатеринбурга
https://max.ru/channel_kazan_novosti Новости Казани
https://max.ru/channel_omsk_novosti Новости Омска
https://max.ru/channel_moskva_24 Москва 24
Системное администрирование, DevOps 📌
https://max.ru/i_odmin Все для системного администратора
https://max.ru/bash_srv Bash Советы
https://max.ru/sysadminof Книги для админов, полезные материалы
https://max.ru/i_odmin_book Библиотека Системного Администратора
https://max.ru/i_devops DevOps: Пишем о Docker, Kubernetes и др.
https://max.ru/tipsysdmin Типичный Сисадмин
https://max.ru/channel_win_sysadmin Системный Администратор Windows
https://max.ru/channel_linux_admin Linux: Системный администратор
https://max.ru/channel_linuxmod Linux
https://max.ru/channel_i_linux Системный администратор
https://max.ru/channel_devopslib DevOps, SRE, Sysadmin
https://max.ru/channel_devops_star DevOps Star (Звезда Девопса)
Excel лайфхак 📌
https://t.me/Excel_lifehack Excel лайфхак
Английский с нуля 🇬🇧
https://max.ru/UchuEnglish
1C разработка 📌
https://max.ru/odin1c_rus Cтатьи, курсы, советы, шаблоны кода 1С
https://max.ru/channel_DevLab1C 1С:Предприятие 8
Программирование C++📌
https://max.ru/cpp_lib Библиотека C/C++ разработчика
https://max.ru/channel_cpp_geek C++ geek
Программирование Go📌
https://max.ru/golang_lib Библиотека Go (Golang) разработчика
Программирование React📌
https://max.ru/react_lib React
Программирование Rust📌
https://max.ru/channel_rust_lib
Программирование Python 📌
https://max.ru/python_of Python академия.
https://max.ru/BookPython Библиотека Python разработчика
Java разработка 📌
https://max.ru/bookjava Библиотека Java разработчика
https://max.ru/channel_java_geek Java Geek
GitHub Сообщество 📌
https://max.ru/githublib Интересное из GitHub
Базы данных (Data Base) 📌
https://max.ru/database_info Все про базы данных
Фронтенд разработка 📌
https://max.ru/frontend_1 Подборки для frontend разработчиков
Библиотеки 📌
https://max.ru/programmist_of Книги по программированию
https://max.ru/proglb Библиотека программиста
https://max.ru/bfbook Книги для программистов
Программирование 📌
https://max.ru/bookflow Лекции, видеоуроки, доклады с IT конференций
https://max.ru/itmozg Программисты, дизайнеры, новости из мира IT
https://max.ru/php_lib Библиотека PHP программиста 👨🏼💻👩💻
Шутки программистов 📌
https://max.ru/itumor Шутки программистов
Защита, взлом, безопасность 📌
https://max.ru/thehaking Канал о кибербезопасности
https://max.ru/xakkep_1 Хакер Free
Книги, статьи для дизайнеров 📌
https://max.ru/odesigners Статьи, книги для дизайнеров
Математика 📌
https://max.ru/Pomatematike Канал по математике
https://max.ru/phismat_1 Обучающие видео, книги по Физике и Математике
Вакансии в IT📌
https://max.ru/progjob
https://max.ru/channel_rabotait
Мир технологий 📌
https://max.ru/mir_teh Канал для любознательных
Городские📌
https://max.ru/piterspb_78 Свежие новости Санкт-Петербурга
https://max.ru/mockva_life Свежие новости Москвы
https://max.ru/piterspb Питер Новости: Санкт-Петербург / СПБ / ДТП
https://max.ru/channel_krasnodar_novosty Краснодар Новости
https://max.ru/channel_novosibirsk_novosti Новосибирск
https://max.ru/channel_samara_novosti Новости Самары
https://max.ru/channel_ekaterinburg_novosti Новости Екатеринбурга
https://max.ru/channel_kazan_novosti Новости Казани
https://max.ru/channel_omsk_novosti Новости Омска
https://max.ru/channel_moskva_24 Москва 24
MAX
Системный Администратор | Sysadmin Windows & Linux Server. …
Купить рекламу: https://telega.in/m/i_odmin
Блог практикующего админа. Настройка Windows Server, Active Directory (AD), GPO и терминальных серверов (RDP). Раб…
Блог практикующего админа. Настройка Windows Server, Active Directory (AD), GPO и терминальных серверов (RDP). Раб…
GitButler
GitButler - это git-клиент, позволяющий работать с несколькими ветками одновременно. Он позволяет быстро организовать изменения файлов в отдельные ветки, сохраняя их в рабочей директории. Затем вы можете отправлять ветки по отдельности на ваше удалённое хранилище или напрямую создавать запросы на получение.
В двух словах, это более гибкая версия git add -p и git rebase -i, позволяющая эффективно работать в нескольких ветках.
https://github.com/gitbutlerapp/gitbutler
#devops #девопс
📲 Мы в MAX
Подпишись 👉@i_DevOps
GitButler - это git-клиент, позволяющий работать с несколькими ветками одновременно. Он позволяет быстро организовать изменения файлов в отдельные ветки, сохраняя их в рабочей директории. Затем вы можете отправлять ветки по отдельности на ваше удалённое хранилище или напрямую создавать запросы на получение.
В двух словах, это более гибкая версия git add -p и git rebase -i, позволяющая эффективно работать в нескольких ветках.
https://github.com/gitbutlerapp/gitbutler
#devops #девопс
Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3👍1
В Ansible роли есть директории file и templates. Что они содержат и чем отличаются?
files — содержит файлы, которые будут скопированы на настраиваемые хосты; так же — может содержать скрипты, которые позже будут запускаться на хостах.
templates — содержит шаблоны файлов с переменными.
#devops #девопс
📲 Мы в MAX
Подпишись 👉@i_DevOps
files — содержит файлы, которые будут скопированы на настраиваемые хосты; так же — может содержать скрипты, которые позже будут запускаться на хостах.
templates — содержит шаблоны файлов с переменными.
#devops #девопс
Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥1
Безопасный код ≠ безопасный прод
16 октября на онлайн-трансляции PSD 2026 команда AppSec Positive Technologies покажет, где вы реально теряете контроль: в вебе и в Kubernetes с ИИ‑сервисами.
PT BlackBox: исследуем SPA, API и авторизованные приложения без готовых схем, находим реальные точки атаки в работающем вебе. Разберём, как DAST дополняет SAST и что происходит между безопасным кодом и безопасным продом.
🕓16:20 МСК
PT Container Security: Kubernetes как платформа для ИИ. Реальные атаки на кластеры с ИИ‑сервисами. Покажем, как контролировать секреты, системные команды, файлы, сетевые соединения и действия конкретного сервиса/контейнера.
🕓16:40 МСК
📅 16 октября · онлайн‑трансляция PSD 2026
🔗 Регистрируйтесь
16 октября на онлайн-трансляции PSD 2026 команда AppSec Positive Technologies покажет, где вы реально теряете контроль: в вебе и в Kubernetes с ИИ‑сервисами.
PT BlackBox: исследуем SPA, API и авторизованные приложения без готовых схем, находим реальные точки атаки в работающем вебе. Разберём, как DAST дополняет SAST и что происходит между безопасным кодом и безопасным продом.
🕓16:20 МСК
PT Container Security: Kubernetes как платформа для ИИ. Реальные атаки на кластеры с ИИ‑сервисами. Покажем, как контролировать секреты, системные команды, файлы, сетевые соединения и действия конкретного сервиса/контейнера.
🕓16:40 МСК
📅 16 октября · онлайн‑трансляция PSD 2026
🔗 Регистрируйтесь
👍1
SSO через Keycloak для инфраструктурных сервисов: часть 1, теория
Если вы хоть раз настраивали доступ к Grafana, Argo CD, Vault или Prometheus и сталкивались с аутентификацией «на костылях», значит, тоже задавались вопросом: почему бы не сделать это один раз и правильно — через SSO?
Эта первая часть разбора мастер-класса с DevOpsConf 2025 от Алексея Цыкунова, CTO Hilbert Team.
https://habr.com/ru/companies/oleg-bunin/articles/936338/
#devops #девопс
📲 Мы в MAX
Подпишись 👉@i_DevOps
Если вы хоть раз настраивали доступ к Grafana, Argo CD, Vault или Prometheus и сталкивались с аутентификацией «на костылях», значит, тоже задавались вопросом: почему бы не сделать это один раз и правильно — через SSO?
Эта первая часть разбора мастер-класса с DevOpsConf 2025 от Алексея Цыкунова, CTO Hilbert Team.
https://habr.com/ru/companies/oleg-bunin/articles/936338/
#devops #девопс
Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥2
SSO через Keycloak для инфраструктурных сервисов: часть 2, практика
В первой части мы разобрали, как устроен Keycloak, какие у него сущности и зачем вообще нужен SSO в DevOps-инфраструктуре. Теперь — к делу. Во второй части переходим от теории к практике. Разворачиваем Keycloak в Kubernetes, настраиваем Terraform-провайдер, подключаем к нему Grafana, Argo CD и другие сервисы. Разбираемся, как выглядят реальные конфигурации клиентов, scopes и mappings, чтобы SSO действительно работал — с нужными токенами, ролями и группами.
https://habr.com/ru/companies/oleg-bunin/articles/936866/
#devops #девопс
📲 Мы в MAX
Подпишись 👉@i_DevOps
В первой части мы разобрали, как устроен Keycloak, какие у него сущности и зачем вообще нужен SSO в DevOps-инфраструктуре. Теперь — к делу. Во второй части переходим от теории к практике. Разворачиваем Keycloak в Kubernetes, настраиваем Terraform-провайдер, подключаем к нему Grafana, Argo CD и другие сервисы. Разбираемся, как выглядят реальные конфигурации клиентов, scopes и mappings, чтобы SSO действительно работал — с нужными токенами, ролями и группами.
https://habr.com/ru/companies/oleg-bunin/articles/936866/
#devops #девопс
Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
Поднимаем кластер Kubernetes с помощью Terraform и Ansible
Развёртывание Kubernetes вручную требует времени на настройку нод, компонентов и окружения. Как автоматизировать этот процесс, чтобы быстро создавать и обновлять кластеры без повторной ручной настройки?
15 октября в 20:00 МСК на открытом вебинаре OTUS покажем, как использовать Terraform и Ansible для развёртывания Kubernetes-кластера и интегрировать управление инфраструктурой в GitLab CI/CD.
На практике рассмотрим:
— как связать Terraform и Ansible для комплексного управления инфраструктурой;
— как развернуть Kubernetes-кластер и настроить его ноды и компоненты;
— как автоматизировать создание и обновление кластера;
— как интегрировать развёртывание Kubernetes в GitLab CI/CD;
— как сделать процесс развёртывания воспроизводимым и сократить количество ручных операций.
После вебинара вы поймёте, как совместно использовать Terraform и Ansible, увидите процесс автоматизированного развёртывания Kubernetes-кластера и узнаете, как встроить управление инфраструктурой в CI/CD.
Урок проходит в преддверии старта курса «DevOps. Экспертный уровень».
👉 Регистрируйтесь: https://vk.cc/d2SA8m
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Развёртывание Kubernetes вручную требует времени на настройку нод, компонентов и окружения. Как автоматизировать этот процесс, чтобы быстро создавать и обновлять кластеры без повторной ручной настройки?
15 октября в 20:00 МСК на открытом вебинаре OTUS покажем, как использовать Terraform и Ansible для развёртывания Kubernetes-кластера и интегрировать управление инфраструктурой в GitLab CI/CD.
На практике рассмотрим:
— как связать Terraform и Ansible для комплексного управления инфраструктурой;
— как развернуть Kubernetes-кластер и настроить его ноды и компоненты;
— как автоматизировать создание и обновление кластера;
— как интегрировать развёртывание Kubernetes в GitLab CI/CD;
— как сделать процесс развёртывания воспроизводимым и сократить количество ручных операций.
После вебинара вы поймёте, как совместно использовать Terraform и Ansible, увидите процесс автоматизированного развёртывания Kubernetes-кластера и узнаете, как встроить управление инфраструктурой в CI/CD.
Урок проходит в преддверии старта курса «DevOps. Экспертный уровень».
👉 Регистрируйтесь: https://vk.cc/d2SA8m
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
❤2
Шпаргалка по Kubernetes
1. Основные понятия
🔘 Pod – наименьшая единица развертывания, содержит один или несколько контейнеров.
🔘 Deployment – контроллер, который управляет репликами Pod’ов и их обновлением.
🔘 Service – абстракция, предоставляющая доступ к Pod’ам (ClusterIP, NodePort, LoadBalancer).
🔘 ConfigMap – хранит конфигурационные данные в виде ключ-значение.
🔘 Secret – безопасное хранилище для конфиденциальных данных (пароли, токены).
🔘 PersistentVolume (PV) – абстракция для хранения данных.
🔘 PersistentVolumeClaim (PVC) – запрос на использование хранилища (PV).
🔘 Namespace – логическое разделение ресурсов в кластере.
🔘 Ingress – объект, предоставляющий доступ к сервисам внутри кластера через HTTP/HTTPS.
2. Основные команды kubectl
Работа с контекстом
Работа с ресурсами
Создание и удаление объектов
3. Пример манифестов
Простой Pod
Deployment
Service (NodePort)
Ingress
4. Полезные команды
5. Отладка и устранение проблем
📲 Мы в MAX
#devops #девопс
Подпишись 👉@i_DevOps
1. Основные понятия
2. Основные команды kubectl
Работа с контекстом
kubectl config get-contexts # Список контекстов
kubectl config use-context <name> # Переключение контекста
kubectl config set-context <name> --namespace=<namespace> # Установить namespace по умолчанию Работа с ресурсами
kubectl get pods # Список Pod'ов
kubectl get deployments # Список Deployment'ов
kubectl get services # Список Service'ов
kubectl get nodes # Список узлов
kubectl get namespaces # Список namespace'ов
kubectl get events # Лог событий
kubectl describe pod <pod-name> # Подробная информация о Pod
kubectl logs <pod-name> # Логи Pod
kubectl exec -it <pod-name> -- /bin/sh # Зайти внутрь контейнера Создание и удаление объектов
kubectl apply -f <file>.yaml # Применить манифест
kubectl delete -f <file>.yaml # Удалить объект
kubectl delete pod <pod-name> # Удалить Pod
kubectl delete deployment <deploy-name> # Удалить Deployment 3. Пример манифестов
Простой Pod
apiVersion: v1
kind: Pod
metadata:
name: my-pod
spec:
containers:
- name: my-container
image: nginx
ports:
- containerPort: 80Deployment
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-deployment
spec:
replicas: 3
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-container
image: nginx
ports:
- containerPort: 80Service (NodePort)
apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
selector:
app: my-app
ports:
- protocol: TCP
port: 80
targetPort: 80
nodePort: 30080
type: NodePortIngress
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: my-ingress
spec:
rules:
- host: example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: my-service
port:
number: 804. Полезные команды
kubectl top pod # Мониторинг использования CPU/RAM Pod'ов
kubectl top node # Мониторинг узлов
kubectl rollout status deployment <deploy-name> # Статус развертывания
kubectl rollout undo deployment <deploy-name> # Откат изменений
kubectl autoscale deployment <deploy-name> --min=2 --max=10 --cpu-percent=80 # Авто-масштабирование 5. Отладка и устранение проблем
kubectl get pods --all-namespaces # Проверить состояние всех Pod'ов
kubectl describe pod <pod-name> # Подробности о Pod
kubectl logs <pod-name> # Логи контейнера
kubectl logs <pod-name> -p # Логи завершившегося контейнера
kubectl exec -it <pod-name> -- /bin/sh # Подключение внутрь контейнера
kubectl get events --sort-by=.metadata.creationTimestamp # Последние события #devops #девопс
Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2❤1
Когда IT дает сбой, бизнес не должен останавливаться
Не работает 1С, недоступны документы, сотрудники не могут выполнять свои задачи. Даже несколько часов простоя могут обернуться потерями для компании. Причины могут быть разными, но для руководителя главное — как быстро компания сможет вернуться к нормальной работе.
Itentis Cloud — безопасная облачная среда для стабильной работы бизнеса.
Мы предлагаем аренду облачных ресурсов на базе компактной инфраструктуры с контролируемой нагрузкой. Здесь можно разместить 1С, CRM и другие корпоративные системы без покупки собственного оборудования.
А если вы не хотите погружаться в технические вопросы, команда Itentis возьмет вашу IT-инфраструктуру на комплексное обслуживание.
Ищете надежную площадку для корпоративных систем? Обращайтесь в Itentis Cloud — подберем решение под ваши задачи.
☁️ Зарабатывайте вместе с Itentis Cloud! Один из наших партнеров, системный администратор, начал с переноса нескольких клиентов в облако, а теперь получает 70–100 тыс. руб. ежемесячно на партнерской комиссии. Подключайте и своих клиентов к Itentis Cloud, получайте процент от их расходов на инфраструктуру и увеличивайте доход.
Первые 14 дней использования облака бесплатно. Подробнее — в партнерской программе
Не работает 1С, недоступны документы, сотрудники не могут выполнять свои задачи. Даже несколько часов простоя могут обернуться потерями для компании. Причины могут быть разными, но для руководителя главное — как быстро компания сможет вернуться к нормальной работе.
Itentis Cloud — безопасная облачная среда для стабильной работы бизнеса.
Мы предлагаем аренду облачных ресурсов на базе компактной инфраструктуры с контролируемой нагрузкой. Здесь можно разместить 1С, CRM и другие корпоративные системы без покупки собственного оборудования.
А если вы не хотите погружаться в технические вопросы, команда Itentis возьмет вашу IT-инфраструктуру на комплексное обслуживание.
Ищете надежную площадку для корпоративных систем? Обращайтесь в Itentis Cloud — подберем решение под ваши задачи.
☁️ Зарабатывайте вместе с Itentis Cloud! Один из наших партнеров, системный администратор, начал с переноса нескольких клиентов в облако, а теперь получает 70–100 тыс. руб. ежемесячно на партнерской комиссии. Подключайте и своих клиентов к Itentis Cloud, получайте процент от их расходов на инфраструктуру и увеличивайте доход.
Первые 14 дней использования облака бесплатно. Подробнее — в партнерской программе
❤1