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

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

«Современное приложение оставляет далеко позади старую прикладную структуру конечных вычислений, — сказал вице-президент и главный аналитик Constellation Research Хольгер Мюллер. — При старом способе применения приложений вам нужно было найти сервер для его запуска, при этом само приложение должно было быть не слишком большим или не слишком быстрым. В то же время современное приложение может по мере необходимости масштабироваться, что осуществляется за счет облака. Вам не нужно оборудование, и вам даже не нужно ПО. Все, что вам нужно — SaaS и PaaS».

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

Надежный и гибкий мост к цифровой трансформации

В среде, питаемой регулярными технологическими сдвигами, выживает только проворный. Наступление глобальной пандемии подчеркнуло важное требование к бизнесу — он должен быть гибким и адаптивным. В условиях кризиса компании должны предоставить своим B2C- и B2B-клиентам надежный и гибкий мост к продуктам и услугам. В самом широком смысле он является тем элементом, который компании связывают с цифровой трансформацией — организационный толчок для переоснащения бизнеса в условиях экономики XXI века. Современное приложение является основополагающей частью этих усилий. Чтобы оно раскрыло свой потенциал, ИТ-специалистам, которые создают и управляют его внутренними механизмами, следует полагаться в основном на облачную основу.

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

Рассмотрим на примере: консалтинговая компания Infosys работает со страховой компанией, которая запускает свои многочисленные клиентские приложения в 450 облачных контейнерах. Но, по словам старшего вице-президента Infosys Ананта Адьи, ее бэкэнд-операции по-прежнему работают онпремис. «В эту категорию попадает большинство наших клиентов, — сказал он. — Облако и контейнер они применяют на стороне клиента, поэтому вы можете осуществлять постепенный переход и учиться на своих ошибках, тогда как на стороне клиент-сервер обрабатываются внутренние операции».

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

Во многих отношениях гибкость современного приложения всегда будет поддерживать его в актуальном состоянии. «Когда вы думаете о том, что является современным и что делает приложение современным, вы должны думать о технологиях и системах операций, которые будут устойчивыми и доступными, и думать о том, что они будут доступны для всех пользователей, — говорит главный аналитик Forrester Research Крис Кондо. — Современное приложение должно быть рассчитано не только на выполнение задач в ближайшей перспективе, но и в будущем». Но, как станет далее понятно, это будущее не должно быть слишком отдаленным.

Принципы разработки современных приложений

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

Ключом к успеху является минимизация сложности приложения — разработчикам нужно отталкиваться от того, что оно должно обладать четким контекстом. Он приходит после понимания того, чего пользователь ожидает от приложения, говорит глава по инновациям провайдера ИТ-услуг Insight Enterprises Шимон Розга. Большинство пользователей часто меняют устройства и ожидают, что приложение будет вести себя на всех них так, как будто оно все еще открыто на первоначальном устройстве. По его словам, функции приложения должны беспрепятственно работать по всем соответствующим каналам, чтобы приложение одинаково выглядело и обладало одинаковой отзывчивостью на любом устройстве. «Я хочу взаимодействовать с приложением любым удобным для меня способом, и оно должно иметь возможность быстрого доступа к моим данным. Это тот опыт, который мне нужен», — утверждает Розга, который специализируется на настольных, мобильных и веб-приложениях. Он отметил, что Google и Microsoft усовершенствовали идентификацию и авторизацию в своих приложениях, что в некоторых случаях сильно усложняет знакомство с ними, поскольку они отделены от функций, характерных для каждого приложения.

Понять, что должно делать приложение сегодня, не составляет никакого труда, но в то же время очень легко упустить из виду то, что оно должно делать завтра. Возможно, сейчас было бы здорово спроектировать его для 5G, но что, если эта технология связи устареет или выйдет из строя? Будет ли приложение работать нормально? Кондо уверен, что создать приложение, которое соответствует сегодняшним и завтрашним потребностям, — это вполне реальная задача. «Некоторые функциональные возможности будут заменены новыми, но часть их все равно останется, если они предназначены для выполнения действий в кризисные времена, когда востребованы гибкость и адаптируемость», — сказал он. В качестве примера он приводит Zoom — приложение, которое было разработано для деловых встреч, но затем стало неоценимым ресурсом для преподавателей и студентов, работающих во время пандемии COVID-19 на дому.

