Как стать автором
Поиск
Написать публикацию
Обновить
287.49

DevOps *

Методология разработки программного обеспечения

Сначала показывать
Порог рейтинга
Уровень сложности

Расширенные шаблоны многоэтапной сборки

Время на прочтение6 мин
Количество просмотров4.4K

image


Функция многоэтапной сборки в файлах Dockerfile позволяет создавать небольшие образы контейнеров с более высоким уровнем кэширования и меньшим объемом защиты. В этой статье я покажу несколько расширенных шаблонов — нечто большее, чем копирование файлов между этапами сборки и выполнения. Они позволяют добиться максимальной эффективности функции. Однако, если Вы — новичок в сфере многоэтапной сборки, то сперва, наверное, не лишним будет прочесть руководство по использованию.

Читать дальше →

Istio и Kubernetes в production. Часть 2. Tracing

Время на прочтение5 мин
Количество просмотров9.1K
В прошлой статье мы рассмотрели базовые компоненты Service Mesh Istio, познакомились с системой и ответили на основные вопросы, которые обычно возникают в начале работы с Istio. В этой части мы посмотрим на то, как организовать сбор tracing информации по сети.


Читать дальше →

Как взять сетевую инфраструктуру под свой контроль. Глава первая. Удержание

Время на прочтение8 мин
Количество просмотров23K
Эта статья является первой в цикле статей «Как взять сетевую инфраструктуру под свой контроль». Содержание всех статей цикла и ссылки можно найти здесь.

Вполне допускаю, что существует достаточное количество компаний, где простой сети в один час или даже один день не является критичным. Мне, к сожалению или к счастью, не довелось работать в таких местах. Но, конечно, сети бывают разные, требования разные, подходы разные, и все же, в том или ином виде, ниже приведенный список во многих случаях будет фактически «маст-ду».

Итак, начальные условия.

Вы на новом месте работы или у вас повышение или вы решили по-новому взглянуть на свои обязанности. Сеть компании – это ваша зона ответственности. Для вас во многом это челендж и новое, что несколько оправдывает наставнический тон данной статьи :). Но, надеюсь, что статья также может быть полезна и любому сетевому инженеру.

Ваша первая стратегическая цель – научиться противостоять энтропии и удержать уровень предоставляемого сервиса.

Многие описанные ниже задачи могут быть решены различными средствами. Я намеренно не поднимаю тему технической реализации, т.к. в принципе часто не так важно, как вы решили ту или иную задачу, а важно то, как вы этим пользуетесь и пользуетесь ли вообще. Мало толку, например, от вашей профессионально выстроенной системы мониторинга, если вы туда не смотрите и не реагируете на алерты.
Читать дальше →

Некоторые неочевидные преимущества Serverless для DevOps

Время на прочтение3 мин
Количество просмотров4.8K
Перед вами, с разрешения автора, мой довольно вольный пересказ статьи DevOps-инженера Paul Hammant, в которой он очень просто описывает не очень очевидные преимущества Serverless с точки зрения DevOps, а также безопасности работы с бекендом приложения.

42
Читать дальше →

Переход с Redshift на ClickHouse

Время на прочтение10 мин
Количество просмотров12K


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

Однако всё изменилось после публичного релиза ClickHouse. Мы долго его изучали, сравнивали стоимость, прикидывали примерную архитектуру и вот, наконец, этим летом решились посмотреть, насколько он нам полезен. Из этой статьи вы узнаете о том, какую проблему нам помогал решить Redshift, и как мы перенесли это решение на ClickHouse.
Читать дальше →

Проверка проекта LibrePCB с помощью PVS-Studio внутри Docker контейнера

Время на прочтение9 мин
Количество просмотров4.4K
PVS-Studio and Docker Container

Это классическая статья о том, как наша команда проверила открытый проект LibrePCB с помощью статического анализатора кода PVS-Studio. Однако статья интересна тем, что проверка осуществлялась внутри Docker контейнера. Если вы использует контейнеры, то надеемся, что статья продемонстрирует ещё один простой способ встроить анализатор в процесс разработки.
Читать дальше →

TeamCity 2018.2: поддержка GitHub Pull Requests, вторичный сервер, установка плагинов из репозитория, скриншоты в тестах

Время на прочтение2 мин
Количество просмотров6.8K

Привет, Хабр! Недавно вышла новая версия TeamCity – 2018.2! CI/CD сервер от JetBrains становится лучше и краше с каждым релизом, и этот раз не исключение.


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



Проверки работоспособности и постепенная деградация распределенных систем

Время на прочтение13 мин
Количество просмотров7.9K

