#devopsспросил_devopsответил
Как лучше подключить статические данные к контейнеру ~10 GB по локальной сети и если S3 недоступен?
Во-первых, вопрос к ~10 GB – не очень хорошо, что контейнер слишком большой. Любой контейнер, который больше 300 MB, явление сомнительное. Но если говорить о S3, то его невозможно подключить к контейнеру, потому как к S3 мы всегда обращаемся через AWS CLI. Можем взять статистические данные у AWS, добавить в свой контейнер, что, в свою очередь, увеличит его, и после этого им пользоваться. Можно сделать cron, что будет обновлять данные каждые 5-10 секунд, но такое решение не совсем корректное.
Как лучше подключить статические данные к контейнеру ~10 GB по локальной сети и если S3 недоступен?
Во-первых, вопрос к ~10 GB – не очень хорошо, что контейнер слишком большой. Любой контейнер, который больше 300 MB, явление сомнительное. Но если говорить о S3, то его невозможно подключить к контейнеру, потому как к S3 мы всегда обращаемся через AWS CLI. Можем взять статистические данные у AWS, добавить в свой контейнер, что, в свою очередь, увеличит его, и после этого им пользоваться. Можно сделать cron, что будет обновлять данные каждые 5-10 секунд, но такое решение не совсем корректное.
Make JSON greppable!
Gron ー инструмент для преобразования файлов JSON в дискретные задания. Gron упрощает работу с API, которые возвращают большие двоичные файлы, но имеют никудышную документацию. Больше ー на странице проекта в Github.
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, который равен нулю.
Можно ли делать 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. Эти результаты можно использовать для анализа, какие области нуждаются в повышении уровня безопасности.
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 – показывает, какие образы у вас есть.
Есть ли различие в командах 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 без внешних зависимостей и со своим приложением для управления.
Нашли неплохое приложение для работы с SSH keys в Secure Enclave. В основе лежит идея sekey, но переписан проект на Swift без внешних зависимостей и со своим приложением для управления.
#devopsспросил_devopsответил
Что происходит после удаления branch в Jenkins?
После удаления branch и job будут висеть некоторое время. После этого можно применить команду discard all items, и branch удаляется. Есть вариант настроить удаление – сразу или спустя некоторое время.
Что происходит после удаления branch в Jenkins?
После удаления branch и job будут висеть некоторое время. После этого можно применить команду discard all items, и branch удаляется. Есть вариант настроить удаление – сразу или спустя некоторое время.
Разбор интересного кейса создания hostname. С примерами «творчества», фейлами и решениями.
Bash скрипт ー палочка-выручалочка для многих, будь ты разработчик, девопс или системный администратор. Нашли для вас шпаргалку по комбинации команд Linux ー поможет с автоматизацией рутинных задач пока вы занимаетесь более интересными тасками.
Разбираемся, что такое Site Reliability Engineering (SRE). Термин далеко не новый, но вопросы по функционалу SRE-инженера все еще есть. В статье есть примеры вопросов на собеседовании.
#devopsспросил_devopsответил
Как настроить webhooks в Jenkins?
Webhooks настраиваются с помощью плагинов. Если интегрировать с Bitbucket, есть нюанс – у Bitbucket webhooks слетают. Всегда правильно настраивайте плагины.
Как настроить webhooks в Jenkins?
Webhooks настраиваются с помощью плагинов. Если интегрировать с Bitbucket, есть нюанс – у Bitbucket webhooks слетают. Всегда правильно настраивайте плагины.
Ну что, девопсы…С новым 2022 годом! Пусть все системы будут отказоустойчивыми, код ー чистейшим, а пайплайны релизятся как по маслу!
Зачем продуктовой компании DevOps-методология?
Anonymous Quiz
8%
Помогает продукту быстрее выйти на рынок
3%
Повышает лояльность конечных пользователей
27%
Увеличивает производительность компаний
62%
Всё вышеперечисленное
Слышали о серии книг Cracking The Interview? Их автор, Гейл МакДоуэлл ー разработчик с огромным опытом работы, в том числе в таких гигантах как Microsoft. Вот она и решила поделиться с нами полезной информацией о том, как успешно пройти собеседование в любую топовую IT-компанию... Насчет 100% успеха, конечно, на книги полагаться не стоит, но кое-что нужное из них взять можно.
Серия состоит из двух книг: Cracking the coding interview и Cracking the PM interview.
👉 Первая больше про хард-скилы и техническую часть интервью, и она будет полезна разработчикам, которые претендуют на техническую вакансию.
👉 Вторая книга ー про гибкие навыки и человеческие отношения. А как мы знаем, в крупных компаниях совпадение по ценностям и умение находить общий язык с людьми порой важнее, чем уникальный талант разработчика.
Книги рекомендуем к прочтению в оригинале, чтобы не пропустить важные детали в переводе. Удачных вам интервью 😉
Серия состоит из двух книг: Cracking the coding interview и Cracking the PM interview.
👉 Первая больше про хард-скилы и техническую часть интервью, и она будет полезна разработчикам, которые претендуют на техническую вакансию.
👉 Вторая книга ー про гибкие навыки и человеческие отношения. А как мы знаем, в крупных компаниях совпадение по ценностям и умение находить общий язык с людьми порой важнее, чем уникальный талант разработчика.
Книги рекомендуем к прочтению в оригинале, чтобы не пропустить важные детали в переводе. Удачных вам интервью 😉
#devops_tools
Karpenter ー нода с открытым исходным кодом, с помощью которой можно создавать проекты в Kubernetes. Основная цель этого инструмента ー максимально снизить нагрузку на кластеры Кубера и повысить эффективность работы.
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. Туда можно быстро отправлять задачи, а раз в неделю, к примеру, разбирать их и превращать в полноценные запланированные таски.
Надеемся, это простые советы помогут вам оптимизировать ваши жизненные процессы.
В бесконечном потоке проектов и тасок повседневная жизнь, как система, тоже нуждается в мониторинге. С его помощью рутина может быть как минимум предсказуемой и как максимум ー стабильной. Ловите список подходов, которые помогут 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 – программы быстро перемещаются между серверами. Когда запускаем приложение на ВМ, запросы приложений будут идти по длинному пути из одной среды ОС в другую и обратно. Переход на контейнеризацию призван создать наиболее оптимальные условия для обработки объекта и отделить его от программной оболочки сервера.
👎 Сложность с масштабированием и управлением. Чем больше количество контейнеров, тем сложнее ими управлять, особенно, если их число постоянно растет. Это усложняется тем, что в один образ часто складывается больше ресурсов, чем требуется для оптимальной работы - образ контейнера и его размер.
👎 База Linux. Ввиду того, что большинство контейнеризаторов основаны на Linux, запуск контейнерных модулей и их работа в среде Microsoft усложняют работу. А учитывая, что контейнеры – относительно новая технология, придется покопаться, чтобы выяснить, как решить возникшие проблемы.
Почему контейнеры обогнали виртуальные машины? Увеличение мощностей серверов и необходимость разворачивать несколько приложений одновременно, при этом с разными настройками, стимулировало переход на контейнеры. Вы будете спокойны, когда в одном контейнере поднимаете Windows, в другом – Linux, и еще в одном – MacOS, и они друг друга не ломают.
В отличие от виртуальных машин, отдельные процессы в контейнере – очень компактные (например, Ubuntu-образ занимает 68Mb), быстро запускаются и более гибкие в настройке. И стоит упомянуть о том, что контейнер обеспечивает независимость среды. ВМ призвана подменить аппаратные возможности, а контейнер – выделяет программный объект из программной среды.
Вы запускаете программу на MacOS и описываете ее запуск, а потом делаете тоже самое на Windows – программы быстро перемещаются между серверами. Когда запускаем приложение на ВМ, запросы приложений будут идти по длинному пути из одной среды ОС в другую и обратно. Переход на контейнеризацию призван создать наиболее оптимальные условия для обработки объекта и отделить его от программной оболочки сервера.