• Тестирование и непрерывная интеграция для Ansible-ролей при помощи Molecule и Jenkins

    • Tutorial


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

    Вместе с большим количеством кода появляется и старая, знакомая проблема: страх изменений. Люди не желают вносить изменения в «чужую» роль, опасаясь испортить её, вместо этого создают собственную копию. Рефакторинг кода не производится, если код прямо сейчас не находится в фокусе разработки, из-за опасения, что внесённые проблемы могут быть обнаружены спустя слишком большое время. Итог: плохой код растёт как снежный ком.
    Читать дальше →
    • +16
    • 15.5k
    • 8
  • Масштабируем разработку: от стартапа до сотни инженеров

      Многие другие крупные IT-компании, начиналась со стартапа, и Badoo не исключение. За последние годы компания прошла путь от нескольких десятков инженеров до нескольких сотен. Николай Крапивный был на передовой на большей части этого пути и принимал решения: что лучше делать, а что не делать, как справляться с проблемами. Его доклад на TeamLead Conf был посвящен этому опыту и картине мира, которая в результате сформировалась.

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



      Рассказ состоит и трех частей. Первая — про коммуникации, про то, как они меняются с ростом компании. Вторая часть о том, как с увеличением количества инженеров в команде попытаться сохранить скорость разработки. И третья часть — от том, почему Badoo живет на два офиса, и как при этом справиться с проблемой общения.
      Читать дальше →
    • PostgreSQL: как и почему пухнет WAL

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


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


        Сегодня будем смотреть как и почему может распухать Write-Ahead Log (WAL) постгреса. Как обычно — примеры из реальной жизни в картинках.

        Читать дальше →
        • +42
        • 12.5k
        • 4
      • Практическое знакомство с пакетным менеджером для Kubernetes — Helm



          Статья является логическим продолжение нашей недавней публикации об истории пакетного менеджера для Kubernetes — Helm. В этот раз мы снова затронем вопросы устройства и функционирования нынешнего Helm (версия 2.x), а также управляемых им чартов и репозиториев, после чего перейдём к практике: установке Helm в кластер Kubernetes и использованию чартов.
          Читать дальше →
          • +28
          • 49.3k
          • 9
        • Зачем вам нужен Splunk? Мониторинг работы IT инфраструктуры



            • Как повлияло отключение одного сервера на здоровье инфраструктуры в целом?
            • Можно ли предсказать ухудшение работоспособности инфраструктуры?
            • Какое влияние оказывают на систему критически важные службы?

            В этой статье мы расскажем о том, как Splunk может помочь в поиске ответов на эти вопросы.
            Читать дальше →
          • С облаков на землю: как создать production-grade Kubernetes в любых условиях

            • Translation
            Всем добра! Ну вот и подошло время для очередного нашего курса по Девопсу. Наверное, это один из самых стабильных и эталонных курсов, но при этом и самый разнообразный по обучающимся, так как ни одна группа ещё не была похожа на другую: то в одной разработчики почти полностью, то в следующей инженеры, то админы и так далее. А так же это значит, что пришла пора интересных и полезных материалов, а так же онлайн-встреч.

            image
            Читать дальше →
          • Деловая переписка на английском языке: фразы и советы

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

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

              Задача становится сложнее, если вы общаетесь на неродном английском языке с представителями других культур. В статье я поделюсь, на что в этом случае обратить внимание, как избежать ошибок и достичь взаимопонимания с иностранными коллегами и партнерами.
              Читать дальше →
            • Play with Docker — онлайн-сервис для практического знакомства с Docker



                В конце прошлого года два капитана Docker представили свою разработку под названием Play with Docker (PWD) — «игровую площадку для Docker». Пользователям предлагается бесплатно поработать со сборкой и запуском Docker-контейнеров прямо в веб-браузере, а также выполнить лабораторные работы для знакомства с Docker с нуля и совершенствования своих навыков.
                Читать дальше →
                • +39
                • 49k
                • 6
              • Микросегментация сетей в примерах: как эта хитро закрученная штука реагирует на разные атаки



                  Раньше, когда нужно было что-то разграничить (например, сервера с обработкой платежей и терминалы юзеров офиса), просто строили две независимых сети с мостом-файерволом в середине. Это просто, надёжно, но дорого и не всегда удобно.

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

                  В России пока есть единичные внедрения подобных защитных построений, но скоро их точно будет больше. А потом мы, возможно, не будем даже понимать, как можно было жить без такого. Давайте рассмотрим сценарии атак на такую сеть и как она на это реагирует.
                  Читать дальше →
                • Как создавать понятные логические (L3) схемы сети

                  • Translation
                  • Tutorial
                  Cамая большая проблема, с которой я сталкиваюсь при работе с сетями предприятий — это отсутствие чётких и понятных логических схем сети. В большинстве случаев я сталкиваюсь с ситуациями, когда заказчик не может предоставить никаких логических схем или диаграмм. Сетевые диаграммы (далее L3-схемы) являются чрезвычайно важными при решении проблем, либо планировании изменений в сети предприятия. Логические схемы во многих случаях оказываются более ценными, чем схемы физических соединений. Иногда мне встречаются «логически-физически-гибридные» схемы, которые практически бесполезны. Если вы не знаете логическую топологию вашей сети, вы слепы. Как правило, умение изображать логическую схему сети не является общим навыком. Именно по этой причине я пишу эту статью про создание чётких и понятных логических схем сети.
                  Читать дальше →
                • Введение в DPDK: архитектура и принцип работы

                  • Tutorial
                  DPDK

                  За последние несколько лет тема производительности сетевого стека Linux обрела особую актуальность. Это вполне понятно: объёмы передаваемых по сети данных и соответствующие нагрузки растут не по дням, а по часам.

                  И даже широкое распространение сетевых карт 10GE не решает проблемы: в самом ядре Linux имеется множество «узких мест», которые препятствуют быстрой обработке пакетов.
                  Читать дальше →
                • У вас здесь есть Wi-Fi?

                    image

                    «А пароль от Wi-Fi не подскажете?» – пожалуй, самый популярный вопрос в современных увеселительных заведениях: ресторанах, барах, кафе и т.д.

                    Да что там рестораны и бары – интернет окутал своими беспроводными сетями практически все: метро, театры, офисы, квартиры, аэропорты и вокзалы, промышленные предприятия, салоны красоты, библиотеки, тренажерные залы, магазины… Этот список можно продолжать бесконечно.
                    Главным же «виновником» происходящего является всем до боли известный протокол передачи данных, в народе именуемый Wi-Fi.

                    И все бы здорово – наука служит на благо человечества, но и здесь (впрочем, как всегда это бывает) имеются свои нюансы: прогресс диктует свои правила игры, и это отражается на всех сферах нашей деятельности и на рабочем процессе особенно.
                    Читать дальше →
                  • Как работает Git

                    • Translation
                    В этом эссе описана схема работы Git. Предполагается, что вы знакомы с Git достаточно, чтобы использовать его для контроля версий своих проектов.

                    Эссе концентрируется на структуре графа, на которой основан Git, и на том, как свойства этого графа определяют поведение Git. Изучая основы, вы строите своё представление на достоверной информации, а не на гипотезах, полученных из экспериментов с API. Правильная модель позволит вам лучше понять, что сделал Git, что он делает и что он собирается сделать.

                    Текст разбит на серии команд, работающих с единым проектом. Иногда встречаются наблюдения по поводу структуры данных графа, лежащего в основе Git. Наблюдения иллюстрируют свойство графа и поведение, основанное на нём.

                    После прочтения для ещё более глубокого погружения можно обратиться к обильно комментируемому исходному коду моей реализации Git на JavaScript.
                    Читать дальше →
                  • Дружим Check Point и ГОСТовое шифрование

                    • Tutorial
                    Привет, Хабровчане!

                    В данной статье мы расскажем вам о процессе настройки IPSec VPN на шлюзах Check Point R75.40VS с применением Российских криптоалгоритмов. Данная статья будет интересна в первую очередь инженерам, осуществляющим настройку и поддержку продуктов компании Check Point.

                    Когда у меня возникла задача настроить на шлюзах Check Point IPSec VPN с использованием российской криптографии, я столкнулся с проблемой нехватки информации, описывающей данный процесс. По данной теме можно найти официальные гайды, описывающие процесс в общих чертах, и немного разрозненной информации в интернете. Лично у меня после их изучения осталось множество вопросов, которые мы постарались осветить в данной статье.

                    Много картинок
                  • SDN, NFV, DPDK, ONP, OPNFV и так далее

                    • Translation
                    Программно-управляемые сети (SDN) и виртуализация сетевых функций (NFV) постепенно выходят из лабораторий разработки и занимают свое место в рабочей среде: это более дешевые, более быстрые и более гибкие альтернативы традиционному сетевому оборудованию.
                    В свое время виртуализация преобразовала возможности развертывания ОС и приложений. Аналогичным образом NFV на уровне 4 и выше (уровень управления) и SDN на уровнях 2 и 3 (управление движением пакетом) преобразуют возможности управления сетевым трафиком с использованием уже существующего оборудования и операционных систем, как проприетарных, так и с открытым исходным кодом. В этой области платформа OPNFV, включая Intel Open Network Platform (ONP) Server (эталонная архитектура), поможет быстро приступить к проектированию и тестированию сети. Используйте инструкции для первоначальной настройки с помощью стандартных существующих серверных платформ с процессорами от Intel Atom до Intel Xeon.
                    Что означают все эти названия с приставкой Open?
                  • Большой ликбез: распределённые системы хранения данных в практической привязке для админов среднего и крупного бизнеса

                    • Tutorial
                    Современные сети и дата-центры бодро шагают к полной и тотальной программно-определяемой схеме, когда фактически неважно, какое железо вы напихаете внутрь, всё будет на софте. У сотовых операторов это началось с того, что им не хотелось ставить по 20 антенн на дом (у них узлы переконфигурируются, меняют частоты и параметры просто обновлением конфига), а в дата-центрах сначала с виртуализации серверов, которая теперь мастхэв, а потом продолжилось и виртуализацией хранилищ.

                    Но вернёмся в Россию 2015 года. Ниже я покажу, как «из подручных средств» (x86 машин и любых «хранилок») сэкономить денег, повысить надёжность и решить ещё ряд типовых для сисадминов среднего и крупного бизнеса задач.


                    На этой схеме видны обе архитектуры, о которых пойдет речь. SDS — два красных контроллера в центре с любым бекэндом, от внутренних дисков до FC полок и облаков. И виртуальный SAN, на схеме Hyper-converged storage.

                    Самое главное:
                    • Вам плевать, что за железо стоит: диски, SSD, зоопарк производителей, старые и новые модели… — всё это отдаётся оркестирующему софту, и он приводит это к той виртуальной архитектуре, которая вам нужна в итоге. Грубо говоря, объединяет в один том или позволяет нарезать как вам удобно.
                    • Вам плевать, какие интерфейсы у этих систем. SDS построится сверху.
                    • Вам плевать, какие функции ваши хранилки могли, а какие не могли (опять же, теперь они могут то, что надо: решает софт сверху).

                    Заодно рассмотрим пару типовых задач с конкретным железом и ценами.
                    Читать дальше →
                  • Полное практическое руководство по Docker: с нуля до кластера на AWS

                    • Translation



                    Содержание



                    Вопросы и ответы


                    Что такое Докер?


                    Определение Докера в Википедии звучит так:


                    программное обеспечение для автоматизации развёртывания и управления приложениями в среде виртуализации на уровне операционной системы; позволяет «упаковать» приложение со всем его окружением и зависимостями в контейнер, а также предоставляет среду по управлению контейнерами.



                    Ого! Как много информации.

                    Читать дальше →
                  • Автоматизация работы ИТ-службы

                    Добрый день, уважаемый Хабр! Поделюсь небольшим опытом в организации работы ИТ службы Банка. Статья не будет нагруженной описанием бюрократических составляющих, которые я выполнял для достижения цели и, надеюсь, мой опыт будет вам полезен.

                    Все началось с того, что в начале 2016 года меня пригласили работать в небольшой украинский Банк в качестве архитектора информационных систем (ИС). И одной из задач, которая перешла мне от прошлой команды, была задача организации работы ИТ службы в соответствии с сервисно-ресурсной модели. Да, задача безусловно не относится к архитектуре ИС, но послужила для меня своеобразным вызовом.

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

                    • Поддержка руководства (уровень правления Банка);
                    • Желание модернизировать ИТ службу (как со стороны бизнес пользователей, так и со стороны работников ИТ службы);
                    • Личный опыт работы в данной модели управления на предыдущих местах работы.
                    Читать дальше →
                    • +12
                    • 23.3k
                    • 4
                  • GitLab CI: Учимся деплоить

                    • Translation

                    В данной статье речь пойдет об истории успеха воображаемого новостного портала, счастливым владельцем которого являетесь вы. К счастью, вы уже храните код проекта на GitLab.com и знаете, что для тестирования можно использовать GitLab CI.
                    Теперь вам интересно, можно ли пойти дальше и использовать CI еще и для развертывания проекта, и если да, то какие возможности при этом открываются.


                    Чтобы не привязываться к какой-либо конкретной технологии, предположим, что ваше приложение является простым набором HTML-файлов, никакого выполнения кода на сервере, никакой компиляции JS assets. Деплоить будем на Amazon S3.


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



                    Читать дальше →
                    • +26
                    • 91.2k
                    • 4
                  • Gitlab-CI и проверка корректности синтаксиса Ansible-lint



                      Всем привет! Мы продолжаем серию статей про DevOps и ищем наиболее эффективные способы управлять конфигурацией, делясь с вами опытом. В прошлых статьях мы рассматривали, как выстроить управление конфигурацией Ansible с помощью Jenkins и Serverspec, а теперь по вашим просьбам рассмотрим, как организовать управление конфигурацией с помощью GitLab-CI.

                      Ansible-lint — это утилита для проверки корректности синтаксиса плейбука и стиля кода, которую можно интегрировать в CI-сервис. В нашем случае мы внедряем её в gitlab-ci для проверки плейбуков на этапе принятия Merge-Request и выставления статуса проверок.
                      GitLab (GitLab Community Edition) — это opensource-проект, менеджер git-репозиториев, изначально разрабатывающийся как альтернатива платной корпоративной версии Github.
                      Читать дальше →
                      • +14
                      • 16.4k
                      • 3