«Chef и Аnsible в инфраструктуре 2ГИС» — Артём Силенков, 2ГИС

835 views

Published on

— Интернет-проект, проблемы роста и развития: ITIL + DevOps.
— Уровни управления серверной инфраструктурой — bootstrap, configuration, deploy.
— Cистемы управления серверной инфраструктурой на примере Chef и Ansible, плюсы и минусы.
— Обратная связь от приложений, Graylog2.
— Как мы деплоим наш геокластер — примеры рецептов Chef и Ansible playbooks.
— Существующие проблемы и планы на будущее.

В своём выступлении я расскажу, как мы развёртываем API 2ГИС и 2ГИС-Онлайн на серверы в Новосибирске, Москве и Амстердаме.

Особый интерес представляет API 2ГИС, так как этот продукт является довольно сложным приложением, с более чем двумя десятками компонентов и приложений: Nginx, Yii, С++, Python, Lua, PostgreSQL, Redis, Node.js и прочее.

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
835
On SlideShare
0
From Embeds
0
Number of Embeds
136
Actions
Shares
0
Downloads
6
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

«Chef и Аnsible в инфраструктуре 2ГИС» — Артём Силенков, 2ГИС

  1. 1. Chef и Ansible в инфраструктуре 2ГИС
  2. 2. О чём речь • Проблемы роста и развития • Уровни управления инфраструктурой • Chef и Ansible • Graylog 2 — как инструмент обратной связи • Деплой геокластера • Проблемы и планы на будущее 2
  3. 3. Что имеем • Новосибирск, Москва, Дронтен • 20 серверов на каждый ДЦ • 300 человек + 4 администратора • 30 млн. пользователей • 1 500 rps на фронтенд в каждый ДЦ 3
  4. 4. ITIL vs DevOps
  5. 5. Было, 2010 • 2 сервера • 10 человек • Мало кода 5
  6. 6. Стало, 2013 • 50 серверов • геокластер • 300 человек 6
  7. 7. Задачи
  8. 8. 1. Однородность среды
  9. 9. 2. Очень частые релизы
  10. 10. 3. Много разного железа
  11. 11. 4. Сплиттесты
  12. 12. 5. Документация
  13. 13. Серверная инфраструктура • Разработка • Тестирование • Staging • Production 13
  14. 14. Bootstrap → Configuration → Deploy
  15. 15. Эволюция 1. Обновление руками 2. Простые скрипты 3. Приложения для деплоя 4. Приложения для приложений для деплоя 15
  16. 16. 16
  17. 17. 17
  18. 18. Плюсы • Конфигурация как код • Cookbooks (playbook) — сразу и документация • Простота, понятность, могущество • Целостное видение инфраструктуры • Единая среда development, test и production 18
  19. 19. Минусы • Надо аккуратно писать рецепты • Агенты, демоны, предварительная настройка • PULL / PUSH • Дирижёр для дирижёра 19
  20. 20. Graylog 2 — дополняет Chef • Информация о состоянии системы • Всё в одном месте от всех компонентов • Поиск, индексация, агрегация и графики 20
  21. 21. 21
  22. 22. packages = value_for_platform( ["redhat", "centos", "scientific", "amazon", "oracle"] => { "default" => %w(ruby-devel curl-devel) }, ["ubuntu", "debian"] => { "default" => %w(ruby-dev libcurl4-gnutls-dev) } ) packages.each do |devpkg| package devpkg end gem_package 'rake' gem_package 'passenger' do action :install version node["nginx"]["passenger"]["version"] gem_binary node["nginx"]["passenger"]["gem_binary"] if node["nginx"]["passenger"]["gem_binary"] end 01. 02. 03. 04. 05. 06. 07. 08. 09. 10. 11. 12. 13. 14. 15. 22
  23. 23. - hosts: suppall tasks: - name: installing librabbitmq0 apt: pkg=librabbitmq0 state=installed force=yes - name: installing php5-amqp apt: pkg=php5-amqp state=installed force=yes - name: restarting php service: name=php5-fpm state=restarted 23
  24. 24. Проблемы
  25. 25. Геораспределенность • Задержки и неполадки сети • Временные зоны • Отказоустойчивость геозоны 25
  26. 26. Chef • Усложняется с каждым релизом • Демоны и контроль их состояния 26
  27. 27. Будущее • Деплоим приложение, а не инфраструктуру (Heroku) • Private Clouds, автобалансировка нагрузки, сервер сценариев • Одна кнопка и всё работает • Облака всё 27
  28. 28. Спасибо!
  29. 29. Вопросы?

×