• Построение микросервисной архитектуры на Golang и gRPC, часть 2 (docker)

    • Tutorial

    Пришло время заняться контейнерами


    Прежде всего, мы используем новейший образ Linux Alpine. Linux Alpine — это легкий дистрибутив Linux, разработанный и оптимизированный для запуска веб-приложений в Docker. Другими словами, Linux Alpine обладает достаточным количеством зависимостей и функциональных возможностей для выполнения большинства приложений. Это означает, что размер образа составляет около 8 МБ!

    По сравнению с, скажем… виртуальной машиной Ubuntu объемом около 1 ГБ, вот почему образы Docker стали более естественным образом подходить для микросервисов и облачных вычислений.

    Итак, теперь я надеюсь, что вы видите ценность в контейнеризации, и мы можем начать «Dockerising» нашего первого сервиса. Давайте создадим Dockerfile $ touch consignment-service/Dockerfile.


    Читать дальше →
    • +11
    • 3.4k
    • 6
  • Производительность сетевых приложений Linux. Введение

    • Translation
    Веб-приложения ныне используются повсеместно, а среди всех транспортных протоколов львиную долю занимает HTTP. Изучая нюансы разработки веб-приложений, большинство уделяет очень мало внимания операционной системе, где эти приложения реально запускаются. Разделение разработки (Dev) и эксплуатации (Ops) лишь ухудшало ситуацию. Но с распространением культуры DevOps разработчики начинают нести ответственность за запуск своих приложений в облаке, поэтому для них очень полезно досконально познакомиться с бэкендом операционной системы. Это особенно полезно, если вы пытаетесь развернуть систему для тысяч или десятков тысяч одновременных подключений.

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

    Я пишу эту серию статей в ответ на вопросы молодых разработчиков, которые хотят стать хорошо информированными системными архитекторами. Невозможно чётко понять методы оптимизации приложений Linux, не погрузившись в основы, как они работают на уровне операционной системы. Хотя есть много типов приложений, в этом цикле я хочу исследовать сетевые приложения, а не десктопные, такие как браузер или текстовый редактор. Этот материал рассчитан на разработчиков и архитекторов, которые хотят понять, как работают программы Linux или Unix и как их структурировать для высокой производительности.
    Читать дальше →
    • +24
    • 9.7k
    • 3
  • Автоматизация для самых маленьких. Часть нулевая. Планирование

    • Tutorial
    СДСМ закончился, а бесконтрольное желание писать — осталось.



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

    Этой статьёй я начну серию о том, как мне видится автоматизация.
    По ходу дела разберёмся с этапами автоматизации, хранением переменных, формализацией дизайна, с RestAPI, NETCONF, YANG, YDK и будем очень много программировать.
    Мне означает, что а) это не объективная истина, б) не безоговорочно лучший подход в) мой взгляд даже в ходе движения от первой к последней статье может поменяться — честно говоря, от стадии черновика до публикации я переписывал всё полностью дважды.

    Читать дальше →
  • Принцип работы протокола VRRP

    FHRP (First Hop Redundancy Protocol) — семейство протоколов, предназначенных для создания избыточности шлюза по умолчанию. Общей идеей для данных протоколов является объединение нескольких маршрутизаторов в один виртуальный маршрутизатор с общим IP адресом. Этот IP адрес будет назначаться на хостах как адрес шлюза по умолчанию. Свободной реализацией данной идеи является протокол VRRP (Virtual Router Redundancy Protocol). В этой статье рассмотрим основы протокола VRRP.

    Читать дальше →
    • +20
    • 7.9k
    • 9
  • Как Telegram-бот поборол дизайнерскую прокрастинацию и помог увеличить доход digital-агентства­

    Основатель digital-агентства Роман Квартальнов делится простым решением, которое помогло сделать производственные процессы прозрачными, дало возможность в любой момент времени оценить себестоимость проекта и компании целиком, а также экономить около 1 000 000 рублей на сборе отчетов с сотрудников.

    Знаете ли вы себестоимость работы вашей компании? Можете за 3 минуты получить доступ к информации о выполненной работе за вчера? А за неделю?

    Четыре года назад я открыл свою компанию. На старте у нас была небольшая команда. Очевидно, что чем меньше людей, тем лучше у них получается работать слаженно, быть единым организмом. К концу первого года мы начали активно масштабироваться и столкнулись с проблемами роста. В определенный момент мы просто потеряли контроль над процессами внутри компании и начали принимать решения хаотично. Есть такой термин – «хаотичное управление», его можно трактовать так: руководитель не имеет возможности прогнозировать риски, постоянно тушит пожары и не разбирается почему они происходят. У такого подхода есть 2 пути развития:

    1. Признать, что такова жизнь и основателю бизнеса отведена роль пожарного. В этом случае ваш потолок – крутой пожарный, пожарный-супермен.

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

    Читать дальше →
  • Бесплатные утилиты Solarwinds для мониторинга, управления ИТ-инфраструктурой и безопасностью



      Мы хорошо знаем Solarwinds и давно с ним работаем, многим также известны их продукты для сетевого (и не только) мониторинга. Но не так широко известно, что они дают скачивать со своего сайта добрых четыре десятка бесплатных утилит, которые помогут контролировать сетевые устройства, управлять инфраструктурой, базами данных и даже обрабатывать инциденты. Фактически, этот софт — отдельные фрагменты их платных продуктов. Все утилиты 100% бесплатные, не триальные версии. Под катом ссылки на описание и скачивание.
      Читать дальше →
    • Практическое применение ELK. Настраиваем logstash

      Введение


      Разворачивая очередную систему, столкнулись с необходимостью обрабатывать большое количество разнообразных логов. В качестве инструмента выбрали ELK. В данной статье пойдёт речь о нашем опыте настройки этого стека.

      Не ставим цели описать все его возможности, но хотим сконцентрироваться именно на решении практических задач. Вызвано это тем, что при наличии достаточно большого количества документации и уже готовых образов, подводных камней достаточно много, по крайней мере у нас они обнаружились.
      Читать дальше →
    • Лабораторная работа: настраиваем lvm, raid на linux

      • Tutorial

      Небольшое отступление: данная л\р является синтетической.


      Некоторые задания которые здесь описаны можно сделать гораздо проще, но поскольку задача л/р — познакомиться с функционалом raid, lvm то некоторые операции искусственно усложнены.


      Требования к инструментам для выполнения л\р:


      • Средства виртуализации, например Virtualbox
      • Установочный образ linux, например Debian9
      • Наличие интернета для скачивания нескольких пакетов
      • Подключение по ssh к установленной VM (опционально)

      ВНИМАНИЕ


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


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


      В реальной жизни все гораздо серьезнее, поэтому следует очень внимательно вводить имена дисков, понимая что именно вы выполняете текущей командой и с какими дисками работаете.

      Читать дальше →
    • На сцене вновь лауреаты международных конкурсов SSH и sudo. Под рукодством заслуженного дирижера Active Directory

      • Tutorial
      Исторически сложилось, что sudo права регулировались содержимым файлов из /etc/sudoers.d и visudo, а авторизация по ключам велась с использованием ~/.ssh/authorized_keys. Однако с ростом инфраструктуры возникает желание управлять этими правами централизованно. На сегодняшний день вариантов решения может быть несколько:

      • Система управления конфигурацией — Chef, Puppet, Ansible, Salt
      • Active Directory + sssd
      • Разнообразные извращения в виде скриптов и ручного редактирования файлов

      На мой субъективный взгляд, оптимальным вариантом централизованного управления является все-таки связка Active Directory + sssd. Преимущества данного подхода вот в чем:

      • Действительно Единый централизованный каталог пользователей.
      • Раздача прав sudo сводится к добавлению пользователя в определенную группу безопасности.
      • В случае различных Linux-систем возникает необходимость вводить дополнительные проверки на определение ОС при использовании систем конфигурации.

      Сегодняшняя сюита будет посвящена именно связке Active Directory + sssd для управления правами sudo и хранением ssh ключей в едином репозитории.
      Итак, зал застыл в напряженном молчании, дирижер поднял палочку, оркестр приготовился.
      Поехали.
      Читать дальше →
    • Сети кабельного телевидения для самых маленьких. Часть 1: Общая архитектура сети КТВ



      Как бы просвещённое сообщество не ругало телевидение за негативное влияние на сознание, тем не менее, телевизионный сигнал присутствует практически во всех жилых (и во многих нежилых) помещениях. В больших городах это почти всегда телевидение кабельное, даже если все вокруг по привычке называют его «антенна». И если система приёма эфирного телевидения вполне очевидна (хотя тоже может отличаться от привычной рогатой антенны на подоконнике, об этом я обязательно расскажу в дальнейшем), то система кабельного телевидения может показаться неожиданно непростой в своей работе и архитектуре. Об этом представляю серию статей. Я хочу познакомить интересующихся с принципами работы сетей КТВ, а так же их эксплуатации и диагностики.
      Читать дальше →
    • Основы статической маршрутизации в Mikrotik RouterOS

        Маршрутизация — процесс поиска оптимального пути для передачи пакетов в сетях TCP/IP. Любой устройство подключенное к сети IPv4 содержит процесс и таблицы маршрутизации.


        Данная статья не является HOWTO, она описывает на примерах статическую маршрутизацию в RouterOS, я намеренно опускал остальные настройки (например srcnat для доступа в сеть интернет), поэтому для понимания материала требуется определенный уровень знания по сетям и RouterOS.

        Читать дальше →
      • Debian + Postfix + Dovecot + Multidomain + SSL + IPv6 + OpenVPN + Multi-interfaces + SpamAssassin-learn + Bind

          Данная статья о том как настроить современный почтовый сервер.
          Postfix + Dovecot. SPF + DKIM + rDNS. С IPv6.
          С шифрованием TLS. С поддержкой нескольких доменов — часть с настоящим SSL сертификатом.
          С антиспам-защитой и высоким антиспам-рейтингом у других почтовых серверов.
          С поддержкой нескольких физических интерфейсов.
          С OpenVPN, подключение к которому через IPv4, и которое даёт IPv6.

          Если вы не хотите изучать эти все технологии, но хотите настроить такой сервер — тогда эта статья для вас.

          В статье отсутствуют попытки пояснить каждую деталь. Пояснение идёт к тому, что настроено не стандартно или важно с точки зрения потребителя.
          Читать дальше →
        • Sonata — SIP provisioning server

            Не знаю с чем сравнить provisioning. Может быть с котом? Вроде можно и без него, но с ним немного лучше. Особенно, если он работает ))


            Постановка проблемы:


            1. Хочу настраивать SIP-телефоны быстро, просто, безопасно. При установке телефона и уж тем более при его переконфигурировании.
            2. Многие вендоры имеют свои форматы конфигов, свои утилиты для генерации конфигов, свои способы защиты конфигов. А разбираться с каждым не очень хочется.
            3. Многие решения по provisioning, а) ориентированы на одного вендора или одну телефонную систему, б) достаточно громоздко реализуются, куча скриптов, параметров, бр-р...

            По пункту 3 сделаю комментарий, что есть отличные системы провижна для FreePBX, для FusionPBX, для Kazoo, где в открытом доступе есть шаблоны для телефонов различных вендоров. Есть коммерческие решения, где также можно настроить в модуле провижна работу телефонов разных производителей, например, АТС Yeastar.


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

            Читать дальше →
          • Изучаем Go: подборка видеозаписей докладов



              Сегодня язык Go широко используется для разработки распределённых и высоконагруженных приложений. Мы собрали для вас подборку видео, в основном с наших митапов, в которых разбираются преимущества и недостатки языка, и рассказывается об особенностях его применения на примерах реальных проектов.

              Список видеозаписей:

              1. Go в production.
              2. Профилирование Go-приложений.
              3. Медиасервер трансляций на Go.
              4. Pipeline поиска по Почте на Go.
              5. Синхронизация данных в Go с помощью mysql binlog.
              6. Как мы начали использовать Go в Ответах Mail.ru.
              7. Pub/Sub и 1 миллион WebSocket’ов.
              8. Программирование на Go (курс).
              9. Кому нужен язык Go и микросервисы.
              Читать дальше →
              • +31
              • 8.9k
              • 3
            • Настройка 802.1X на коммутаторах Cisco с помощью отказоустойчивого NPS (Windows RADIUS with AD)

              • Tutorial
              image
              Рассмотрим на практике использование Windows Active Directory + NPS (2 сервера для обеспечения отказоустойчивости) + стандарт 802.1x для контроля доступа и аутентификации пользователей – доменных компьютеров – устройств. Ознакомиться с теорией по стандарту можно в Wikipedia, по ссылке: IEEE 802.1X

              Так как “лаборатория” у меня ограничена по ресурсам, совместим роли NPS и контроллера домена, но вам я рекомендую такие критичные сервисы все же разделять.

              Стандартных способов синхронизации конфигураций (политик) Windows NPS я не знаю, поэтому будем использовать скрипты PowerShell, запускаемые планировщиком заданий (автор мой бывший коллега). Для аутентификации компьютеров домена и для устройств, не умеющих в 802.1x (телефоны, принтеры и пр), будет настроена групповая политика и созданы группы безопасности.

              В конце статьи расскажу о некоторых тонкостях работы с 802.1x – как можно использовать неуправляемые коммутаторы, dynamic ACL и пр. Поделюсь информацией об отловленных “глюках”…
              Читать дальше →
            • Gotify — open source проект по доставке уведомлений и отправке сообщений на сервер



                Для тех, кто администрирует серверы и/или веб-проекты остро стоит вопрос информированности о том, что же происходит с их «подопечными». На рынке существует масса решений об оповещении о сбоях, состоянии соединения и прочих параметрах, в том числе и с помощью СМС. Речь о MRTG, Twilio, F-Droid, сервисах Google и многих-многих других. Вот только проблема в том, что большинство из этих решений весьма узко специализированы, а повлиять на их функции не представляется возможным. MRTG отдаст информацию о трафике и соединении, Google пришлет СМС. Кое-какую свободу дает Twilio в плане написания скриптов на JavaScript под свои нужды, но простите, это же коммерческий проект. То есть «давай, плати бабло или проваливай».

                Так вот, в этом семействе инструментов у нас есть open source пополнение: Gotify — простой клиент-серверный проект для получения и отправки пуш-уведомлений и команд, в том числе и через Android-приложение. И о нем определенно стоит рассказать чуть подробнее, думаю, это пригодится для тех, кто искал нечто похожее и при этом бесплатное, но в итоге завел собственный pet-project. Вполне возможно, эта публикация сэкономит пару сотен часов вашего времени.
                Читать дальше →
                • +25
                • 7.1k
                • 3
              • Настройка с нуля принтсервера CUPS с доменной авторизацией и без нее в сети с разными ОС

                Настройка с нуля принтсервера CUPS с доменной авторизацией и без нее в сети с разными ОС


                Вступление


                Итак. Предположительно, сервис печати CUPS — это мощное решение, позволяющее организовать централизованное управление принтерами в компании. Так оно и есть, но в процессе настройки потребуется провести некоторое время в поисках решения в Google множества мелких неочевидных проблем, особенно, если ваша необходимость выходит за рамки стандартных мануалов по настройке.


                В статье будет описана установка принтсервера CUPS на Ubuntu Server в сети с работающим доменом Active Directory, хотя его наличие совершенно не обязательно и инструкции по настройке взаимодействию с ним можно будет смело пропустить, его настройка, а также настройка клиентских машин Linux и Windows для взаимодействия с данным принт-сервером.

                Читать дальше →
              • Установка Windows через Windows Deployment Services и Microsoft Deployment Toolkit

                • Tutorial
                Как было написано в одной умной книге — если в вашем IT-отделе нет автоматизированной установки операционной системы, то её создание может быть самой важной задачей, которую вы когда-либо выполняли.
                Читать дальше →
              • Массовая печать в Windows

                • Tutorial
                Иногда нужно быстро распечатать много картинок с котиками документов, а открывать для этого каждый файл совсем не хочется. Первым делом напрашивается использование контекстного меню проводника, но у этого способа есть свои ограничения и нюансы. Поэтому пришлось искать альтернативу. За подробностями — прошу под кат.
                Читать дальше →
              • Обзор IPSec в Mikrotik

                  IPSec (IP Security) — набор протоколов и алгоритмов для шифрования данных в IPv4 и IPv6 сетях. Звучит не сложно, но IPSec не устанавливает четких правил для шифрования трафика, вместо этого разработчики реализуют набор инструментов (протоколов и алгоритмов), используя которые администратор создает защищенный канал для данных.


                  Я хочу затронуть тему IPSec в RouterOS немного глубже простого HOWTO, с минимальным погружением в теорию и примерами по настройке и отладки IPSec. Это не гайд и без практики на тестовом стенде не рекомендуется приступать к настройке реальных туннелей и VPN серверов.

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