Вычисления в любое время и в любом месте: новая мобильность

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

Часть небольших поставщиков понимают, что CRM-платформы должны быть удобными для пользователя, и создают их с прицелом на простоту рабочего процесса; они также фокусируются на «фактических продажах», в то время как Salesforce выходит далеко за рамки продаж. Разумеется, внутренние бизнес-приложения, ориентированные на клиента, должны иметь доступ к любым вычислительным ресурсам и в любое время. Бриана Фрэнк, директор по управлению продуктами IBM Cloud, вспоминает о том, что ближе к концу отпуска ей пришлось вручную вводить паспортные данные своей семьи, потому что в мобильном приложении авиакомпании отсутствовала опция автоматического сканирования паспортов. «Я сижу в гостиничном номере и ввожу персональные данные всех членов моей семьи, пока они на пляже. Самым большим ударом для меня стало то, что я усомнилась в своей лояльности к этой авиакомпании. Это вынудило меня задаться вопросом: а достаточно ли она современна?», — рассказала Фрэнк. Сегодня любая компания любой отраслевой принадлежности должна идти в ногу с пожеланиями клиентами. Отсутствие даже мелкой детали в приложении вынуждает их ставить под вопрос лояльность к компаниям, если те не реагируют на удобство пользователя.

Перед тем, как оказать своим партнерам помощь в создании инфраструктуры для разработки приложений, Infosys выясняет, как ее клиенты используют ИТ-услуги, а затем разрабатывает виртуальных персонажей «Допустим, один из них — технически подкованный пользователь, а другой — бизнесмен. Мы создаем ключевые модели для обоих. Возьмите финансового аналитика, который не разбирается в технике. Его работа — это сдача ежемесячной или ежеквартальной отчетности. Нам необходимо убедиться, что у него есть все необходимое, чтобы сделать это», — сказал Адья.

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

Преимущественно облачная среда, созданная для ИИ

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

«Зачем вам этот большой мэйнфрейм, если вы так или иначе его не используете? Облако дарит простоту — воспользуйтесь этим. Сценарии следующего поколения требуют доступа к большим данным. Применяя серверы, ранее вам приходилось оценивать, сколько данных вы можете у себя хранить. Теперь облачные технологии хранят все, даже мусор», — говорит он. По словам Мюллера, облако многократно улучшает хранение данных, управление данными и доступ к ним, что особенно важно, поскольку правильное применение данных является критически важным шагом для поддержки приложений и мобильности. Облачный подход создает устойчивость в приложении, а не в инфраструктуре. Розга соглашается: «Если ваша база данных спроектирована неправильно, у вас не будет правильных данных». Недавно он помог клиенту перенести свои приложения в облако, чтобы в случае поломки или утери физической базы данных компания смогла хранить там свои данные, а также управлять ими. «Вам нужно что-то среднее», — советует он.

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

Но, как говорит Кондо, ИИ также может повысить производительность современного приложения на стороне бэкэнда. «ИИ может оповещать систему раннего обнаружения, что поможет разработчикам выявлять злонамеренные схемы, — сказал он.— Вы можете объединить инструмент разработки на базе Open Source типа GitHub и аналитические шаблоны, чтобы проинспектировать ваш код и удостовериться, что он был исправлен в других приложениях, или решить проблему, которую кто-то обнаружил в другом месте. ИИ и машинное обучение могут профильтровать огромный массив данных».

Стратегия гибридного облака работает не для всех

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

