Устранение сложности путем стандартизации с использованием платформенного подхода — это способ затормозить цикл сложности, пишет на портале Network Computing Лори Маквитти, главный технический евангелист в офисе технического директора компании F5 Networks.

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

Сложность — не новинка. У нас есть пример нескольких поколений языков программирования, чтобы доказать это. Количество людей, которые понимают и могут использовать возможности языка ассемблер, например, сокращается. Исследование Stack Overflow «2023 Developer Survey» показало, что опыт работы с ассемблером имеют 5,43% из 90 тыс. респондентов. По сравнению с 63,61%, знакомыми с JavaScript, или даже с 49,28%, имеющими опыт работы с Python, это число невелико.

На самом деле, глядя на рейтинг языков программирования, можно увидеть цикл сложности в действии. В самом низу находятся ранние языки, такие как ассемблер. Продвигаясь вверх по стеку, вы встретите Cи, C#, Python и JavaScript. Это как пройтись по эволюционной шкале языков программирования.

Каждое поколение языков разрабатывается для устранения некоторых сложностей, присущих его предшественнику. Java попытался устранить ужасы необузданного манипулирования памятью с помощью указателей, присущие Cи и C++, абстрагировав управление памятью и доступ к ней.

Абстрагирование. Это ключевой момент, потому что почти аксиома, что технология решает проблему сложности, абстрагируясь от нее.

Ее не удаляют, ее просто перемещают. Сложность все равно остается, скрытая под более простым интерфейсом.

API и цикл сложности

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

Сложность была абстрагирована от вас и возложена на систему и ее разработчиков.

Звучит здорово, пока что-то не пойдет не так. А что-то пойдет не так, этого тоже не избежать. В Zero Trust есть принцип «предполагай нарушение», и в инфраструктуре Zero Touch (а именно к этому движется индустрия) должен быть аналогичный принцип — «предполагай отказ».

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

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

Абстракции в виде решений и сервисов — часть естественного цикла сложности.

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

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

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

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

Вы не можете остановить цикл. Но вы можете замедлить его, чтобы он не захлестнул вас.