DevOps
Відкрити в Telegram
Docker, Kubernetes, облачные сервисы (AWS, GCP, Azure), Infrastructure as a Code (Terraform, CloudFormation), администрирование Windows и Linux, сети TCP, IP, скрипты (Bash, PowerShell), Ansible, Jenkins, DevSecOps, логирование. По вопросам @evgenycarter
Показати більше8 754
Підписники
-424 години
-67 днів
-1530 день
Архів дописів
8 756
⚡️ Разработай свой модуль Ansible — открытый урок
Количество модулей Ansible велико и возможности их разнообразны. Но иногда даже этого не хватает. В этом случае можно разработать свой собственный модуль! Использовать его в работе и, возможно, даже поделиться им с комьюнити.
🔥 О том как это сделать, вы узнаете на открытом уроке 11 июля в 20:00 «Разработка модуля Ansible».
Еще больше знаний о системе управления конфигурацией Ansible и ее кастомизации ждет вас на онлайн-курсе «Infrastructure as a code» OTUS для админов, DevOps и разработчиков.
📌 РЕГИСТРАЦИЯ
https://otus.pw/Qf8V/
8 756
DevOps meetup online
1. Современный GitOps - противостояние манифестов - Александр Кириллов,
Evrone
В докладе я расскажу про современный подход GitOps, который объединяет развертывание как инфраструктуры, так и приложений. Расскажу про существующие решения, и как мы в Evrone их используем. И да, мы разворачиваем Kubernets с помощью Kubernetes :)
2. Управляемое потребление ресурсов в крупной инфраструктуре - Антон Губарев, software engineer «Авито»
Я расскажу как это устроено в нашем PaaS. Как быстро и эффективно определять limits/requests для каждого деплоя, как считать суммарно потребление по целым юнитам, и как с помощью получившегося механизма мы смогли начать планировать ресурсы.
3. Зачем нужны "облака" и как их правильно использовать - Олег Вознесенский, Газпромбанк
Обзор этапов развития ИТ индустрии, приведших к появлению концепции "облаков", с акцентом на паттернах, делающих использование облаков эффективным.
➖➖➖
🗓 13 июля, начало в 19:00 мск, Среда
🌐 ОНЛАЙН
✅ Регистрация на мероприятие
8 756
💰Время — деньги. Получите высокооплачиваемую и востребованную профессию DevOps-инженера за 3 месяца на онлайн-курсе «Буткемп DevOps» в формате, который давно пользуется популярностью в Европе и США: записаться на курс
— Занимайтесь 3 full-time дня в неделю (теория+практика).
— Создайте портфолио с командным проектом.
— Учитесь с персональным ментором.
— Получите оффер с помощью карьерного консультанта.
📌Хотите протестировать учебный процесс заранее? Регистрируйтесь на бесплатные вебинары:
— 6.07 — ЗАВТРА в 20:00 мск — «Введение в Ansible»: регистрация
— 19.06 — «Введение в Docker»: регистрация
8 756
DevOps Engineering курс для начинающих.
16:22 -TDD
20:33 - CI
24:44 - CI Setup
34:44 - Code Coverage
46:55 - Linting
57:33 - Ephemeral Environments
1:10:55 - VM vs Container
1:23:22 - Rolling Deployments
1:28:33 - Blue Green Deployments
1:45:33 - Auto Scaling
1:58:44 - Service Discovery
2:02:22 - Log Aggregation
2:11:11 - Vital Production Metrics
#devops #девопс
Подпишись 👉@i_DevOps
8 756
Чек-лист: как защитить безопасность на Linux
Когда хакер взламывает систему Linux, скорее всего, злоумышленники внесут изменения в основные пакеты, такие как OpenSSH, ядро и так далее.
1 способ: проверяем общие изменения
Для начала, проверьте, нет ли изменений в этих пакетах. Возможно, мошенники поменяли файлы или бинарии? Проверить можно таким образом... Далее
#devops #девопс #Linux #Safety #Ubuntu
Подпишись 👉@i_DevOps
8 756
Оформите карту Visa или Mastercard в банке Казахстана онлайн
Не можете продлить нужный сервис, снять валюту за рубежом или получить международный перевод?
Команда Финакс запустила сервис, в котором граждане РФ могут оформить онлайн карту Visa или Mastercard в банке Казахстана. С помощью этого бота уже более 1000 россиян открыли зарубежные счета.
Для чего она подходит:
- Оплата зарубежных сервисов и покупок
- Хранение валютных сбережений
- Получение оплат из-за рубежа
- Использование в путешествиях
Весь процесс проходит онлайн, от вас потребуется только загранпаспорт.
Оформить заявку и почитать ответы на частые вопросы можно в нашем боте:
👉 https://t.me/Vostokpay_bot
8 756
Шпаргалка docker
Best Practice
Следуй принципу минимальных привилегий, процессы в контейнере никогда не должны выполняться из под рута, кроме редких случаев, нужно добавлять команду user и менять юзера на non-root.
Не привязываться к UID, он динамичен, можно записать во временную папку UID.
Сделать все исполняемые файлы владельцем рута, чтобы никто не изменил исполняемые файлы, а пользователю достаточно только права на выполнение.
Чем меньше компонентов и открытых портов, тем меньше поверхность для атак.
Использовать multistage для промежуточного контейнера для компиляции всего, зависимостей, временных файлов, образ может весить на треть меньше.
Distroless с чистого листа, использовать минимальный набор пакетов, например избавиться от образа Ubuntuи выбрать Debian-base, наши контейнеры содержат уязвимости изначального образа, чекать это.
Нужно обновлять всё до того, как выйдет из под поддержки.
Оставлять только те порты, которые реально нужны, избегать 22 и 21 3389 (ssh & ftp & rdp).
Никогда не помещайте логины/пароли в команде, в докерфайлах, переменных, docker secret или любой другой менеджер секретов ok.
Не использовать ADD, только COPY (когда используем точку - это воркдир где лежит докерфайл).
При сборке используйте .dockerignore чтобы убрать сенситив дату, это как .gitignore.
При сборке вначале команд лучше кешировать команду ран, а потом скопировать исходные данные.
Метадату записать.
Использовать тесты типа Linter и сканеры образов для CI.
Время от времени делать prune, докер любит много места жрать
#devops #docker #девопс
Подпишись 👉@i_DevOps
8 756
Шпаргалка docker
Volumes
docker cp file <containerID>:/ - Скопировать в корень контейнера file
docker cp <containerID>:/file . - Скопировать file из корня контейнера в текущую директорию командной строки
docker volume create todo-db - Создать volume для постоянного хранения файлов
docker run -dp 3000:3000 --name=dev -v todo-db:/etc/todos container-name - Добавить named volumу todo-db к контейнеру (они ok когда мы не заморачиваемся где конкретно хранить данные)
docker run -dp 3000:3000 --name=dev --mount source=todo-db,target=/etc/todos container-name - тоже самое что команда сверху
docker volume ls - Отобразить список всех volume’ов
docker volume inspect - Инспекция volume’ов
docker volume rm - Удалить volume
Network
docker network create todo-app - Создать сеть
docker network rm - Удалить сеть
docker network ls - Отразить все сеть
docker network inspect - Вся информация о сети
docker network connect - Соединиться с сетью
docker network disconnect - Отсоединиться от сети
Пробросить текущую папку в контейнер и работать на хосте, -w working dir, sh shell
docker run -dp 3000:3000 \
-w /app -v "$(pwd):/app" \
node:12-alpine \
sh -c "yarn install && yarn run dev"
Запуск контейнера с присоединением к сети и заведение переменных окружения
docker run -d \
--network todo-app --network-alias mysql \ (алиас потом сможет резолвить докер для других контейнеров)
-v todo-mysql-data:/var/lib/mysql \ (автоматом создает named volume)
-e MYSQL_ROOT_PASSWORD=secret \ (в проде нельзя использовать, небезопасно)
-e MYSQL_DATABASE=todos \ (в проде юзают файлы внутри конейнера с логинами паролями)
mysql:5.7
Запуск контейнера с приложением
docker run -dp 3000:3000 \
-w /app -v "$(pwd):/app" \
--network todo-app \
-e MYSQL_HOST=mysql \
-e MYSQL_USER=root \
-e MYSQL_PASSWORD=secret \
-e MYSQL_DB=todos \
node:12-alpine \
sh -c "yarn install && yarn run dev"
CMD VS ENTRYPOINT
Разница в том, что CMD выполняется из под /bin/sh по дефолту, а ENTRYPOINT без него.
В случае с CMD, команда и параметры к ней захардкожены в образ, пример запуска с переопределением команды CMD ["sleep","10"]
docker run ubuntu sleep 5
Контейнер проспит 5 секунд вместо 10.
В случае с ENTRYPOINT, только команда захардкожена в образ, пример запуска с переопределением команды ENTRYPOINT ["sleep"] CMD ["10"] (Есл используются обе директивы, то в энтрипоинте команда, а в cmd параметры к ней)
docker run ubuntu 5
Контейнер проспит 5 секунд вместо 10.
Чтобы переопределить ENTRYPOINT:
docker run --entrypoint another-command ubuntu 20
Обычно практика такая, всегда используй CMD, если только не требуется каждый раз запускать контейнер с разным параметром (экономия времени, чтоб каждый раз не вводить строчку с командой)
8 756
Как работать в Docker с данными и сетями? Расскажем 🗓 12 июля в 20:00 на открытом уроке в OTUS. Вместе с Филиппом Игнатенко, руководителем направления безопасной разработки Digital Energy, рассмотрим особенности Docker по работе с данными и сетями, а также познакомимся со Storage и Network драйверами.
Вы узнаете:
- Как устроены и какие различают способы выгрузки данных с помощью механизма volumes на примере запуска docker-контейнеров и docker-compose.
- Какие бывают Storage драйверы и с какими типами хранилищ они работают, рассмотрим совместимые backing filesystem.
- Какие docker поддерживает Network-драйверы, какие сетевые топологии они позволяют организовать и какие бывают особенности и исключения для разных ОС.
👉🏻 Для комфортного участия нужно определить ваш уровень подготовки. Пройдите вступительный тест — https://otus.pw/goOK/
Вебинар пройдет в рамках онлайн-курса «Administrator Linux. Professional». Курс рассчитан на Linux-специалистов с опытом.
8 756
Шпаргалка docker
Install DOCKER
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
Info and Registry
docker info - Информация обо всём в установленном Docker
docker history - История образа
docker tag - Дать тег образу локально или в registry
docker login - Залогиниться в registry
docker search - Поиск образа в registry
docker pull - Загрузить образ из Registry себе на хост
docker push - Отправить локальный образ в registry
Container Management
docker ps -а - Посмотреть все контейнеры
docker start container-name - Запустить контейнер
docker kill/stop container-name - Убить (SIGKILL) /Остановить (SIGTERM) контейнер
docker logs --tail 100 container-name - Вывести логи контейнера, последние 100 строк
docker inspect container-name - Вся инфа о контейнере + IP
docker rm container-name - Удалить контейнер (поле каждой сборки Dockerfile)
docker rm -f $(docker ps -aq) - Удалить все запущенные и остановленные контейнеры
docker events container-name
docker port container-name - Показать публичный порт контейнера
docker top container-name - Отобразить процессы в контейнере
docker stats container-name - Статистика использования ресурсов в контейнере
docker diff container-name - Изменения в ФС контейнера
Images
docker build -t my_app . - Билд контейнера в текущей папке, Скачивает все слои для запуска образа
docker images / docker image ls - Показать все образы в системе
docker image rm / docker rmi image - Удалить image
docker commit <containerName/ID> lepkov/debian11slim:version3- Создает образ из контейнера
docker insert URL - вставляет файл из URL в контейнер
docker save -o backup.tar - Сохранить образ в backup.tar в STDOUT с тегами, версиями, слоями
docker load - Загрузить образ в .tar в STDIN с тегами, версиями, слоями
docker import - Создать образ из .tar
docker image history --no-trunc - Посмотреть историю слоёв образа
docker system prune -f - Удалит все, кроме используемого (лучше не использовать на проде, ещё кстати из-за старого кеша может собираться cтарая версия контейнера)
Run
docker run -d -p 80:80 -p 22:22 debian:11.1-slim sleep infinity (--rm удалит после закрытия контейнера, --restart unless-stopped добавит автозапуск контейнера) - Запуск контейнера интерактивно или как демона/detached (-d), Порты: слева хостовая система, справа в контейнере, пробрасывается сразу 2 порта 80 и 22, используется легкий образ Debian 11 и команда бесконечный сон
docker update --restart unless-stopped redis - добавит к контейнеру правило перезапускаться при закрытии, за исключением команды стоп, автозапуск по-сути
docker exec -it container-name /bin/bash (ash для alpine) - Интерактивно подключиться к контейнеру для управления, exit чтобы выйти
docker attach container-name - Подключиться к контейнеру чтоб мониторить ошибки логи в реалтайме
#devops #docker #девопс
Подпишись 👉@i_DevOps
8 756
💎 Работаете инженером службы поддержки, но хотите стать SRE?
📌 Обсудим, как этого достичь на открытом уроке 7 июля в 20:00 OTUS. На занятии мы поймем, что общего у инженера службы поддержки и SRE, а также определим векторы карьерного роста.
🔥 Рассмотрим, что предстоит освоить инженеру с опытом поддержки прикладного или системного ПО. Рассмотрим процессы и методологии сервисов поддержки и сопровождения ИТ, в частности ITIL/ITSM и ключевой навык для хорошего старта в SRE — мониторинг и наблюдаемость.
💻 Занятие проведет Анатолий Бурнашев, эксперт Центра практик обеспечения надёжности в MTS.Digital. Урок пройдет в рамках онлайн-курса «SRE практики и инструменты» OTUS.
👉 Пройдите вступительный тест для регистрации на вебинар - https://otus.pw/WsAN/
8 756
Update. Ansible На Русском Языке 2
Часть 1 https://t.me/i_DevOps/143
11- Переменные - Debug, Set_fact, Register
12- Блоки и Условия – Block-When
13- Циклы – Loop, With_Items, Until, With_fileglob
14- Шаблоны - Jinja Template
15- Создание Ролей - Roles
16- Внешние переменные - extra-vars
17- Использование Import, Include
18- Перенаправление выполнения Task из Playbook на определённый сервер - delegate_to
19- Перехват и Контроль ошибок
20- Хранение Секретов - ansible-vault
#devops #Ansible #девопс
Подпишись 👉@i_DevOps
8 756
Ansible На Русском Языке 2
Часть 1 https://t.me/i_DevOps/143
11- Переменные - Debug, Set_fact, Register
12- Блоки и Условия – Block-When
13- Циклы – Loop, With_Items, Until, With_fileglob
14- Шаблоны - Jinja Template
15- Создание Ролей - Roles
16- Внешние переменные - extra-vars
17- Использование Import, Include
18- Перенаправление выполнения Task из Playbook на определённый сервер - delegate_to
19- Перехват и Контроль ошибок
20- Хранение Секретов - ansible-vault
#devops #Ansible #девопс
Подпишись 👉@i_DevOps
8 756
#вакансия #удалённо #job #remote #parttime #преподаватель #devops
🦉OTUS – образовательная платформа🦉
OTUS специализируется на курсах для IT-специалистов разного уровня от junior до senior🤘
У нас более 130 авторских курсов😎
▫️Вакансии:
Преподаватели на курсы: DevOps.
✅Мы подходим к обучению прагматично: программа ориентируется на требования работодателей и последние тренды разработки.
Копаем глубоко в практику, чтобы дать то, чего не найти в открытом доступе.
Вебинары проходят по будням с 20:00 до 21:30 по мск.
Ставка за 1 вебинар (1.5 часа) – от 4 000 р. до 6000 р.
Преподаватель использует презентацию с теорией и практические примеры, чтобы раскрыть тему урока.
✅Дополнительно оплачивается:
Проверка домашних заданий;
Подготовка материалов занятий: лекции, тесты, практические работы, самостоятельные задания;
Авторские статьи, заметки, участие в конференциях.
🔥Почему именно OTUS?
Освоишь лучшие инструменты и практики преподавания с нашими методистами.
Систематизируешь свои знания и прокачаешь софт скиллы.
У нас классная команда 650+ экспертов с уникальными компетенциями из различных компаний.
Мы учимся друг у друга, советуемся, помогаем, делимся опытом, обсуждаем новости как в преподавании, так и по проектам.
✅Что мы предлагаем:
Можешь совмещать с основной работой, мы предлагаем удаленное сотрудничество, нагрузку определяешь сам.
Ты можешь выбрать на какие темы преподавать. Все наши преподаватели — действующие практики.
Уроки проводятся в онлайн формате в zoom.
Хочешь делиться знаниями? Откликайся скорее!
telegram: @HR_Nikita
whatsapp: +79275715276
8 756
Beginner’s Guide to RabbitMQ Logging: How to View, Locate, and Analyze Logs
https://sematext.com/blog/rabbitmq-logs/
#devops #RabbitMQ #девопс
Подпишись 👉@i_DevOps
8 756
Ansible На Русском Языке
1 - Автоконфигурирование для DevOps - Полный Курс на Простом Языке
2 - Установка на Ubuntu и CentOS
3 - Установка на Amazon Linux через PIP
4 - Подключение к серверам LINUX
5 - Подключение к серверам WINDOWS
6 - Правила создания файла Inventory
7 - Запуск Ad-Hoc Комманд
8 - Правила Формата YAML
9 - Перенос переменных в group_vars
10 - Первые Playbook
#devops #Ansible #девопс
Подпишись 👉@i_DevOps
8 756
⚡️ Хотите использовать Terraform?
Для вас 30 июня в 20:00 пройдет открытый урок в OTUS, где мы поговорим о его назначении, а также познакомимся с его синтаксисом и базовыми блоками. Занятие проведет Technical Lead Тимур Батыршин.
Урок является частью онлайн-курса «Infrastructure as a code» для админов, DevOps-ов и разработчиков.
🔥 Это возможность попробовать курс и познакомиться с преподавателем.
РЕГИСТРАЦИЯ
https://otus.pw/JEc8/
8 756
Во время открытия GrafanaCONline 2022 компания обьявила, что выложила в открытый доступ инструмент для управления инцидентами Grafana OnCall, раньше он был доступен только в облаке.
https://grafana.com/blog/2022/06/14/introducing-grafana-oncall-oss-open-source/
#devops #девопс #Grafana
Подпишись 👉@i_DevOps
8 756
Представляем glaball для управления множеством GitLab-инстансов
В наиболее популярном случае иметь множество инсталляций GitLab — это антипаттерн. Однако обстоятельства бывают разными: специализация нашего бизнеса привела к тому, что мы администрируем десятки self-hosted GitLab-инстансов обслуживаемых клиентов. Периодически у нас возникает потребность проделать какие-то действия на всех GitLab’ах сразу, чтобы не тратить время на многократное повторение рутинных операций. Все началось с необходимости мониторинга за критическими обновлениями для GitLab. Но аппетиты росли: со временем нам уже хотелось искать по содержимому файлов во всех инсталляциях или даже создавать пользователей.
Расскажем о том, как мы решили эти задачи в рамках внутренней разработки, которую теперь публикуем как Open Source-проект под названием glaball.
#devops #девопс #GitLab
Подпишись 👉@i_DevOps
Вже доступно! Дослідження Telegram за 2025 — головні інсайти року 
