Рубрики
Uncategorized

Восемь DevOps Things делает Heroku (так что вам не нужно!)

Возможно, вы знаете-примерно, примерно, и вроде, что развертывает приложение на платформу Heroku как … с меткой Heroku, Devops, PaaS, WebDev.

Возможно, вы знаете-примерно, примерно, и вроде, что развертывание приложения на платформу Heroku, как услугу, было бы хорошим выбором. Это сэкономит вам от борьбы с настройкой сетей, управления инфраструктурой и настройки услуг, освобождая время, чтобы сосредоточиться на создании функций для вашего приложения, чтобы обеспечить ценность вашим клиентам. Но, может быть, вы не совсем уверены Как Хероку делает эти вещи. Или, может быть, ( Gulp ) Вы не думаете, что Heroku может вам очень помочь.

Heroku позаботится о том, чтобы вам поехали на DevOps-Y, что его простота имеет тенденцию запутать количество проблем, связанных с развертыванием и поддержанием приложения производственного класса. Таким образом, в этом посте мы рассмотрим только восемь способов, которыми Heroku облегчит жизнь вашей разработке.

1. Управлять изображениями машины

Ваше приложение — это больше, чем просто код, который вы написали. Он также опирается на пакеты, которые вы явно импортировали, на языке программирования, в который вы пишете, и операционную систему, на которой работает ваш код. Вы знаете, к чему все это добавляет? Обслуживание. Вы должны быть в поисках, чтобы убедиться, что ваша операционная система исправлена из недостатков безопасности, а ваш язык программирования постоянно обновляется для улучшения производительности.

Вместо того, чтобы разбираться через обновления безопасности пакетов или выяснить, как снять ваш сайт и обновить до последней Ubuntu, Heroku позаботится обо всех накладных расходах для безопасности для вас. Вот недавний пост в блоге Демонстрируя, что процесс для конечного пользователя должен получить критические обновления безопасности (подсказка: ничего).

2. Развернуть стек в несколько средств

Проблема технического обслуживания машины линейно масштабируется, когда вы добавляете больше серверов в свой рабочий процесс, как правило, путем необходимости большего количества сред. Если вам нужно ввести в свою настройку встроенную среду, у вас уже есть некоторые сценарии автоматизации, чтобы настроить эту инфраструктуру, но теперь вам также необходимо обратить пристальное внимание на их системные зависимости.

Развертывание всей стопки приложения Heroku так же просто, как git push в новое приложение Heroku. Вместо того, чтобы тратить время на переосмысление мелких потребностей ваших серверов на проставочные серверы, вы можете Просто свяжите свои разные среды и вытолкните свой код в новую среду мгновенно.

Но, может быть, у вас есть много сред, и вы не хотите продолжать вводить команды для развертывания приложения для их всех. Это нормально; Вы можете Установите трубопровод вместо. Трубопровод позволяет продвигать ваше приложение через различные среды: разработка, обзор, постановка, производство.

Когда дело доходит до переменных среды, вы можете Получить и установить их через командную строку , слишком:

# set for production (by default)
$ heroku config:set APP_SECRET=XXX
# set for staging
$ heroku config:set APP_SECRET=YYY --remote staging

3. Администрирование и настройка баз данных

Базы данных лежат в основе каждого приложения, от очень простых до очень сложных. Приложения полагаются на наличие базы данных, из которой можно хранить и получить важную информацию. Если подключения к этой службе перестают течь, это может полностью убить ваше приложение. Настройка самого двигателя базы данных также может привести к некоторому росту производительности, что может иметь решающее значение для участков с высоким трафиком.

Пусть администраторы базы данных Heroku гарантируют, что установки хорошо настроены, чтобы ваши инженеры могли работать над другими проблемами. Они обновят базу данных, автоматически применяют исправления безопасности, перенесут вас из плохих случаев и многое другое. В то время как ваша команда переживает улучшения, DBA Heroku оптимизируют вашу базу данных для прибыли, которые вы даже не знали, что вам нужно.

Частое поддержание вашего бэкэнда-это не просто сервис для губ: Это основная ценность, которую Хероку гордится Анкет

4. Войдите все по всей среде

Журналы: Они больше не только для лесорубов! Скорее всего, вы отслеживаете различные действия на протяжении жизненного цикла запросов, будь то ваше веб -приложение, его очереди работников, системные компоненты или любые услуги поддержки. Настройка всех этих источников информации может быть проблемой, и объединение в нечто, что можно использовать, может быть еще сложнее.

