Successfully reported this slideshow.
Your SlideShare is downloading. ×

язык программирования Go в жизни системного администратора

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Язык программирования Go
в жизни
системного администратора
Даниил Подольский,
руководитель технической службы
Git in Sky
Немного о себе и о нас
Компания Git in Sky
● управление чужой инфраструктурой
● иногда - большой инфраструктурой
● работа ...
Наши задачи:
● быстро взять под контроль 10-50 машин
● оформить пожелания заказчика в виде инструкций
для конфигурационных...

YouTube videos are no longer supported on SlideShare

View original on YouTube

Loading in …3
×

Check these out next

1 of 22 Ad

язык программирования Go в жизни системного администратора

Download to read offline

1. Вступление, или “что это за хрен с горы”
1.1. Кто мы такие и при чем тут языки программирования
1.2. На чем мы программировани раньше
1.3. Почему мы обратили внимание на язык Go
1.4. Почему не бросили эту затею через неделю
2. Основная часть, или что, как и почему мы делаем именно на Go
2.1. Автоматизация
2.1.1. Мы все автоматизируем ansible
2.1.2. Но даже и тут есть что поделать на именно Go
2.2. Сбор информации неизвестно с чего неизвестно где
2.2.1. Скомпилил, отправил, получил отчет, почитал, профит
2.3. Простые нагруженные сервисы
2.3.1. svg proxy, преобразование данных на лету
2.3.2. сбор статистики, telnet to statsd
2.3.3. HAProxy proxy for Windows
2.3.4. StatsDaemon, patch для OpenTSDB
2.3.5. nginx2statsd
2.4. Сервисы доступа к СУБД
2.4.1. Файловая система DjarvurFS
2.4.2. Ну и вся прочая мелочь
2.5. Нагрузочное тестирование
2.5.1. Проблема нагрузочного тестирования: создать большую нагрузку при ограниченных ресурсах
2.5.2. И хорошо бы минимизировать влияние средства тестирования на результаты тестов
2.6. Сложные сервисы нашей разработки
2.6.1. VNC over Web
2.6.2. Система управления виртуальными машинами
2.6.2.1. Вы слышали про SmartOS?
2.6.3. Pingpongo
2.6.4. Rtbkit не нужен
3. Заключение, или “нет у революции конца”.
3.1. Полгода использования
3.1.1. Что нам нравится
3.1.2. Что нам не нравится
3.1.3. Что мы планируем сделать на Go в ближайшее время
3.1.4. Чего мы не будем делать на Go никогда
3.2. Вопросы?

1. Вступление, или “что это за хрен с горы”
1.1. Кто мы такие и при чем тут языки программирования
1.2. На чем мы программировани раньше
1.3. Почему мы обратили внимание на язык Go
1.4. Почему не бросили эту затею через неделю
2. Основная часть, или что, как и почему мы делаем именно на Go
2.1. Автоматизация
2.1.1. Мы все автоматизируем ansible
2.1.2. Но даже и тут есть что поделать на именно Go
2.2. Сбор информации неизвестно с чего неизвестно где
2.2.1. Скомпилил, отправил, получил отчет, почитал, профит
2.3. Простые нагруженные сервисы
2.3.1. svg proxy, преобразование данных на лету
2.3.2. сбор статистики, telnet to statsd
2.3.3. HAProxy proxy for Windows
2.3.4. StatsDaemon, patch для OpenTSDB
2.3.5. nginx2statsd
2.4. Сервисы доступа к СУБД
2.4.1. Файловая система DjarvurFS
2.4.2. Ну и вся прочая мелочь
2.5. Нагрузочное тестирование
2.5.1. Проблема нагрузочного тестирования: создать большую нагрузку при ограниченных ресурсах
2.5.2. И хорошо бы минимизировать влияние средства тестирования на результаты тестов
2.6. Сложные сервисы нашей разработки
2.6.1. VNC over Web
2.6.2. Система управления виртуальными машинами
2.6.2.1. Вы слышали про SmartOS?
2.6.3. Pingpongo
2.6.4. Rtbkit не нужен
3. Заключение, или “нет у революции конца”.
3.1. Полгода использования
3.1.1. Что нам нравится
3.1.2. Что нам не нравится
3.1.3. Что мы планируем сделать на Go в ближайшее время
3.1.4. Чего мы не будем делать на Go никогда
3.2. Вопросы?

Advertisement
Advertisement

More Related Content

