• Быстрый роутинг и NAT в Linux

      По мере исчерпания адресов IPv4, многие операторы связи столкнулись с необходимостью организовывать доступ своих клиентов в сеть с помощью трансляции адресов. В этой статье я расскажу, как можно получить производительность уровня Carrier Grade NAT на commodity серверах.
      Читать дальше →
    • Централизованный фаервол Rambler Group

        Зачем мы его создали?


        Долгое время мы в Rambler Group использовали трёхуровневую архитектуру сети ЦОД, в которой каждый проект или инфраструктурный компонент жил в выделенном влане. Весь трафик – как между вланами, так и между дата-центрами – шел через оборудование edge-уровня.
        Читать дальше →
      • Из ничего к ЦОД с VXLAN/EVPN или как готовить Cumulus Linux. Часть 2

          Всем привет. Вот и подошло продолжение первой части. Как и обещал, в данной статье, я хочу затронуть основные варианты реализации фабрики на VXLAN/EVPN, и рассказать почему мы решили выбрать то или иное решение в нашем ЦОД.

          Читать далее
        • О растущей популярности Kubernetes

          • Translation
          Привет, Хабр!

          В конце лета мы хотим напомнить, что продолжаем проработку темы Kubernetes и решили опубликовать статью со Stackoverflow, демонстрирующую состояние дел в этом проекте на начало июня.



          Приятного чтения!
          Читать дальше →
        • Wargaming Platform: Distribution

            Всем привет!


            Около двух лет назад мой коллега Максим (max_posedon) опубликовал статью Wargaming Platform: Hello World, в которой «попробовал» (как он сам обозначил) объяснить, что же такое Платформа Wargaming. Мы с коллегами хотим продолжить делиться информацией и на этот раз копнём немного вглубь — как следует из названия статьи, в дистрибуцию.

            С цифровой дистрибуцией знакомы все, пользуемся мы ею регулярно, видели всякое за 20 лет её существования, поэтому теорию и примеры рынка я обойду стороной, а рассказывать буду больше о конкретной имплементации и опыте.
            Читать дальше →
          • Знакомство с Debezium — CDC для Apache Kafka



              В своей работе я часто сталкиваюсь с новыми техническими решениями/программными продуктами, информации о которых в русскоязычном интернете довольно мало. Этой статьей постараюсь восполнить один такой пробел примером из своей недавней практики, когда потребовалось настроить отправку CDC-событий из двух популярных СУБД (PostgreSQL и MongoDB) в кластер Kafka при помощи Debezium. Надеюсь, эта обзорная статья, появившаяся по итогам проделанной работы, окажется полезной и другим.

              Что за Debezium и вообще CDC?


              Debezium — представитель категории программного обеспечения CDC (Capture Data Change), а если точнее — это набор коннекторов для различных СУБД, совместимых с фреймворком Apache Kafka Connect.
              Читать дальше →
              • +52
              • 4.3k
              • 1
            • У меня зазвонил телефон. Кто говорит?.. Поможет «слон»

                Автоматическое определение клиента и его региона по входящему телефонному звонку стало неотъемлемой частью любой развитой HelpDesk или CRM-системы. Только надо уметь делать это быстро — тогда появляется масса возможностей.

                Например, можно менеджеру сразу показать из какого города идет звонок, подтянуть актуальный прайс и условия доставки, вывести карточку звонящего клиента, последние сделки с ним, конкретное контактное лицо,… — да много чего полезного, как это умеет наш СБИС CRM!


                А как этот функционал реализовать самостоятельно? Оказывается, не так уж сложно. Собрать и опробовать работающую модель можно, буквально, «на коленке» — нужна только связка из Node.js и PostgreSQL.
                Читать дальше →
              • Nokia N95, лучший смартфон старой школы

                  Иногда представляю себя продавцом старых устройств, и как я пытаюсь объяснить, чем они так хороши. Покупателю, который такие аппараты не особо застал. Отрицательно отвечаю на массу вопросов. Есть поддержка Whatsapp и Telegram? Нет! Что насчет платежей с телефона? Тоже нет. Ютюб? Не-а. Фотоаппарат? Да! Сколько камер встроено? Как одна? Не хочу в очередной раз удивляться, насколько серьезно всё изменилось за 15 лет. Лучше расскажу вам про один из лучших смартфонов эпохи «до айфона и андроида».


                  Nokia N95 была анонсирована в конце 2006 года, поступила в продажу в 2007, уже после анонса первого Apple iPhone. По сравнению с более поздними моделями, на которых можно изучать скорее проблемы финского производителя мобильников, N95 — это был вполне разумный выбор человека с деньгами. Нестандартный «двойной слайдер», качественная пятимегапиксельная камера, возможность подключать наушники без переходников, слот для карт памяти. По сравнению со смартфонами-конкурентами на Windows Mobile не хватало разве что большого экрана, но привычку потребителя к лопатам еще надо было сформировать.

                  В рекламных материалах Nokia N95 даже не называли мобильным телефоном. Использовали девиз: «вот так теперь выглядит компьютер». Что ж, посмотрим на мобильный компьютер 2007 года выпуска. В отличие от моего знакомства с Nokia E90, который я хоть как-то пытался приставить к делу, этот обзор я попробую сделать с точки зрения коллекционера, у которого телефонов по определению больше, чем это необходимо.
                  Читать дальше →
                • Государство планирует удвоить долю IT-сектора в ВВП

                    Фото: Александр Миридонов / Коммерсантъ

                    Издание «КоммерсантЪ» сообщило, что 9 июля 2020 года Премьер-министр Михаил Мишустин объявил о плане удвоения доли IT-сектора в ВВП страны. Это заявление он сделал на совещании в Иннополисе, где он встречался с представителями IT-индустрии, включая руководителей «Яндекса», Mail.ru Group, «Лаборатории Касперского», 1С, Telegram и других компаний. В ходе совещания Мишустин также озвучил общие контуры разрабатываемой в правительстве новой программы господдержки российской IT-отрасли.
                    Читать дальше →
                  • System.Threading.Channels — высокопроизводительный производитель-потребитель и асинхронность без аллокаций и стэк дайва

                      И снова здравствуй. Какое-то время назад я писал о другом малоизвестном инструменте для любителей высокой производительности — System.IO.Pipelines. По своей сути, рассматриваемый System.Threading.Channels (в дальнейшем «каналы») построен по похожим принципам, что и Пайплайны, решает ту же задачу — Производитель-Потребитель. Однако имеет в разы более простое апи, которое изящно вольется в любого рода enterprise-код. При этом использует асинхронность без аллокаций и без stack-dive даже в асинхронном случае! (Не всегда, но часто).


                      Читать дальше →
                      • +25
                      • 11.4k
                      • 7
                    • Обзор графических интерфейсов для Kubernetes



                        Для полноценной работы с системой важно знание утилит командной строки: в случае с Kubernetes это kubectl. С другой стороны, хорошо спроектированные, продуманные графические интерфейсы могут выполнять большую часть обычных задач и открыть дополнительные возможности при эксплуатации систем.

                        В прошлом году мы публиковали перевод небольшого обзора web UI для Kubernetes, приуроченного к анонсу веб-интерфейса Kubernetes Web View. Автор той статьи и самой утилиты — Henning Jacobs из компании Zalando — как раз позиционировал новинку в качестве «kubectl для веба». Он хотел создать инструмент с удобными возможностями для взаимодействия в формате техподдержки (например, быстро показать проблему веб-ссылкой) и для реакции на инциденты, поиска проблем во многих кластерах одновременно. Его детище развивается и в настоящее время (в основном, силами самого автора).

                        Обслуживая множество Kubernetes-кластеров разных масштабов, мы тоже заинтересованы в возможности предоставлять клиентам инструмент визуальной работы. При выборе подходящего интерфейса ключевыми для нас были следующие возможности:
                        Читать дальше →
                      • Consul + iptables = :3

                          В 2010 году у компании Wargaming было 50 серверов и простая сетевая модель: бэкенд, фронтенд и файрвол. Количество серверов росло, модель усложнялась: стейджинги, изолированные VLAN с ACL, потом VPN с VRF, VLAN c ACL на L2, VRF с ACL на L3. Закружилась голова? Дальше будет веселее.

                          Когда серверов стало 16 000 работать без слез с таким количеством разнородных сегментов стало невозможно. Поэтому придумали другое решение. Взяли стек Netfilter, добавили к нему Consul как источник данных, получился быстрый распределенный файрвол. Им заменили ACL на роутерах и использовали как внешний и внутренний файрвол. Для динамического управления инструментом разработали систему BEFW, которую применили везде: от управления доступом пользователей в продуктовую сеть до изоляции сегментов сети друг от друга.



                          Как это все работает и почему вам стоит присмотреться к этой системе, расскажет Иван Агарков (annmuor) — руководитель группы инфраструктурной безопасности подразделения Maintenance в Минском центре разработки компании. Иван — фанат SELinux, любит Perl, пишет код. Как руководитель группы ИБ, регулярно работает с логами, бэкапами и R&D, чтобы защищать Wargaming от хакеров и обеспечивать работу всех игровых серверов в компании.
                          Читать дальше →
                          • +36
                          • 10.7k
                          • 5
                        • DBA: в погоне за пролетающими блокировками

                            В прошлой статье, где я рассказывал о мониторинге БД PostgreSQL, была такая фраза:
                            Растут wait — приложение в кого-то «уперлось» на блокировках. Если это уже прошедшая разовая аномалия — повод разобраться в исходной причине.
                            Такая ситуация — одна из самых неприятных для DBA:

                            • на первый взгляд, база работает
                            • никакие ресурсы сервера не исчерпаны
                            • … но часть запросов при этом «подтормаживает»

                            Шансов поймать блокировки «в моменте» крайне мало, да и длиться они могут всего по несколько секунд, но ухудшая при этом плановое время выполнения запроса в десятки раз. А хочется-то не сидеть и ловить происходящее в онлайн-режиме, а в спокойной обстановке разобраться постфактум, кого из разработчиков покарать в чем именно была проблема — кто, с кем и из-за какого ресурса базы вступил в конфликт.

                            Но как? Ведь, в отличие от запроса с его планом, который позволяет детально понять, на что пошли ресурсы, и сколько времени это заняло, подобных наглядных следов блокировка не оставляет после себя…

                            Разве что короткую запись в логе:
                            process ... still waiting for ...
                            А давайте попробуем зацепиться именно за нее!
                            Читать дальше →
                            • +18
                            • 2.9k
                            • 4
                          • Представляем k8s-image-availability-exporter для обнаружения пропавших образов в Kubernetes



                              Рады представить свой новый Open Source-проект. На этот раз мы сделали совсем небольшую, казалось бы, утилиту, но столь полезную буквально для любой инсталляции Kubernetes. В чем же её суть? K8s-image-availability-exporter — это Prometheus exporter, позволяющий проактивно предупредить пользователя об образах, которые прописаны в объектах Kubernetes (например, поле image в Deployment), но отсутствуют в реестре контейнеров (Docker Registry и т.п.).
                              Читать дальше →
                            • Лучшие 10 хитростей и советов по Kubernetes

                              • Translation


                              В интернете много справочной литературы, но иногда самыми ценными становятся самые простые советы. Команда Kubernetes aaS от Mail.ru перевела подборку из десяти хитростей и советов, которые автор статьи собрала после года работы с Kubernetes. Советы не отсортированы по важности, но думаем, что каждый найдет что-то полезное для себя.
                              Читать дальше →
                            • Анонс веб-интерфейса Kubernetes Web View (и краткий обзор других web UI для Kubernetes)

                              • Translation
                              Прим. перев.: Автор оригинального материала — Henning Jacobs из компании Zalando. Он создал новый веб-интерфейс для работы с Kubernetes, который позиционируется как «kubectl для веба». Почему новый Open Source-проект появился и каким критериям не удовлетворили уже существующие решения — читайте в его статье.



                              В этой публикации я рассматриваю различные веб-интерфейсы Kubernetes с открытым исходным кодом, предъявляю свои требования к универсальному UI и рассказываю, почему разработал Kubernetes Web View — интерфейс, призванный облегчить поддержку и устранение неполадок сразу во множестве кластеров.

                              Сценарии использования


                              В Zalando мы обслуживаем большое количество пользователей Kubernetes (900+) и кластеров (100+). Есть пара типичных случаев использования, в которых бы очень пригодилась помощь специализированного веб-инструмента:

                              1. общение с коллегами в рамках поддержки;
                              2. реагирование на инциденты и расследование их причин.
                              Читать дальше →
                              • +32
                              • 11.1k
                              • 6
                            • GitLab CI: 6 фич из последних релизов, которых мы так ждали



                                В эпоху повсеместного CI/CD мы сталкиваемся с большим спектром сопутствующих инструментов, в том числе и CI-систем. Однако именно GitLab стал для нас самым близким, по-настоящему «родным». Заметную популярность он снискал и в индустрии в целом*. Разработчики продукта не отставали от роста интереса к его использованию, регулярно радуя сообщество разработчиков и DevOps-инженеров новыми версиями.


                                Агрегация по месяцам и тегам репозитория GitLab

                                GitLab — тот случай, когда активное развитие приносит множество новых и интересных возможностей. Если для потенциальных пользователей это просто один из факторов выбора инструмента, то для действующих — ситуация такова: если вы не обновляли свою инсталляцию GitLab последний месяц, то с большой вероятностью пропустили что-то интересное. В том числе и регулярно выходящие security updates.

                                О наиболее значимых — т.е. востребованных нашими DevOps-инженерами и клиентами — нововведениях в последних релизах Community-редакции GitLab и пойдет речь в статье.
                                Читать дальше →
                              • Японские феи показывают работу master-slave триггера в новой манге по цифровой электронике

                                  Сейчас в издательстве ДМК-Пресс выходит русский перевод японской манги 2013 года про цифровые схемы, созданной Амано Хидэхару и Мэгуро Кодзи. Несмотря на несерьезную форму изложения, суть этой книжки очень здравая. Например, она начинает от древних микросхем малой степени интеграции и быстро привязывает их к современному языку описания аппаратуры Verilog и программируемым логическим интегральным схемам (ПЛИС). Также манга четко определяет зачем нужны комбинационные и последовательностные схемы, и дает представление о методах оптимизации.

                                  Манга избегает ошибок многих своих предшественников. Одну из таких ошибок совершил Чарльз Петцольд в книге «Код», которая вводила последовательностную логику не на D-триггерах, управляемых фронтом тактового сигнала (edge-triggered D-flip-flop), а на D-триггерах с работой по уровню (защелках, level-sensitive D-latch), хотя потом переключалась на правильные триггеры. Вероятно, ошибка была связана с тем, что Чарльз Петзольд, который прославился как автор учебников по программированию GUI в Microsoft Windows, не был практикующим разработчиком электроники, и для него защелки были «проще», чем триггеры с фронтом. Проблема в том, что защелки плохо совместимы со статическим анализом задержек при логическом синтезе, главной технологии проектирования цифровых схем последних 30 лет. Системы на кристалле внутри гаджетов типа айфона в качестве элементов состояния в 99% случаях используют D-триггеры переключаемые по фронту, а защелки используют только в очень специальных случаях. Давать новичкам строить схемы на защелках — это значит вводить их в заблуждение.

                                  В этом смысле манга лучше чем Петзольд. Вот как элегантно манга объясняет работу двухступенчатого master slave D-триггера, управляемого фронтом тактового сигнала. Это делается с помощью феи «Хи-хи-хи» и феи «Ха-ха-ха»:


                                  Читать дальше →
                                • RabbitMQ против Kafka: отказоустойчивость и высокая доступность

                                  • Translation


                                  В прошлой статье мы рассмотрели кластеризацию RabbitMQ для обеспечения отказоустойчивости и высокой доступности. Теперь глубоко покопаемся в Apache Kafka.

                                  Здесь единицей репликации является раздел (partition). У каждого топика один или несколько разделов. В каждом разделе есть лидер с фолловерами или без них. При создании топика указывается количество разделов и коэффициент репликации. Обычное значение 3, это означает три реплики: один лидер и два фолловера.
                                  Читать дальше →
                                  • +42
                                  • 23.2k
                                  • 3
                                • VMware vSAN 6.7 — И грянул гром

                                  Заканчивался 2018-й год…

                                  Однажды, ясным декабрьским днём, решила наша Компания приобрести новое «железо». Нет, конечно, это не случилось в одночасье. Решение было принято раньше. Намного раньше. Но, как водится, не всегда наши желания совпадают с возможностями акционеров. И денег не было, и мы держались. Но наконец-то наступил тот радостный момент, когда приобретение было одобрено на всех уровнях. Всё было хорошо, «белые воротнички» радостно аплодировали, надоело им на серверах 7-ми летней давности ежемесячно обрабатывать документы по 25 часов и они очень настойчиво просили Департамент ИТ придумать что-нибудь, чтобы подарить им больше времени для других, не менее важных дел.

                                  Мы пообещали сокращение времени обработки документов в 3 раза, до 8 часов. Для этого выстрелили из пушки по воробьям. Этот вариант казался единственным, поскольку в нашей команде нет, и никогда не было, администратора баз данных для применения всевозможных оптимизаций запросов (DBA).
                                  Читать дальше →