6. Problem №3 - Developers
“When I see ... developers – all I see is risk”
Chuck Rossi, Facebook
7. Plan
● Processes
– Deployment cycle
– Working with many teams
● Tools
– Chef for automatic configuration
– Continuous integration
– Monitoring
– Backups
– Team communication
8. Opscode Chef
● Full control over server configuration
● Continuous delivery
● Access control
● Making testing simplier
● Controlling what and when is monitored
● Configuration as application vs documentation
9. Why Chef?
● Facebook, Amazon
● Ruby vs XML
● Simple start
● Not expensive and reliable hosted server
● Historically it was a decision against Puppet
(no holy wars!)
vs
12. Single rules for server naming
ansam@vostok:~$ knife sshx projectx-live-node
Multiple instances found!
1. i-cca165f0 since 2013-08-06 10:11:16 UTC ip 54.253.26.66
2. i-6ca71550 since 2013-08-07 19:06:05 UTC ip 54.253.66.83
3. i-6ea71552 since 2013-08-07 19:06:05 UTC ip 54.253.44.185
4. i-6fa71553 since 2013-08-07 19:06:05 UTC ip 54.252.44.245
Choose <1-4>: [1] 2
Instance i-6ca71550 ip 54.253.66.83
Connecting to 54.253.66.83 as user ubuntu on port 22
проект среда роль
23. Sandbox
● DNS via Route53
● Can make demo to client
● Deployed from к github repo/branch
● New job in Jenkins for deployment – easily
redeployed
● EC2 instance
● Almost complete copy of live project
31. ● Take all records from access.log from all servers of ProjectX
● Include records with User-Agent = “Apache*” and URL like /aaaa/bbb-123.html
● Calculate avg time of such requests for the last 7 days
24 часа в день и 7 дней в неделю мы помогаем поддерживать онлайн бизнесы рабочими и приносящими деньги их владельцам
95% автоматизации серверов
Сейчас мы можем сконфигурировать сервер в нескольких строках кода
Плагин для быстрого подключения к серверам по имени
Jenkins также позволил нам управлять доступами к деплойменту для разных команд/проектов
В результате такого процесса мы стали получать все больше и больше задач “пожалуйста, выложите изменения по SA-332”, а потом “ой, ошибка, пожалуйста, откатите изменения”
Инженер поддержки не может проверить все, соответственно ошибка если и будет допущена то неважно, кто ее выложит – поддержка или разработка
Selenium-based Jenkins-job that is periodically making test purchase from sites, measuring time and sending results to Splunk
Splunk “умеет” отслеживать транзакции: полные и неполные, время транзакции