Recently uploaded (20)

Advertisement

язык программирования Go в жизни системного администратора

  1. 1. Язык программирования Go в жизни системного администратора Даниил Подольский, руководитель технической службы Git in Sky
  2. 2. Немного о себе и о нас Компания Git in Sky ● управление чужой инфраструктурой ● иногда - большой инфраструктурой ● работа со сложными клиентами и задачами - например, 50 настроенных вручную Gentoo, не обновлявшихся пару лет
  3. 3. Наши задачи: ● быстро взять под контроль 10-50 машин ● оформить пожелания заказчика в виде инструкций для конфигурационных роботов ● Решить для заказчика нестандартные проблемы - например, собрать преконфигуренный дистрибутив с инсталлятором
  4. 4. Средства, которыми мы пользуемся: ● Ansible ● Docker ● KVM на linux ● KVM на SmartOS ● ну и всякое самописное
  5. 5. Языки, которыми мы пользовались: C * Lua * ObjectiveC C++ * Java * JavaScript Perl * Groovy * Asm 8086 * Python Scala PHP Bash *
  6. 6. Как мы выбирали Go Мы попробовали несколько новых языков: ● erlang ● Котлин ● Nim ● До Rust дело не дошло Мы пробовали их параллельно, силами нескольких инженеров
  7. 7. Как мы выбрали Go Мы просто получили на Go работающий проект быстрее, чем на других языках. Уже потом выяснилось что: ● достаточно полный toolset ● работающая cross-компиляция ● хороший runtime ● прекрасная стандартная библиотека
  8. 8. Оновная часть: особенности Go и как мы их используем Примеров кода не будет! ● Они плохо смотрятся на экране ● Не весь упомянутый код опубликован ● Доклад не про код, а про возможности
  9. 9. особенности Go: быстрая компиляция ● Как сделать что-нибудь заковыристое на удаленной машине? ● А если это Windows? ● Или SmartOS? ● Благодяря быстрой компиляции Go можно использовать как скриптовый язык. Ну - почти можно.
  10. 10. особенности Go: Cross-компиляция Как собрать с удаленной машины неизвестной конфигурации информацию? ● Скомпилил ● отправил ● получил отчет ● почитал ● ... ● профит
  11. 11. особенности Go: хороший шедулер для IO удобная стандартная библиотека ● простой потоковый преобразователь данных - svg proxy, 68 строк ● сервис сбора статистики с aerospike по telnet и отправка ее в statsd, 334 строки ● TCP proxy for Windows, 215 строк ● StatsDaemon для OpenTSDB, 81 строка патча ● nginx2statsd, UDP syslog collector, 180 строк
  12. 12. особенности Go: хорошие СУБД драйвера ● DjarvurFS как прокси к NoSQL кластеру ● aerospike proxy для perl
  13. 13. особенности Go: компиляция в нативный код низкие накладные расходы ● Stress-test пяти almost-the-same- functionality shared-nothing-cluster no sql субд ● Нагрузочное тестирование всего по сложным алгоритмам - замена yandex tank
  14. 14. особенности Go: реальная кросплатформенность ● Система управления виртуальными машинами - linux и solaris ● агент сбора статистики ● Pingpongo - ping-тестер с отправкой статистики в statsd
  15. 15. особенности Go: просто удобный язык :) ● VNC-go-Web, websoсkify proxy с авторизацией на куках. ● RTBgit - замена RTBkit без переусложнения
  16. 16. полгода использования Go: что нам нравится ● Кроскомпиляция и кросплатформенность ● self-contained исполняемые файлы ● приемлемая - мягко говоря - скорость
  17. 17. полгода использования Go: что еще нам нравится ● Полезные и производительные проекты в количестве ● плавная кривая вхождения, жесткий синтаксис A Tour of Go The Go Playground ● квалифицированное сообщество
  18. 18. полгода использования Go: что нам НЕ нравится ● Exceptions - их нет ● Polymorphism - его нет, но это не очевидно ● жесткий синтаксис
  19. 19. полгода использования Go: что мы будем делать на нем ● мелкие утилиты для админской работы ● TCP, UDP, HTTP сервера и клиенты ● Сайты ● высоконагруженные сетевые проекты
  20. 20. полгода использования Go: что мы НЕ будем делать на нем ● Вычислительные задачи - шедулер по IO ● Embeded приложения - исполнимый файл великоват
  21. 21. Вопросы?

×