• Load Average в Linux: разгадка тайны

    • Перевод


    Средние значения нагрузки (Load averages) — это критически важная для индустрии метрика. Многие компании тратят миллионы долларов, автоматически масштабируя облачные инстансы на основании этой и ряда других метрик. Но на Linux она окутана некой тайной. Отслеживание средней нагрузки на Linux — это задача, работающая в непрерываемом состоянии сна (uninterruptible sleep state). Почему? Я никогда не встречал объяснений. В этой статье я хочу разгадать эту тайну, и создать референс по средним значениям нагрузки для всех, кто пытается их интерпретировать.

    Читать дальше →
  • Оптимизация шаблонов представления в Codeigniter Framework при помощи AST трансформаций

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

    Читать дальше →
  • Операторы для Kubernetes: как запускать stateful-приложения

      Проблема stateful-приложений в Kubernetes


      Конфигурация, запуск и дальнейшее масштабирование приложений и служб осуществляются просто, если речь идёт о случаях, классифицируемых как stateless, т.е. без сохранения данных. Такие сервисы удобно запускать в Kubernetes, пользуясь его стандартными API, потому что всё происходит «из коробки»: по стандартным конфигурациям, без привлечения какой-либо специфики и магии.

      Проще говоря, для запуска в кластере из контейнеров ещё пяти копий бэкенда на PHP/Ruby/Python требуется лишь 5 раз поднять новый сервер и скопировать исходники. Поскольку и исходники, и init-скрипт лежат в образе, масштабирование stateless-приложения становится совсем элементарным. Как хорошо известно любителям контейнеров и микросервисной архитектуры, сложности начинаются для приложений категории stateful, т.е. с сохранением данных, таких как базы данных и кэши (MySQL, PostgreSQL, Redis, ElasticSearch, Cassandra…). Это касается как софта, самостоятельно реализующего кворумный кластер (например, Percona XtraDB и Cassandra), так и софта, требующего отдельных управляющих утилит (такого, как Redis, MySQL, PostgreSQL…).

      Сложности возникают по той причине, что исходников и запуска сервиса становится не достаточно — нужно выполнить еще некоторые действия. Как минимум — скопировать данные и/или присоединиться к кластеру. А если точнее, то эти сервисы требуют понимания, как их правильно масштабировать, обновлять и переконфигурировать без потери данных и их временной недоступности. Учёт этих потребностей и называется «эксплуатационными знаниями» (operational knowledge).
      Читать дальше →
      • +22
      • 5,2k
      • 3
    • Нахождение похожих имен средствами MySQL+PHP

      Тема, озвученная в заголовке статьи, не нова. На просторах Интернета можно найти множество вопросов, как ее реализовать, а вот ответов несколько меньше. И не редко они сводятся к советам использовать продукты сторонних разработчиков, например, Sphinx. Но зачастую в использовании таких громоздких надстроек нет необходимости.
      Читать дальше →
    • Zabbix для DevOps: как мы внедряли систему мониторинга в процессы разработки и тестирования



        Мы продолжаем цикл публикаций о внедрении инструментов и практик DevOps в нашей компании. Недавно мы рассказывали о том, как анализируем уязвимости с помощью нейронных сетей и нечеткой логики, а сегодня поговорим о внедрении системы мониторинга Zabbix в процессы разработки и тестирования.
        Читать дальше →
        • +9
        • 7,9k
        • 5
      • Решение задачи кредитного скоринга методом логистической регрессии

          Отучившись на нескольких онлайн-курсах, попробовал занять позицию, связанную с Machine Learning — на входе получил тестовое задание о кредитном скоринге. Свое решение которой здесь и привожу:


          Задание


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


          Тренировочная выборка содержится в файле train.csv, тестовая — test.csv.


          Информация о значениях признаков содержится в файле feature_descr.xlsx.


          Целевой признак — loan_status (бинарный). 1 означает что кредит успешно вернули.


          В рамках тестового задания вам предлагается:


          • Обучить модель на предоставленных данных, найти качество полученной модели.
          • Записать предсказания (вероятности) для тестового набора в файл results.csv
          • Продемонстрировать результаты анализа в графическом виде (ROC-curve)

          Тщательный выбор фич и подбор гиперпараметров можно не проводить.

          Читать дальше →
        • Собираем свой OpenShift Origin Cluster

          «Всю разработку — в контейнеры» — с этой фразы началось мое увлекательное путешествие в мир Docker. Попытки угодить требованиям разработчиков привели к выбору OpenShift Origin. Однако, завести полноценный кластер, как оказалось, задача нетривиальная. Во время постройки контейнерной инфраструктуры я пытался найти что-нибудь по теме, в том числе на Хабре, и не находил, как это ни странно. Поэтому ниже я попробую описать весь базовый процесс установки и постараюсь уберечь вас от граблей, по которым фактически гулял.

          Приступим:
          Читать дальше →
          • +22
          • 6,2k
          • 8
        • Набор в Санкт-Петербургский академический университет

            Традиционно сообщаем об открытии набора на кафедру математических и информационных технологий.



            Академический университет существует с 2008 года. За это время мы успели открыть аспирантуру, магистратуру и бакалавриат (да, именно в таком порядке); cтать Национальным исследовательским университетом; выиграть мегагрант по биоинформатике и еще много всего. В этом посте мы расскажем о том как к нам поступить и том, что нового у нас произошло в течение года.
            Читать дальше →
          • ClickHouse: очень быстро и очень удобно



              Виктор Тарнавский показывает, что оно работает. Перед вами расшифровка доклада Highload++ 2016.

              Здравствуйте. Меня зовут Виктор Тарнавский. Я работаю в «Яндексе». Расскажу про очень быструю, очень отказоустойчивую и супермасштабируемую базу данных ClickHouse для аналитических задач, которую мы разработали.

              Пару слов обо мне. Я Виктор, работаю в «Яндексе» и руковожу отделом, который занимается разработкой аналитических продуктов, таких как «Яндекс.Метрика» и «Яндекс.AppMetrica». Я думаю, многие из вас пользовались этими продуктами и знают их. Ну, и в прошлом, и по-прежнему пишу много кода, а раньше еще занимался разработкой железа.
              Читать дальше →
            • Кластер PostgreSQL высокой надежности на базе Patroni, Haproxy, Keepalived

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

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

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

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

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