Giter Club home page Giter Club logo

infrafirst's Introduction

Задание №6 (инфраструктура веб-приложений) в ШРИ 2016, Яндекс.

Build Status bitHound Overall Score

Посмотреть в действии: ссылка.

Установка

npm install

Тесты

npm run lint # ESLint
npm test     # Mocha тесты

Запуск

npm start

Описание работы

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

console.time('Render /');
res.render( ... );
console.timeEnd('Render /');

Инфраструктура

При появлении в репозитории на GitHub коммитов и pull request, начинается сборка коммита/PR на Travis-CI. Трэвис запускает команды "npm run lint" (запускает линтер ESLint) и "npm run test" (unit-тесты Mocha). По окончании сборки на почту приходит уведомление о её результате. Если обновление произошло в ветке master, после успешной сборки в Travis, изменения разворачиваются на хостинг (Heroku).

Проверки CI и BitHound для Pull request

Pull Request checks

Travis-CI

Довольно удобный (и первый для меня) Continious Integration сервис. Без особых проблем настроил отправку уведомлений на email, деплой на heroku, и исполняемые при сборке скрипты через .travis.yml.

В шапку Readme добавлен бейдж "build".

Heroku

Бесплатный хостинг, поддерживающий различные платформы и инструменты. Удобно работать с GitHub на nodejs. Сначала использовался Automatic Deploy с ожиданием прохождения тестов CI, но потом функцию отправки на деплой с heroku я переложил на Travis.

Логи

Heroku logs

Можно посмотреть по пути More -> View logs. Именно сюда выводятся логи, которые пишет само приложение. Кроме них, пишутся и логи самого heroku, содержащие информацию о состоянии приложения и запросах к нему (id запроса, метод, адрес, адрес хоста, время соединения, статус ответа приложения, количество переданной информации).

BitHound

Облачный линтер. Настроен мной так, чтобы приложение проверялось при каждом новом коммите. Показывает:

  • количество зависимостей (dependencies и devDependencies), указывает на неиспользуемые
  • качество кода
  • использованные "хаки" (комментарии //TODO: и //HACK)
  • общий балл (0 .. 100)

В шапку Readme добавлен бейдж BitHound.

Uptime Robot

Uptime Robot

Позволяет установить одновременно несколько мониторов, проверяющих состояние разных характеристик приложения:

  • ответ http(s)
  • наличие ключевого слова в ответе
  • ping
  • ответ определённого порта

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.