Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

DevOps или исскуство ухода за Интернет-проектом

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

Жизнь есть жизнь, и она наполнена рисками - пренебрежение
эксплуатацией может оставить вас без бизнеса. Совсем.

http://devconf.ru/offers/81

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

  • Login to see the comments

DevOps или исскуство ухода за Интернет-проектом

  1. 1. DevOps или искусствоухода за Интернет-проектамиТитов Александр, Express 42
  2. 2. О себе• Оверсан-Скалакси• Qik/Skype/Microsoft
  3. 3. Экспресс 42
  4. 4. О чем доклад• Что такое DevOps• Мой опыт в DevOps
  5. 5. DevOps?
  6. 6. DevOps как решениепроблемы• баги• отказы• простои при выкатке• редкие и болезненные релизы
  7. 7. Корень проблемы -потеря информации
  8. 8. Примеры из жизни• не выкатились, потому что не знали• система отказала, потому что кто-топромолчал• не смогли договориться
  9. 9. DevOps это• автоматизация и инструментыавтоматизации• управление изменениями черезизмерения• новая инженерная культура• распространение знаний между всемиучастниками команды
  10. 10. Автоматизация?• инструменты для сохраненияинформации• критерий эффективного использования -больше порядка в системе• сохранение информации о системе -bash скрипты, хранение конфигов в git• сохранение информации об изменении всистеме - Opscode Chef
  11. 11. 2D vs 3D
  12. 12. Как инструментыпомогаютDev Test ProdКонтекст Контекст’ Контекст’’Одинаковые образы ОС (cobbler)Контекст изменения в ChefИзменение
  13. 13. Пример
  14. 14. Модель “Экспресс 42”applicationservice (nginx, pgsql,etc)base(ОС, бэкапы, базовый мониторинг)OpsOpsDevOps
  15. 15. Примерpostgresql "main" dodatabag node["zabbix-server"]["database"]["databag"]cluster_create_options "locale" => "ru_RU.UTF-8"configuration(:version => "9.1",:connection => {:listen_addresses => listen_address,:max_connections => 300},:resources => {:shared_buffers => "8MB",:maintenance_work_mem => "128MB",:work_mem => "8MB"},:queries => { :effective_cache_size => "3GB" },:wal => { :checkpoint_completion_target => "0.9" },:logging => { :log_min_duration_statement => "1000" },:archiving => {:archive_mode => "on",:archive_command => "exit 0"},:standby => { :hot_standby => "on" })hba_configuration([ { :type => "host", :database => "all", :user => "all", :address => node["zabbix-server"]["database"]["network"], :method => "md5" } ])end
  16. 16. Примерphp_pool "zabbix-runtime" doaddress "127.0.0.1"port "9200"allow "127.0.0.1"backlog -1limits :core => 0, :files => 1024, :requests => 500, :children => 5, :spare_children => { :min => 1, :max => 3 }php_var register_globals => true,short_open_tag => true,display_errors => false,max_execution_time => 600,error_reporting => E_ALL & ~E_DEPRECATED,date.timezone => UTC,error_log => /var/log/zabbix-php-error.log,memory_limit => 128M,post_max_size => 32M,max_input_time => 300action :addend
  17. 17. Изменения черезизмеренияDev Test ProdКонтекст Контекст’ Контекст’’ИзменениеМониторинг
  18. 18. Изменения черезизмеренияzabbix_connect "connect to monitoring.name.net zabbix" doapiurl "http://monitoring.name.net/api_jsonrpc.php"databag "zabbix"endzabbix_host node.fqdn dohost_group node["storage"]["monitoring"]["host_group"]use_ip trueip_address ip_monendzabbix_template Linux_Template
  19. 19. Изменения черезизмеренияzabbix_application "#{mpoint} filesystem" doitem "vfs.fs.size[#{mpoint},free]" dotype :activename "Free disk space on #{mpoint}"frequency 600enditem "vfs.fs.size[#{mpoint},total]" dotype :activename "Total disk space on #{mpoint}"frequency 6000end# Free space triggers{20 => :warning, 10 => :average, 5 => :high}.each do |percent, sev|trigger "Free space on #{mpoint}, #{percent}%" doexpression "{#{node.fqdn}:vfs.fs.size[#{mpoint},pfree].last(0)}<#{percent}"severity sevendendtrigger "Free space on #{mpoint}, 0%" doexpression "{#{node.fqdn}:vfs.fs.size[#{mpoint},pfree].last(0)}=0"severity :disasterendend
  20. 20. Изменения черезизмерения• логирование• сбор эксепшенов• визуализация статистики
  21. 21. Культура• Честность• Открытость• ИскренностьМеньше потерь информации!
  22. 22. Как применять?• победить дискомфорт• на своем примере
  23. 23. Коммуникации• Скайп• Разговоры• Работа в группе• Пицца, пиво, Джармуш
  24. 24. Спрашивайте!
  25. 25. twitter: @osminogрассылка: http://groups.google.com/group/devopsrumeetup: http://www.meetup.com/DevOps-Moscow-in-Russian

×