company_banner
  • Релиз новой версии плагина DevOpsProdigy KubeGraf для мониторинга kubernetes-кластеров в Grafana

      Коллеги, всем привет!

      На этой неделе состоялся релиз очередной версии нашего плагина DevOpsProdigy KubeGraf v1.4.0. Он разработан для Grafana и предназначен для мониторинга kubernetes-кластеров и приложений в них.

      Итак, что нового в версии 1.4.0:

      Читать дальше →
    • Три бага в драйвере Go для MySQL

      • Перевод
      Так как нас не устраивала скорость и надежность исходной имплементации на Ruby, в последние несколько лет мы постепенно выводили критический функционал из нашего Rails-монолита GitHub.com и переписывали часть кода на Go. Например, на Github Satellite в прошлом году мы анонсировали — и имплементировали — возможность «более контролируемой авторизации» с использованием сервиса authzd.

      Работа с authzd оказалась очень интересной и значимой для нас задачей, поскольку это был наш первый сервис на Go для работы с чтением данных из баз MySQL на продакшне в ходе веб-реквеста. У нас имелся опыт развертывания других работающих с базами MySQL-сервисов на Go, но при этом они были либо службами внутреннего контроля (наша кластерная поисковая система manticore), либо асинхронными пакетными заданиями (оркестратор резервного копирования Git gitbackups). Требования к производительности и надежности authzd отличаются от них повышенной строгостью, поскольку обычный реквест к Rails-монолиту вызывает этот сервис неоднократно.

      Кроме того, проблемы с большими задержками при открытии TCP соединений на наших Kubernetes кластерах особенно влияли на пул соединений Go MySQL драйвера. Это добавляло работы, ведь именно на Kubernetes мы и развернули authzd. Одним из самых опасных самообманов программиста в этом отношении является вера в надежность сети, поскольку да, в большинстве случаев сеть действительно надежна… но как только она начинает тормозить или барахлить, нас настигают базовые проблемы таких же базовых библиотек, и все начинает рушиться.

      Так чего нам в итоге стоила подготовка authzd к обработке всего нашего рабочего трафика через SQL, да еще и в соответствии с нашими целями доступности?
      Читать дальше →
      • +27
      • 3,9k
      • 3
    • Несколько советов о том, как ускорить сборку Docker-образов. Например, до 30 секунд

        Прежде чем фича попадет на прод, в наше время сложных оркестраторов и CI/CD предстоит пройти долгий путь от коммита до тестов и доставки. Раньше можно было кинуть новые файлы по FTP (так больше никто не делает, верно?), и процесс «деплоя» занимал секунды. Теперь же надо создать merge request и ждать немалое время, пока фича доберётся до пользователей.


        Часть этого пути — сборка Docker-образа. Иногда сборка длится минуты, иногда — десятки минут, что сложно назвать нормальным. В данной статье возьмём простое приложение, которое упакуем в образ, применим несколько методов для ускорения сборки и рассмотрим нюансы работы этих методов.


        Читать дальше →
      • Single sign-on для SSH своими руками

        • Перевод
        TL;DR В этот статье мы установим single sign-on для SSH от Google. За кулисами мы воспользуемся OpenID Connect (OICD), краткосрочными SSH сертификатами, несколькими хитростями конфигурации SSH, и опенсорсными пакетами step-ca и step от Smallstep. Мы настроим SSH Certificate Authority и воспользуемся им, чтобы загрузить в нашей системе нового пользователя и новый хост. Этот метод привносит много преимуществ помимо single sign-on, так как отпадает нужда в сборе, передаче и контроле файлов authorized_keys, хоть и требует больше подготовительной работы по сравнению с настройкой типичной пары открытого/секретного SSH ключей.

        Как не следует пользоваться SSH


        Еще в далеком 2004 году кто-то научил меня копипастить открытый ключ в файл authorized_keys. С тех пор я продолжал невинно копировать один и тот же старый публичный ключ на каждый сервер, с которым мне приходилось работать, и у меня постоянно не получалось сделать это с первого раза, потому что я забывал корректно настраивать chmod.
        Читать дальше →
        • +24
        • 5,5k
        • 2
      • Инфраструктура еды: как мы саппортим «Тануки»



          Перефразируя одного известного исторического деятеля, важнейшим из всех сервисов для нас является доставка. Что бы мы делали в нынешней ситуации без роллов или пиццы на дом — представлять не хочется. Так получилось, что 2 года назад мы приняли на поддержку одну из крупнейших сетей — «Тануки». Месячная аудитория сайта — порядка миллиона человек. Это теперь, в 2020 году. В 2018-м, когда «Тануки» начали сотрудничество с нами, она была в 2 раза меньше. Мы обеспечили безболезненный переезд в новый дата-центр и полностью переделали инфраструктуру — благодаря чему, собственно, сайт и приложения способны без проблем выдерживать возросшую нагрузку.

          Временами мы сильно жалеем, что географически находимся далековато от ближайшего ресторана «Тануки»: иначе все свои успехи (и маленькие незадачи) заедали бы вкусными роллами.

          В общем, сегодня мы хотим рассказать вам историю саппорта одного из крупнейших веб-проектов отечественной «индустрии гостеприимства».
          Читать дальше →
        • Почему нам нужен DevOps в сфере ML-данных

          • Перевод


          Развертывание машинного обучения (machine learning, ML) в продакшн – задача нелегкая, а по факту, на порядок тяжелее развертывания обычного программного обеспечения. Как итог, большинство ML проектов так никогда и не увидят света — и продакшена — так как большинство организаций сдаются и бросают попытки использовать ML для продвижения своих продуктов и обслуживания клиентов.

          Насколько мы можем видеть, фундаментальное препятствие на пути большинства команд к созданию и развертыванию ML в продакшн в ожидаемых масштабах заключается в том, что нам все еще не удалось привнести практики DevOps в машинное обучение. Процесс создания и развертывания моделей ML частично раскрыт уже вышедшими MLOps решениями, однако им недостает поддержки со стороны одной из самых трудных сторон ML: со стороны данных.
          Читать дальше →
        • Маленькие хитрости SSH

          • Перевод
          В этой статье собраны наши лучшие приемы для более эффективного использования SSH. Из нее вы узнаете как:

          • Добавить второй фактор к логину SSH
          • Безопасно пользоваться agent forwarding
          • Выйти из вставшей SSH сессии
          • Сохранить постоянный терминал открытым
          • Поделиться удаленной сессией терминала с другом (без Zoom!)

          Добавление второго фактора к своему SSH


          Второй фактор аутентификации к своим SSH соединениям можно добавить пятью разными способами:

          1. Обновить свой OpenSSH и использовать ключ шифрования. В феврале 2020 года в OpenSSH была добавлена поддержка ключей шифрования FIDO U2F (Universal Second Factor). Это отличная новая функция, но есть нюанс: только те клиенты и серверы, которые обновились до версии OpenSSH 8.2 и выше смогут пользоваться ключами шифрования, так как февральское обновление вводит для них новые типы ключей. Командой ssh –V можно проверить клиентскую версию SSH, а серверную — командой nc [servername] 22
          Читать дальше →
        • Kubernetes, микросервисы, CI/CD и докер для ретроградов: советы по обучению

            Кажется, тема «зачем нужен Kubernetes», уже раздражает. Хочется сказать: «все кому надо — давно уже поняли», однако я разделил бы технических (и околотехнических) работников на тех, кто «понял и знает как использовать», и тех, кто «понял, но хочет знать, как сделать знания актуальными».

            Возможно, вы менеджер, который последние 10 лет работал на одном и том же стеке; возможно, вы разработчик, который поддерживает старое решение или пишет на привычном языке в привычной среде. Возможно, вы просто перешли из технического в организационный менеджмент и вдруг выяснили, что все, что вы знали, больше не актуально, и хочется понять — есть ли какой-то относительно простой сценарий, как это можно догнать. Я постараюсь дать советы, основываясь на собственном опыте, — от человека, который осознал, что, находясь на организационном управлении, скоро будет выражаться словами «Kubernetes — это эффективная технология, мы должны стремиться к ее применению», не вполне понимая, что лежит за этими словами и за всей технической культурой, развившейся в последнее время.

            Почему я считаю важным уметь менять парадигму технологического мышления?
            Читать дальше →
          • «Инженерия резильентности»: заметки с конференции REDeploy



              Пока конференции по всему миру ищут оптимальные форматы в онлайне, самое время вспомнить, как они (да и все мы) жили в довирусную эпоху. В конце прошлого года я посетил конференцию REDeploy 2019, посвященную Resilience Engineering. Очень долго пытался понять, как перевести этот термин на русский, пока не обнаружил, что термин уже давно применяется в неайтишных нишах — как «инженерия резильентности». Дальше следовало бы написать определение резильентности, но одним простым предложением это сделать сложно. А ещё оказалось, что темы, поднятые полгода назад, весьма актуальны и в нашей новой реальности.

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

              Долгие годы в процессе разработки программного обеспечения превалировала механистическая картина мира — вера в то, что мы способны разработать программное обеспечение, которое будет работать без аварий, а если авария и произойдет, у неё будет некая коренная причина (root cause), исправив которую, можно предотвратить повторение подобных ошибок в будущем — и, таким образом, поскольку число ошибок конечно, в итоге исправить все ошибки, приводящие к авариям (см. отличную статью Dev, Ops и Determinism про это).

              Этот же «инженерный» подход применяется и к тому, как взаимодействуют во время аварии люди: достаточно создать некий инструментарий, воспользовавшись которым, люди смогут исправить проблему (при этом не допуская ошибок).
              Читать дальше →
            • Сравнение производительности HTTP/3 и HTTP/2

              • Перевод


              Мы в Cloudflare объявили о поддержке HTTP/3 в сентябре прошлого года, когда отмечали девятый день рождения. Наша задача всегда состояла в улучшении интернета. Сотрудничество в области стандартов — важная часть процесса, и нам повезло участвовать в разработке HTTP/3.

              Хотя HTTP/3 ещё на стадии черновика, мы заметили большой интерес к новому протоколу со стороны наших пользователей (инфраструктура Cloudflare обслуживает более 10% сайтов интернета — прим. пер.). К настоящему моменту поддержку HTTP/3 активировали более 113 000 зон, и если у вас экспериментальный браузер, то теперь вы можете получить доступ к этим зонам по новому протоколу! Здорово, что его включили так много людей: работа по HTTP/3 большого количества реальных веб-сайтов означает, что можно тестировать больше разнообразных свойств со стороны браузеров.
              Читать дальше →
              • +16
              • 9,7k
              • 8
            • Как наладить безопасный доступ к серверам в режиме удалённой работы



                Тут на Хабре уже десятки статей, повествующих, как люди переживали переход на удалёнку, как переживали первые дни удалёнки, потом – как прошла первая неделя, и всё такое прочее. Иногда между описанием эмоций проскакивали какие-то дельные советы. Мы как люди с 12-летним опытом удалённого администрирования серверов решили рассказать про инструмент, без которого удалёнка превращается в довольно опасное для вашего бизнеса мероприятие. Почему? — Потому что народ думает о чём угодно (в первую очередь, конечно, о проклятых бесплатных 40 минутах в «зуме»), но не о безопасности. Точнее, разумеется, вы задумывались об этом вопросе — но поспорим, что он не был первым в очереди?

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

                Мы хотим поделиться с вами open-source версией инструмента, используемого в нашей компании в роли бастионного сервера. Называется он «Сервер аутентификации DevOpsProdigy Isolate».
                Читать дальше →
              • Как SEO-оптимизация и алгоритмы Google уничтожили настоящий интернет

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



                Как SEO-оптимизация уничтожила интернет


                В промежутке между 1998 и 2003 годом поиск в Google был просто волшебным. Я помню, как вводил какую-то смутную комбинацию, типа «oil mother's milk» и в итоге попал на страницу Wired с интервью Томаса Голда, астрофизика, который рассказывал о том, что залежи углеводородов (oil) пополняются за счет давления внутри геологических пластов.

                Если вы сегодня ищете что-то техническое, конкретное, академическое или вообще — некоммерческое, то удачи вам. Лучшая в мире информационно-поисковая система превратилась в нечто, напоминающее Digg эры 2006 года: индексы популярности контролируются небольшим количеством финансово мотивированных игроков. Они называют себя «оптимизаторами».
                Читать дальше →
              • Как подготовить сайт к росту нагрузки



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

                  Опираясь на свой 12-летний опыт технической поддержки веб-проектов и удалённого администрирования серверов, мы подготовили своего рода «методичку»: что стоит проверить и о чём нужно позаботиться, если вы хотите быть уверенным, что ваш сайт справится с любой нагрузкой. Ну, почти любой.

                  Итак, вот 10 пунктов, которые критичны для активной жизни вашего веб-проекта в ближайшие дни и недели:
                  Читать дальше →
                  • +30
                  • 5,3k
                  • 8
                • 13 инструментов для обработки текста в командной оболочке

                  • Перевод
                  • Tutorial
                  Здесь представлен фрагмент будущей книги «Основные инструменты и практики для начинающего разработчика программного обеспечения» Бальтазара Рубероля и Этьена Броду. Книга должна помочь образованию подрастающего поколения разработчиков. Она охватит такие темы, как освоение консоли, настройка и эффективная работа в командной оболочке, управление версиями кода с помощью git, основы SQL, инструменты вроде Make, jq и регулярные выражения, основы сетевого взаимодействия, а также лучшие практики разработки программного обеспечения и совместной работы. В настоящее время авторы упорно работают над этим проектом и приглашают всех поучаствовать в списке рассылки.

                  Содержание


                  Читать дальше →
                • PC-геймеры Reddit объединяют свои вычислительные мощности вокруг проекта Folding@Home для борьбы с COVID-19

                    Модераторы сабреддита «PC Master race» призвали владельцев мощных игровых видеокарт присоединиться к научным облачным вычислениям Стэнфордского проекта Folding@Home, который прямо сейчас занимается расчетом моделей сразу по восьми направлениям для борьбы с COVID-19. Инициативу сообщества Reddit уже поддержала компания Nvidia, которая призвала через твиттер своих потребителей предоставить ученым вычислительные мощности своих видеокарт:


                    Важно отметить, что сабреддит «PC Master race» не пытается хайпануть на теме коронавируса: поддержка Folding@Home и первый систематизированный мега-тред, посвященный проекту, был опубликован еще 4 месяца назад, когда о коронавирусе даже не слышали. Кроме того, пользователи упоминали F@H в сабреддите на протяжении последних пяти лет.

                    Как принять участие в коллективных вычислениях, даже если вам плевать на COVID-19 и вы хотите, чтобы побыстрее нашлось лекарство от рака — под катом.
                    Читать дальше →
                  • Amazon Go: магазин без касс — личный опыт

                      О проекте «магазинов самообслуживания» Amazon Go начали говорить в середине десятых. Даже пост на Хабре был. Но одно дело — читать описания, и другое — узнать из первых рук, как это: зайти в магазин без кассиров, набрать товаров и that's it, как пишет Amazon на своём сайте. Наш давний друг Василий Даниленко, 5 лет назад перебравшийся из небольшого города Иркутской области в Штаты, поделился личным опытом.


                      Фото Forbes.

                      «В Нью-Йорке уже немало (8, если быть точным, — прим. ред.) магазинов Amazon GO, где отсутствуют кассиры. Амазон сам тебе присылает счет и списывает деньги через пару минут после выхода.

                      Почти никто не пишет, что сами точки довольно небольшие (по американским стандартам можно сказать, крошечные), а ассортимент в них раз в десять меньше, чем в обычной ноу-нейм АЗС.
                      Но это вполне объяснимо, потому что это, скорее, пока пилот, нежели бизнес. Дальше некоторые заметки из личного опыта регулярного посещения магазинов без касс.
                      Читать дальше →
                    • Плагин для мониторинга K8s-приложений DevOpsProdigy KubeGraf v1.3.0: новый релиз и новые фичи

                        На этой неделе состоялся релиз новой версии нашего плагина для Grafana, предназначенного для мониторинга kubernetes-приложений DevOpsProdigy KubeGraf v1.3.0.

                        Небольшой дисклеймер: данный плагин является переработанной версией официального плагина от Grafana (который не поддерживается уже около двух лет). Мы разрабатываем его уже больше полугода. Ключевыми особенностями плагина являются:

                        • интеграция с k8s-api для построения карты ваших приложений, сгруппированных по неймспейсам / нодам-кластера + привязка к конкретным pod’ам/сервисам;
                        • сводная страница со всеми ошибками / предупреждениями о работе нод и приложений кластера;
                        • возможность инсталляции плагина с облачными k8s-провайдерами через авторизацию с помощью bearer-tokena.

                        Что нового в версии 1.3.0:
                        Читать дальше →
                      • Ускоряем фронтенд. Когда много запросов к серверу — это хорошо

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

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

                        Процесс загрузки разделим на три этапа. Для каждого этапа сформулируем общие стратегии повышения производительности:

                        1. Начальная отрисовка: сколько времени требуется, чтобы пользователь увидел хоть что-то
                          • Сократить запросы, блокирующие рендеринг
                          • Избегать последовательных цепочек
                          • Повторно использовать соединения с сервером
                          • Сервис-воркеры для мгновенного рендеринга
                        2. Загрузка приложения: сколько времени требуется, чтобы пользователь смог использовать приложение
                          • Разбить пакет приложения на части. Загружать только необходимые ресурсы. Максимизация попаданий в кэш
                          • Проверить, что хэши частей пакета не меняются без необходимости
                          • Запрашивать данные для страницы до загрузки всего приложения
                          • Не блокировать рендеринг загрузкой второстепенных данных
                          • Рассмотреть рендеринг на стороне сервера
                        3. Следующая страница: сколько времени требуется для перехода на следующую страницу
                          • Запрашивать дополнительный код до того, как он понадобится
                          • Кэшировать и повторно использовать данные на клиенте
                        Читать дальше →
                        • +31
                        • 15,2k
                        • 2
                      • Изменение алгоритмов Google AdSense может привести к вымогательству у владельцев сайтов и веб-мастеров

                          Практически любому современному бизнесу важны современные инструменты контекстной рекламы, в особенности — Google AdSense. Еще важнее эта система площадкам, которые размещают у себя рекламу. Казалось бы, все «грязные» приемы на полях SEO-оптимизации, поднятия сайта в выдаче гугла и атак на конкурентов, связанные с баннерной рекламой, мы уже знаем и выучили, но недобросовестные граждане нет-нет, а придумают что-нибудь новое.

                          Так, на сайте krebsonsecurity.com его владелец Брайан Кребс, специалист по инфобезу, поделился новым интересным приемом шантажа веб-мастеров: через эксплуатацию мусорного трафика с последующим автоматическим баном в системе. Собственно, все просто, как в случае с криптошифровальщиками: злоумышленник требует выкуп в биткоинах в эквиваленте 5000$, иначе он направит на сайт поток мусорного бот-трафика, имитируя топорную накрутку активности с целью «освоить бюджеты».



                          Суть в том, что современные алгоритмы Google AdSense воспринимают подобную активность на сайте как мошенничество и приостанавливают действие записи пользователя в системе сроком на один месяц.
                          Читать дальше →
                        • Японская фармкомпания приступает к испытаниям лекарства, синтезированного с помощью нейросети

                            Фармацевты и программисты из компаний Sumitomo Dainippon Pharma и Exscientia подбросили дров в костер спора «где должна заканчиваться самостоятельность машины и начинаться контроль в ручном режиме»: 30 января на официальном сайте Exscientia был опубликован пресс-релиз, в котором заявлено, что с помощью разработанного ими ИИ фармкомпания Sumitomo Dainippon Pharma определила формулу и синтезировала действующее вещество для лекарства против ОКР.



                            Конечно, маркетологи Exscientia называют свою разработку «Искусственным Интеллектом», но разработка нового лекарства велась с помощью обучающейся нейросети. Фактически, нейросеть определила формулу нового лекарства через перебор и анализ комбинаций известных действующих веществ. Сейчас разработка и синтез завершены, и SDP — компания-производитель лекарства — переходит к первой фазе клинических испытаний на животных.
                            Читать дальше →
                            • +25
                            • 7,9k
                            • 6

                          Самое читаемое