Новые требования к корпоративным системам

Светлана Комарова

Светлана Комарова

Автор статьи. Системный администратор, Oracle DBA. Информационные технологии, интернет, телеком. Подробнее.

Современные требования к корпоративным системам и JavaК современному корпоративному ПО предъявляется много новых требований. Уже недостаточно лишь разработать некий программный продукт и развернуть его на сервере приложений. Впрочем, этого никогда не было достаточно.

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

Что в этом контексте означает быстро меняться? В чем это выражается? Какие методы и технологии этому способствуют?

 

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

При разработке программного обеспечения основная часть этих вопросов касается непрерывного развертывания и автоматизации. Новое программное обе­спечение должно быть разработано, протестировано и поставлено автоматическим, быстрым, надежным и воспроизводимым способом. Надежный автоматизирован­ный процесс обеспечивает не только более быстрые изменения, но и в конечном счете более высокое качество. Автоматический контроль качества, например выполнение программных тестов, — часть технологического процесса. В совре­менной разработке ПО непрерывное развертывание, автоматизация и надлежащее тестирование являются одними из наиболее важных принципов.

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

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

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

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

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

 

Современный способ построения корпоративных систем

Посмотрим, как разрабатываются корпоративные программные комплексы.

Стремясь удовлетворить потребности реальных клиентов, мы должны спро­сить себя: каково назначение приложения, которое мы намерены разработать? Прежде чем углубляться в технические детали, необходимо прояснить мотивы и цели создания корпоративных программных систем, иначе получится раз­работка ради разработки. К сожалению, так происходит слишком часто. Сосре­доточив внимание на бизнес-логике и принципах проблемно-ориентированного проектирования, как это прекрасно описано в книге Эрика Эванса (Eric Evans), мы гарантируем, что создаваемое программное обеспечение будет отвечать кор­поративным требованиям.

Только после того, как назначение и задачи приложения станут понятны всем заинтересованным сторонам, можно перейти к техническим деталям. Группы разработчиков должны выбирать те методики и технологии, которые позволят не только эффективно реализовывать бизнес-сценарии использования продукта, но и уменьшить объем работы и издержки. У разработчиков должна быть возмож­ность сосредоточиться на бизнесе, а не на операционной среде или технологии. Хорошая операционная среда тихо и незаметно помогает реализовывать бизнес­логику, не требуя внимания разработчика.

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


 

Вас заинтересует / Intresting for you:

Назначение корпоративных прило...
Назначение корпоративных прило... 1211 просмотров Валерий Павлюков Wed, 02 Jan 2019, 11:41:10
Значение Java EE для построени...
Значение Java EE для построени... 1456 просмотров Светлана Комарова Fri, 14 Dec 2018, 06:32:09
Интерин Promis ЦКБ - медицинск...
Интерин Promis ЦКБ - медицинск... 1428 просмотров Александров Попков Mon, 18 Mar 2019, 06:58:13
Разработка архитектуры информа...
Разработка архитектуры информа... 2610 просмотров Administrator SU Thu, 19 Jul 2018, 15:36:26
Войдите чтобы комментировать