Хероку Logplex Не только выльзит информацию из любого источника, которому вы его говорите, это также выплюнет ее в ожидаемом формате, будь то для долгосрочного хранилища, терминала где-то или любую конечную точку API. Вы можете Создайте свой собственный трубопровод , или Нажмите на существующую дополнительную экосистему для маршрутизации журнала.

5. Мониторинг и предупреждение

Как вы могли ожидать от обширной и гибкой настройки журнала, Heroku также получил Феноменально красивая система мониторинга Анкет Хотя вы можете интегрироваться со третьими частями по этому поводу, во многих случаях вам не понадобится. Панель инструментов Heroku покажет вам многое из того, что вам нужно знать, от здоровья памяти (через GC Times и общее использование), до HTTP -запроса/времени отклика и даже общего состояния взаимодействия вашего сервера с его ресурсами. Есть также Много внешних интеграций на выбор Если вы предпочитаете зацепить внешнюю систему, такую как New Relic или графит.

Для профессиональных динаций вы также можете Установите оповещения прямо с приборной панели Heroku Анкет Когда вы настраиваете свои пороговые значения, Heroku расскажет вам, сколько раз это было бы вызвало уведомления в ваше время, и посоветует настроить метрики, если они слишком чувствительны. Есть также нативная интеграция с Pagerduty.

6. Резервное копирование и восстановление

У вас есть стратегия резервного копирования для вашего приложения и ее инфраструктуры? И вы уверены, что это работает? С зависимостями, которые могут понадобиться вашей системе — RELIS, Postgres, Kafka — вам нужно настроить стратегии резервного копирования и восстановления данных, настраивать гранулярность его удержания и убедиться, что у вас всегда есть достаточно места на диска, чтобы сохранить резервные копии тебе нужно.

Поскольку Героку на вашей стороне и, вероятно, больше нервничает по поводу потери данных, чем вы, они уже продумали тысячу различных сценариев стихийных бедствий и могут хранить и восстанавливать ваши данные максимально безопасным способом. Например, одна команда через ваш терминал может отказываться от вашей базы данных в предыдущее состояние; Если узел Kafka не удается, Автоматизированные системы Heroku будут работать, чтобы восстановить его к его нормальной работе.

Для вашей базы данных Postgres вы можете даже Установите расписание для резервных копий быть взятым за пределы часов пик. Редкие резервные копии/вилки также могут быть установлены через командную строку Анкет

7. Автоматически возрождает сбитый сервер

Приложения нередко требуют необходимости менеджера процессов, чтобы перезапустить остановки или полностью разбитые — приложения. Но, как и в случае с резервными копиями, гарантировать, что этот демон делает правильные вещи, может быть жестким, особенно учитывая, что он «работает» только тогда, когда все остальное не делает.

В случае неожиданного, Хероку будет Перезапустите свои серверы для вас , будь то из -за истощения ресурсов, Segfault или просто простой логической ошибки. При попытке восстановиться, время выполнения также имеет период охлаждения в несколько минут, чтобы изящно возобновить нормальные операции.

8. Разделение основных баз данных

Если ваше приложение очень доступно, оно должно быть в большем количестве мест, чем одно, что означает больше всего, включая базы данных. В средней настройке HA все записи данных идут в первичную базу данных, и несколько специфических для региона по всему миру распределяются. Обеспечение надлежащего от начального до второстепенного — это пакет проблем с сетью и задержкой, главным из них является обеспечение того, чтобы ваше приложение не читало данные, которые стали несвежими.

Для Postgres ( одна истинная база данных ™ ️ ), Heroku предоставляет Способность разветвлять вашу основную базу данных легче, чем вы могли бы поверить. Создавая базу данных через командную линию и предоставив ---следовать Флаг, вы можете создать только для чтения последователя вашей основной базы данных. Изменения из первичной трансляции транслируются в режиме реального времени, что позволяет провести бесшовную миграцию, избыточность данных и горячий режим ожидания.

Сконцентрируйтесь на своих потребностях, а не Ваша инфраструктура

Когда вы тратите меньше времени на настройку и выполнении своих потребностей в производстве, у вас будет больше времени для потребностей ваших пользователей. Heroku запускает восемь миллионов приложений по 25 миллиардов запросов в день, и разработчики, создающие эти приложения, получают выгоду от рабочего процесса DevOps, который управляется для них.

Оригинал: «https://dev.to/heroku/eight-devops-things-heroku-does-so-you-don-t-have-to-4o0b»