Как всегда, спасибо Фреду Хеберту и Саргуну Дхиллону за то, что прочли черновик этой статьи и предложили нескольких бесценных советов.


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


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

Я обсудила это с другом, и он предположил, что проверки работоспособности должны быть предельно простыми, и что реальный трафик — это лучший критерий для оценки работоспособности процесса.

Читать дальше →

Kubernetes: поразительно доступное решение для персональных проектов

Время на прочтение15 мин
Количество просмотров18K
Здравствуйте, коллеги!

В январе у нас наконец-то выходит долгожданная книга по Kubernetes. Речь о «Mastering Kubernetes 2nd edition» Джиджи Сайфана:


Мы не решились издавать книгу по Kubernetes около года назад, так как на тот момент технология определенно напоминала дредноут для суперкорпораций. Однако, ситуация меняется, в подтверждение чего мы предлагаем почитать большую статью Калеба Докси (Caleb Doxsey), написавшего, кстати, книгу о языке Go. Аргументы господина Докси очень интересны, и мы надеемся, что после ознакомления с ними вам действительно захочется попробовать Kubernetes на практике.
Читать дальше →

Docker Remote API с аутентификацией по сертификату с проверкой отзыва

Время на прочтение3 мин
Количество просмотров4.7K

Описание проблемы


Для нужд удаленного управления Docker'ом, Docker умеет предоставлять веб-API.
Это API может как вовсе не требовать аутентификации (что крайне не рекомендуется), так и использовать аутентификация по сертификату.


Проблема заключается в том, что родная аутентификация по сертификату не предусматривает проверку отзыва сертификата. И это может иметь серьезные последствия.


Я хочу рассказать как я решил эту проблему.

Читать дальше →

Пакеты и пакетные менеджеры для k8s

Время на прочтение24 мин
Количество просмотров6K
Все мы пользуемся каким-либо видом пакетных менеджеров, включая уборщицу тетю Галю, у которой в кармане прямо сейчас обновляется айфон. Но общего соглашения о функциях пакетных менеджеров нет, и стандартные для ОС rpm и dpkg, и системы сборки называют пакетными менеджерами. Предлагаем поразмышлять на тему их функций — что это такое и для чего они нужны в современном мире. А потом будем копать в сторону Kubernetes и внимательно рассмотрим Helm с точки зрения этих функций.


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

Помог нам в этом Иван Глушков (gli) своим докладом на РИТ++, видео и текстовая версия этого подробного и обстоятельного выступления ниже.

Видеозаписи этого и других выступлений по DevOps на РИТ++ опубликованы и открыты для свободного просмотра на нашем youtube-канале — заходите в поисках ответов на свои рабочие вопросы.

Как мы две недели охотились на баг NFS в ядре Linux

Время на прочтение11 мин
Количество просмотров17K

Подробное описание поисков бага из задачи GitLab, которые привели к патчу для ядра Linux


14 сентября служба поддержки GitLab сообщила о критической проблеме, которая возникла у одного из наших клиентов: сначала GitLab работает нормально, а потом у пользователей возникает ошибка. Они пытались клонировать некоторые репозитории через Git, и вдруг появлялось непонятное сообщение об устаревшем файле: Stale file error. Ошибка сохранялась надолго и не давала работать, пока системный администратор вручную не запускал ls в самом каталоге.


Пришлось изучать внутренние механизмы Git и сетевой файловой системы NFS. В итоге мы нашли баг в клиенте Linux v4.0 NFS, Тронд Мюклебуст (Trond Myklebust) написал патч для ядра, и с 26 октября этот патч входит в основное ядро Linux.


В этом посте я расскажу, как мы изучали проблему, в каком направлении думали и какие инструменты использовали, чтобы отследить баг. Мы вдохновлялись отличной детективной работой Олега Дашевского, описанной в посте «Как я две недели охотился за утечкой памяти в Ruby».


Читать дальше →

19 декабря, Москва — OpsFormations

Время на прочтение1 мин
Количество просмотров1K
Приглашаем вас на последний в этом году митап. В этот раз — для разработчиков ПО, инженеров инфраструктуры и администраторов.

Локация — Corporate Innovations Hub (Москва, ул. Большая Полянка, д.2/10, стр. 1).
Время — 19 декабря (среда), 19.00.



Вход, как всегда, бесплатный (после регистрации).

Доклады и ссылка на мероприятие — под катом.
Читать дальше →

Ближайшие события

Kubernetes tips & tricks: о выделении узлов и о нагрузках на веб-приложение

Время на прочтение7 мин
Количество просмотров23K


