Облачные приложения

menu icon

Облачные приложения

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

Что представляют собой облачные приложения?

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

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

В видеоролике «Что представляют собой облачные приложения?» (4:36) Андреа Кроуфорд делает краткий обзор основных концепций:

Для более подробного изучения вы можете обратиться к подкасту IBM Cloud — посмотрите серию из семи эпизодов под названием «Все об облачных приложениях».

Микросервисы и контейнеры

Микросервисы (другое название — архитектура микросервисов) представляют собой архитектурный подход, в рамках которого каждое приложение создается из множества слабо связанных, независимо развертываемых компонентов (сервисов) меньшего размера. Такие сервисы (микросервисы) обычно имеют собственный технологический стек, включая базу данных и модель данных, и взаимодействуют друг с другом с помощью REST API, потоковой передачи событий и брокеров сообщений.

Поскольку развертывание и повторное развертывание микросервисов выполняются независимо и никак не влияют на работу пользователей, они отлично подходят для автоматизированных, итерационных методологий доставки, таких как непрерывная интеграция/непрерывное развертывание (CI/CD) и DevOps.

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

Согласно недавнему опросу, проведенному IBM среди ИТ-руководителей, руководителей разработки и разработчиков, 87% пользователей микросервисов согласны с тем, что этот подход стоит того, чтобы инвестировать в него время и средства. Дополнительная информация о преимуществах и сложностях микросервисов представлена на следующем интерактивном изображении:

(Источник:«Микросервисы на предприятии: реальные преимущества, превосходящие усилия», 2021 г.)

Разработчики часто развертывают микросервисы внутри контейнеровпростых исполняемых компонентов, сочетающих в себе исходный код приложений (в данном случае код микросервисов) со всеми библиотеками операционной системы (ОС) и зависимостями, необходимыми для выполнения кода в любой среде. Контейнеры, которые отличаются меньшим размером, более высокой эффективностью использования ресурсов и лучшей переносимостью по сравнению с виртуальными машинами, стали стандартом де-факто для вычислительных модулей современных облачных приложений.

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

Дополнительная информация о контейнерах и контейнеризации приведена в публикациях «Контейнеры: полное руководство» и «Контейнеризация: полное руководство».

Узнайте подробнее о преимуществах применения микросервисов и контейнеров в качестве архитектурной модели.

Преимущества и недостатки

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

Преимущества

  • Облачные приложения в сравнении с традиционными монолитными приложениями отличаются простотой управления, поскольку методологии Agile и DevOps предполагают пошаговое улучшение.
  • Для облачных приложений, построенных на базе отдельных микросервисов, можно реализовать автоматизированный процесс постепенного усовершенствования, обеспечив тем самым непрерывное добавление новых и улучшенных функций.
  • Улучшения можно вносить без вмешательства в работу системы, без простоев и перебоев в работе конечного пользователя.
  • Эластичная инфраструктура с облачными приложениями значительно упрощает масштабирование вверх и вниз.
  • Процесс разработки облачных приложений в наибольшей степени соответствует требованиям современных бизнес-сред к скорости работы и темпам внедрения инноваций.

Недостатки

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

Примеры приложений

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

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

Компания American Airlines (2:50) в сотрудничестве с IBM разработала приложение Dynamic Rebooking, которое было запущено при наступлении неблагоприятных погодных условий. Приложение помогло добиться более высокого качества обслуживания клиентов за счет предоставления пользователям дополнительной информации и оптимизации процесса повторного бронирования.

Компания XComP Analytics (1:56), занимающаяся разработкой аналитической платформы в сфере образования и обучения, привлекла специалистов IBM Cloud Garage для решения сложной аналитической задачи, однако в итоге компании удалось разработать шесть новых продуктов. Решение предусматривало применение архитектуры микросервисов и интеграцию IBM Watson для решения специализированных аналитических задач.

UBank (2:45) искал способы улучшения программы ипотечного кредитования, чтобы помочь клиентам в оформлении ипотечных кредитов. Интеллектуальный помощник RoboChat, созданный с помощью цепочки инструментов IBM DevOps, отвечал поставленным требованиям. Клиенты, которые использовали RoboChat, на 15 процентов чаще получали ипотечные кредиты.

Основная цель медицинских исследований — предоставление врачам рекомендаций по выбору оптимальных вариантов лечения пациентов. Однако, путь от медицинского исследования до практического применения передовых методик для лечения пациентов может занимать 17 лет. ThinkResearch (2:06) использует IBM Cloud для предоставления лучшей медицинской информации в месте лечения. Благодаря инфраструктуре IBM Cloud и управляемым услугам Kubernetes специалисты DevOps ThinkResearch могут сосредоточить внимание на внедрении инноваций и лечении пациентов, а не на инфраструктуре.

Принципы разработки

Как в случае создания нового облачного приложения, так и при модернизации старого разработчики придерживаются единого свода правил:

  • Подход на основе микросервисов: разбиение приложений на специализированные микросервисы. Микросервисы слабо связаны друг с другом, но при этом остаются независимыми, что позволяет обеспечить поэтапное, автоматизированное и непрерывное улучшение приложения без необходимости приостанавливать его работу.
  • Использование контейнеров для максимальной гибкости и масштабируемости: программное обеспечение упаковывается в контейнеры вместе с кодом и зависимостями, что позволяет запускать его где угодно. Это обеспечивает максимальную гибкость и переносимость в мультиоблачной среде. Кроме того, контейнеры позволяют быстро изменять масштаб в большую или меньшую сторону, используя определенные пользователем политики управления Kubernetes.
  • Реализация методов гибкой разработки: эти методы ускоряют процесс создания и улучшения приложений. Разработчики могут проводить быстрые итерации, опираясь на обратную связь от пользователей и приводя рабочую версию приложения в максимально точное соответствие их пожеланиям.

Системы хранения

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

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

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

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

Узнайте, как IBM Cloud Object Storage позволяет создать постоянное хранилище данных для облачных приложений.

Сравнение облачных и традиционных приложений

Облачные приложения и поддержка облачных сред

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

Облачные приложения и готовность к использованию в облаке

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

Облачные приложения и приложения на базе облачных технологий

Сервис или приложение на базе облака работает через Интернет. Это общий термин, который можно использовать для любых облачных предложений. Полная совместимость с облачными средами — это более точный термин. Им обозначаются приложения, предназначенные для работы в облачных средах. Такие приложения полагаются на микросервисы, непрерывную интеграцию и непрерывную доставку (CI/CD), а также могут работать на любой облачной платформе.

Облачные приложения и приложения с приоритетным использованием облачных технологий

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

Облачные приложения и IBM

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

Сделайте следующий шаг:

  • Узнайте, как сделать первый шаг к разработке облачных приложений, заручившись поддержкой IBM.
  • Узнайте, как профессиональные услуги IBM по разработке облачных приложений могут помочь вам найти правильный путь.
  • Попробуйте свои силы в модернизации имеющегося приложения для развертывания в облачной среде, изучив этот учебник.
  • Узнайте подробности об этом курсе, посвященном облачным и мультиоблачным технологиям, и знаках отличия, предлагаемых в рамках сертификации на основе ролей IBM Cloud Associate Solution Advisor.
  • Повысьте свою квалификацию с помощью современных курсов по интеграции, безопасности и идентификации, таких как «Развертывание облачных архитектур и приложений» и «Подготовка к облачной безопасности», предлагаемых в рамках обучения и сертификации на основе ролей IBM Cloud Professional Developer.

Начните работать с учетной записью IBM Cloud уже сегодня.