ПОДДЕРЖКА RUBY ON RAILS ПРОЕКТОВ

Какой бывает поддержка? Кому и зачем она нужна?

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

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

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

Ruby on Rails использует agile-методологию разработки. Она представляет собой серию итераций (коротких программных циклов), реализация которых происходит благодаря взаимосвязи групп профильных специалистов.

Преимущество данной методологии заключается в минимизации рисков, так как по окончании каждой итерации готов гибкий программный продукт, после чего команда осуществляет переоценку приоритетов web-разработки.

Использование agile-методов предполагает создание технического задания и обсуждение рабочего продукта напрямую между заказчиком или его представителем и собственно командой разработчиков, тестировщиков, дизайнеров и прочих специалистов. Благодаря непосредственному общению объем документации сводится к минимуму.

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

Поскольку GIT – распределенная система, это означает отсутствие центрального сервера. Таким образом, все изменения хранятся в локальном хранилище с их дальнейшей синхронизацией при необходимости. Внося изменения локально, разработчики интернет-проектов не влияют на работу своих коллег и сохраняют при этом автономность.

Для быстрого развертывания приложений Ruby on Rails на сервере используют инструмент Capistrano. Удобен он тем, что разработан на Ruby, однако свободно совмещается и с другими языками программирования. 

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

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

Для упрощения настройки и обслуживания сервера, а также для экстренной откатки web-проекта в чрезвычайных ситуациях, используются такие системы управления конфигурациями как Ansible и Chef.

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

Процесс разработки приложений на Ruby on Rails предполагает еще одну очень интересную методологию - DevOps. Данное название образовано от слияния «development» и «operations», что предполагает объединение специалистов разработки и операционного персонала, которые зачастую работали в условиях конфронтации.

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

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

Цель DevOps - оперативный выпуск современных программных продуктов и сервисов на высоком уровне. 

Основные принципы DevOps:

  1. производительность всей системы в целом, а не отдельных служб;
  2. оперативная цикличная обратная связь, позволяющая быстро и постоянно вносить поправки;
  3. постоянное экспериментирование.

Использование DevOps невозможно, если в компании есть:

  1. длинные циклы релиза;
  2. противоречия между operations, development, testing процессами;
  3. ручное обновление конфигурации ПО;
  4. ручное документирование, тестирование;
  5. ручные релизы;
  6. отсутствие понимания процессов;
  7. разделенные команды.

Пока применение DevOps наиболее распространено в сфере развертывания приложений или выпуска релиза. Однако сегодня на этапах проектирования и оценки активно вовлекается в процесс разработки сайта бизнес-заказчик. Это является предпосылкой того, что в будущем данная методология скорее всего получит свое развитие, как это произошло с agile-концепцией, которая оставила службу поддержки без внимания. 

Особенное внимание в Ruby on Rails уделяется круглосуточному мониторингу. Он осуществляется с помощью средств Zabbix и New relic, которые позволяют избегать таких ситуаций как: переполнение места на диске, поломка вышедшего из строя raid-массива и т.п. 

Стоит обратить внимание на ресурс Zabbix, который отличается своими средствами визуализации и оповещениями. Например, можно настроить условия-триггеры, которые будут включаться при авариях и тем самым уведомлять специалистов о поломке. Можно настроить оповещения по sms или по e-mail в случае отсутствия администратора на рабочем месте. Система способна строить графики изменений по различным параметрам, которые в дальнейшем можно включить в итоговые отчеты.

Немаловажным моментом техподдержки является ежедневное резервирование данных в определенный час (в основном, ночью) с гарантированной глубиной хранения, то есть определенным временем хранения данных. Таким образом, вся необходимая информация не будет потеряна.

Наша студия web-разработки “RubyRuby” грамотно использует вышеперечисленные инструменты, с помощью которых реализуются интересные проекты и решения. Помимо создания сайтов на Ruby on Rails наши специалисты помогут вам с разработкой технического задания и дальнейшей технической поддержкой, так как мы максимально ориентированы на каждого клиента.

Напишите нам

Мы постараемся ответить в самый кратчайший срок!

Наши контакты

  • ООО «Айтимо» г. Воронеж
    ОГРН 1133668055080
  • (473) 229-51-56
  • info@rubyruby.ru
  • www.rubyruby.ru

Оставьте заявку

Ваша заявка принята! Необходимо заполнить адрес почты и имя!