В продолжение наших статей с практическими инструкциями о том, как облегчить жизнь в повседневной работе с Kubernetes, рассказываем о двух историях из мира эксплуатации: выделении отдельных узлов под конкретные задачи и конфигурации php-fpm (или другого сервера приложений) под большие нагрузки. Как и прежде, описанные здесь решения не претендуют на идеал, а предлагаются как отправная точка для ваших конкретных случаев и почва для размышлений. Вопросы и улучшения в комментариях — приветствуются!
Читать дальше →

Митап по DevOps в Санкт-Петербурге

Время на прочтение1 мин
Количество просмотров2.4K
Привет Хабр!


Приглашаем на митап по DevOps. На этот раз мы решили уйти от традиционного формата митапа в лектории и собираемся в баре на Невском. Собственно, это и митапом назвать сложно – скорее, это DevOps-вечеринка, где гости смогут не только послушать спикеров, но и проверить свои знания на квизе, повеселиться в фотозоне и в принципе хорошо провести пятничный вечер в конце 2018 года.
Доклады тоже будут интересными. Под катом о программе и спикерах.
Читать дальше →

Секреты сборки и пересылка SSH в Docker 18.09

Время на прочтение5 мин
Количество просмотров20K
image

Используя Dockerfile, всегда было сложно получить доступ к частным ресурсам. Хорошего решения просто не было. Использовать переменные среды или просто удалять секретные файлы после использования не годится: они остаются в метаданных образа. Пользователи порой шли на ухищрения: создавали многоступенчатые сборки, однако все равно приходилось соблюдать крайнюю осторожность, чтобы на финальном этапе не было секретных значений, а секретные файлы до отсечения хранились в локальном кэше сборки.


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

Читать дальше →

Высокодоступный и масштабируемый Elasticsearch в Kubernetes

Время на прочтение13 мин
Количество просмотров18K

image
В предыдущем посте мы масштабировали набор реплик MongoDB и познакомились со StatefulSet. Сейчас мы займемся оркестрацией кластера высокой доступности Elasticsearch (с другими мастер-нодами, нодами данных и клиентскими нодами) и задействуем ES-HQ и Kibana.


Вам понадобятся:


  1. Базовое представление об Elasticsearch, его типах нод и их ролях.
  2. Работающий кластер Kubernetes как минимум с тремя нодами (не меньше четырех ядер, 4 ГБ).
  3. Умение работать с Kibana.
Читать дальше →

Kubernetes 1.13: обзор основных новшеств

Время на прочтение8 мин
Количество просмотров9.8K


В начале этой недели состоялся очередной релиз Kubernetes, который окрестили «ангельским», — 1.13. Такое название связано с числом 113, которое считается «ангельским» и, со слов разработчиков Kubernetes, символизирует «новые начинания, трансформацию и конец одной главы перед открытием новых». Не вдаваясь в дальнейший анализ символизма происходящего, по уже сложившейся для нашего блога традиции, мы в седьмой раз расскажем о ключевых изменениях в новой версии Kubernetes, что призваны порадовать DevOps-/SRE-инженеров, работающих с этим продуктом.

В качестве источников информации мы оперировали данными из таблицы Kubernetes enhancements tracking, CHANGELOG-1.13 и сооветствующих issues, pull requests, Kubernetes Enhancement Proposals (KEP).
Читать дальше →

Ansible Tower: Шаблоны потоков заданий Workflow Job Templates

Время на прочтение3 мин
Количество просмотров5.9K
Словосочетание «поток заданий» говорит само за себя. Эта функция Ansible Tower появилась в версии 3.1 и позволяет задать последовательность операций в виде комбинации шаблонов заданий (job templates), а также синхронизаций (syncs) проектов и inventory, а затем выполнять эту последовательность как одно целое. Иными словами, потоки заданий помогают упорядочить плейбуки (playbooks) и шаблоны заданий по отдельным группам.



Рассмотрим, что такое шаблоны потоков заданий, в чем их польза, как их создавать и редактировать, а также ряд других полезных моментов по их использованию.
Читать дальше: Шаблоны потоков заданий в Ansible

Изменение глобальных настроек на локальных серверах команд в инфраструктуре используя Gitlab CI и Ansible [Концепт]

Время на прочтение5 мин
Количество просмотров5K


В этой статье описывается возможность/идея/концепт изменения глобальных настроек на локальных серверах команд в большой инфраструктуре используя Gitlab CI и Ansible.


Допустим у вас имеются 20 команд разработчиков и 1 команда админов/DevOps. Как менять на всех серверах пароли админов? Как добавить корневой сертификат Предприятия на все сервера? И т.д.

Читать дальше →

Вклад авторов