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.

Deploying Elixir application - Alexey Osipenko

85 views

Published on

Elixir Club 7 Dnipro
I Coworking Hub
24/06/2017

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Deploying Elixir application - Alexey Osipenko

  1. 1. yo-ho-ho
  2. 2. Hello I’m Alexey Алексей Осипенко cimon.io
  3. 3. «Эликсир счастья» Эликсир на сервере или
  4. 4. /README.md Нет смысла пересказывать
  5. 5. cimon.io
  6. 6. cimon.io с докеромЭликсир
  7. 7. cimon.io с докеромЭликсир это
  8. 8. cimon.io с докеромЭликсир как без докера это
  9. 9. cimon.io с докеромЭликсир с докером только с как без докера это
  10. 10. cimon.io Козу вверх кто любит эликсир
  11. 11. cimon.io Козу вверх кто любит эликсир
  12. 12. cimon.io Козу вверх кто любит эликсир
  13. 13. cimon.io Эликсир не панацея
  14. 14. cimon.io не элексирЭликсир
  15. 15. Но ведь, можно же! Не стоит деплоить с горячей заменой кода
  16. 16. Но ведь, можно же! Не стоит деплоить с горячей заменой кода Можно, но не стоит
  17. 17. cimon.io Используется на боевом сервере Сейчас эликсир-приложение
  18. 18. cimon.io Справляется отлично И, знаете, сервер со всеми задачами!
  19. 19. cimon.io Развертывание на сервере Но вот не такое радужное
  20. 20. cimon.io Конечно же, заслуга эликсира – это эрланг
  21. 21. cimon.io BEAM А заслуга эрланга – это его
  22. 22. cimon.io все является процессами, а «процесс» – это актор В эрланге
  23. 23. cimon.io Снаружи И процесс выглядит как черный ящик
  24. 24. Снаружи мы ничего не знаем про текущее состояние
  25. 25. cimon.io Внутри черный ящик превращается в замкнутое пространство
  26. 26. Внутри приходит извне параметрами состояние
  27. 27. cimon.io хранение данных управляется виртуальной машиной, а не акторами В итоге,
  28. 28. cimon.io Чистые функции А внутри акторов у нас
  29. 29. cimon.io Чистые вызовы функций А у программиста снаружи используются
  30. 30. умирать весело как концепт, говорят нам, Акторы, что
  31. 31. 001 002 003004 005006 Совершенно неважно есть ли актор прямо сейчас или не нужно заботиться о том, чтобы актор жил
  32. 32. cimon.io можно поднять новый актор, а старый убить Данные хранятся в BEAM, поэтому
  33. 33. 006 007 Данные
  34. 34. 006 007 Данные
  35. 35. cimon.io проблема? Может быть есть какая-нибудь
  36. 36. cimon.io Миграция состояния данных актора — серьезная проблема
  37. 37. 006 007 данные Мы хотим, чтобы подходили одинаково хорошо для всех версий акторов
  38. 38. данные А в итоге нужны разные. Наш актор а после обновления был рокер, стал хиппи
  39. 39. Миграция данных не автоматизируется И в общем случае пишется вручную для всех релизов
  40. 40. cimon.io Не стоит деплоить с горячей заменой кода Вывод, который был сделан:
  41. 41. cimon.io по делу Теперь давайте обсудим существующие решения
  42. 42. Процесс релиза прост, как столб /README.md И описан
  43. 43. чтение ENV переменных происходит на этапе компиляции CONFIG.EXS
  44. 44. cimon.io Ubuntu Проблема межплатформенной компиляции. MacOS, То, что компилировалось под не запустится под
  45. 45. cimon.io Проблема миграций базы данных
  46. 46. cimon.io Проблема миграций базы данных
  47. 47. cimon.io > _build/production/rel/vault8/bin/vault8 command 'Elixir.Vault8.Release.Tasks' migrate
  48. 48. The Twelve Factors Config in the environment Stateless processes Dev/prod as similar as possible Admin processes несоблюдение Тотальное
  49. 49. cimon.io Платформа билда и запуска должны совпадать Процесс релиза затрагивает все акторы Процесс релиза уникален для системы Четыре бочки дегтяв итоге имеем Сервисы снаружи никак не управляемы
  50. 50. cimon.io Все будет хорошо. Но не стоит расстраиваться. Эликсир молод, горяч активно развивается и и
  51. 51. alexey@cimon.io Спасибо за внимание telegram@aratak alexey.osipenko@fb.me
  52. 52. https://t.me/itextrapolation

×