• Тюнинг сетевого стека Linux для ленивых

    • Tutorial

    Сетевой стек Linux по умолчанию замечательно работает на десктопах. На серверах с нагрузкой чуть выше средней уже приходится разбираться как всё нужно правильно настраивать. На моей текущей работе этим приходится заниматься едва ли не в промышленных масштабах, так что без автоматизации никуда – объяснять каждому коллеге что и как устроено долго, а заставлять людей читать ≈300 страниц английского текста, перемешанного с кодом на C… Можно и нужно, но результаты будут не через час и не через день. Поэтому я попробовал накидать набор утилит для тюнинга сетевого стека и руководство по их использованию, не уходящее в специфические детали определённых задач, которое при этом остаётся достаточно компактным для того, чтобы его можно было прочитать меньше чем за час и вынести из него хоть какую-то пользу.

    Читать дальше →
  • Лабораторная работа «Обучаемся настраивать сети в GNU/Linux»

    • Tutorial
    Никто не любит длинные вступления, поэтому сразу к сути.
    В данной импровизированной лаборатории я хотел бы осветить работу с сетями в GNU/Linux
    и рассмотреть следующие темы:

    1. Изучаем vlan. Строим сеть между vm1, vm2 в одном vlan. Пингуем, ловим пакеты, изучаем заголовки.
    2. Разбиваем vm1 vm2 на разные vlan. Настраиваем intervlan routing с помощью R1.
    3. Iptables. Настраиваем маскарад. Имитируем выход во внешние сети.
    4. Iptables. Настраиваем port forwarding для сервисов на vm1 и v2, которые находятся за NAT.
    5. Iptables. Настраиваем security zones. Изучаем tcp сессии.


    З.Ы. все люди ошибаются, я открыт для ваших комментариев, если я написал какую-то глупость, готов ее исправить!
    Читать дальше →
  • Как создать современную CI/CD-цепочку с помощью бесплатных облачных сервисов

    • Translation



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


    Такой способ создания программного обеспечения используется в процессах Непрерывной интеграции (Continuous Integration) и Непрерывного развертывания (Continuous Deployment), или CI/CD-цепочке. В этой статье мы пройдем по всем шагам настройки такой цепочки, используя для ее построения бесплатные облачные сервисы.

    Читать дальше →
  • Linux: перенаправление

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



    Для оболочки, интерпретатора команд Linux, эти дополнительные символы — не пустая трата места на экране. Они — мощные команды, которые могут связывать воедино различные фрагменты информации, разделять то, что было до этого цельным, и делать ещё много всего. Одна из самых простых, и, в то же время, мощных и широко используемых возможностей оболочки — это перенаправление стандартных потоков ввода/вывода.
    Читать дальше →
  • 10 приёмов работы в терминале Linux, о которых мало кто знает

    • Translation
    Близкое знакомство с возможностями терминала — один из признаков человека, который хорошо разбирается в Linux. Хотя некоторые вещи запомнить сложно, есть довольно-таки простые, но эффективные приёмы, которые способны повысить качество и скорость работы в терминале. Пожалуй, каждый пользователь Linux рано или поздно обзаводится собственным списком ценных мелочей. Надеемся, некоторых из тех десяти приёмов работы в командной строке Linux, которыми мы хотим с вами поделиться, попадут в ваш личный список полезных команд.

    Читать дальше →
  • Kubernetes на голом железе за 10 минут

    • Translation


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


    По ходу этой статьи мы установим Kubernetes 1.6 на реальную (не виртуальную) машину под управлением Ubuntu 16.04 примерно за 10 минут. В результате у вас появится возможность начать изучать взаимодействие с Kubernetes посредством его CLI kubectl.
    Читать дальше →
  • Почтовый сервер на Linux

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

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



    Начнём с SMTP-сервера на Linux
    Читать дальше →
  • Документирование по ГОСТ 34* — это просто

      Сегодня мы поговорим об отечественных стандартах на проектную документацию. Как эти стандарты работают на практике, чем они плохи и чем хороши. При разработке документации для государственных и серьезных частных заказчиков у нас обычно нет выбора — в требования по документированию ТЗ вписано соблюдение стандартов. На практике мне приходилось сталкиваться с различными примерами недопонимания структуры стандартов, того, что должно быть в документах и зачем эти документы нужны. В итоге из-под пера техписателей, аналитиков и специалистов выходят порой такие перлы, что непонятно, в каком состоянии сознания они писались. А ведь на самом деле все достаточно просто. Поиск по Хабру не вернул ссылок на более-менее целостный материал на данную тему, потому предлагаю закрасить этот досадный пробел.
      Читать дальше →
    • Лучшие работодатели в ИТ: первые результаты сервиса оценок на «Моем круге»

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

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

        Для начала, давайте взглянем на картину в целом. Мы обратили внимание, что чем меньше компания по числу сотрудников, тем выше оценки ей ставят. Поэтому, сравнивать компании друг с другом по оценкам имеет смысл как минимум в своей «весовой» группе.


        Читать дальше →
      • [в закладки] Шпаргалка системного администратора по сетевым инструментам Linux

        • Translation
        В повседневные задачи системных администраторов входит работа с сетями и с подключённым к ним оборудованием. Нередко роль рабочего места администратора играет компьютер, на котором установлен какой-нибудь дистрибутив Linux. Утилиты и команды Linux, о которых пойдёт речь в материале, перевод которого мы публикуем сегодня, включают в себя список инструментов различной сложности — от простых, до продвинутых, которые предназначены для решения широкого спектра задач по управлению сетями и по диагностике сетевых неполадок.



        В некоторых из рассматриваемых здесь примеров вы столкнётесь с сокращением <fqdn> (fully qualified domain name, полное доменное имя). Встретив его, замените его, в зависимости от обстоятельств, на адрес интересующего вас сайта или сервера, например, на нечто вроде server-name.company.com.
        Читать дальше →
      • Формы в интернет-магазинах проектируют следователи угро

          Каждую неделю я заказываю в интернете. Стиральные машинки, книги, посуду — большая часть моего дома куплена в интернете. А приехало всё это с курьерами, которые ругались на отсутствие сдачи, попадали не по адресу и по сто раз уточняли, как доехать.

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

          Как-то в очередной раз решила заказать блендер.
          Выбирала его в пяти магазинах и записала по ходу свои впечатления.

          Сразу скажу, что большую часть форм я не осилила.



          Обычно магазину нужно имя, чтобы завести клиента в CRM. Здесь требуют и фамилию, и отчество. Отчество-то зачем? Они со мной собираются официально разговаривать?

          Также мне кажется, что почтовый адрес «8 Марта, 1-12» точно потребует уточнения оператором. В Москве есть улица «8 Марта», «8 Марта 1-я» и «8 Марта 4-я». А еще «8 Марта» есть в поселке Внуково, который тоже в Москве.

          В чем еще не правы интернет-магазины
        • Как интернет-магазины теряют деньги из-за адреса в форме заказа



            Давненько мы не разбирали формы заказа. В этом выпуске — две ошибки, из-за которых интернет-магазины и службы доставки постоянно теряют деньги. А клиенты при этом вообще раскаляются.
            Читать дальше →
          • Принципы работы СУБД. MVCC

              Многие из нас сталкивались в своей работе с СУБД. На текущий момент базы данных в том или ином виде окружают нас повсюду, начиная с мобильных телефонов и заканчивая социальными сетями, в число которых входит и любимый нами хабр. Реляционные СУБД являются наиболее распространенными представителями семейства СУБД, и большинство из них являются транзакционными.
              В институте нас заставляли заучивать определение ACID и стоящие за ним свойства, но почему-то стороной обходились подробности реализации этой парадигмы. В данной статье я постараюсь частично заполнить этот пробел, рассказав о MVCC, которая используется в таких СУБД как Oracle, Postgres, MySQL, etc. и является весьма простой и наглядной.
              читать далее
            • Мониторинг сетевого стека linux

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


                Я расскажу, как достаточно простые метрики TCP/IP стека могут помочь разобраться с различными проблемами в распределенных системах.

                Читать дальше →
              • Роутинг и policy-routing в Linux при помощи iproute2

                  Речь в статье пойдет о роутинге сетевых пакетов в Linux. А конкретно – о типе роутинга под названием policy-routing (роутинг на основании политик). Этот тип роутинга позволяет маршрутизировать пакеты на основании ряда достаточно гибких правил, в отличие от классического механизма маршрутизации destination-routing (роутинг на основании адреса назначения). Policy-routing применяется в случае наличия нескольких сетевых интерфейсов и необходимости отправлять определенные пакеты на определенный интерфейс, причем пакеты определяются не по адресу назначения или не только по адресу назначения. Например, policy-routing может использоваться для: балансировки трафика между несколькими внешними каналами (аплинками), обеспечения доступа к серверу в случае нескольких аплинков, при необходимости отправлять пакеты с разных внутренних адресов через разные внешние интерфейсы, даже для отправки пакетов на разные TCP-порты через разные интерфейсы и т.д.
                  Для управления сетевыми интерфейсами, маршрутизацией и шейпированием в Linux служит пакет утилит iproute2.
                  Читать дальше →
                • Горячие клавиши в шелле

                    Посвящается B_dot, пост которого заставил заинтересоваться возможностями консоли плотнее.
                    cat /dev/cheat-sheet >> /dev/head

                    Краткое вступление


                    В этом посте будет рассказано о некоторых сочетания клавиш, которые могут упросить жизнь администраторам, работающим в консоли. Все они работают в bash'e. Сочетания клавиш я дополнительно проверял на циске (Cisco IOS Software, s72033_rp Software (s72033_rp-ADVIPSERVICESK9_WAN-M), Version 12.2(33)SXH4), csh и zsh. Рассмотренное в других записях повторять особо не буду. Сочетания сгруппированы по использованной функциональной клавише.
                    Особенно полезен этот текст будет людям, которые любят использовать клавиши Home, End и Delete (которые в цисковой консоли «не работают»).
                    Читать дальше →
                  • Site Reliability Engineering: антология мудрости Google или новое слово в DevOps

                    • Translation
                    Здравствуйте, уважаемые читатели!

                    Полагаем, не только нас заинтересовала книга "Site Reliability Engineering", написанная большим коллективом авторов из Google. Мало того, что она продолжает занимать первые строчки всевозможных рейтингов Amazon; самое интересное, что в ней дается действительно доступная и исчерпывающая информация о безупречной эксплуатации систем любой сложности.



                    Более того, нас в перспективе интересует и более общая обзорная книга по методологии DevOps, выхода которой мы с нетерпением дожидаемся:



                    Поскольку мы практически убеждены, что варан с быком составят идеальную пару, остается надеяться на не меньший читательский интерес к SRE и DevOps. Предлагаем изучить немного сокращенный обзор книги «Site Reliability Engineering». Автор статьи Майк Догерти — один из соавторов книги, частично ее вычитывавший.
                    Читать дальше →
                    • +10
                    • 34.6k
                    • 5
                  • Удивительно полезный инструмент: lsof

                    • Translation
                    Я привык искать проблемы в коде или в системе, пользуясь логами или показателями мониторинга, которые выводятся на симпатичных панелях управления с простым и понятным интерфейсом. Однако, если по какой-то причине данные на панель управления не поступают, или логи какой-нибудь службы недоступны, отладка усложняется. Теперь подобных проблем немного, встречаются они редко, но они, всё же, случаются. Поэтому и в наше время весьма ценно знание инструментов, которые помогают понять, что не так с неким процессом на каком-нибудь компьютере.

                    image
                    Читать дальше →
                  • 7 принципов проектирования приложений, основанных на контейнерах

                    • Translation
                    В конце прошлого года компания Red Hat опубликовала доклад с описанием принципов, которым должны соответствовать контейнеризированные приложения, стремящиеся к тому, чтобы стать органичной частью «облачного» мира: «Следование этим принципам обеспечит готовность приложений к автоматизируемости на таких платформах для облачных приложений, как Kubernetes», — считают в Red Hat. И мы, изучив этот документ, с их выводами согласны, а посему решили поделиться ими с русскоязычным ИТ-сообществом.



                    Обратите внимание, что эта статья является не дословным переводом оригинального документа (PDF), подготовленного Bilgin Ibryam — архитектором из Red Hat, активным участником нескольких проектов Apache и автором книг «Camel Design Patterns» и «Kubernetes Patterns», — а представляет основные его тезисы в довольно свободном изложении.
                    Читать дальше →
                    • +23
                    • 16.9k
                    • 5
                  • Пенсионное интервью программиста

                      – Добрый день, Станислав Сергеевич! Проходите, пожалуйста!

                      – Здравствуй, Катенька! Прохожу, прохожу…

                      – Чай, кофе?

                      – Ну… Не знаю я. Ничего, наверное.

                      – Хорошо, как скажете. Я немного волнуюсь, если честно – в первый раз через эту процедуру проходит программист…

                      – Ну, не клизму же ставить будете, Катюш. Не бойтесь, я вас не съем.
                      Читать дальше →