Модернизация приложений может показаться сложной задачей, но вы cможете добиться успеха, если будете следовать пяти шагам, представленным Скоттом Уиллером, руководителем практики компании Asperitas, на портале ITPro Today.
Девять из десяти ИТ-руководителей согласны с тем, что модернизация приложений — это сложно. Такие проблемы, как нехватка персонала, отсутствие поддержки со стороны руководства и неопределенность в отношении того, какие инструменты следует использовать — вот лишь некоторые из основных проблем модернизации, выявленных в ходе недавнего опроса ИТ-руководителей, проведенного компанией Asperitas. Они часто приводят к тому, что проекты модернизации приложений трудно начать и трудно поддерживать после их развертывания.
Это плохие новости. Хорошая новость заключается в том, что у этих проблем есть решения. При правильном подходе модернизация приложений не обязательно должна быть сопряжена с риском и неудачами.
Чтобы показать это, давайте рассмотрим пять основных шагов, которые предприятия могут предпринять для обеспечения успеха модернизации приложений. Как мы увидим, эти шаги затрагивают ключевые болевые точки, с которыми обычно сталкиваются организации, и помогают гарантировать, что модернизация приложений достигнет всех своих целей — от экономии затрат, ускорения вывода на рынок до обеспечения будущего бизнеса и не только.
Что такое модернизация приложений?
Прежде чем перейти к рассмотрению лучших практик, давайте определим, что такое «модернизация приложений». Это важно, потому что этот термин часто используется в ИТ, но не всегда имеет четкое определение.
Для меня модернизация приложений означает изменение способа производства и сопровождения ПО в организациях с целью достижения большей скорости, переносимости и надежности. Изменение базовых технологий приложений — например, переход на архитектуру микросервисов или развертывание с использованием бессерверных функций — может быть частью модернизации приложений. Но это не является ее основополагающим компонентом.
Напротив, то, что в конечном итоге определяет модернизацию приложений, — это способ доставки и управления ПО, а не его архитектура или способ размещения. Простое внедрение новейших технологий не приведет к успеху, если вы также не модернизируете парадигму, определяющую доставку и управление приложениями.
Пять шагов на пути к успеху модернизации приложений
Чтобы максимально повысить шансы на успешную модернизацию приложений на всех этапах процесса — от разработки и тестирования, до развертывания и текущего обслуживания — необходимо комплексно подойти к вопросу о том, что входит в процесс доставки и управления приложениями, а затем найти способы модернизировать свой подход.
1. Автоматизация тестирования с помощью Test Harness
Одна из причин, по которой проекты модернизации приложений могут пойти не так, как хотелось бы, заключается в том, что они создают проблемы со стабильностью или нарушают критически важную функциональность, от которой зависят конечные пользователи. Например, когда вы переходите на новую архитектуру хостинга или начинаете внедрять новые функции раз в неделю, а не раз в год, вы рискуете допустить ошибки, которые приведут к возникновению проблем, влияющих на пользователей.
Вот почему так важно иметь в наличии автоматизированную инфраструктуру тестирования (test harness). Она позволяет автоматизировать тестирование вашего приложения, чтобы вы могли находить недостатки на ранней стадии и часто в процессе доставки ПО. Благодаря этому вы сможете доставлять конечным пользователям стабильное, проверенное ПО.
Автоматизация тестирования также помогает решить кадровые проблемы, которые, по результатам нашего исследования, являются основным препятствием для модернизации приложений. Если вы сможете автоматизировать тесты, вы сможете быстро создавать и внедрять качественное ПО, даже если у вас нет большого штата сотрудников для проверки релизов-кандидатов перед развертыванием.
2. Сквозная автоматизация
Автоматизировать необходимо не только тесты. Организации должны стремиться автоматизировать каждый этап процесса доставки и управления приложениями, начиная от сборки, развертывания и заканчивая управлением инфраструктурой хостинга.
Полная автоматизация жизненного цикла доставки приложений, которая может быть достигнута с помощью таких инструментов, как CI/CD, и таких подходов, как неизменяемая инфраструктура, не только позволяет организациям делать больше при меньшем количестве сотрудников, но и уменьшает опасения руководства по поводу того, что модернизация приложений может привести к проблемам стабильности. Это также может помочь снизить затраты, что является еще одним способом сделать руководителей довольными.
3. Фокус на переносимости
Слишком много проектов модернизации приложений не достигают своего полного потенциала из-за того, что команды сосредотачиваются на узкой цели миграции на новую модель хостинга или архитектуру, не убедившись, что это соответствует более широкой цели повышения переносимости приложений.
Это ошибка, потому что, в конце концов, главное в контексте современного ПО — это переносимость. Приложения, разработанные на основе таких принципов, как манифест «двенадцатифакторного приложения» (Twelve-Factor App), могут быть размещены как онпремис, так и в любом облаке. Они могут работать на Windows- или Linux-хостах. Их можно быстро перенести в новую среду, не прибегая к капитальному ремонту.
Делая переносимость главным приоритетом, организации защищают свои приложения от будущих изменений в бизнесе, которые они могут не предвидеть на момент модернизации приложений. В этом отношении переносимость помогает обеспечить долгосрочный успех, что гораздо важнее, чем внедрение актуальной технологии, которая не освобождает вас от зависимости от определенной платформы хостинга или затрудняет миграцию в новую среду, когда приходит время.
4. Переосмысление управления приложениями
Аналогичным образом, успешная модернизация приложений означает изменение способа управления приложениями, а не только технологий, лежащих в их основе. Вашей целью должно стать объявление войны ручным согласованиям и ручным процессам, чтобы приложения можно было разрабатывать, развертывать и обновлять на быстрой основе с минимальным трением.
Конечно, вы также должны обеспечить наличие надлежащих ограждений для предотвращения изменений конфигурации или ошибок, которые могут привести к проблемам стабильности и безопасности. Для этого необходимо установить автоматизированные средства контроля, которые, например, могут блокировать сетевые изменения приложений, открывающие доступ к ПО через Интернет, или изменения разрешений, предоставляющие доступ пользователям, которые не должны его иметь.
Автоматизируя подобные меры защиты, вы обеспечиваете бесперебойную доставку приложений без ущерба для безопасности и стабильности. Это еще один способ порадовать руководство отдачей от инвестиций в модернизацию приложений, обеспечив при этом положительный опыт конечных пользователей.
5. Осознание того, чем модернизация приложений не является
И последнее, но не менее важное правило, которое, возможно, является самым важным для бизнеса, — это избегать неправильных представлений о том, что такое модернизация приложений.
Как уже отмечалось, организации слишком часто полагают, что модернизация обязательно означает внедрение новых броских технологий — таких как бессерверные функции, контейнеры или микросервисы. Часто эти технологии являются частью модернизации. Но они не определяют модернизацию, и в некоторых случаях модернизация не требует перехода к новому типу архитектуры приложений или новой парадигме хостинга.
Вместо этого речь идет об изменении способа доставки и управления приложением. О максимально возможной автоматизации, развертывании обновлений несколько раз в месяц вместо одного-двух раз в год и обеспечении достаточной переносимости приложений для поддержки меняющихся бизнес-целей в долгосрочной перспективе. Если вы можете сделать все это со своим приложением, значит, вы его модернизировали, независимо от того, какие технологии лежат в его основе.
Заключение
Достижение успеха в модернизации приложений может показаться сложной задачей. Но на самом деле все сводится к простой концепции — правильному мышлению. Ваша цель должна заключаться в определении того, что бизнес должен получить от модернизированного приложения, а затем внедрить процессы, поддерживающие эти цели. Изменение архитектуры ПО или хостинга может быть средством достижения цели, но не самой целью.