• Чек-лист: что нужно было делать до того, как запускать микросервисы в prod

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


      К сожалению, некоторые невысокие программисты всерьёз полагают, что Dockerfile с какой-нибудь вообще любой командой внутри — это уже сам по себе микросервис и его можно деплоить хоть сейчас. Докеры крутятся, лавешка мутится. Такой подход оборачивается проблемами начиная с падения производительности, невозможностью отладки и отказами обслуживания и заканчивая кошмарным сном под названием Data Inconsistency.


      Если вы ощущаете, что пришло время запустить ещё одну аппку в Kubernetes/ECS/whatever, то мне есть чем вам возразить.


      English version is also available.

      Читать дальше →
    • Liveprof покажет, когда и почему менялась производительность вашего PHP-приложения



        Привет, Хабр! Меня зовут Тимур Шагиахметов, я PHP-разработчик в Badoo.

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

        Недавно мы рассказывали о том, какими инструментами пользуемся для профилирования. Напомню: одним из инструментов для анализа производительности, когда непонятно, какие части кода повлияли больше всего на увеличение времени формирования ответа, является XHProf. Это расширение для PHP, которое позволяет профилировать код на боевом сервере и впоследствии  улучшать его.

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

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

        В этой статье я расскажу о деталях реализации и особенностях использования этого инструмента.
        Читать дальше →
        • +84
        • 11.5k
        • 7
      • Что почитать по PHP на русском?

          image

          PHP — один из самых популярных языков программирования. А ещё это язык, для изучения которого не так просто найти качественную книгу. Что ж, мы вместе с командой GeekBrains заглянем в интернет-магазин и посмотрим, что стоящего можно найти сегодня по PHP на русском языке.
          Читать дальше →
        • Yealink Meeting Server 2.0 — новые возможности видеоконференцсвязи

          • Tutorial
          В прошлой статье: Yealink Meeting Server — комплексное решение для видеоконференцсвязи мы описали функционал первой версии Yealink Meeting Server (далее YMS), её возможности и структуру. В результате, мы получили от Вас множество запросов на тестирование этого продукта, часть которых выросли в комплексные проекты по созданию или модернизации ВКС-инфраструктуры.
          Наиболее часто встречающийся сценарий предполагал замену прежнего MCU на сервер YMS, при сохранении существующего парка терминальных устройств, а расширение с помощью терминалов Yealink.

          Основных причин тому три:

          1. Масштабируемость существующего MCU невозможна или неоправданно дорога.
          2. «Накопленный долг» за техническую поддержку соизмерим со стоимостью современного ВКС-решения «под ключ».
          3. Производитель уходит с рынка и поддержка перестаёт осуществляться вообще.

          Многие из Вас, кто сталкивался с модернизацией Polycom, например, или поддержкой LifeSize, поймут о чём идёт речь.

          Новый функционал Yealink Meeting Server 2.0, а также обновление модельного ряда терминальных клиентов Yealink не позволяет уместить всю информацию в рамках одной статьи. Поэтому я планирую сделать серию небольших публикаций на следующие темы:

          • Обзор YMS 2.0
          • Каскадирование серверов YMS
          • Интеграция YMS и S4B
          • Новые терминалы Yealink
          • Многокамерное решение для крупных конференц-залов
          Эта статья посвящена первой теме - обзору YMS 2.0
        • SITIS CTF: как тюлень помог CTF выиграть



            27 января 2019 года состоялось мероприятие SITIS CTF — соревнование по информационной безопасности для школьников и студентов техникумов. В турнире приняли участие около 80 молодых специалистов и один тюлень. Игра проводилась в офисе компании «Инфосистемы Джет», организатором заданий и технической площадки выступил молодой коллектив SITIS.

            Узнать про тюленя
          • JSON API – работаем по спецификации

              В последнее время веб-разработка разделилась. Теперь мы все не full-stack программисты — мы фронтендеры и бэкендеры. А самое сложное в этом, как и везде, это проблема взаимодействия и интеграции.

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

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


              Читать дальше →
            • PHP-Дайджест № 148 (14 – 28 января 2019)


                Свежая подборка со ссылками на новости и материалы. В выпуске: взломан репозиторий PEAR, о будущем Xdebug, конференция PHP Russia 2019, свежие релизы, RFC предложения из PHP Internals, порция полезных инструментов, и многое другое.

                Приятного чтения!


                Читать дальше →
              • Один в поле не воин. Путь до эффективной командной работы

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

                  Собрать несколько человек и сказать: «Теперь вы команда, ждем от вас результата», не получится. Людей нужно организовать, дать им вменяемую цель, мотивацию и решать возникающие проблемы.



                  Как раз об этом расшифровка доклада Евгения Федореева на TeamLead Conf. В докладе Евгений поэтапно описал процесс организации эффективной команды разработки в Banki.ru: про найм, общение, обмен знаниями и развитие разработчиков и тестировщиков внутри коллектива и отдела.


                  О спикере: Евгений Федореев (hardj) занимается веб-разработкой 15 лет, их них 6 — в позиции тимлида, а сейчас руководит направлением разработки новых проектов Banki.ru.
                  Читать дальше →
                  • +30
                  • 6.3k
                  • 6
                • Naming things

                    There are only two hard things in Computer Science: cache invalidation
                    and naming things.

                    — Phil Karlton

                    We, developers, spend more time reading code than writing it. It is important for the code to be readable and clear about its intent.


                    Below are some advice based on my experience naming things.

                    Читать дальше →
                  • Moscow Python Conf++ 2019 — первая конференция, где мы готовим часть спикеров с нуля сами



                      «Если хочешь сделать что-то хорошо — сделай это сам». 5 апреля 2019 года мы проводим 4-ю Moscow Python Conf, и я решил провести странный эксперимент: посмотреть, что будет, если перевернуть подготовку докладов с ног на голову.

                      Как обычно делается — открывается Call for Papers (вот он, открыт, ничего с ним не случилось), месяца полтора-два организаторы уговаривают топовых спикеров предложить доклады, те отбиваются работой и семьей, а затем из сотни-другой поступивших докладов выбирается несколько десятков в программу, и все выдыхают. Хороший способ, с одним ма-а-а-аленьким недостатком: много случайностей.

                      Не факт, что даже опытный спикер сможет сделать сильный доклад по предложенной теме. «Активные» спикеры в известных компаниях могут быть заняты или хотеть на другую конференцию. Много интересных тем может пройти мимо просто потому, что десять человек программного комитета не знали про огромный клубок Python в недрах IVI.ru и никто им не написал.

                      Я решил попробовать пойти по пути Goblin Slayer и не кидать кубиков вообще: сам приходить в гости к компаниям, сам проводить интервью, выбирать темы и с нуля готовить спикеров. Видели бы вы их глаза от такого предложения… Фоток не будет, но под катом расскажу что получилось.
                      Читать дальше →
                      • +32
                      • 3.5k
                      • 2
                    • VDS сервер в Амстердаме за 150 руб/мес

                        image

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

                        Условия:


                        1. Тариф доступен для заказа на 1000 виртуальных машин, успейте заказать свой мини-сервер, пока это не сделал кто-то другой.
                        2. *Тариф, подключенный по акции остается по такой стоимости на неограниченный срок.

                        Читать дальше →
                      • PHP-Дайджест № 147 (1 – 14 января 2019)


                          Свежая подборка со ссылками на новости и материалы. В выпуске: обновления всех веток PHP, Deployer 6.4, doctrine/migrations 2.0, Psalm 3 и другие релизы, Никита Попов в JetBrains, новости PHP Internals, порция полезных инструментов, видео, и многое другое.

                          Приятного чтения!

                          Читать дальше →
                        • Подмена поисковой выдачи Google

                          • Translation

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

                          Читать дальше →
                        • Состоялся релиз Metasploit Framework 5.0

                            image
                             
                            Metasploit Framework — это наиболее известный инструмент для создания, тестирования и использования эксплоитов. Позволяет производить эксплуатацию и постэксплуатацию уязвимостей, доставку «полезной нагрузки» (payloads) на атакуемую цель.

                            Metasploit Framework 5.0 — наиболее крупное обновление фреймворка с 2011 года.
                            Читать дальше →
                            • +45
                            • 11.9k
                            • 3
                          • PHP-Дайджест № 146 (10 – 24 декабря 2018) + Итоги 2018 года


                              По традиции подведем итоги уходящего года и вспомним самые значимые события в мире PHP. И конечно, ссылки на свежие новости, полезные инструменты и интересные материалы за последние две недели.


                              Под катом вас также ждет розыгрыш лицензий на PhpStorm от JetBrains.

                              Приятного чтения и с наступающим Новым годом!


                              Читать дальше →
                            • garbage.collect()

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

                                В теории звучит хорошо. На практике пользователь открывает 20 вкладок с YouTube, соцсетями, что-то читает, работает, браузер ест память, как Hummer H2 — бензин. Сборщик мусора, как этот монстр с шваброй, бегает по всей памяти и добавляет неразберихи, все тормозит и падает.



                                Чтобы таких ситуаций не происходило и производительность наших сайтов и приложений не страдала, фронтенд-разработчику стоит знать, как мусор влияет на приложения, как браузер его собирает и оптимизирует работу с памятью и как это все отличается от суровой реальности. Как раз об этом доклад Андрея Роенко (flapenguin) на Frontend Conf 2018.

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

                                Если бы в JavaScript действительно работала сборка мусора, большинство npm-модулей удаляли бы сами себя сразу после установки.

                                Но пока это не так, и мы поговорим про то, что есть — про сборку ненужных объектов.

                                Читать дальше →
                              • Нестареющая классика, или обзор новых векторов атак через Microsoft Office

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

                                  Читать дальше →
                                • Exploit Wednesday декабрь 2018: на тесты новых патчей времени в обрез – погнали…

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

                                    Для любителей подробностей – короткая справка по новым уязвимостям под катом.

                                    image
                                    Читать дальше →
                                    • +22
                                    • 2.5k
                                    • 1
                                  • PHP-Дайджест № 145 (26 ноября – 10 декабря 2018)


                                      Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 7.3.0, Symfony 4.2, Composer 1.8.0 и другие релизы, конец поддержки PHP 5.6 и PHP 7.0, свежие предложения из PHP Internals, порция полезных инструментов, видеозаписи докладов и многое другое.
                                      Приятного чтения!


                                      Читать дальше →
                                      • +45
                                      • 14.4k
                                      • 4
                                    • Исследование Solar JSOC: киберпреступники становятся профессиональнее

                                        Мы в Solar JSOC на постоянной основе собираем данные о событиях и инцидентах информационной безопасности в инфраструктурах заказчиков. На базе этой информации мы раз в полгода делаем аналитику, которая демонстрирует, как меняются атаки на российские организации. Сегодня мы собрали для вас самые интересные тренды первого полугодия 2018 г.


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