Dev // Ops
401 subscribers
86 photos
133 links
Канал для всіх, хто цікавиться DevOps філософією. Створений на основі досвіду компаній ZONE3000 і Namecheap. Тут ми ділимося корисним контентом і кейсами та відповідаємо на питання. Чекаємо ваші фідбеки, питання та рекомендації тут @educationzone3000
Download Telegram
#devopsспросил_devopsответил
Как лучше подключить статические данные к контейнеру ~10 GB по локальной сети и если S3 недоступен?

Во-первых, вопрос к ~10 GB – не очень хорошо, что контейнер слишком большой. Любой контейнер, который больше 300 MB, явление сомнительное. Но если говорить о S3, то его невозможно подключить к контейнеру, потому как к S3 мы всегда обращаемся через AWS CLI. Можем взять статистические данные у AWS, добавить в свой контейнер, что, в свою очередь, увеличит его, и после этого им пользоваться. Можно сделать cron, что будет обновлять данные каждые 5-10 секунд, но такое решение не совсем корректное.
Make JSON greppable!
Gron ー инструмент для преобразования файлов JSON в дискретные задания. Gron упрощает работу с API, которые возвращают большие двоичные файлы, но имеют никудышную документацию. Больше ー на странице проекта в Github.
Интересная и полезная статья о том, как быть подкованным в сбоях ー SRE Toolkit: Failure Domains.
#devopsспросил_devopsответил
Можно ли делать HEALTHCHECK по кастомному скрипту?

Ответ однозначен – не можно, а нужно. Если имеется ввиду веб-приложение, то лучше всего это сделать общедоступным способом, например, healthcheck-ping. HEALTHCHECK рекомендуется делать когда идет какой-нибудь простой процесс, и должна быть метка. Это может быть curl, ping или просто сигнал. HEALTHCHECK будет идти вторым процессом и доступ к его логам отсутствует.

HEALTHCHECK не должен грузить ваше приложение, иначе – это плохой HEALTHCHECK. Если на контейнере уже есть нагрузка и туда добавляется HEALTHCHECK, он может не пройти, т.к. веб-сервис выбивает новые запросы пока обрабатывает те, которые скопились в очереди.

Понимает ли Docker, что есть ответ на CURL? Нет. Он просто видит exit code, т.к. CURL вышел с exit code = ноль. Но если CURL вышел с exit code со значением, не равным нулю, значит контейнер завален. Успех HEALTHCHECK определяется как раз exit code, который равен нулю.
#DevOps_tools
Scorecards ー инструмент автоматизации, который помогает оценить некоторые важные чекапы безопасности программного обеспечения. Scorecards присваивает каждой проверке оценку от 0 до 10. Эти результаты можно использовать для анализа, какие области нуждаются в повышении уровня безопасности.
#devopsспросил_devopsответил
Есть ли различие в командах Docker и Docker Compose?

Docker Compose понимает те же команды, что и Docker: up – это run, down это stop, stop это stop или kill – это все alias-команды. Обратите внимание, при команде kill в Docker Compose образы не убиваются. Из интересных команд в Docker Compose есть Docker Compose Images – показывает, какие образы у вас есть.
Чи знали ви, що «життя» програмного забезпечення починає відлік від зародження ідеї, а закінчується після вилучення програми з експлуатації? Для тих, хто цікавиться етапами створення програмних застосунків, ми підготували статтю, де розповіли, як народжуються звичні для нас продукти.
#DevOps_tools
Нашли неплохое приложение для работы с SSH keys в Secure Enclave. В основе лежит идея sekey, но переписан проект на Swift без внешних зависимостей и со своим приложением для управления.
#devopsспросил_devopsответил
Что происходит после удаления branch в Jenkins?

После удаления branch и job будут висеть некоторое время. После этого можно применить команду discard all items, и branch удаляется. Есть вариант настроить удаление – сразу или спустя некоторое время.
Разбор интересного кейса создания hostname. С примерами «творчества», фейлами и решениями.
Bash скрипт ー палочка-выручалочка для многих, будь ты разработчик, девопс или системный администратор. Нашли для вас шпаргалку по комбинации команд Linux ー поможет с автоматизацией рутинных задач пока вы занимаетесь более интересными тасками.
Разбираемся, что такое Site Reliability Engineering (SRE). Термин далеко не новый, но вопросы по функционалу SRE-инженера все еще есть. В статье есть примеры вопросов на собеседовании.
#devopsспросил_devopsответил
Как настроить webhooks в Jenkins?

