«Масштабируемый devops» Александр Колесень
DESCRIPTION
Типичные подходы к развертыванию приложений: как правильные, так и неправильные, но повсеместно применяемые. Как сделать так, чтобы развертывание не стало проблемой с линейным ростом количества поддерживаемых окружений. Методы обновления проекта с нулевым временем простоя: когда это уместно и принципиально возможно.TRANSCRIPT
![Page 1: «Масштабируемый DevOps» Александр Колесень](https://reader034.vdocuments.mx/reader034/viewer/2022052600/557ef8a8d8b42af44a8b47e3/html5/thumbnails/1.jpg)
МАСШТАБИРУЕМЫЙ DEVOPS
АЛЕКСАНДР КОЛЕСЕНЬ
![Page 2: «Масштабируемый DevOps» Александр Колесень](https://reader034.vdocuments.mx/reader034/viewer/2022052600/557ef8a8d8b42af44a8b47e3/html5/thumbnails/2.jpg)
О СЕБЕ
• shop.by- System Engineer- FreeBSD, Linux, Apache, nginx, C, C++, perl, MySQL
• Wargaming.net- Web DevOps- Linux, Apache, nginx, AMQP/RabbitMQ, Python, Django,
MySQL, memcached, lxc, puppet, fabric• SiliconMint, Iron.io
- DevOps, System Engineer- Linux, Python, Ruby, RoR, Go, MongoDB, MySQL, Redis,
memcached, AMQP/RabbitMQ, AWS, lxc, chef, fabric,Capistrano
![Page 3: «Масштабируемый DevOps» Александр Колесень](https://reader034.vdocuments.mx/reader034/viewer/2022052600/557ef8a8d8b42af44a8b47e3/html5/thumbnails/3.jpg)
![Page 4: «Масштабируемый DevOps» Александр Колесень](https://reader034.vdocuments.mx/reader034/viewer/2022052600/557ef8a8d8b42af44a8b47e3/html5/thumbnails/4.jpg)
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
• FreeBSD vs. Ubuntu vs. CentOS vs. Debian vs. ...• apache vs. uwsgi vs. tornado vs. ...• MySQL vs. PgSQL vs. CouchBase vs. MongoDB vs. ...
![Page 5: «Масштабируемый DevOps» Александр Колесень](https://reader034.vdocuments.mx/reader034/viewer/2022052600/557ef8a8d8b42af44a8b47e3/html5/thumbnails/5.jpg)
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
• FreeBSD vs. Ubuntu vs. CentOS vs. Debian vs. ...
• apache vs. uwsgi vs. tornado vs. ...• MySQL vs. PgSQL vs. CouchBase vs. MongoDB vs. ...
![Page 6: «Масштабируемый DevOps» Александр Колесень](https://reader034.vdocuments.mx/reader034/viewer/2022052600/557ef8a8d8b42af44a8b47e3/html5/thumbnails/6.jpg)
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
• FreeBSD vs. Ubuntu vs. CentOS vs. Debian vs. ...• apache vs. uwsgi vs. tornado vs. ...
• MySQL vs. PgSQL vs. CouchBase vs. MongoDB vs. ...
![Page 7: «Масштабируемый DevOps» Александр Колесень](https://reader034.vdocuments.mx/reader034/viewer/2022052600/557ef8a8d8b42af44a8b47e3/html5/thumbnails/7.jpg)
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
• FreeBSD vs. Ubuntu vs. CentOS vs. Debian vs. ...• apache vs. uwsgi vs. tornado vs. ...• MySQL vs. PgSQL vs. CouchBase vs. MongoDB vs. ...
![Page 8: «Масштабируемый DevOps» Александр Колесень](https://reader034.vdocuments.mx/reader034/viewer/2022052600/557ef8a8d8b42af44a8b47e3/html5/thumbnails/8.jpg)
ПЕРВЫЕ ШАГИ
# make# cp libproject.so /var/www/
или$ scp -r site host:/tmp/# cp -R /tmp/site /var/www/
# apachectl restart...# killall -9 httpd# apachectl start
![Page 9: «Масштабируемый DevOps» Александр Колесень](https://reader034.vdocuments.mx/reader034/viewer/2022052600/557ef8a8d8b42af44a8b47e3/html5/thumbnails/9.jpg)
VCS UP?!
# apachectl stop# svn up / git pull# apachectl start
# svn / git log..."Last fix on #456""Still fixing #456""One more commit on #456""Fixed bug #456"
![Page 10: «Масштабируемый DevOps» Александр Колесень](https://reader034.vdocuments.mx/reader034/viewer/2022052600/557ef8a8d8b42af44a8b47e3/html5/thumbnails/10.jpg)
VCS UP?!
# apachectl stop# svn up / git pull# apachectl start
# svn / git log..."Last fix on #456""Still fixing #456""One more commit on #456""Fixed bug #456"
![Page 11: «Масштабируемый DevOps» Александр Колесень](https://reader034.vdocuments.mx/reader034/viewer/2022052600/557ef8a8d8b42af44a8b47e3/html5/thumbnails/11.jpg)
ФАЗЫ ДЕПЛОЙМЕНТА
• подготовка окружения- основная работа выполняется единоразово- инкрементальные обновления (конфиги, софт и т.п.)
• деплоймент- полностью каждый раз при обновлении
![Page 12: «Масштабируемый DevOps» Александр Колесень](https://reader034.vdocuments.mx/reader034/viewer/2022052600/557ef8a8d8b42af44a8b47e3/html5/thumbnails/12.jpg)
ФАЗЫ ДЕПЛОЙМЕНТА
• подготовка окружения- основная работа выполняется единоразово- инкрементальные обновления (конфиги, софт и т.п.)
• деплоймент- полностью каждый раз при обновлении
![Page 13: «Масштабируемый DevOps» Александр Колесень](https://reader034.vdocuments.mx/reader034/viewer/2022052600/557ef8a8d8b42af44a8b47e3/html5/thumbnails/13.jpg)
ОКРУЖЕНИЕ
• смотрим на продакшн• руками :( ставим такие же пакеты• пакета нет - ./configure && make && make install :(• (может быть) записываем действия в .sh-скрипт
Итог:• Ubuntu, CentOS etc. превращается в “Slackware”• много чего забывается• конфигурация скорей всего будет различаться
![Page 14: «Масштабируемый DevOps» Александр Колесень](https://reader034.vdocuments.mx/reader034/viewer/2022052600/557ef8a8d8b42af44a8b47e3/html5/thumbnails/14.jpg)
ОКРУЖЕНИЕ
• смотрим на продакшн
• руками :( ставим такие же пакеты• пакета нет - ./configure && make && make install :(• (может быть) записываем действия в .sh-скрипт
Итог:• Ubuntu, CentOS etc. превращается в “Slackware”• много чего забывается• конфигурация скорей всего будет различаться
![Page 15: «Масштабируемый DevOps» Александр Колесень](https://reader034.vdocuments.mx/reader034/viewer/2022052600/557ef8a8d8b42af44a8b47e3/html5/thumbnails/15.jpg)
ОКРУЖЕНИЕ
• смотрим на продакшн• руками :( ставим такие же пакеты
• пакета нет - ./configure && make && make install :(• (может быть) записываем действия в .sh-скрипт
Итог:• Ubuntu, CentOS etc. превращается в “Slackware”• много чего забывается• конфигурация скорей всего будет различаться
![Page 16: «Масштабируемый DevOps» Александр Колесень](https://reader034.vdocuments.mx/reader034/viewer/2022052600/557ef8a8d8b42af44a8b47e3/html5/thumbnails/16.jpg)
ОКРУЖЕНИЕ
• смотрим на продакшн• руками :( ставим такие же пакеты• пакета нет - ./configure && make && make install :(
• (может быть) записываем действия в .sh-скрипт
Итог:• Ubuntu, CentOS etc. превращается в “Slackware”• много чего забывается• конфигурация скорей всего будет различаться
![Page 17: «Масштабируемый DevOps» Александр Колесень](https://reader034.vdocuments.mx/reader034/viewer/2022052600/557ef8a8d8b42af44a8b47e3/html5/thumbnails/17.jpg)
ОКРУЖЕНИЕ
• смотрим на продакшн• руками :( ставим такие же пакеты• пакета нет - ./configure && make && make install :(• (может быть) записываем действия в .sh-скрипт
Итог:• Ubuntu, CentOS etc. превращается в “Slackware”• много чего забывается• конфигурация скорей всего будет различаться
![Page 18: «Масштабируемый DevOps» Александр Колесень](https://reader034.vdocuments.mx/reader034/viewer/2022052600/557ef8a8d8b42af44a8b47e3/html5/thumbnails/18.jpg)
ОКРУЖЕНИЕ
• смотрим на продакшн• руками :( ставим такие же пакеты• пакета нет - ./configure && make && make install :(• (может быть) записываем действия в .sh-скрипт
Итог:• Ubuntu, CentOS etc. превращается в “Slackware”
• много чего забывается• конфигурация скорей всего будет различаться
![Page 19: «Масштабируемый DevOps» Александр Колесень](https://reader034.vdocuments.mx/reader034/viewer/2022052600/557ef8a8d8b42af44a8b47e3/html5/thumbnails/19.jpg)
ОКРУЖЕНИЕ
• смотрим на продакшн• руками :( ставим такие же пакеты• пакета нет - ./configure && make && make install :(• (может быть) записываем действия в .sh-скрипт
Итог:• Ubuntu, CentOS etc. превращается в “Slackware”• много чего забывается
• конфигурация скорей всего будет различаться
![Page 20: «Масштабируемый DevOps» Александр Колесень](https://reader034.vdocuments.mx/reader034/viewer/2022052600/557ef8a8d8b42af44a8b47e3/html5/thumbnails/20.jpg)
ОКРУЖЕНИЕ
• смотрим на продакшн• руками :( ставим такие же пакеты• пакета нет - ./configure && make && make install :(• (может быть) записываем действия в .sh-скрипт
Итог:• Ubuntu, CentOS etc. превращается в “Slackware”• много чего забывается• конфигурация скорей всего будет различаться
![Page 21: «Масштабируемый DevOps» Александр Колесень](https://reader034.vdocuments.mx/reader034/viewer/2022052600/557ef8a8d8b42af44a8b47e3/html5/thumbnails/21.jpg)
ОКРУЖЕНИЕ: АВТОМАТИЗАЦИЯ
Декларативная конфигурацияВажно, ЧТО будет в итоге, а не КАК это будет выполнено
![Page 22: «Масштабируемый DevOps» Александр Колесень](https://reader034.vdocuments.mx/reader034/viewer/2022052600/557ef8a8d8b42af44a8b47e3/html5/thumbnails/22.jpg)
ОКРУЖЕНИЕ: АВТОМАТИЗАЦИЯ
Chef, puppet
cron "mycrontab" dominute "0"hour "0,12"user "www-rest"command "cd /home/#{app_config[:user]}/app/src/worker
&& . ../../bin/activate&& python db_validator.py../../conf/app.json"
mailto "#{app_config[:email]}"end
![Page 23: «Масштабируемый DevOps» Александр Колесень](https://reader034.vdocuments.mx/reader034/viewer/2022052600/557ef8a8d8b42af44a8b47e3/html5/thumbnails/23.jpg)
ОКРУЖЕНИЕ: АВТОМАТИЗАЦИЯ
Запуск
$ knife ssh ’name:api.myservice.com’ ’sudo chef-client’
Не важно, как, но запись оказывается в crontab:
$ crontab -l# Chef Name: [email protected] 0,12 * * * cd /home/www-rest/app/src/worker
&& . ../../bin/activate&& python db_validator.py ../../conf/app.json
![Page 24: «Масштабируемый DevOps» Александр Колесень](https://reader034.vdocuments.mx/reader034/viewer/2022052600/557ef8a8d8b42af44a8b47e3/html5/thumbnails/24.jpg)
ДЕПЛОЙМЕНТ: АВТОМАТИЗАЦИЯ
Императивный процесс
1. закачиваем и распаковываем исходники2. закрываем доступ к серверу3. останавливаем сервер4. обновляем исходный код5. накатываем миграции6. перезапускам фоновые рабочие задачи7. запускаем сервер8. тестируем9. открываем доступ к серверу
![Page 25: «Масштабируемый DevOps» Александр Колесень](https://reader034.vdocuments.mx/reader034/viewer/2022052600/557ef8a8d8b42af44a8b47e3/html5/thumbnails/25.jpg)
ДЕПЛОЙМЕНТ: АВТОМАТИЗАЦИЯ
Fabric, capistrano
def upload():rsync_project("app/src",
"rest worker install tools",exclude = ["*.pyc"],delete=True)
def restart():run("nohup %s/app/src/tools/worerks.sh restart -n8" %
homedir())run("sudo /etc/init.d/apache2 graceful")
def deploy():upload()restart()
![Page 26: «Масштабируемый DevOps» Александр Колесень](https://reader034.vdocuments.mx/reader034/viewer/2022052600/557ef8a8d8b42af44a8b47e3/html5/thumbnails/26.jpg)
ДЕПЛОЙМЕНТ: АВТОМАТИЗАЦИЯ
Запуск
$ fab deploy -H api.myservice.com -u www-rest
Результат
1. rsync проекта на api.myservice.com2. перезапуск сервисов
![Page 27: «Масштабируемый DevOps» Александр Колесень](https://reader034.vdocuments.mx/reader034/viewer/2022052600/557ef8a8d8b42af44a8b47e3/html5/thumbnails/27.jpg)
БЕСШОВНОЕ ОБНОВЛЕНИЕ
Это хорошо!
• если обновляются только css/js - нет смысла выключать• если обновляется код - отключаем бэкенды “по очереди”• если обновляется база (миграции) - ReadOnly-режим• иначе показываем “картинку”: “Мы обновляемся”
![Page 28: «Масштабируемый DevOps» Александр Колесень](https://reader034.vdocuments.mx/reader034/viewer/2022052600/557ef8a8d8b42af44a8b47e3/html5/thumbnails/28.jpg)
БЕСШОВНОЕ ОБНОВЛЕНИЕ
Это хорошо!
• если обновляются только css/js - нет смысла выключать
• если обновляется код - отключаем бэкенды “по очереди”• если обновляется база (миграции) - ReadOnly-режим• иначе показываем “картинку”: “Мы обновляемся”
![Page 29: «Масштабируемый DevOps» Александр Колесень](https://reader034.vdocuments.mx/reader034/viewer/2022052600/557ef8a8d8b42af44a8b47e3/html5/thumbnails/29.jpg)
БЕСШОВНОЕ ОБНОВЛЕНИЕ
Это хорошо!
• если обновляются только css/js - нет смысла выключать• если обновляется код - отключаем бэкенды “по очереди”
• если обновляется база (миграции) - ReadOnly-режим• иначе показываем “картинку”: “Мы обновляемся”
![Page 30: «Масштабируемый DevOps» Александр Колесень](https://reader034.vdocuments.mx/reader034/viewer/2022052600/557ef8a8d8b42af44a8b47e3/html5/thumbnails/30.jpg)
БЕСШОВНОЕ ОБНОВЛЕНИЕ
Это хорошо!
• если обновляются только css/js - нет смысла выключать• если обновляется код - отключаем бэкенды “по очереди”• если обновляется база (миграции) - ReadOnly-режим
• иначе показываем “картинку”: “Мы обновляемся”
![Page 31: «Масштабируемый DevOps» Александр Колесень](https://reader034.vdocuments.mx/reader034/viewer/2022052600/557ef8a8d8b42af44a8b47e3/html5/thumbnails/31.jpg)
БЕСШОВНОЕ ОБНОВЛЕНИЕ
Это хорошо!
• если обновляются только css/js - нет смысла выключать• если обновляется код - отключаем бэкенды “по очереди”• если обновляется база (миграции) - ReadOnly-режим• иначе показываем “картинку”: “Мы обновляемся”
![Page 32: «Масштабируемый DevOps» Александр Колесень](https://reader034.vdocuments.mx/reader034/viewer/2022052600/557ef8a8d8b42af44a8b47e3/html5/thumbnails/32.jpg)
БЕСШОВНОЕ ОБНОВЛЕНИЕ
Nginx, maintenance mode
map $remote_addr $under_construction {default under_construction.jpg;193.232.92.23 .;
}
location / {try_files $under_construction @backend;
}
location @backend {proxy_pass http://<upstream>;
}
![Page 33: «Масштабируемый DevOps» Александр Колесень](https://reader034.vdocuments.mx/reader034/viewer/2022052600/557ef8a8d8b42af44a8b47e3/html5/thumbnails/33.jpg)
СТЕЙДЖИНГ
Пре-продакшн
• как можно более близкий по конфигурации к продакшну• но без фанатизма• вечный дефицит железа для стейджингов• поэтому виртуальные окружения: lxc, kvm, xen - OK• если мы на AWS/EC2, Rackspace - не нужно железа, OK
![Page 34: «Масштабируемый DevOps» Александр Колесень](https://reader034.vdocuments.mx/reader034/viewer/2022052600/557ef8a8d8b42af44a8b47e3/html5/thumbnails/34.jpg)
СТЕЙДЖИНГ
Пре-продакшн
• как можно более близкий по конфигурации к продакшну
• но без фанатизма• вечный дефицит железа для стейджингов• поэтому виртуальные окружения: lxc, kvm, xen - OK• если мы на AWS/EC2, Rackspace - не нужно железа, OK
![Page 35: «Масштабируемый DevOps» Александр Колесень](https://reader034.vdocuments.mx/reader034/viewer/2022052600/557ef8a8d8b42af44a8b47e3/html5/thumbnails/35.jpg)
СТЕЙДЖИНГ
Пре-продакшн
• как можно более близкий по конфигурации к продакшну• но без фанатизма
• вечный дефицит железа для стейджингов• поэтому виртуальные окружения: lxc, kvm, xen - OK• если мы на AWS/EC2, Rackspace - не нужно железа, OK
![Page 36: «Масштабируемый DevOps» Александр Колесень](https://reader034.vdocuments.mx/reader034/viewer/2022052600/557ef8a8d8b42af44a8b47e3/html5/thumbnails/36.jpg)
СТЕЙДЖИНГ
Пре-продакшн
• как можно более близкий по конфигурации к продакшну• но без фанатизма• вечный дефицит железа для стейджингов
• поэтому виртуальные окружения: lxc, kvm, xen - OK• если мы на AWS/EC2, Rackspace - не нужно железа, OK
![Page 37: «Масштабируемый DevOps» Александр Колесень](https://reader034.vdocuments.mx/reader034/viewer/2022052600/557ef8a8d8b42af44a8b47e3/html5/thumbnails/37.jpg)
СТЕЙДЖИНГ
Пре-продакшн
• как можно более близкий по конфигурации к продакшну• но без фанатизма• вечный дефицит железа для стейджингов• поэтому виртуальные окружения: lxc, kvm, xen - OK
• если мы на AWS/EC2, Rackspace - не нужно железа, OK
![Page 38: «Масштабируемый DevOps» Александр Колесень](https://reader034.vdocuments.mx/reader034/viewer/2022052600/557ef8a8d8b42af44a8b47e3/html5/thumbnails/38.jpg)
СТЕЙДЖИНГ
Пре-продакшн
• как можно более близкий по конфигурации к продакшну• но без фанатизма• вечный дефицит железа для стейджингов• поэтому виртуальные окружения: lxc, kvm, xen - OK• если мы на AWS/EC2, Rackspace - не нужно железа, OK
![Page 39: «Масштабируемый DevOps» Александр Колесень](https://reader034.vdocuments.mx/reader034/viewer/2022052600/557ef8a8d8b42af44a8b47e3/html5/thumbnails/39.jpg)
ТЮРЬМА
• приложение работает от “restricted” пользователя• максимум - пару sudo на graceful-перезапуск Web-сервера• приложение не навредит системе• ни другим приложениям• пользователь (разработчик) тоже• можно разрешать деплоить самому разработчику• root-только для диагностики, в крайних случаях• все остальное - chef, puppet
![Page 40: «Масштабируемый DevOps» Александр Колесень](https://reader034.vdocuments.mx/reader034/viewer/2022052600/557ef8a8d8b42af44a8b47e3/html5/thumbnails/40.jpg)
ТЮРЬМА
• приложение работает от “restricted” пользователя
• максимум - пару sudo на graceful-перезапуск Web-сервера• приложение не навредит системе• ни другим приложениям• пользователь (разработчик) тоже• можно разрешать деплоить самому разработчику• root-только для диагностики, в крайних случаях• все остальное - chef, puppet
![Page 41: «Масштабируемый DevOps» Александр Колесень](https://reader034.vdocuments.mx/reader034/viewer/2022052600/557ef8a8d8b42af44a8b47e3/html5/thumbnails/41.jpg)
ТЮРЬМА
• приложение работает от “restricted” пользователя• максимум - пару sudo на graceful-перезапуск Web-сервера
• приложение не навредит системе• ни другим приложениям• пользователь (разработчик) тоже• можно разрешать деплоить самому разработчику• root-только для диагностики, в крайних случаях• все остальное - chef, puppet
![Page 42: «Масштабируемый DevOps» Александр Колесень](https://reader034.vdocuments.mx/reader034/viewer/2022052600/557ef8a8d8b42af44a8b47e3/html5/thumbnails/42.jpg)
ТЮРЬМА
• приложение работает от “restricted” пользователя• максимум - пару sudo на graceful-перезапуск Web-сервера• приложение не навредит системе
• ни другим приложениям• пользователь (разработчик) тоже• можно разрешать деплоить самому разработчику• root-только для диагностики, в крайних случаях• все остальное - chef, puppet
![Page 43: «Масштабируемый DevOps» Александр Колесень](https://reader034.vdocuments.mx/reader034/viewer/2022052600/557ef8a8d8b42af44a8b47e3/html5/thumbnails/43.jpg)
ТЮРЬМА
• приложение работает от “restricted” пользователя• максимум - пару sudo на graceful-перезапуск Web-сервера• приложение не навредит системе• ни другим приложениям
• пользователь (разработчик) тоже• можно разрешать деплоить самому разработчику• root-только для диагностики, в крайних случаях• все остальное - chef, puppet
![Page 44: «Масштабируемый DevOps» Александр Колесень](https://reader034.vdocuments.mx/reader034/viewer/2022052600/557ef8a8d8b42af44a8b47e3/html5/thumbnails/44.jpg)
ТЮРЬМА
• приложение работает от “restricted” пользователя• максимум - пару sudo на graceful-перезапуск Web-сервера• приложение не навредит системе• ни другим приложениям• пользователь (разработчик) тоже
• можно разрешать деплоить самому разработчику• root-только для диагностики, в крайних случаях• все остальное - chef, puppet
![Page 45: «Масштабируемый DevOps» Александр Колесень](https://reader034.vdocuments.mx/reader034/viewer/2022052600/557ef8a8d8b42af44a8b47e3/html5/thumbnails/45.jpg)
ТЮРЬМА
• приложение работает от “restricted” пользователя• максимум - пару sudo на graceful-перезапуск Web-сервера• приложение не навредит системе• ни другим приложениям• пользователь (разработчик) тоже• можно разрешать деплоить самому разработчику
• root-только для диагностики, в крайних случаях• все остальное - chef, puppet
![Page 46: «Масштабируемый DevOps» Александр Колесень](https://reader034.vdocuments.mx/reader034/viewer/2022052600/557ef8a8d8b42af44a8b47e3/html5/thumbnails/46.jpg)
ТЮРЬМА
• приложение работает от “restricted” пользователя• максимум - пару sudo на graceful-перезапуск Web-сервера• приложение не навредит системе• ни другим приложениям• пользователь (разработчик) тоже• можно разрешать деплоить самому разработчику• root-только для диагностики, в крайних случаях
• все остальное - chef, puppet
![Page 47: «Масштабируемый DevOps» Александр Колесень](https://reader034.vdocuments.mx/reader034/viewer/2022052600/557ef8a8d8b42af44a8b47e3/html5/thumbnails/47.jpg)
ТЮРЬМА
• приложение работает от “restricted” пользователя• максимум - пару sudo на graceful-перезапуск Web-сервера• приложение не навредит системе• ни другим приложениям• пользователь (разработчик) тоже• можно разрешать деплоить самому разработчику• root-только для диагностики, в крайних случаях• все остальное - chef, puppet
![Page 48: «Масштабируемый DevOps» Александр Колесень](https://reader034.vdocuments.mx/reader034/viewer/2022052600/557ef8a8d8b42af44a8b47e3/html5/thumbnails/48.jpg)
SSH-КЛЮЧИ
• private & public-части• private - ТОЛЬКО у вас• НЕЛЬЗЯ раздавать по скайпу, почте, на флешке• public - на сервере, в authorized_keys• если кому-то нужен доступ - добавляем в authorized_keys• с помощью chef/puppet
![Page 49: «Масштабируемый DevOps» Александр Колесень](https://reader034.vdocuments.mx/reader034/viewer/2022052600/557ef8a8d8b42af44a8b47e3/html5/thumbnails/49.jpg)
SSH-КЛЮЧИ
• private & public-части
• private - ТОЛЬКО у вас• НЕЛЬЗЯ раздавать по скайпу, почте, на флешке• public - на сервере, в authorized_keys• если кому-то нужен доступ - добавляем в authorized_keys• с помощью chef/puppet
![Page 50: «Масштабируемый DevOps» Александр Колесень](https://reader034.vdocuments.mx/reader034/viewer/2022052600/557ef8a8d8b42af44a8b47e3/html5/thumbnails/50.jpg)
SSH-КЛЮЧИ
• private & public-части• private - ТОЛЬКО у вас
• НЕЛЬЗЯ раздавать по скайпу, почте, на флешке• public - на сервере, в authorized_keys• если кому-то нужен доступ - добавляем в authorized_keys• с помощью chef/puppet
![Page 51: «Масштабируемый DevOps» Александр Колесень](https://reader034.vdocuments.mx/reader034/viewer/2022052600/557ef8a8d8b42af44a8b47e3/html5/thumbnails/51.jpg)
SSH-КЛЮЧИ
• private & public-части• private - ТОЛЬКО у вас• НЕЛЬЗЯ раздавать по скайпу, почте, на флешке
• public - на сервере, в authorized_keys• если кому-то нужен доступ - добавляем в authorized_keys• с помощью chef/puppet
![Page 52: «Масштабируемый DevOps» Александр Колесень](https://reader034.vdocuments.mx/reader034/viewer/2022052600/557ef8a8d8b42af44a8b47e3/html5/thumbnails/52.jpg)
SSH-КЛЮЧИ
• private & public-части• private - ТОЛЬКО у вас• НЕЛЬЗЯ раздавать по скайпу, почте, на флешке• public - на сервере, в authorized_keys
• если кому-то нужен доступ - добавляем в authorized_keys• с помощью chef/puppet
![Page 53: «Масштабируемый DevOps» Александр Колесень](https://reader034.vdocuments.mx/reader034/viewer/2022052600/557ef8a8d8b42af44a8b47e3/html5/thumbnails/53.jpg)
SSH-КЛЮЧИ
• private & public-части• private - ТОЛЬКО у вас• НЕЛЬЗЯ раздавать по скайпу, почте, на флешке• public - на сервере, в authorized_keys• если кому-то нужен доступ - добавляем в authorized_keys
• с помощью chef/puppet
![Page 54: «Масштабируемый DevOps» Александр Колесень](https://reader034.vdocuments.mx/reader034/viewer/2022052600/557ef8a8d8b42af44a8b47e3/html5/thumbnails/54.jpg)
SSH-КЛЮЧИ
• private & public-части• private - ТОЛЬКО у вас• НЕЛЬЗЯ раздавать по скайпу, почте, на флешке• public - на сервере, в authorized_keys• если кому-то нужен доступ - добавляем в authorized_keys• с помощью chef/puppet
![Page 55: «Масштабируемый DevOps» Александр Колесень](https://reader034.vdocuments.mx/reader034/viewer/2022052600/557ef8a8d8b42af44a8b47e3/html5/thumbnails/55.jpg)
CONTINIOUS INTEGRATION
Как web frontend к скриптам деплоймента
• деплоймент “по кнопке”• деплоймент “по коммиту”• деплоймент “по крону”, раз в час/два/день
![Page 56: «Масштабируемый DevOps» Александр Колесень](https://reader034.vdocuments.mx/reader034/viewer/2022052600/557ef8a8d8b42af44a8b47e3/html5/thumbnails/56.jpg)
CONTINIOUS INTEGRATION
Как web frontend к скриптам деплоймента
• деплоймент “по кнопке”
• деплоймент “по коммиту”• деплоймент “по крону”, раз в час/два/день
![Page 57: «Масштабируемый DevOps» Александр Колесень](https://reader034.vdocuments.mx/reader034/viewer/2022052600/557ef8a8d8b42af44a8b47e3/html5/thumbnails/57.jpg)
CONTINIOUS INTEGRATION
Как web frontend к скриптам деплоймента
• деплоймент “по кнопке”• деплоймент “по коммиту”
• деплоймент “по крону”, раз в час/два/день
![Page 58: «Масштабируемый DevOps» Александр Колесень](https://reader034.vdocuments.mx/reader034/viewer/2022052600/557ef8a8d8b42af44a8b47e3/html5/thumbnails/58.jpg)
CONTINIOUS INTEGRATION
Как web frontend к скриптам деплоймента
• деплоймент “по кнопке”• деплоймент “по коммиту”• деплоймент “по крону”, раз в час/два/день
![Page 59: «Масштабируемый DevOps» Александр Колесень](https://reader034.vdocuments.mx/reader034/viewer/2022052600/557ef8a8d8b42af44a8b47e3/html5/thumbnails/59.jpg)
ИТОГО
• использовать проверенный софт• автоматизировать подготовку окружения• автоматизировать деплоймент приложения• сделать обновление максимально “беcшовным”• деплоить на стейджингах, потом - в продакшне• ограничивать себя в правах• дать пользователям кнопку “сделать хорошо”
![Page 60: «Масштабируемый DevOps» Александр Колесень](https://reader034.vdocuments.mx/reader034/viewer/2022052600/557ef8a8d8b42af44a8b47e3/html5/thumbnails/60.jpg)
СПАСИБО ЗА ВНИМАНИЕ. ВОПРОСЫ
Александр Колесеньmailto:[email protected]://twitter.com/imm0usehttps://plus.google.com/107935551373006842102/