• Как общаться в англоязычном офисе: 14 полезных идиом

    • Translation
    image

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

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

    • Tutorial


    В Яндекс.Деньгах хранится масса важной для комфортной работы пользователя информации. Настройки профилей и подписки на штрафы тоже нужно бэкапить, чем и занимается у нас связка из Barman Backup & Recovery for PostgreSQL и pg_receivexlog.


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

    Читать дальше →
    • +10
    • 10.8k
    • 1
  • Новые возможности мониторинга Java приложений в Zabbix 3.4

      Что случилось?


      Вышел долгожданный релиз Zabbix 3.4, который принёс много полезных улучшений, среди которых оказались настраиваемые JMX endpoints и гибкое обнаружение MBean’ов.


      Это так круто, да?


      Если вы используете Zabbix и вам требуется мониторить Java приложения, то да — это может сильно облегчить вам жизнь, потому что раньше приходилось прибегать к различным ухищрениям, а теперь всё работает, как говорится, “из коробки”.


      Читать дальше →
      • +20
      • 18.1k
      • 7
    • Основы компьютерных сетей. Тема №7. Протокол связующего дерева: STP

      • Tutorial


      Приветствую на очередной статье по основам компьютерных сетей. Сегодня затронем еще одно семейство протоколов в мире коммутации. И сегодня мы поговорим о протоколах связующего дерева или STP. Узнаем, как это дерево строиться, как можно им управлять, что такое петли, как с ними бороться. Тема интересная, поэтому приглашаю ознакомиться поподробнее.
      Читать дальше →
      • +17
      • 34.9k
      • 6
    • Почтовый сервер на Linux

      • Translation
      Как наладить работу почтового сервера, умеющего принимать и отправлять электронную корреспонденцию, бороться со спамом, взаимодействовать с клиентами? На самом деле, всё довольно просто.

      Сегодня поговорим о почтовых серверах на Linux. Мы расскажем о том, как настроить сервер, о широко распространённом в интернете протоколе SMTP, а также о других протоколах, таких, как POP и IMAP. В итоге вы окажетесь обладателем полноценной системы для работы с электронной почтой.



      Начнём с SMTP-сервера на Linux
      Читать дальше →
    • Yapf — причесываем код Python автокорректором

      • Tutorial
      В эпоху все большей популярности различных js и css linter'ов, не удивительно появление удобного линтера с автокоррекцией для Python.

      Приветствуйте, Yapf — готовое решение, для превращения каши из строк во вполне читаемый код. И поверьте, он вам пригодится.

      image
      Читать дальше →
    • Установка и настройка Puppet + Foreman на Ubuntu 14.04 (пошаговое руководство)

        image Доброго времени суток, жителям Хабра!

        Когда число управляемых серверов достигает нескольких десятков, а то и сотен, приходится искать решение по автоматической настройке и управлению таким парком. Тут на помощь приходит Puppet. Почему Puppet? Puppet кроссплатформенный, имеет богатое сообщество, имеет множество готовых модулей (4800+), имеет Enterprise версии. Все эти плюсы не дают усомнится в мощи данного продукта. Но управлять из консоли таким «комбайном» не так просто. Потому для удобного управления и настройки Puppet был разработан Foreman. Далее установка и настройка этой связки на примере задачи управления SSH-ключами.
        Читать дальше →
      • Кластер PostgreSQL высокой надежности на базе Patroni, Haproxy, Keepalived

        • Tutorial
        Привет, Хабр! Встала передо мной недавно задача: настроить максимально надежный кластер серверов PostgreSQL версии 9.6.

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

        Планируя кластер я проштудировал много статей, как из основной документации к PostgreSQL, так и различных howto, в том числе с Хабра, и пробовал настроить стандартный кластер с RepMgr, эксперементировал с pgpool.

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

        В итоге где-то (уже не вспомню точно где) нашел ссылку на прекрасный проект Zalando Patroni, и все заверте…
        Читать дальше →
      • Микросервисы: опыт использования в нагруженном проекте



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

          Тема моего доклада — то, как мы запускали в продакшн микросервисы на достаточно нагруженном проекте. Это некий агрегированный опыт, но поскольку я работаю в компании «M-Tех», то давайте я пару слов расскажу о том, кто мы.

          Если коротко, то мы занимаемся видеоотдачей — отдаём видео в реальном времени. Мы являемся видеоплатформой для «НТВ-Плюс» и «Матч ТВ». Это 300 тысяч одновременных пользователей, которые прибегают за 5 минут. Это 300 терабайт контента, который мы отдаем в час. Это такая интересная задача. Как это всё обслужить?

          Про что сама эта история? Это про то, как мы росли, как проект развивался, как происходило какое-то переосмысление каких-то его частей, какого-то взаимодействия. Так или иначе, это про масштабирование проекта, потому что это всё — ради того, чтобы выдержать ещё больше нагрузки, предоставить клиентам ещё больше функционала и при этом не упасть, не потерять ключевых характеристик. В общем, чтобы клиент остался доволен. Ну и немного про то, какой путь мы прошли. С чего мы начинали.
          Читать дальше →
        • Разница между nginx и apache с примерами

          Во время собеседований на роль linux/unix администратора во многих IT-компаниях спрашивают, что такое load average, чем nginx отличается от apache httpd и что такое fork. В этой статье я постараюсь объяснить, что рассчитывают услышать в ответ на эти вопросы, и почему.


          Здесь важно очень хорошо понимать основы администрирования. В идеальной ситуации при постановке задачи системному администратору выставляют ряд требований. Если же ситуация не идеальная, то, по сути, требование к администратору одно: «Хочу, чтобы всё работало». Иными словами, сервис должен быть доступен 24/7 и, если какое-то решение не удовлетворяет этим требованиям (масштабирование и отказоустойчивость относятся к доступности), то можно сказать, что администратор плохо сделал свою работу. Но если разные решения двух администраторов работают 24/7, как понять, какое из них лучше?


          Хороший системный администратор при выборе решения при заданных требованиях ориентируется на два условия: минимальное потребление ресурсов и их сбалансированное распределение.


          Вариант, когда одному специалисту нужно 10 серверов для выполнения задания, а второму всего 2, мы рассматривать не будем, что тут лучше – очевидно. Далее под ресурсами я буду понимать ЦПУ (cpu), ОЗУ (ram) и диск (hdd).


          Давайте рассмотрим ситуацию: один администратор создал решение, которое требует 10% cpu, 5% ram и 10% hdd от всего вашего оборудования, а второй использовал для этого 1% cpu, 40% ram и 20% hdd. Какое из этих решений лучше? Тут все становится уже не так очевидно. Поэтому хороший администратор всегда должен уметь грамотно подобрать решение, исходя из имеющихся ресурсов.


          Читать дальше →
        • Пособие по Ansible

          • Translation

          управление конфигурацией оркестра


          Это практическое пособие познакомит вас c Ansible. Вам понадобится виртуальная или реальная машина, которая будет выступать в роли узла для Ansible. Окружение для Vagrant идет в комплекте с этим пособием.


          Ansible — это программное решение для удаленного управления конфигурациями. Оно позволяет настраивать удаленные машины. Главное его отличие от других подобных систем в том, что Ansible использует существующую инфраструктуру SSH, в то время как другие (chef, puppet, и пр.) требуют установки специального PKI-окружения.


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


          1. Установка Ansible и Vagrant
          2. Файл инвенторизации
          3. Модули shell, copy, сбор фактов, переменные
          4. Запуск на группу хостов
          5. Плейбуки
          6. Пример: поднимаем кластер, устанавливаем и настраиваем Apache и балансировщик нагрузок HAproxy
          7. Обработка ошибок, откат
          8. Шаблоны конфигурации
          9. Роли

          Ansible использует так называемый push mode: конфигурация «проталкивается» (push) с главной машины. Другие CM-системы обычно поступают наоборот – узлы «тянут» (pull) конфигурацию с главной машины.


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

          Читать дальше →
        • Основы компьютерных сетей. Тема №6. Понятие VLAN, Trunk и протоколы VTP и DTP

          • Tutorial

          Всех с наступившим новым годом! Продолжаем разговор о сетях и сегодня затронем такую важную тему в мире коммутации, как VLAN. Посмотрим, что он из себя представляет и как с ним работать. А также разберем работающие с ним протоколы VTP и DTP.
          Читать дальше →
        • Как использовать HTTP заголовки для предупреждения уязвимостей



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

          Безопасность не менее важна, чем содержание или поисковая оптимизация сайта. Тысячи сайтов взламываются из-за ошибок в конфигурации или недостаточной защиты. Если вы владелец сайта или специалист по защите информации, и интересуетесь защитой сайта от кликджекинга, внедрения кода, уязвимостей MIME типов, XSS-атак и т.д., то данная инструкция будет вам полезна.

          В этой статье я расскажу о разных заголовках HTTP для использования с различными веб-серверами, сетевой периферией или сетями доставки контента, чтобы повысить уровень защищенности сайта.
          Читать дальше →
        • Копирование разделов жёсткого диска средствами GNU/Linux: как обойтись загрузочной флешкой там, где раньше нужен был Акронис

          С тех пор как до меня дошла благая весть о существовании операционной системы под названием GNU/Linux, которую используют все настоящие программисты, я несколько раз пытался заменить ей детище Билла Гейтса и несколько раз потерпел неудачу.

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

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

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

          В большинстве случаев это было не фатально. Вместо привычного foobar всегда можно послушать музыку на Rhythmbox. Вместо Microsoft Office есть OpenOffice. Да, его совместимость с продуктом корпорации зла порой оставляет желать лучшего, но им вполне можно пользоваться для решения повседневных задач среднестатистического пользователя. Обо всяких Файрфоксах, Операх и Хромах я вообще молчу.

          Но в некоторых случаях приходилось перезагружать компьютер, выбирать в меню загрузчика пункт Microsoft Windows и делать всё по старинке. Такой задачей было например снятие образа логического диска в целях переноса на другой физический носитель, потому как текущий уже изрядно поистрепался.
          Читать дальше →
        • Кластер высокой доступности на postgresql 9.6 + repmgr + pgbouncer + haproxy + keepalived + контроль через telegram

          image

          На сегодняшний день процедура реализации «failover» в Postgresql является одной из самых простых и интуитивно понятных. Для ее реализации необходимо определиться со сценариями файловера — это залог успешной работы кластера, протестировать его работу. В двух словах — настраивается репликация, чаще всего асинхронная, и в случае отказа текущего мастера, другая нода(standby) становится текущем «мастером», другие ноды standby начинают следовать за новым мастером.

          На сегодняшний день repmgr поддерживает сценарий автоматического Failover — autofailover, что позволяет поддерживать кластер в рабочем состоянии после выхода из строя ноды-мастера без мгновенного вмешательства сотрудника, что немаловажно, так как не происходит большого падения UPTIME. Для уведомлений используем telegram.

          Появилась необходимость в связи с развитием внутренних сервисов реализовать систему хранения БД на Postgresql + репликация + балансировка + failover(отказоустойчивость). Как всегда в интернете вроде бы что то и есть, но всё оно устаревшее или на практике не реализуемое в том виде, в котором оно представлено. Было решено представить данное решение, чтобы в будущем у специалистов, решивших реализовать подобную схему было представление как это делается, и чтобы новичкам было легко это реализовать следуя данной инструкции. Постарались описать все как можно подробней, вникнуть во все нюансы и особенности.
          Читать дальше →
        • Как найти поддомены за считанные минуты?

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

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

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

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

          image
          Читать дальше →
        • Основы компьютерных сетей. Тема №1. Основные сетевые термины и сетевые модели

          • Tutorial
          Всем привет. На днях возникла идея написать статьи про основы компьютерных сетей, разобрать работу самых важных протоколов и как строятся сети простым языком. Заинтересовавшихся приглашаю под кат.


          Читать дальше →
        • NGINX: Перехват ошибок 5хх с помощью отладочного сервера

          • Translation

          Является ли ошибкой ответ 5хх, если его никто не видит? [1]


          image

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

          HTTP 5хх ответы зачастую возвращаются пользователям и могут нанести ущерб репутации компании даже за короткий промежуток времени. В то же время, отладить проблему на рабочем сервере зачастую очень непросто. Даже простое извлечение проблемной сессии из логов может превратиться в поиск иголки в стоге сена. И даже если будут собраны все необходимые логи со всех рабочих серверов — этого может быть недостаточно для понимания причин проблемы.

          Для облегчения процесса поиска и отладки могут быть использованы некоторые полезные приёмы в случае, когда NGINX используется для проксирования или балансировки приложения. В этой статье будет рассмотрено особое использование директивы error_page в применении к типичной инфраструктуре приложения с проксированием через NGINX.
          Читать дальше →
          • +45
          • 14.3k
          • 4
        • Современная операционная система: что надо знать разработчику

            Александр Крижановский (NatSys Lab.)


            Александр Крижановский

            Нас сегодня будет интересовать операционная система – ее внутренности, что там происходит… Хочется поделиться идеями, над которыми мы сейчас работаем, и отсюда небольшое вступление – я расскажу о том, из чего состоит современный Linux, как его можно потюнить?

            По моему мнению, современная ОС – это плохая штука.




            Дело в том, что на картинке изображены графики сайта Netmap (это штуковина, которая позволяет вам очень быстро захватывать и отправлять пакеты сетевого адаптера), т.е. эта картинка показывает, что на одном ядре с разной тактовой частотой до 3 ГГц Netmap позволяет 10 Гбит – 14 млн. пакетов в сек. отрабатывать уже на 500 МГц. Синенькая линия – это pktgen – самое быстрое, что, вообще, есть в ядре Linux’а. Это такая штуковина – генератор трафика, который берет один пакет и отправляет его в адаптер много раз, т.е. никаких копирований, никакого создания новых пакетов, т.е., вообще, ничего – только отправка одного и того же пакета в адаптер. И вот оно настолько сильно проседает по сравнению с Netmap (то, что делается в user-space показано розовой линией), и оно вообще где-то там внизу находится. Соответственно, люди, которые работают с очень быстрыми сетевыми приложениями, переезжают на Netmap, Pdpdk, PF_RING – таких технологий море сейчас.
            Читать дальше →
          • Преимущества systemd-networkd на виртуальных серверах Linux

              Обычно на десктопах Linux для управления сетевыми настройками используется NetworkManager, поскольку он отлично справляется со своей работой и имеет GUI фронтенды для всех популярных графических окружений. Однако на серверах Linux его использование не целесообразно: он потребляет много ресурсов. NetworkManager занимает в оперативной памяти около 20 Мб, в то время как systemd-networkd и systemd-resolvd вместе меньше 2 Мб. По этой причине, по умолчанию серверные дистрибутивы Linux server часто используют различные собственные демоны.



              Таким образом возникает целый зоопарк скриптов и утилит: демон networking под Debian, который управляет конфигурацией сети через ifupdown, использующий файлы конфигурации хранящиеся в /etc/networking/interfaces.d и файл /etc/networking/interfaces, под CentOS network, который использует скрипты ifup и ifdown и, конечно же, свои файлы конфигурации находящиеся в /etc/sysconfig/network-scripts, netctl под ArchLinux. Всем известно, что Linux — конструктор, но почему бы такой простой и общей для самых различных систем вещи как настройка сети не иметь одинаковый вид?
              Читать дальше →