• Аварии помогают учиться

      За 3 последних года в Контуре случилось больше тысячи инцидентов разной степени эпичности. Причины разные: например, 36% вызвано некачественным релизом, а 14% — работами по обслуживанию железа в дата-центре. Откуда статистика? После каждого инцидента пишется отчёт — постмортем. Их пишут дежурные инженеры, которые отреагировали на уведомление об аварии и первыми начали разбираться в ее причинах. Постмортемы анализируются, выявляются и устраняются причины инцидентов, чтобы в дальнейшем подобные инциденты не возникали. Но так было не всегда.

      Алексей Кирпичников (BeeVee) с 2008 года программировал в Яндексе: Пробки, спортивные спецпроекты, был тимлидом команды бэкенда Яндекс.Такси. С 2014 года занимается DevOps и инфраструктурой в Контуре — разрабатывает инструменты, которые облегчают жизнь разработчиков из продуктовых команд. Идея писать и анализировать постмортемы появилась пять лет назад, и за это время постмортемы обросли шаблонами, глоссарием, памятками, скриншотами и аналитикой. Но не это самое сложное — труднее было преодолеть инертность, страхи и непонимание смысла отчетов об инцидентах среди инженеров. Что в итоге получилось и какую непоправимую пользу может нанести «диванная аналитика» — в расшифровке доклада Алексея.


      Обратите внимание — под ножки стола разной длины подложены книжки «Метрики», «Тесты» и «Деплой».
      Читать дальше →
    • Сказ о стажировке в маленькой компании или как мы с Контуром конкурировали [Часть I]

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

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

        Во второй части расскажу о том, как всё получилось на самом деле, какие выводы мы сделали и чему научились. Здесь продолжение статьи.
        Читать дальше →
        • +14
        • 11,4k
        • 4
      • Краткое руководство по выходу в opensource: кому это нужно, для чего и как

          На прошлой внутренней конференции разработчиков Контура я выступал с докладом. В моей презентации был слайд, на котором были перечислены известные российские ИТ-компании, разделенные на два столбца. Между компаниями в правом и левом столбцах было одно весомое различие.


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


          Отличие их состояло в том, что они активно распространяют свои технологии и знания — делятся с профессиональным сообществом открытым кодом и понятными мануалами, выступают на конференциях. Они осознанно вкладываются в развитие своих opensource-проектов. Технологии и описания многих из них лежат в открытом доступе на специально созданных сайтах tech.yandex.ru, opensource.mail.ru, techno.2gis.ru/opensource, и известны многим разработчикам за пределами компаний.


          Если вы вдруг решили заняться благотворительностью (почти) и сделать что-то подобное в своей компании, надеюсь, мой текст поможет ответить на вопросы: нужно ли это вам, сколько ресурсов потребуется и что в итоге получится. У нас вышел такой сайт: tech.skbkontur.ru.

          Читать дальше →
          • +17
          • 8,6k
          • 4
        • Песнь о могучем Деплое: безостановочное прозрачное развёртывание веб-сервиса

            Песнь о могучем Деплое

            Пролог


            Пришло время, когда нам — команде Эльбы — захотелось поделиться с миром подробностями некоторых магических и загадочных деталей нашего продукта. Решили начать с одного из самых сложных проектов, который является предметом особой гордости и лёгкого поклонения. Он покрыт налётом тайны и окутан ореолом тёмной магии. Легенды о нём передаются из уст в уста. Лишь малая часть знаний задокументирована в вики или ютреке, большая же — сокрыта в исходниках системы контроля версий. Премудрых старцев, умеющих расшифровать этот тайный код, в проекте всё меньше и меньше. Пришла пора записать все магические заклинания в подробном манускрипте. Речь пойдёт о системе развёртывания Эльбы — о могучем Деплое.
            Читать дальше →
          • Moira: Realtime Alerting


              Контур делает несколько десятков продуктов, каждый из которых состоит из нескольких десятков микросервисов, каждый из которых запущен на десятках серверов.

              Эта инфраструктура порождает метрики на всех технологических уровнях — нагрузка на железо, состояние ОС, метрики приложений. Исходные данные собираются в один большой кластер Graphite. Сейчас у нас есть миллион уникальных метрик, по которым суммарно генерируется 20 тысяч значений в секунду.

              Ясно, что за миллионом метрик не уследить глазами на телевизорах и дашбордах — нужна система отправки уведомлений о нештатных ситуациях. Перед тем как написать свою систему Moira, мы использовали для этой задачи Seyren.
              Читать дальше →
              • +18
              • 13,8k
              • 4
            • 11 порталов для выбора Иконок

                Коллекция ссылок больших порталов и поисковиков, для выбора всевозможных Иконок(Icons) разного типа. Практически на всех есть широкий выбор размеров.

                В этой коллекции я уверен что вы найдете что вам нужно ;)

                Ну интересное так точно!!!

                1. http://www.iconspedia.com
                Читать дальше →
              • Азбука хорошего разработчика. Книжки для чтения

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

                  Паттерны проектирования

                  Википедия — там, в принципе, на хорошем уровне все описано и приведены примеры на разных языках.
                  Базовая книга – классика:
                  «Приемы объектно-ориентированного проектирования. Паттерны проектирования» — читал книгу давно, и раза 3. Вам того же советую. Даст возможность понимать большое количество терминов, произносимых другими разработчиками.

                  Рефакторинг

                  «Рефакторинг. Улучшение существующего кода» — вероятно, эта книга сделала революцию в написании кода. Читается быстро и интересно. Методы рефакторинга должны отложиться в голове до конца жизни. Ваш код отныне будет лучше. В книге есть упоминание про юнит тестинг.
                  Читать дальше →
                • Основы языка программирования Python за 10 минут

                  • Перевод
                  Python Logo

                  На сайте Poromenos' Stuff была
                  опубликована статья, в которой, в сжатой форме,
                  рассказывают об основах языка Python. Я предлагаю вам перевод этой статьи. Перевод не дословный. Я постарался подробнее объяснить некоторые моменты, которые могут быть непонятны.

                  Если вы собрались изучать язык Python, но не можете найти подходящего руководства, то эта
                  статья вам очень пригодится! За короткое время, вы сможете познакомиться с
                  основами языка Python. Хотя эта статья часто опирается
                  на то, что вы уже имеете опыт программирования, но, я надеюсь, даже новичкам
                  этот материал будет полезен. Внимательно прочитайте каждый параграф. В связи с
                  сжатостью материала, некоторые темы рассмотрены поверхностно, но содержат весь
                  необходимый метриал.


                  Читать дальше →
                • Rich Internet Application и управление контентом

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

                    Читать дальше →
                  • Что такое «хорошее» ТЗ на сайт?

                      caricat.gifЯ могу припомнить на удивление мало материалов, посвященных проектированию сайтов и программ на русском языке, написанных русскоязычными авторами. Этому способствует и преимущественно экспортно-ориентированная разработка (оффшор) и отсутствие массового опыта создания информационных продуктов в нашей стране.
                      Надеюсь, что эта статья пригодится тем разработчикам и IT-менеджерам, кто ощутил перед собой проблему составления качественных документов на разработку сайта. Документов, которые кроме испорченной бумаги были бы хоть чем-то полезны.
                      Читать дальше →