[spoiler]Раз в полгода ThoughtWorks публикует Technology Radar --анализ и прогноз развития наиболее важных ИТ-трендов. Давайте познакомимся с последним отчетом.
Главная пятерка трендов:
Мобильность -- появление нового поколения инструментов создания и тестирования надежных мобильных систем;
Общедоступная аналитика -- Большие данные не означают "Большие бюджеты";
Упрощение архитектур -- универсальные методы для создания ИТ-систем, развертывания, организации надежной работы и восстановления при сбоях;
Воспроизводимые среды -- стандартизация, автоматизация и скоординированное управление процессами создания, тестирования и промышленной эксплуатации систем;
Персистенсность данных (хранение состояния процесса) -- важность этого придется понять всем разработчикам, использующим NoSQL-системы.
Третий и четвертый тренды на первый взгляд можно было озвучить и десять лет назад, настолько они смотрятся условными и обтекаемыми, словно взяты из бессмысленных пресс-релизов. Эксперты ThoughtWorks не могут этого не понимать, но копают они весьма и весьма глубоко, приводя в подтверждение своих мнений конкретные решения.
Теперь познакомимся с каждой из четырех анализируемых сфер поподробнее.
Прикладные технологии.
Микросервисы -- зафиксирован всплеск интереса к этой технике проектирования распределенных систем. Причина этому в зрелости инструментария (например, Dropwizard -- Java-среда для создания мощных RESTful веб-сервисов) и соответствующих практик (например, декларативного описания), позволяющих отказаться от монолитных систем в пользу легких распределенных решений, которые характеризуются невысокой стоимостью владения. Микросервисы особо актуальны для долгосрочных (по меркам ИТ) проектов (жизненный цикл 3-5 лет). Соответственно, вырастет интерес к инструментам диспетчеризации и оркестровки.
Рекомендуется использовать язык разметки Edge Side Includes, созданный специально для сильно масштабируемых веб-архитектур (http://www.w3.org/TR/esi-lang) и в частности упрощающий кэширование, а также Varnish (http-акселератор), позволяющий неограниченно масштабировать архитектуру горизонтально.
Или например закрытые решения типа Content Delivery Networks.
Развертывание приложений часто связано с необходимостью множества ручных настроек. Одно из возможных решений -- конфигурирование DNS, о чем PC Week/RE недавно писал.
Шаблоны агрегирования хорошо помогают в организации модульности и структурности системы, однако они плохо раскладываются в таблицах реляционных СУБД. А вот NoSQL-системы типа документоориентированной MongoDB позволяют визуализировать агрегаты как документы, фактически мэппинг получается 1:1.
Развивается концепция непрерывной поставки (Continuous Delivery) программного продукта -- за счет автоматизации все больших частей этого процесса, в первую очередь работы каналов доставки. Именно на наличие автоматизированных pipelines в приобретаемых средствах разработки и сопровождения ПО, а также на их качественный суппорт эксперты рекомендуют обратить особое внимание.
В очередной раз упоминаются аджайлы, и хотя говорено на эту тему множество раз, современные ИТ-коллективы ставят очередные рекорды по объемам "незавершенки". В борьбе с ней, напоминают гуру из ThoughtWorks, хорошо помогают уже ставшие традиционными подходы типа канбана.