2. Стажировка-2015
1. Все, что не разрешено, запрещено
2. Данные пользователей строго
разделены
3. Только root имеет доступ везде
4. Для некоторых приложений
автоматически создается пользователь ОС
(postgres, tomcat)
5. Все, что сделано root, принадлежит root
Linux
4. Стажировка-2015
1. Защищенное соединение
2. Доступ к консоли удаленного
компьютера для выполнения команд
3. Возможность копирования файлов
(scp)
4. Возможность авторизоваться по
ключам (RSA и др.) и не сообщать всем
пароль
SSH
6. Стажировка-2015
1. Production (он же «боевой») – там, где
развернуто приложение для реальных
пользователей
2. Staging (он же «демонстрационный») – там,
где развернута версия для демонстрации
свежих разработок
3. Test (тестовый) – используется для ручного и
автоматизированного тестирования, их может
быть несколько
Сервера
8. Стажировка-2015
1. Ветка master для production, у нас пока
его нет
2. Ветка develop для staging
3. На тестовых серверах могут
разворачиваться любые ветки
Читаем: http://habrahabr.ru/post/106912/
Git
9. Стажировка-2015
1. Все приложения у tomcat7 лежат в папке
/var/lib/tomcat7/webapps
2. Там лежит файл *.war и каталог с тем же
именем, при удалении/замене war-файла
приложение
удаляется/переразворачивается. Это
первый способ развертывания – просто
копируем war-файл поверх.
Deployment
10. Стажировка-2015
3. Второй способ развертывания – загрузка war-
файла через web-консоль администратора. По
умолчанию она здесь:
http://localhost:8080/manager/html
4. Все содержимое папки приложения
ПЕРЕПИСЫВАЕТСЯ при развертывании! Все
файлы, загруженные пользователями, надо
хранить в другом месте.
Deployment
11. Стажировка-2015
5. Третий способ развертывания – maven из
консоли. Выбираем его.
6. Для каждого окружения свой build profile и
свои *.properties
7. Выносим ВСЕ пароли из pom-файла, все
храним в ~/.m2/settings.xml локально на
компьютерах разработчиков
Deployment
12. Стажировка-2015
8. Пушим в git только шаблоны
*.properties. Все пароли от БД, tomcat и так
далее – только локально на компьютерах
разработчиков.
9. На серверах не разворачиваем web-
консоль – это источник уязвимости.
Deployment
14. Стажировка-2015
1. Позволяет использовать несколько
развернутых приложений на одном
сервере. Настраиваем server_name.
2. Позволяет закрыть доступ браузерам и
поисковым роботам при помощи basic
auth. Нам надо закрыть хорошим паролем.
nginx
15. Стажировка-2015
3. Позволяет отдавать файлы картинок, стилей,
скриптов, шрифтов минуя приложение.
Настраиваем location с alias.
4. Выдерживает много соединений с
пользователями за счет очереди и асинхронной
работы с сетью и дисками.
5. Может писать логи доступа. Настраиваем
access_log и error_log.
nginx
17. Стажировка-2015
1. В вики проекта есть полная инструкция,
позволяющая с нуля поднять проект как
локально, так и на сервере. Для новичков!
2. Инструкция включает в том числе работу с
файлами свойств и пароли от БД и tomcat на
серверах.
3. Инструкция НЕ включает пароль root от
сервера.
Инструкции
18. Стажировка-2015
Во время разработки инструкция лучше,
чем скрипт развертывания, так как
позволяет учесть различия в ОС а также
использовать ручные настройки.
Автоматическое развертывание на
серверах – это совсем другая история.
Инструкции
19. Стажировка-2015
1. Пытаемся решить проблему сами ~30 минут.
2. Если не нашли, спрашиваем 2-3 товарищей
из своей и другой команды.
3. Если не помогли, спрашиваем специалиста
компании.
Не тянем с вопросами по полдня и дольше!
Борьба с тупняками