• Ansible и ChatOps или как управлять 100+ серверами из чата

    • Перевод
    • Tutorial
    Обновлено: 21 февраля 2017

    Ansible и ChatOps при помощи StackStorm, Slack и Hubot

    Что такое ChatOps?


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

    Можно придумать такие вещи как деплой кода или развертывание серверов из чата, просмотр графиков мониторинга, отправку SMS, управление кластерами или просто запуск shell команд. ChatOps может быть высокоуровневым представлением вашей действительно сложной CI/CD системы, неся простоту с помощью команды в чате вроде: !deploy that thing. Такой подход делает чудеса для улучшения видимости и снижения сложности вокруг процесса развертываний.

    Читать дальше →
  • DevOps зоопарк или как 500px обслуживает более 500TB изображений

    От переводчика: Я выбрал эту статью для перевода, как яркий пример развивающегося западного стартапа с выраженными для этой группы признаками: очень много новых технологий, использование большого количества сторонних сервисов, эксперименты с архитектурой. В статье затронуты особо интересные темы связанные с построением платформы из микросервисов, DevOps и совсем мало освещенное на Хабре явление под названием ChatOps. Enjoy!


    О 500px


    500px — это онлайн сообщество, сформировавшееся вокруг фотографии. Миллионы пользователей со всего мира просматривают, делятся, продают и покупают самые красивые фотографии. Мы ценим дизайн, простоту кода и ответственность.
    Я DevOps. В 500px, работаю над платформой: бэкенд, мониторинг, управление конфигурацией, автоматизация и конечно же развертывание системы.
    Читать дальше →
  • .NET Framework скоро Open Source и на *nix


      Основное

      • Reference Source для .NET 4.6 перелицензируется под MIT;
      • В дальнейшем фреймворк будет с открытыми исходниками и поставляться по частям через NuGet, можно будет с приложением поставлять свою сборку, которая будет изолирована от всего остального;
      • Разработка переезжает на GitHub;
      • Скоро откроют исходники рантайма, включая RyuJit и сборшик мусора;
      • Для всего этого счастья планируется официальная поддержка никсов.





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

      • Tutorial
      "… Специально для вас, — ответил великий комбинатор. — Вы, я замечаю, все время терзаетесь муками творчества. Писать, конечно, очень трудно. Я, как старый передовик и ваш собрат по перу, могу это засвидетельствовать. Но я изобрел такую штуку, которая избавляет от необходимости ждать, покуда вас окатит потный вал вдохновения. Вот. Извольте посмотреть.

      И Остап протянул Ухудшанскому лист, на котором было написано:

      ТОРЖЕСТВЕННЫЙ КОМПЛЕКТ.
      НЕЗАМЕНИМОЕ ПОСОБИЕ ДЛЯ СОЧИНЕНИЯ ЮБИЛЕЙНЫХ СТАТЕЙ, ТАБЕЛЬНЫХ ФЕЛЬЕТОНОВ, А ТАКЖЕ ПАРАДНЫХ СТИХОТВОРЕНИЙ. ОД И ТРОПАРЕЙ"

      И. Ильф, Е. Петров, «Золотой теленок»


      Хабр — это все-таки больше СМИ, чем просто форум и тусовка «для своих». Это я к тому, что хочешь — не хочешь, а публикуя топик, ты, фактически, занимаешься журналистикой. На Хабре уже не раз упоминалась книга Александра Амзина по интернет-журналистике. Книга, на мой взгляд, удалась, и заслуживает почетного места в закладках у каждого. Тем не менее, одна ссылка хорошо, а много — лучше. Так как я не один год проработал бок о бок с журналистами, то и сам нахватался от них всякого. Под катом — джентльменский набор вкусных и полезных ссылок.
      Читать дальше →
    • Функторы, аппликативные функторы и монады в картинках

      • Перевод
      Вот некое простое значение:


      И мы знаем, как к нему можно применить функцию:


      Элементарно. Так что теперь усложним задание — пусть наше значение имеет контекст. Пока что вы можете думать о контексте просто как о ящике, куда можно положить значение:


      Теперь, когда вы примените функцию к этому значению, результаты вы будете получать разные — в зависимости от контекста. Это основная идея, на которой базируются функторы, аппликативные функторы, монады, стрелки и т.п. Тип данных Maybe определяет два связанных контекста:


      data Maybe a = Nothing | Just a
      

      Позже мы увидим разницу в поведении функции для Just a против Nothing. Но сначала поговорим о функторах!
      Читать дальше →
    • Foreman — менеджер процессов для ваших веб-приложений

      • Tutorial
      Все более популярной становится модель разработки веб-приложений, основанная на идее масштабирования с помощью процессов. Современное приложение представляет из себя набор выполняющихся процессов, не хранящих состояния, причем каждый изолирован друг от друга. Каждому такому процессу назначается свой локальный порт, что позволяет прозрачно экспортировать ваши сервисы для последующего их потребления кем-нибудь еще, возможно даже, что друг другом (например, один обслуживает http-запросы от пользователей, принимая url-адреса видео, а другой медленно, но верно, загружает их и конвертирует). Как правило, в большинстве случаев http-сервисы просто ставят за reverse proxy в nginx, но возможны варианты.

      Не секрет, что у каждого разработчика есть свой арсенал инструментов, позволяющий ему так или иначе сделать свою жизнь проще. Сегодня мы поговорим о таком инструменте, как Foreman. Используя его, вы можете объявить в одном месте все процессы, которые необходимы для запуска вашего приложения. Для этого используется так называемый Procfile, который выглядит как-то так:

      web:    mono ./awesome-app --port $PORT
      api:    node ./api.js -p $PORT
      worker: bundle exec rake resque:work QUEUE=*
      habr:   bundle exec ./bin/thin -a localhost -p $PORT

      Как видите, все довольно просто, в каждой строчке файла содержится по названию типа процесса и строка для его запуска.
      Так зачем оно нужно и что же там есть такого вкусного?
      • +37
      • 19,9k
      • 9
    • Как я перестал волноваться и стал отдавать метаданные restful API



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

        Поддержка такого ресурса (особенно в условиях, когда API активно развивается) — достаточно трудозатратное дело. При изменениях, приходится синхронизировать документацию с фактической реализацией и это напрягает. Синхронизация состоит из:
        • Проверки, что вся существующая функциональность описана в документации
        • Проверки, что всё описанное работает как заявлено в документации
        Читать дальше →
      • Учимся проектировать на основе предметной области (DDD: Domain Driven Design)

          1. Введение



          В данной статье я хотел бы рассказать об этих трёх буквах, постоянно находящихся на слуху, но для многих являющихся тайной за семью печатями, а так же привести ряд ресурсов, с которыми неплохо было бы познакомиться при желании продолжить развитие в проектировании на основе предметной области (DDD: Domain Driven Design).
          Читать дальше →
        • Что такое «асинхронная событийная модель», и почему сейчас она «в моде»

          Сейчас в тематических интернетах модно слово «Node.js». В этой небольшой статье мы попробуем понять («на пальцах»), откуда всё это взялось, и чем такая архитектура отличается от привычной нам архитектуры с «синхронным» и «блокирующим» вводом/выводом в коде приложения (обычный сайт на PHP + MySQL), запущенного на сервере приложений, работающем по схеме «по потоку (или процессу) на запрос» (классический Apache Web Server).
          Читать дальше →
        • Язык R в помощь хабра-статисту

          На написание данной статьи меня сподвиг следующий топик: В поисках идеального поста, или загадки хабра. Дело в том, что после ознакомления с языком R я крайне искоса смотрю на любые попытки, что-то посчитать в экселе. Но надо признать, что и с R я познакомился лишь неделю назад.

          Цель: Собрать средствами языка R данные с любимого HabraHabr'а и провести, собственно то, для чего и был создан язык R, а именно: статистический анализ.

          Итак, прочтя этот топик вы узнаете:
          • Как можно использовать R для извлечения данных из Web ресурсов
          • Как преобразовывать данные для последующего анализа
          • Какие ресурсы крайне рекомендуются к прочтению всем желающим познакомиться с R поближе


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

          Приступим!