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.

My talk on DevOps :) at Stachka 2017

471 views

Published on

My talk on DevOps :) at Stachka 2017

Published in: Technology
  • Be the first to comment

My talk on DevOps :) at Stachka 2017

  1. 1. Постправда в пост-девопс мире (Les hurlements de Sacha) Александр Чистяков Git in Sky
  2. 2. Несколько слов о себе Александр Чистяков, Git in Sky Постправда в пост-девопс мире 2 / 75 • Главный инженер в Git in Sky • Преподаватель в avalon.ru • Researcher @ ISST Lab, ITMO • Координатор встреч DevOps-инженеров в Петербурге • Пишу код
  3. 3. О чем это доклад? Александр Чистяков, Git in Sky Постправда в пост-девопс мире 3 / 75 • Я отвечу в самом конце
  4. 4. Что такое «DevOps»? Александр Чистяков, Git in Sky Постправда в пост-девопс мире 4 / 75 • Отличный вопрос для собеседования!
  5. 5. Что такое «DevOps»? Александр Чистяков, Git in Sky Постправда в пост-девопс мире 5 / 75 • Отличный вопрос для собеседования! • Термин из прошлого десятилетия
  6. 6. Что такое «DevOps»? Александр Чистяков, Git in Sky Постправда в пост-девопс мире 6 / 75 • Отличный вопрос для собеседования! • Термин из прошлого десятилетия • Набор практик
  7. 7. Что такое «DevOps»? Александр Чистяков, Git in Sky Постправда в пост-девопс мире 7 / 75 • Отличный вопрос для собеседования! • Термин из прошлого десятилетия • Набор практик • CAMS
  8. 8. CAMS Александр Чистяков, Git in Sky Постправда в пост-девопс мире 8 / 75 C - Culture Раз-раз и высший класс!
  9. 9. CAMS Александр Чистяков, Git in Sky Постправда в пост-девопс мире 9 / 75 A - Automation Humans need not apply
  10. 10. CAMS Александр Чистяков, Git in Sky Постправда в пост-девопс мире 10 / 75 M - Measurement Запомните этот прибор!
  11. 11. CAMS Александр Чистяков, Git in Sky Постправда в пост-девопс мире 11 / 75 S - Sharing Information must be free!
  12. 12. CAMS(R) Александр Чистяков, Git in Sky Постправда в пост-девопс мире 12 / 75 R - Repeatability (плачет в углу) https://www.opennet.ru/opennews/art.shtml?num=46338
  13. 13. Repeatability Александр Чистяков, Git in Sky Постправда в пост-девопс мире 13 / 75 Docker (на самом деле - нет)
  14. 14. Repeatability Александр Чистяков, Git in Sky Постправда в пост-девопс мире 14 / 75 Nixpkgs (Nixpkgs + Docker)! • Два варианта • https://goo.gl/6uxL0M • https://goo.gl/wkduPv • Типичный случай аксиомы Эскобара
  15. 15. Немного истории Александр Чистяков, Git in Sky Постправда в пост-девопс мире 15 / 75 Что изображено на картинке? (Поговорим о реальном старье)
  16. 16. Немного истории Александр Чистяков, Git in Sky Постправда в пост-девопс мире 16 / 75 Носитель информации 30 лет назад (Емкость примерно 200 килобайт)
  17. 17. ALGOL-60 и далее Александр Чистяков, Git in Sky Постправда в пост-девопс мире 17 / 75 Структурное и процедурное программирование
  18. 18. Корень всех зол (нет, не goto) Александр Чистяков, Git in Sky Постправда в пост-девопс мире 18 / 75 Как C-программист под DSP пишет на C#? В C# нет goto, но это не беда!
  19. 19. Зачем нужно OOP? Александр Чистяков, Git in Sky Постправда в пост-девопс мире 19 / 75 • Инкапсуляция, наследование, полиморфизм! • Пенсия Гради Буча
  20. 20. Зачем на самом деле OOP? Александр Чистяков, Git in Sky Постправда в пост-девопс мире 20 / 75 • Инкапсуляция, наследование, полиморфизм! • Пенсия Гради Буча • Кошелек Миллера (спасибо Григорию Петрову) • Закон Деметры • SOLID
  21. 21. SOLID Александр Чистяков, Git in Sky Постправда в пост-девопс мире 21 / 75 • Single responsibility principle
  22. 22. SOLID Александр Чистяков, Git in Sky Постправда в пост-девопс мире 22 / 75 • Single responsibility principle • Open/closed principle
  23. 23. SOLID Александр Чистяков, Git in Sky Постправда в пост-девопс мире 23 / 75 • Single responsibility principle • Open/closed principle • Liskov substitution principle
  24. 24. SOLID Александр Чистяков, Git in Sky Постправда в пост-девопс мире 24 / 75 • Single responsibility principle • Open/closed principle • Liskov substitution principle • Interface segregation principle
  25. 25. SOLID Александр Чистяков, Git in Sky Постправда в пост-девопс мире 25 / 75 • Single responsibility principle • Open/closed principle • Liskov substitution principle • Interface segregation principle • Dependency inversion principle
  26. 26. Что-то пошло не так Александр Чистяков, Git in Sky Постправда в пост-девопс мире 26 / 75 Objects have failed* (OOPSLA 2002) * на самом деле нет
  27. 27. 2002+15 Александр Чистяков, Git in Sky Постправда в пост-девопс мире 27 / 75 Python - lingua franca индустрии В Python есть всё
  28. 28. В Python есть всё Александр Чистяков, Git in Sky Постправда в пост-девопс мире 28 / 75 Зачем тогда что-то еще?
  29. 29. Отнять и поделить Александр Чистяков, Git in Sky Постправда в пост-девопс мире 29 / 75 Почему не декриминализуют легкие наркотики?
  30. 30. Хороший Язык Будущего Александр Чистяков, Git in Sky Постправда в пост-девопс мире 30 / 75 • Строгая типизация (PHP и JS - плохие)
  31. 31. Хороший Язык Будущего Александр Чистяков, Git in Sky Постправда в пост-девопс мире 31 / 75 • Строгая типизация (PHP и JS - плохие) • (Опциональная) статическая типизация
  32. 32. Опциональная типизация Александр Чистяков, Git in Sky Постправда в пост-девопс мире 32 / 75 • PHP: type declarations, 5.0 => 7.0 • Python: type hints, PEP-484 • Python: mypy
  33. 33. Статические анализаторы Александр Чистяков, Git in Sky Постправда в пост-девопс мире 33 / 75 • mypy - статический анализатор кода
  34. 34. Статические анализаторы Александр Чистяков, Git in Sky Постправда в пост-девопс мире 34 / 75 • mypy - статический анализатор кода • статический анализатор работает до запуска программы
  35. 35. Статические анализаторы Александр Чистяков, Git in Sky Постправда в пост-девопс мире 35 / 75 • mypy - статический анализатор кода • статический анализатор работает до запуска программы • статический анализатор обобщает идею статической типизации
  36. 36. Анализаторы разных языков Александр Чистяков, Git in Sky Постправда в пост-девопс мире 36 / 75 • Ruby: RuboCop • Perl: Perl::Critic • Python: Coala, Pylama, mypy • PHP: PHPLint, PHP Mess Detector
  37. 37. Static Analysis Symposium Александр Чистяков, Git in Sky Постправда в пост-девопс мире 37 / 75 • Научная конференция • Проходила уже 23 раза • 23 сборника статей примерно по 400 страниц
  38. 38. Хороший Язык Будущего Александр Чистяков, Git in Sky Постправда в пост-девопс мире 38 / 75 • Строгая типизация (PHP и JS - плохие) • (Опциональная) статическая типизация • Package/vendoring manager
  39. 39. Package managers Александр Чистяков, Git in Sky Постправда в пост-девопс мире 39 / 75 • PHP: Composer • Python: pip • Perl: cpanminus • Ruby: bundler
  40. 40. Хороший Язык Будущего Александр Чистяков, Git in Sky Постправда в пост-девопс мире 40 / 75 • Строгая типизация (PHP и JS - плохие) • (Опциональная) статическая типизация • Package/vendoring manager
  41. 41. Хороший Язык Будущего Александр Чистяков, Git in Sky Постправда в пост-девопс мире 41 / 75 • Строгая типизация (PHP и JS - плохие) • (Опциональная) статическая типизация • Package/vendoring manager • Метапрограммирование
  42. 42. Хороший Язык Будущего Александр Чистяков, Git in Sky Постправда в пост-девопс мире 42 / 75 • Строгая типизация (PHP и JS - плохие) • (Опциональная) статическая типизация • Package/vendoring manager • Метапрограммирование • Иммутабельность
  43. 43. Иммутабельность Александр Чистяков, Git in Sky Постправда в пост-девопс мире 43 / 75 Доклад Боба Ипполито в 2014-м верен и в 2017-м
  44. 44. Хороший Язык Будущего Александр Чистяков, Git in Sky Постправда в пост-девопс мире 44 / 75 • Строгая типизация (PHP и JS - плохие) • (Опциональная) статическая типизация • Package/vendoring manager • Метапрограммирование • Иммутабельность • Null-safety
  45. 45. Метапрограммирование Александр Чистяков, Git in Sky Постправда в пост-девопс мире 45 / 75 • Было в C - #ifdef
  46. 46. Метапрограммирование Александр Чистяков, Git in Sky Постправда в пост-девопс мире 46 / 75 • Было в C - #ifdef • Было в Java - аннотации
  47. 47. Метапрограммирование Александр Чистяков, Git in Sky Постправда в пост-девопс мире 47 / 75 • Было в C - #ifdef • Было в Java - аннотации • Было в LISP - макросы
  48. 48. Сферический в вакууме Александр Чистяков, Git in Sky Постправда в пост-девопс мире 48 / 75 • Языку нужна среда исполнения
  49. 49. Сферический в вакууме Александр Чистяков, Git in Sky Постправда в пост-девопс мире 49 / 75 • Языку нужна среда исполнения • JVM
  50. 50. Сферический в вакууме Александр Чистяков, Git in Sky Постправда в пост-девопс мире 50 / 75 • Языку нужна среда исполнения • JVM • V8
  51. 51. Сферический в вакууме Александр Чистяков, Git in Sky Постправда в пост-девопс мире 51 / 75 • Языку нужна среда исполнения • JVM • V8 • BEAM
  52. 52. Сферический в вакууме Александр Чистяков, Git in Sky Постправда в пост-девопс мире 52 / 75 • Языку нужна среда исполнения • JVM • V8 • BEAM • Golang runtime (not a VM, but...)
  53. 53. A quest for my next PL Александр Чистяков, Git in Sky Постправда в пост-девопс мире 53 / 75 https://goo.gl/MS1UfB
  54. 54. Буду гиперполиглотом Александр Чистяков, Git in Sky Постправда в пост-девопс мире 54 / 75 http://hyperpolyglot.org
  55. 55. Почему не Golang? Александр Чистяков, Git in Sky Постправда в пост-девопс мире 55 / 75 • Очень простой: 25 ключевых слов
  56. 56. Почему не Golang? Александр Чистяков, Git in Sky Постправда в пост-девопс мире 56 / 75 • Очень простой: 25 ключевых слов • Нет метапрограммирования
  57. 57. Почему не Golang? Александр Чистяков, Git in Sky Постправда в пост-девопс мире 57 / 75 • Очень простой: 25 ключевых слов • Нет метапрограммирования • Нет иммутабельности
  58. 58. Почему не Golang? Александр Чистяков, Git in Sky Постправда в пост-девопс мире 58 / 75 • Очень простой: 25 ключевых слов • Нет метапрограммирования • Нет иммутабельности • Нет null-safety
  59. 59. Почему не Golang? Александр Чистяков, Git in Sky Постправда в пост-девопс мире 59 / 75 • Очень простой: 25 ключевых слов • Нет метапрограммирования • Нет иммутабельности • Нет null-safety • Из Golang легко сделать Python
  60. 60. Почему не Golang? Александр Чистяков, Git in Sky Постправда в пост-девопс мире 60 / 75 • Очень простой: 25 ключевых слов • Нет метапрограммирования • Нет иммутабельности • Нет null-safety • Из Golang легко сделать Python • С вендорингом какая-то боль
  61. 61. Что реально успел? Александр Чистяков, Git in Sky Постправда в пост-девопс мире 61 / 75 • Clojure: dynamic, strong • Elixir: dynamic, strong • Nim: static, strong, null-unsafe • Rust: static, strong, null-safe
  62. 62. Как ощущения? Александр Чистяков, Git in Sky Постправда в пост-девопс мире 62 / 75 Use libraries, not frameworks! • Clojure: dynamic, strong • Elixir: dynamic, strong • Nim: static, strong, null-unsafe • Rust: static, strong, null-safe
  63. 63. Use libraries, not frameworks! Александр Чистяков, Git in Sky Постправда в пост-девопс мире 63 / 75 • Везде генерируется scaffolding • Везде есть порт Sinatra • Везде есть ORM tool
  64. 64. Use libraries, not frameworks! Александр Чистяков, Git in Sky Постправда в пост-девопс мире 64 / 75 Есть опасность написать свой фреймворк
  65. 65. Чего еще нет в Python? Александр Чистяков, Git in Sky Постправда в пост-девопс мире 65 / 75 Скорости!
  66. 66. Что насчет скорости? Александр Чистяков, Git in Sky Постправда в пост-девопс мире 66 / 75 Динамические языки • JIT compilers
  67. 67. Что насчет скорости? Александр Чистяков, Git in Sky Постправда в пост-девопс мире 67 / 75 Динамические языки • JIT compilers • GraalVM
  68. 68. Что насчет скорости? Александр Чистяков, Git in Sky Постправда в пост-девопс мире 68 / 75 Динамические языки • JIT compilers • GraalVM • Truffle framework
  69. 69. Что насчет скорости? Александр Чистяков, Git in Sky Постправда в пост-девопс мире 69 / 75 Статически типизированные языки • Zero-cost abstractions
  70. 70. Haskell Александр Чистяков, Git in Sky Постправда в пост-девопс мире 70 / 75 Как открыть ВАЗ 2101 без ключа? (Гораздо легче, чем пройти курс по Haskell*)
  71. 71. Героическое фэнтези Александр Чистяков, Git in Sky Постправда в пост-девопс мире 71 / 75 Типичный состав команды • Лоховатый главный герой (с потенциалом) • Дева в беде (муза героя) • Болтливый друг героя (без потенциала) • Воительница
  72. 72. Мужские роли играю я Александр Чистяков, Git in Sky Постправда в пост-девопс мире 72 / 75
  73. 73. Выводы Александр Чистяков, Git in Sky Постправда в пост-девопс мире 73 / 75 • DevOps - из прошлого десятилетия • LISP - из 1958-го года • Я не знаю, что будет дальше • Я не знаю, какой язык лучший • Поэтому писать надо на всем • «Hо не пиши на Коболе, если можешь этого избежать»
  74. 74. Вопросы, пожалуйста? Александр Чистяков, Git in Sky Постправда в пост-девопс мире 74 / 75 (Вы не успеете, иначе не успею я) • ...? • ...? • ...?
  75. 75. That’s all, folks! Александр Чистяков, Git in Sky Постправда в пост-девопс мире 75 / 75 • alex@gitinsky.com • https://telegram.me/lhommequipleure

×