Компания O. C. Tanner, помогающая организациям создавать культуру, ориентированную на сотрудников, признавала только один способ создания приложения — монолитное творение, для написания которого требуются миллионы строк заказного кода. Ее подход к разработке сложно назвать инновационным. «На самом деле, это был кошмар, — вспоминает старший вице-президент и CIO компании Нил Николайсен. — Очень часто мы опасались разговоров с клиентами». Программы — основное звено цепочки предложений O. C. Tanner. Компания приступила к перестройке ИТ-архитектуры, выбрав медленный темп перехода — чтобы клиенты не заметили работы по обновлению, Николайсен и его сотрудники перешли на платформу, которая включает в себя общие службы, а также стек приложений, ориентированный на API. В итоге теперь к ним могут подключаться как внутренние, так и внешние пользователи. Компания также установила программно-определяемую сеть для поддержки инфраструктуры и обеспечения ее гибкости. По словам Николайсена, сегодня клиенты видят «интуитивно понятный пользовательский интерфейс». Они могут легко обновлять записи своих сотрудников и другую информацию, а не фокусироваться на технологии. «Раньше мы проигрывали на рынке из-за того, что наше ПО устарело. Из-за этого часть клиентов не хотела с нами работать», — добавил он.

Микросервисы, контейнеры, Open Source — двигатели современных приложений

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

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

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

Фрэнк, Николайсен и другие эксперты рекомендуют создать общую облачную платформу на базе Open Source, чтобы иметь свободу выбора инструментов для разработки приложений и использовать лучшие методы кодирования. «Watson был одним из наших первых таких вариантов», — сказала Фрэнк. IBM построила свою вычислительную ИИ-систему на «голом железе» за счет Kubernetes и системы оркестровки контейнеров на базе Open Source, чтобы Watson мог работать в изолированной среде и соответствовать определенным требованиям производительности. Компания настолько поверила в Open Source, что в 2019 г. приобрела Red Hat, поставщика облачных ресурсов на базе Open Source. Теперь она предлагает гибридную мультиоблачную платформу, которая поощряет организации использовать облако и Open Source в качестве плацдарма для разработки приложений.

Тем не менее, полагаться исключительно на облако — не единственный способ освободиться от груза монолитных приложений. Организации могут интегрировать виртуализованные физические серверы и облачные платформы таким образом, чтобы им не пришлось полностью отказываться от набора онпремис-софта и в то же время заниматься модернизацией приложений, говорит Крейг Музилла, старший вице-президент подразделения Core Products and Cloud Services компании Red Hat.

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

Устранение разрыва в технических навыках

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

Однако в технических навыках существует явный разрыв. Компании должны упорно работать, чтобы привлечь и удержать таланты, и предлагать разработчикам те проекты, которые им интересны. Разработчики не боятся автоматизации, которая устраняет утомительные задачи документирования, освобождая время для разработки и модификации приложений, поэтому компании должны пойти им на встречу. Например, Infosys пытается сократить разрыв в навыках и воодушевить разработчиков, ротируя их между тремя рабочими группами: по основным ИТ-сервисам, облачной безопасности и новым технологиям, таким как API и блокчейн. «Это генерирует таланты и способствует повышению квалификации», — сказал Адья.

Подобного подхода придерживается и Red Hat, рекомендуя не привязывать разработчиков к одному виду деятельности. «Вы не можете сказать им, что теперь нужно учиться облакам. Это затормозит их развитие», — считает Музилла. Природа современной разработки приложений требует, чтобы небольшие команды занимались небольшими проектами и использовали для этого разнообразные навыки. «Если у вас есть небольшие проекты или части большого проекта, вы можете подключать к ним разных контрибуторов и задействовать различные наборы навыков», — добавил он.

Современные приложения: трансформируемые и адаптируемые

Вряд ли кто-то будет оспаривать тот факт, что современные приложения способны трансформировать разработку, выход релизов, продажи, обслуживание клиентов, управление персоналом и другие функции, которые делают организацию современной. Такие приложения стряхивают паутину с традиционных, но уже уходящих приложений, извлекая данные и ценные инсайты из изолированных, монолитных систем и тех областей, в которых, казалось бы, их не должно было быть. Они задействуют машинное обучение и другие технологии ИИ, а также блокчейн и IoT. Более того, сам факт создания такого приложения является свидетельством воплощения «современного» пути развития, основанного на автоматизированном процессе, включающем в себя Open Source, микросервисы, контейнеризацию и демократизацию задач среди разработчиков.

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

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


Источник: ITWeek