Надежный деплой Rails приложений
Надежный деплой Rails приложений
Уверенная настройка серверов и надежный деплой приложений
О книге
Овладейте навыком деплоя Rails-приложений
Эта книга расскажет вам о том, как:
- Настроить VPS с нуля
- Автоматизировать настройку серверов и запускать их за считанные минуты
- Использовать Capistrano для надежного деплоя
- Автоматизировать скучные задачи по обслуживанию
Если у вас есть приложения на Heroku, которые обходятся вам в целое состояние, эта книга обеспечит вас инструментами для миграции ваших приложений на VPS.
Если вы уже размещаете ваше приложение на VPS, но процесс деплоя кажется вам неудовлетворительным - иногда приложение не перезапускается или загружается неверная версия кода - эта книга обеспечит вас шаблонами, с помощью которых вы сможете сделать процесс более надежным.
Я потратил сотни часов, читая посты в блогах, документацию и настраивая файлы конфигурации. Это привело меня к моменту, когда деплой на VPS стал таким же простым, - на самом деле, даже проще - как деплой на Heroku. Если вы хотите научиться тому же самому, эта книга сэкономит вам огромное количество времени.
Часть 1: Chef
Как автоматизировать установку и настройку новых серверов при помощи chef. К концу этой части вы будете способны настроить и запустить сервер в считанные минуты.
Многие стандартные системные конфигурации Rails будут работать "из коробки" с использованием кода из примеров, описанных в книге (MySQL, Postgres, Mongo, Redis). Для всего остального предоставлены детальные инструкции по созданию и настройке ваших собственных конфигураций.
Цель этой части в том, чтобы создать повторно используемый макет, который вы сможете использовать каждый раз, когда потребуется настроить новый VPS. Она также включает короткий раздел "VPS за пять минут" для нетерпеливых.
Часть 2: Capistrano 3
Использование Capistrano 3 для автоматизации каждого аспекта деплоя, от обновления кода до управления ассетами и менеджерами фоновых задач.
Особое внимание уделено настройке деплоя с нулевым временем простоя ("zero downtime deployment") - это очень важно, если вы постоянно вносите изменения и хотите деплоить несколько раз в день.
Эта часть включает раздел, посвященный типичным ошибкам, таким, как неудачная перезагрузка gemfile во время деплоя, а так же детальное руководство по решению проблемы в случае её возникновения.
Она так же включает детальные примеры кода и полные инструкции для деплоя Sidekiq, настройки виртуальных хостов Nginx и SSL. Наконец, во второй части рассматривается настройка автоматических бэкапов и использование Vagrant для тестирования.
Книга постоянно обновляется с учетом значительных изменений, внесенных в Capistrano, Chef и другие компоненты системы.
Любые отзывы о содержимом, структуре или сообщения об ошибках и опечатках принимаются с благодарностью, вы можете найти меня в twitter (@forever_frey) или отправить письмо на leanpub@frey.su (twitter и почта принадлежат автору перевода на русский язык).
Для связи с автором оригинала книги вы можете найти его в twitter (@talkingquickly) или отправить письмо по адресу ben@talkingquickly.co.uk.
Содержание
-
1.0 - Введение
- Цель этой книги
- Обо мне
- Почему эта книга существует
- Целевая аудитория
- Что нужно знать и уметь
- Как читать эту книгу
- Структура первой части - Настройка сервера
- Структура второй части - Деплой на сервер
- Версия
-
2.0 - Набор технологий
- Обзор
- Ubuntu 14.04 LTS
- Nginx
- Unicorn
- Postgresql / MongoDB / MySQL
- Ruby (rbenv)
- Redis
- Memcached
- Почему именно этот набор технологий
- Адаптация к вашему стеку
-
3.0 - Термины Chef
- Введение
- Автоматизация
- Инструменты для автоматической установки и настройки
-
4.0 Быстрый старт
- Обзор
- Набор технологий
- Шаги
- Настройка сервера
- Следующие шаги
-
5.0 - Анатомия проекта chef solo
- Обзор
- Создание проекта
- Настройка ноды
- Заключение
-
5.1 - Создание кукбука для Chef
- Обзор
- Генерируем Кукбук
- Структура кукбука
- Устанавливаем Redis вручную
- Конвертируем команды в простой кукбук Chef
- Добавляем рецепт в определение ноды
- Применяем обновленное определение ноды
- Является ли этот кукбук “плохим” или “неправильным”
- Ограничения простого кукбука
- Улучшаем наш кукбук по-шефски
- Обновление ноды
- Используем атрибуты для большей гибкости
- Заключение
-
5.2 - Определения ролей и нод
- Обзор
- Иерархия атрибутов
- Определение нод
- Определения ролей
- Разделяем систему на роли
- Ограничения ролей
-
6.0 - Шаблон для Rails серверов
- Обзор
- Пример конфигурации
-
6.1 - Управление кукбуками с использованием Berkshelf
- Обзор
- Как Berkshelf работает с knife solo
- Начало работы
-
7.0 - Базовая настройка сервера
- Обзор
- Полезные инструменты
- Автоматические обновления
- Автоматическое системное время через NTP
- Языковые пакеты
-
8.0 - Безопасность
- Обзор
- Волшебной таблетки не существует
- Распространенные ошибки
- Ужесточение доступа по SSH
- Файрвол
- Пользователи
- Sudo
-
9.0 - Ruby и зависимости гемов
- Обзор
- Rbenv против RVM
- Как работает rbenv
- Кукбук rbenv
- Зависимости гемов
-
10.0 - Monit
- Где должны располагаться разные настройки конфигурации
- Почему важно иметь собственную конфигурацию мониторинга
- Мониторинг на системном уровне
- Мониторинг Pid-файлов
- Мониторинг портов
- Мониторинг свободного места
- Оповещения и избегание завалов
- Обслуживание веб-интерфейса с помощью Nginx
-
11.0 - Nginx
- Обзор
- Почему Nginx
- Кукбук
- Виртуальные хосты
- Мониторинг
-
12 - PostgreSQL
- Обзор
- Установка
- Доступ к консоли psql
- Создание баз данных
- Добавление пользователей к базам данных
- Отображение всех баз данных и прав
- Настройка аутентификации
- Открытие доступа извне
- Управление pg_hba.conf при помощи chef
- Импорт и экспорт баз данных
- Monit
-
13 - MySQL
- Обзор
- Установка
- Создание баз данных
- Настройка аутентификации
- Импорт и экспорт баз данных
- Monit
- Администрирование сервера
-
14 - Mongo
- Обзор
- Кукбук
- Мониторинг
-
15.0 - Redis и Memcached
- Redis
- Memcached
- Заключение
-
16.0 Деплой при помощи Capistrano: быстрый старт
- Обзор
- Capistrano
- Шаги
- Копирование конфигурации на сервер назначения
- Заключение
-
16.1 Деплой при помощи Capistrano
- Обзор
- Capistrano 2 или 3
- Стейджи
- Обновление с версии 2
- Добавление Capistrano в приложение
- Установка
- Capistrano 3 - это Rake
- Capfile
- Типовая конфигурация
- Запуск тестов
- Хуки
- Настройка стейджей
- Генерация удаленных файлов конфигурации
- Данные доступа к базе данных
- Деплой
- Заключение
-
16.2 Написание кастомных задач Capistrano
- Обзор
- Структура файла
- Задача
- Замечание о неймспейсах
-
17.0 - Настройка Unicorn и Zero Downtime Deployment
- Обзор
- Unicorn и процесс обработки запроса
- Базовая конфигурация
- Сигналы Unix
- Скрипт запуска Unicorn
- Zero Downtime Deployment
- Перезагрузка Gemfile
- Процесс решения проблем для Zero Downtime Deployment
-
18.0 Виртуальные хосты и SSL в Nginx
- Обзор
- Базовый виртуальный хост
- Обзор DNS
- Принудительный HTTPS
- Добавление SSL
- Построение цепочки SSL сертификатов
- Обновление SSL сертификатов
-
19.0 - Sidekiq
- Обзор
- Sidekiq версии 3
- Интеграция с Capistrano
-
20.0 Бэкапы
- Обзор
- Структура
- Приступаем
- Запуск создания бэкапов с помощью Whenever
- Заключение
Другие книги этих авторов
60-дневная гарантия 100% удовлетворения от Leanpub
В течение 60 дней после покупки вы можете получить 100% возврат средств за любую покупку на Leanpub всего в два клика.
Технически это рискованно для нас, поскольку файлы книги или курса останутся у вас в любом случае. Но мы настолько уверены в наших продуктах и услугах, а также в наших авторах и читателях, что с радостью предлагаем полную гарантию возврата денег за всё, что мы продаем.
Узнать, насколько что-то хорошо, можно только попробовав, а благодаря нашей 100% гарантии возврата денег это можно сделать без всякого риска!
Так что нет причин не нажать кнопку "Добавить в корзину", не так ли?
Ознакомьтесь с полными условиями...
Получайте $8 с покупки за $10 и $16 с покупки за $20
Мы выплачиваем 80% роялти за покупки от $7.99 и выше, и 80% роялти минус фиксированную комиссию 50 центов за покупки в диапазоне от $0.99 до $7.98. Вы зарабатываете $8 с продажи за $10 и $16 с продажи за $20. Таким образом, если мы продадим 5000 невозвращенных копий вашей книги по $20, вы заработаете $80,000.
(Да, некоторые авторы уже заработали намного больше этого на Leanpub.)
Фактически, авторы заработалиболее $14 миллионов, создавая, публикуя и продавая на Leanpub.
Узнайте больше о писательстве на Leanpub
Бесплатные обновления. Без DRM.
Если вы покупаете книгу на Leanpub, вы получаете бесплатные обновления, пока автор обновляет книгу! Многие авторы используют Leanpub для публикации своих книг в процессе написания. Все читатели получают бесплатные обновления, независимо от того, когда они купили книгу и сколько заплатили (включая бесплатные книги).
Большинство книг Leanpub доступны в форматах PDF (для компьютеров) и EPUB (для телефонов, планшетов и Kindle). Форматы, в которых доступна книга, показаны в правом верхнем углу этой страницы.
Наконец, книги Leanpub не имеют никакой бессмысленной DRM-защиты, поэтому вы можете легко читать их на любом поддерживаемом устройстве.
Узнайте больше о форматах электронных книг Leanpub и где их читать