Skip to content

Instantly share code, notes, and snippets.

View DADUSHKA's full-sized avatar

Victor DADUSHKA

  • Волгоград
View GitHub Profile
@DADUSHKA
DADUSHKA / zero downtime deploy
Last active May 19, 2022 04:41
zero downtime deploy
Zero Downtime Deployment
Если не предпринимать специальных шагов, то каждый деплой будет приводить к остановке (возможно частичной) сервиса. В это время пользователи либо увидят ошибку, либо сообщение о происходящем обновлении. Но такого не происходит на большинстве крупных сервисов в интернете. Почему? Из-за реализации подхода «деплой без даунтайма» (downtime — простои в работе сервиса).
Zero Downtime Deployment выглядит так, как будто сервис никогда не останавливается, но при этом обновляется. Достигается это за счет одновременного запуска старой версии и новой кода. То есть когда деплоится приложение, то сначала поднимается новая версия рядом со старой. И только когда автоматика убеждается, что новая версия запустилась и работает, происходит остановка старой версии. Для выполнения этой процедуры понадобится следующее:
Инфраструктура. Нужен балансировщик, который может переключать трафик (входящие соединения от браузеров или других систем) между старой и новой версией кода. И желательно иметь как минимум
@DADUSHKA
DADUSHKA / Puma, Unicorn, Passenger, Nginx
Created May 19, 2022 04:29
Puma, Unicorn, Passenger, Nginx
https://codengineering.ru/q/why-does-unicorn-need-to-be-deployed-together-with-nginx-19313
@DADUSHKA
DADUSHKA / различия между Heroku и VPS VDS
Last active May 19, 2022 04:03
различия между Heroku и VPS/VDS
https://timeweb.com/ru/community/articles/vps-i-vds-v-chem-raznica-1
различия между Heroku и VPS/VDS
@DADUSHKA
DADUSHKA / gist:5a0bcc54d5b171bba9e665e8dfc3d4d1
Created May 19, 2022 03:53
Приложение двенадцати факторов
https://habr.com/ru/post/258739/
Ведение журналов обеспечивает приложениям критически важную информацию об использовании,
статистике и метриках и спасает нас при отладке проблемы.
Associations
One-to-one
One-to-many
Many-to-many
Polymorphic one-to-many
ActiveRecord — это объектно-реляционный преобразователь (ORM) — специфичный для Ruby ( DSL ) — определенный в документации
как «метод, который соединяет многофункциональные объекты приложения
с таблицами в системе управления реляционной базой данных».
Контроллер можно рассматривать как посредника между моделями и вью. Он делает данные модели доступными вью,
так что она может отображать эти данные пользователю, и он сохраняет или обновляет данные от пользователя в модель.
Роутер Rails распознает URL и направляет его в экшн контроллера или в приложение Rack.
Он также может генерировать пути и URL, избегая необходимость жестко прописывать строки в ваших вью.
[https://medium.com/@gbellini90/rails-validation-9fb67548b422](url)
https://dev.to/joker666/ruby-on-rails-pattern-service-objects-b19
Мы получаем много преимуществ, когда внедряем сервисы для инкапсуляции бизнес-логики, в том числе следующие:
Контроллер Lean Rails . Контроллер отвечает только за понимание запросов и преобразование параметров запроса,
сеансов и файлов cookie в аргументы, которые передаются объекту службы для выполнения действия.
Затем контроллер перенаправляет или выполняет рендеринг в соответствии с ответом службы.
Даже в больших приложениях действия контроллера с использованием служебных объектов обычно не превышают 10 строк кода.
Тестируемые контроллеры. Поскольку контроллеры невелики и служат в качестве сотрудников службы,
становится очень легко тестировать, поскольку мы можем только проверить,