Webhooks настраиваются с помощью плагинов. Если интегрировать с Bitbucket, есть нюанс – у Bitbucket webhooks слетают. Всегда правильно настраивайте плагины.
Ну что, девопсы…С новым 2022 годом! Пусть все системы будут отказоустойчивыми, код ー чистейшим, а пайплайны релизятся как по маслу!
Слышали о серии книг Cracking The Interview? Их автор, Гейл МакДоуэлл ー разработчик с огромным опытом работы, в том числе в таких гигантах как Microsoft. Вот она и решила поделиться с нами полезной информацией о том, как успешно пройти собеседование в любую топовую IT-компанию... Насчет 100% успеха, конечно, на книги полагаться не стоит, но кое-что нужное из них взять можно.

Серия состоит из двух книг: Cracking the coding interview и Cracking the PM interview.
👉 Первая больше про хард-скилы и техническую часть интервью, и она будет полезна разработчикам, которые претендуют на техническую вакансию.
👉 Вторая книга ー про гибкие навыки и человеческие отношения. А как мы знаем, в крупных компаниях совпадение по ценностям и умение находить общий язык с людьми порой важнее, чем уникальный талант разработчика.

Книги рекомендуем к прочтению в оригинале, чтобы не пропустить важные детали в переводе. Удачных вам интервью 😉
#devops_tools
Karpenter ー нода с открытым исходным кодом, с помощью которой можно создавать проекты в Kubernetes. Основная цель этого инструмента ー максимально снизить нагрузку на кластеры Кубера и повысить эффективность работы.
Мониторинг бывает разный :) Наверняка, на этом канале собрались поклонники автоматизации, а она может касаться любых сфер жизни, в том числе и личной. Поэтому сегодня хотим затронуть тему самомониторинга как части жизни IT-специалиста ;)

В бесконечном потоке проектов и тасок повседневная жизнь, как система, тоже нуждается в мониторинге. С его помощью рутина может быть как минимум предсказуемой и как максимум ー стабильной. Ловите список подходов, которые помогут IT-специалисту в мониторинге рабочей и личной жизни.

Трекинг рабочего времени
Помогает контролировать, на какие активности мы тратим время в течение дня. Например, RescueTime или Be Focused. В RescueTime можно гибко настраивать активности даже в бесплатной версии. Be Focused работает по принципу Pomodoro ー в нем можно декомпозировать задачи на временные отрезки.

Привычки
Формат треккинга привычек может быть любым ー от банального блокнота до Things. Отслеживать (читай ー прививать) можно привычки как в личной жизни, так и в рабочей рутине. Если проведете такой эксперимент, сможете узнать, за сколько формируется привычка конкретно у вас.

Физическая активность и здоровье
Начиная с банального ー сколько шагов вы прошли за день, и заканчивая контролем сна. Сюда можно добавить тренировки, изменение пульса в течение дня, расписание сна, контроль потребления воды, расход калорий и т.д. Приложений и девайсов предостаточно ー Sleepy Bot, MyFitnessPal, Garmin, Xiaomi Mi Band, Endomondo.

Финансовое планирование
Неважно DevOps ты или бухгалтер, деньги уплывают незаметно практически у всех одинаково. Тут можно начать с банальных таблиц Excel или использовать специальные приложения ー JustMoney, Family12, Mobilis, Monefy, CoinKeeper. Не факт, что приложухи помогут сэкономить, но так вы хотя бы будете знать, куда сливается весь доход.

Метод пустого инбокса
Всегда есть пул постоянно прилетающих задач, и не забыть их запланировать ー вот в чем вопрос. Можно использовать Things (методика GTD) или (откровение) Saved Messages в Telegram. Туда можно быстро отправлять задачи, а раз в неделю, к примеру, разбирать их и превращать в полноценные запланированные таски.

