Азбука создания надежных, масштабируемых и удобных в сопровождении веб-приложений — надежность
6 марта 2023 г.Надежность, масштабируемость и ремонтопригодность — одни из наименее понятных концепций разработки приложений. Даже мало разбираясь в этих темах, многие разработчики используют их изо дня в день во время рабочих разговоров. Правильное и четкое понимание этих концепций позволяет вам правильно использовать эти термины и эффективно мыслить, чтобы применять эти жизненно важные концепции в приложениях, которые вы создаете.
По мере того как онлайн-приложения становятся все более сложными, эффективная масштабируемость, надежность и ремонтопригодность становятся все более важными для обеспечения бесперебойной работы и удовольствия пользователей. Эффективное управление этими частями разработки веб-приложений может быть затруднено, особенно для разработчиков, которые являются новичками в этой профессии или не знакомы с этими понятиями.
В этой серии сообщений в блоге мы будем понимать эти термины вдоль и поперек. Мы изучим подходы к надежности, масштабируемости и ремонтопригодности создаваемых нами приложений.
Кто любит ненадежность?
Предпочли бы вы как пользователь когда-либо использовать приложение, которое часто дает сбой, работает не так, как предполагалось, и работает ужасно?
Обычный пользователь предъявляет следующие требования к надежному приложению:
- Приложение должно выполнять функцию, ожидаемую пользователем.
- Он допускает ошибки пользователя.
- Он обеспечивает достаточно хорошую производительность.
- Предотвратить безопасность
Собрав все эти вещи вместе, мы можем неофициально определить надежность как «Продолжать работать должным образом, даже когда что-то идет не так».
Ошибки — что-то идет не так
:::информация Любой компонент приложения, который отклоняется от нормального функционирования, называется сбоем. Приложения, которые предвидят сбои и могут с ними справляться, называются отказоустойчивыми приложениями.
:::
Цель надежного приложения — свести к минимуму вероятность возникновения сбоев. Хотя невозможно полностью предотвратить какие-либо неисправности, в приложении должны быть предусмотрены меры, гарантирующие, что неисправность не приведет к катастрофическому отказу системы. Это включает в себя обеспечение избыточности, внедрение отказоустойчивости и предоставление механизмов восстановления в случае сбоя. При правильных мерах надежное приложение может помочь обеспечить бесперебойную работу системы даже в случае сбоев.
Давайте рассмотрим различные виды ошибок, которые могут возникнуть в любом приложении.
Сбои оборудования
Проще всего подумать об аппаратных сбоях. Это может быть результатом сбоя жесткого диска, неисправности ОЗУ, отключения электроэнергии или проблем с сетью.
Один из самых простых способов предотвратить аппаратные сбои — добавить в систему резервирование. Таким образом, у нас может быть несколько блоков питания, несколько дисков с избыточными данными и процессоры с возможностью горячей замены. Когда один компонент выходит из строя, его место может заменить резервный компонент.
Ошибки программного обеспечения
Хотя аппаратные сбои носят случайный характер, существует еще один класс сбоев, которые носят более систематический характер. Эти ошибки возникают из-за того, что что-то не так с программным обеспечением. Ниже перечислены некоторые факторы, которые могут привести к сбоям в программном обеспечении.
* Ошибка в программном обеспечении, которая приводит к сбою при получении определенного ввода * Процесс, использующий общие ресурсы, такие как ОЗУ или ЦП, приводит к голоданию других процессов. * Критически важный сервис перестает отвечать на запросы или работает очень медленно
Не существует простого решения для устранения ошибок программного обеспечения. Из-за широкого спектра проблем, приводящих к сбоям программного обеспечения, для их предотвращения также требуется несколько различных мер.
Часто хорошей практикой является пересмотр допущений, сделанных при построении системы. Например, приложение для электронной коммерции может быть построено на предположении, что пользователи будут заказывать только в том случае, если товар есть в наличии. Но это предположение может быть неверным в контексте приложения, открывая путь к ошибкам программного обеспечения.
Тщательное тестирование — еще один способ выявления ошибок в программном обеспечении до того, как они появятся в развертывании. Измерение, мониторинг и анализ запущенных приложений также являются способами обнаружения ошибок программного обеспечения.
Ошибки из-за человеческих ошибок
Люди создают и поддерживают все приложения. Многочисленные человеческие решения и поведение являются прямыми источниками недостатков прикладной системы. Независимо от степени автоматизации, мы не можем исключить людей из уравнения. Итак, как мы можем сделать наши системы надежными перед лицом ненадежных людей? Существует несколько подходов, которые мы обычно используем для устранения ошибок, связанных с человеческим фактором.
* Разрабатывайте системы, которые уменьшают вероятность ошибок. * Тщательно протестируйте на всех уровнях. * Разрешить быстрое и легкое восстановление после человеческих ошибок. * Настройте подробный мониторинг.
Почему приложения должны быть надежными?
Создание надежных приложений — обязанность каждого разработчика. Бывают ситуации, когда мы вынуждены жертвовать надежностью приложений ради таких вещей, как эксплуатационные расходы или затраты на разработку. Но эти жертвы должны быть сделаны с предельным сознанием.
На этом мы подошли к концу этого первого блога о надежности приложений. Мы увидели, почему надежность является важнейшим аспектом разработки приложений и каких ошибок следует избегать при создании приложений. В следующих постах мы рассмотрим два других аспекта разработки приложений. А пока продолжайте учиться и расти!
Понравилось то, что вы читаете? Подпишитесь на меня в Twitter!
Оригинал