Оставить его простым
Избегайте чрезмерной разработки архитектуры, кода приложения и операций. |
---|
Часто это то, что вы удаляете, а не то, что вы добавляете, что приводит к самым надежным решениям. Простота сокращает область поверхности для управления, минимизируя неэффективность и потенциальные неправильные настройки или непредвиденные взаимодействия. С другой стороны, избыточность может привести к отдельным точкам сбоя. Поддерживайте сбалансированный подход.
Пример сценария
Contoso Travel покупает и интегрирует небольшую стартап-компанию с популярным веб-приложением для путешествий. Популярность приложения обусловлена своей бизнес-моделью переговоров глубоких скидок с гостиничными сетями и авиакомпаниями, а также использование социальных сетей для выполнения интенсивных и высокоцельных маркетинговых кампаний.
Существующая версия запускаемого продукта была разработана в nodejs и работает на виртуальных машинах, размещенных между локальным центром обработки данных и AWS.
Минимизация компонентов рабочей нагрузки
Добавьте компоненты в архитектуру только в том случае, если они помогают достичь целевых бизнес-значений. Сохраняйте критически важный путь.
Проектирование бизнес-требований может привести к простому решению, которое легко реализовать и управлять ими. Избегайте слишком большого количества критически важных компонентов, так как каждый из них является значительным моментом сбоя.
Задача Компании Contoso
- Один из компонентов только что приобретенного приложения упрощает сбор отзывов от пользователей непосредственно на веб-сайте после того, как они сделали резервирование. Эта функция редко используется, так как большинство пользователей просто пропускают ее. Существует надежный механизм цикла обратной связи от пользователей, работающих через учетные записи социальных сетей компании, которая широко используется для маркетингового взаимодействия с пользователем. Этот механизм используется значительно чаще, чем функция обратной связи веб-сайта.
Применение подхода и результатов
- В рамках первоначального выпуска версии приложения contoso Travel-branded команда решает удалить компонент обратной связи веб-сайта рабочей нагрузки.
- Меньшая база кода снижает затраты на обслуживание и операции. И, в этом случае, нет влияния на бизнес-требования.
Стандартизация жизненного цикла разработки программного обеспечения
Создайте стандарты в реализации кода, развертывании и процессах, а также задокументируйте их. Определите возможности применения этих стандартов с помощью автоматизированных проверок.
Стандарты обеспечивают согласованность и минимизацию человеческих ошибок. Подходы, такие как стандартные соглашения об именовании и руководства по стилю кода, помогают поддерживать качество и упростить идентификацию ресурсов во время устранения неполадок.
Задача Компании Contoso
- Команда разработчиков из стартапа не имеет большого количества стандартов разработки и процессов. Существует ряд библиотек, которые перекрываются в функциональных возможностях, стили программирования не применяются, и конвейеры выпуска не имеют формальных шлюзов выпуска, использующих автоматическое тестирование.
- Команда рабочей нагрузки Contoso понимает, что стоимость обслуживания новой базы кода слишком высока из-за отсутствия согласованности в стилях и несогласованного использования библиотек и шаблонов проектирования.
- Часто возникают инциденты после крупных обновлений в рабочей среде, иногда требуется откат обновлений или исправлений по середине развертывания. Частота таких проблем с развертыванием заставляет команду использовать модель поддержки практических возможностей при выпуске обновлений в рабочей среде. Чтобы сделать все хуже, частые проблемы негативно влияют на репутацию Contoso через плохое взаимодействие с пользователем.
Применение подхода и результатов
- Команда, принимаюшая на себя поддержку нового приложения, делает усилия по достижению большей согласованности путем применения стилей программирования, стандартизации общего набора библиотек и шаблонов проектирования, а также формализации использования шлюзов выпуска на основе автоматизированных тестов.
- Хотя эти изменения реализуются, команда рабочей нагрузки соответствует их стандартным требованиям к документации. Все новые инструменты, шаблоны проектирования и стили, которые принимаются, тщательно документируются, позволяя команде лучше понимать и поддерживать рабочую нагрузку более эффективно. Теперь команда может более легко определить отклонения в стандартах при выполнении проверок кода.
Свести к минимуму нагрузку на операции и разработку
Воспользуйтесь преимуществами функций, предоставляемых платформой, и предварительно созданных ресурсов, которые помогут эффективно удовлетворить бизнес-цели.
Этот подход сводит к минимуму время разработки. Он также позволяет использовать проверенные методики, которые использовались с аналогичными рабочими нагрузками.
Задача Компании Contoso
- Для первоначального выпуска в рамках фирменной символики Contoso Travel решение nodejs будет перенесено с виртуальных машин в Служба приложений, чтобы воспользоваться преимуществами множества собственных функций надежности, предоставляемых службой.
- Версия, развернутая на виртуальных машинах, содержит значительный объем пользовательского кода, необходимого для инструментирования.
Применение подхода и результатов
- Во время первоначальной миграции в Служба приложений команда смогла удалить весь пользовательский код инструментирования путем реализации автоинструментации App Insights в Служба приложений.
- Команда также может воспользоваться несколькими другими собственными Служба приложений функциями, такими как автомасштабирование, интеграция Key Vault и зональная избыточность.