Надеемся, это простые советы помогут вам оптимизировать ваши жизненные процессы.
Сегодня поговорим о технологии контейнеризации и о том, как контейнеры помогают нам снижать нагрузку аппаратной части и масштабировать проектирование.

Контейнеризация служит для виртуализации и изоляции ресурсов на уровне ОС. Система контейнеризации является легковесной, и не использует ресурсы машины, на которой она разворачивается. Системные библиотеки и приложения запускаются в изолированной среде – стандартизированном контейнере, который не зависит от ресурсов и архитектуры гостевой ОС, на которой он работает. Каждое приложение функционирует в собственной среде, что обеспечивает изолированность процессов внутри каждого модуля.

Таким образом, мы можем разворачивать независимые изолированные среды со своим собственными процессором, памятью, сетевыми ресурсами – что-то похожее на ВМ (виртуальную машину), работающую в виде надстройки гостевой операционки.

В чем существенное отличие между ВМ и контейнером? В случае с ВМ нам нужен гипервизор и отдельная гостевая ОС, а для контейнеров нужно ядро хостовой операционной системы. Виртуальные машины используют операционную систему, поэтому они более тяжелые – размер доходит до нескольких гигабайт, что влияет, в том числе, и на увеличение времени инициализации. Контейнеры более легковесные – они про мегабайты, и от того запускаются очень быстро.

Жми на 💥, чтобы узнать больше о преимуществах и недостатках контейнеризации.
Продолжаем тему контейнеров. Итак, какие их основные преимущества?

👍 Гибкость. На создание контейнеров уходит гораздо меньше времени, чем на ВМ. Происходит это благодаря их легковесности, меньшим расходам при запуске и высокой производительностью.

👍 Высокая производительность. Повышается производительность разработки – нивелируются межсетевые зависимости и конфликты. Каждый контейнер – это отдельный микросервис, который может обновляться независимо от других модулей.

👍 Переносимость образа. Контейнер собирает в себе все данные, например, зависимости программ, ОС для запуска. Контейнеры легко релоцировать между средами разработки, при этом есть возможность отслеживать версии и различия между ними.

👍 Стандартизация. В большей части технология контейнеров основана на открытых стандартах, что позволяет запускать их на разных системах.

👍 Безопасность. Образ и процессы каждого отдельного контейнера изолированы от других контейнеров и от базовой инфраструктуры. Благодаря этому обеспечивается полная безопасность при обновлениях или изменениях – то, что происходит с одним модулем, никак не касается других.

Ну и не обойдем вниманием недостатки контейнеризации – об этом расскажем в следующем посте.
Как и у любой технологии, у контейнеризации есть и свои недостатки.

👎 Сложность с масштабированием и управлением. Чем больше количество контейнеров, тем сложнее ими управлять, особенно, если их число постоянно растет. Это усложняется тем, что в один образ часто складывается больше ресурсов, чем требуется для оптимальной работы - образ контейнера и его размер.

👎 База Linux. Ввиду того, что большинство контейнеризаторов основаны на Linux, запуск контейнерных модулей и их работа в среде Microsoft усложняют работу. А учитывая, что контейнеры – относительно новая технология, придется покопаться, чтобы выяснить, как решить возникшие проблемы.

Почему контейнеры обогнали виртуальные машины? Увеличение мощностей серверов и необходимость разворачивать несколько приложений одновременно, при этом с разными настройками, стимулировало переход на контейнеры. Вы будете спокойны, когда в одном контейнере поднимаете Windows, в другом – Linux, и еще в одном – MacOS, и они друг друга не ломают.

В отличие от виртуальных машин, отдельные процессы в контейнере – очень компактные (например, Ubuntu-образ занимает 68Mb), быстро запускаются и более гибкие в настройке. И стоит упомянуть о том, что контейнер обеспечивает независимость среды. ВМ призвана подменить аппаратные возможности, а контейнер – выделяет программный объект из программной среды.

Вы запускаете программу на MacOS и описываете ее запуск, а потом делаете тоже самое на Windows – программы быстро перемещаются между серверами. Когда запускаем приложение на ВМ, запросы приложений будут идти по длинному пути из одной среды ОС в другую и обратно. Переход на контейнеризацию призван создать наиболее оптимальные условия для обработки объекта и отделить его от программной оболочки сервера.