Тенденции в области программного обеспечения в 2022 году: 22 прогноза

1. Централизованная инфраструктура: ориентация на облако

Публичное облако продолжит вытеснять региональные центры обработки данных. В ближайшие годы оно станет основной инфраструктурой для предприятий, правительств и стартапов.

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

По прогнозам Gartner, в 2022 году доходы публичного облака вырастут на 16%.

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

2. Децентрализованная инфраструктура: граничные вычисления

В отличие от публичного облака, обеспечивающего хранилище, вычислительную мощность и ИИ/МО в центральном месте (зоне доступности, регионе), граничные вычисления позволяют разместить все это рядом с клиентом.

Сценарии, в которых необходимы граничные вычисления:

  • доступ с низким значением задержки (гейминг);
  • плохая пропускная способность сети (оффшорные сайты);
  • отсутствие сети;
  • регуляторные требования;
  • условия использования в реальном времени (техсредства с выходом в интернет);
  • умные и мощные устройства (интернет вещей).

С развитием 5G, Web 3.0 и других инновационных технологий граничные вычисления получат широкое распространение в 2022 и последующие годы. Кроме того, в ближайшее время граничные вычисления будут активно внедряться в розничной торговле.

Поставщики публичного облака  —  AWS, Azure и GCP  —  также предлагают множество сервисов для граничных вычислений, такие как AWS Snow Family, AWS IoT Greengrass, Azure Stack Edge, Azure Edge Zone и Google Distributed Cloud.

Новая инициатива State of the Edge призвана стандартизировать граничные вычисления.

3. Публичное облако: мультиоблачность

Одна из основных проблем внедрения публичного облака  —  привязка к поставщику. Перенеся инфраструктуру, хранилище и вычисления к провайдеру публичного облака, вы становитесь зависимым от него. Чтобы избежать этого, многие предприятия используют услуги нескольких провайдеров. Однако это приводит к зависимости от нескольких поставщиков. Если вы не можете использовать одно публичное облако (например, CosmosDB, AWS S3 и BigTable) в другом публичном облаке, вам не избежать зависимости от поставщика.

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

  • MinIO (совместим с S3);
  • Aviatrix (облачно-ориентированная сеть);
  • Volterra (сервис распределенных облачных вычислений);
  • LightOS (облачно-ориентированное хранилище).

Кроме того, Google работает над внедрением своих популярных сервисов (Big Query) в другие публичные облака (AWS и Azure).

4. Контейнер: Docker потеснит Kubernetes

Контейнеризация  —  важнейшая технология современной ИТ-индустрии. И платформа Kubernetes сыграла огромную роль в ее популяризации и демократизации. Благодаря огромным усилиям, тщательному проектированию и реализации Kubernetes сегодня  —  надежная технология. А благодаря дальновидному дизайну (операции, объем), ее можно использовать во многих случаях без серьезных изменений.

Однако в ближайшие годы Kubernetes будет использоваться все реже, хоть и останется двигателем современной разработки ПО. При это большее внимание будет уделяться новым способам внедрения и использования Kubernetes, а ее продвижение будет замедляться из-за зрелости технологии.

Как и Kubernetes, Docker также сыграла ключевую роль в распространении контейнеризации. К сожалению, компании не удалось монетизировать Docker в период его расцвета. Недавно она объявила о возможности подписаться на новую модель с 2022 года.

5. Кибербезопасность: рост важности безопасности

Кибербезопасность  —  больная тема для стартапов и среднего бизнеса. Многие не могут обеспечить ее должным образом из-за нехватки ресурсов. Только крупные предприятия в состоянии позволить себе специализированную службу безопасности.

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

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

Еще одна проблема  —  текущий метод разработки Open Source (Открытое ПО). Кто-то из разработчиков, часто в свое свободное время, создает крайне важный модуль/библиотеку. К сожалению, взлом этого модуля/библиотеки затрагивает почти все компании мира. Одной из резонансных стала проблема уязвимости log4j, затронувшая почти половину ИТ-компаний мира.

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

6. Блокчейн: развитие за пределами криптовалюты

Блокчейн часто связывают с криптовалютой. Каждый раз, когда в криптовалютной сфере выявляется мошенничество, блокчейн подвергается критике.

Технология распределенных реестров (блокчейн) стала одной из самых прорывных в 21-м веке. Криптовалюта является наиболее известным примером ее использования, но блокчейн  —  это гораздо больше, чем просто криптовалюта. Он может изменить многие сферы и повлиять на нашу повседневную жизнь.

В 2021 году мы увидели новый и очень популярный вариант использования блокчейна: NFT (невзаимозаменяемые токены). В настоящее время NFT чаще всего используются в области цифрового искусства, но в 2022 году найдут и другие применения.

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

Блокчейн часто критикуют за то, что он потребляет много энергии. Поэтому многие компании планируют перейти от энергоемкой модели proof-of-work к энергосберегающей proof-of-stake. Эфириум, популярный и широко используемый блокчейн, перейдет на proof-of-stake в 2022 году.

7. Машинное обучение: AutoML и No-Code AI

Машинное обучение (МО)  —  еще одна прорывная технология, имеющая огромный успех в последние годы. Однако ее востребованность привела к огромному дефициту МО-специалистов. Кроме того, многие компании хотят внедрить машинное обучение в ограниченном объеме, не нанимая дорогостоящего эксперта на полный рабочий день.

AutoML (автоматическое машинное обучение)  —  новая инициатива по автоматизации МО в ограниченном объеме без привлечения экспертов. Для большинства случаев использования МО требуется специалист по машинному обучению. Но иногда можно использовать AutoML как дополнение к МО-экспертам (или в качестве их замены). В некотором смысле это напоминает сервисы Low Code и No Code.

В 2022 году мы увидим еще большее внедрение и рост AutoML, поскольку эта технология обещает рынку огромную прибыль.

AutoML  —  это часть более крупных тенденций No-Code AI (бескодового искусственного интеллекта). No-Code AI также ждет всплеск популярности и внедрения в 2022 году.

8. ИИ: ограниченный искусственный интеллект

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

Одна из заветных целей  —  разработка “общего интеллекта”, когда ИИ сможет стать таким же умным, как человек (или даже еще умнее). Мы все еще далеки от этого, но ИИ станет больше использоваться в “ограниченном искусственном интеллекте”, где ИИ-агенты будут помогать/поддерживать человека в определенной области. В 2022 году ограниченный ИИ будет чаще применяться во многих некритичных сферах (например, в Call-центрах и ИТ).

9. Библиотеки глубокого обучения: Tensor Flow

Существует множество библиотек ИИ, но две из них  —  TensorFlow от Google и PyTorch от Facebook  —  выделяются на общем фоне.

После обновления TensorFlow 2.0 может похвастаться динамическим графом, адаптированностью к Python и многим другим. Он также предлагает Tensorflow.js для использования ИИ-библиотеки в браузере. Еще одно новшество  —  Tensorflow Lite  —  позволяет развернуть Tensorflow на мобильных и веб-приложениях. Также появилась Tensorflow Extended (TFX)  —  комплексная платформа для развертывания производственных конвейеров МО.

PyTorch  —  вторая доминирующая ИИ-библиотека, представившая динамический граф и Python как премиум-проекты. Компания выпустила PyTorch Mobile для использования PyTorch на устройствах Android/iOS. Она также предлагает более дружественный к разработчикам PyTorch Profiler для отладки крупномасштабных ИИ-моделей.

TensorFlow по-прежнему остается самой популярной библиотекой ИИ:

Источник: опрос разработчиков Stack Overflow в 2021 году

В 2022 году Tensorflow останется доминирующей библиотекой ИИ благодаря лучшей визуализации и массовому внедрению.

10. Базы данных: многомодельные и многоцелевые базы данных

В последние несколько лет наблюдалась тенденция применения специальной базы данных, соответствующей конкретному случаю использования:

  • РСУБД для транзакционных операций со структурированными данными;
  • база данных с широкими столбцами для распределенных баз данных с низкой задержкой;
  • хранилище ключей-значений для распределенного кэша;
  • графовая база данных для исключительно реляционных данных;
  • база данных документов для транзакционных случаев использования с полуструктурированными данными;
  • поисковые системы для полнотекстового и расширенного поиска (например, поиск по местоположению);
  • распределенный SQL для распределенной базы данных с низкой задержкой и гарантией транзакций;
  • база данных OLAP для хранилищ данных и аналитики данных.

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

  • PostgreSQL (многомодельная БД);
  • Azure CosmosDB (многомодельная, многоцелевая БД);
  • SingleStore (OLAP и OLTP).

В 2022 году появятся и другие базы данных, предлагающие многомодельность и многоцелевое использование.

11. Вычисления над данными большого объема: Spark против публичных облачных сервисов

Apache Spark практически вытеснил экосистему Hadoop в качестве стандартной платформы для вычислений над данными большого объема. Spark также предлагает потоковую обработку в режиме, близком к реальному времени, с помощью того же API.

В последние годы большую популярность приобрел Apache Beam, предоставляющий унифицированную модель программирования для определения и выполнения конвейера обработки данных: пакетной и потоковой. Cloud Dataflow от Google  —  это мощный сервис, реализующий Apache Beam. Кроме того, Azure и AWS предлагают услуги пакетной обработки данных.

Тем, кто не хочет привязываться к конкретному поставщику облака, следует использовать либо Spark, либо Cloud Dataflow (GCP).

В 90% случаев достаточно потоковой передачи данных в близком к реальному времени. Однако потоковая передача в реальном времени может потребоваться в таких случаях, как:

  • обнаружение мошенничества;
  • выявление аномалий в системе безопасности;
  • оповещение на основе правил;
  • специальный анализ данных в реальном времени.

В области потоковой передачи данных в реальном времени Apache Flink является безусловным лидером рынка. Он также поддерживает Apache Beam API и предлагает независящие от поставщиков решения для обработки потоковых данных в реальном времени.

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

13. DevOps: аналитическая наблюдаемость для современного DevOps

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

Наряду с традиционными формами наблюдаемости (логгированием, мониторингом, трассировкой), также понадобятся данные телеметрии и топологии кластера Kubernetes. Кроме того, ИИ начнет использоваться с базой данных временных рядов для разработки интеллектуальной платформы Observability. Аналитическая, облачно-ориентированная наблюдаемость продолжит развиваться в 2022 и последующие годы.

14. Быстрая разработка приложений: Low Code и No Code (LCNC)

Инициатива LCNC была направлена на упрощение создания веб-/мобильных приложений без участия разработчиков (или с сокращением команды). В ближайшие годы для создания приложений все еще будут нужны разработчики. Но также существует множество фреймворков/инструментов LCNC, способных значительно ускорить разработку приложений.

В 2022 году использование LCNC участится в следующих случаях:

  • разработка веб-/мобильных приложений;
  • сайты и целевые страницы;
  • интеллектуальные чат-боты с использованием диалогового потока;
  • электронная коммерция;
  • машинное обучение;
  • искусственный интеллект (видео, аудио, изображения);
  • управление рабочими процессами;
  • автоматизация процессов с помощью RPA.

15. Архитектура программного обеспечения: микросервисы и микрофронтенды для предприятий

Сейчас есть 3 варианта разработки бэкенда для приложений: (модульный) монолит, микросервис и внесерверный. Все они имеют свои сильные и слабые стороны, блестяще подходят для определенных случаев использования и не работают в других.

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

Для фронтенда приложений есть 2 варианта разработки: монолит и микрофронтенд. Мы часто преуменьшаем сложность фронтенда для приложений, поскольку большинство архитекторов являются специалистами по разработке бэкендов. Но фронтенд-монолиты так же плохи, как и бэкенд-монолиты. Поэтому для корпоративной разработки фронтендов в 2022 году предпочтительной архитектурой будет микрофронтенд. Хорошей новостью является то, что все популярные JavaScript-фреймворки для фронтендов поддерживают микрофронтенды.

16. Разработка программного обеспечения: ИИ как помощник для разработчиков и QA

ИИ можно рассматривать как помощника для человека. Он может взять на себя выполнение утомительных, предсказуемых, повторяющихся и трудных задач, чтобы человек сосредоточился на более интеллектуальных проблемах.

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

Несколько ИИ-помощников  —  Tabnine, GitHub Copilot и Codota  —  способны автоматически генерировать исходный код для разработчиков. Пока они помогают лишь на ранней стадии разработки ПО. Однако в 2022 году они наверняка созреют для того, чтобы ускорить процесс создания и реализации софта.

17. Программирование (мейнстримное): Python

В последние годы мы наблюдаем стремительное распространение Python как языка программирования общего назначения. В рейтинге популярных языков от сайта TIOBE Python занял лидирующую позицию:

Источник: TIOBE

Python был разработан Гвидо ван Россумом в качестве хобби-проекта для снижения барьера в программировании. Это краткий, интерпретируемый, динамичный, лаконичный и мощный язык. Но главным его преимуществом является простота и низкий барьер для входа. Python  —  язык программирования номер один в области науки о данных и инженерии данных. Кроме того, он является языком программирования номер два или номер три во многих других областях.

В 2022 году Python продолжит доминировать, так как появится много новых разработчиков, которые, вероятно, начнут свой путь с него. Тем не менее, чтобы правильно выбрать язык, стоит отталкиваться от выбранной сферы деятельности. Вот несколько советов:

  • веб-разработка  —  JavaScript, TypeScript;
  • бэкенд-разработка  —  Java, Golang, JavaScript, TypeScript;
  • Android-разработка  —  Kotlin;
  • разработка iOS  —  Swift;
  • системное программирование  —  C, C++, Rust, Golang;
  • Data Science/Data Engineering  —  Python.

Однако если вы начинающий разработчик, изучающий новый язык программирования, можете стартовать с Python.

18. Программирование (корпоративное): Java

Долгое время Java была языком программирования номер один. Это интерпретируемый, умеренно сложный, многопоточный, мощный язык с автоматическим управлением памяти. Более того, JVM  —  проверенная в боях, мощная, зрелая и одна из лучших виртуальных машин в отрасли. Она отлично подходила для больших, монолитных корпоративных приложений.

К сожалению, с появлением микросервисов и внесерверных приложений JVM стала невыгодной, поскольку кажется слишком большой (большой объем памяти) и медленной (долгое время запуска). Кроме того, в современной контейнерной разработке контейнер Java имеет ограниченные ресурсы. В результате люди начали использовать маленькие и быстрые языки, такие как Node.js и Golang в Cloud-Native разработке.

Однако Java-сообщество предложило современную версию Java с GraalVM. Этот JDK-комплект включает в себя AOT-компилятор, полиглотное программирование. Более того, он компилируется в прямой нативный код и отлично подходит для облачно-ориентированной разработки (оптимизирован под низкое потребление памяти, время первого запуска). В Java-17 наконец-то появилось множество современных функций (например, соответствие паттерну), что делает Java привлекательной для разработчиков.

Благодаря строгой и непревзойденной обратной совместимости, GraalVM, последним изменениям, Java станет языком программирования номер один для разработки корпоративного ПО в 2022 году.

19. Клиентские веб-фреймворки: React и Angular для предприятий

В современной разработке веб-приложений лидируют фреймворки на основе JavaScript/TypeScript, и эта тенденция сохранится в 2022 году. Существует множество веб-фреймворков на JavaScript/TypeScript, но два фреймворка выделяются среди остальных  —  React от Facebook и Angular (Angular 2+) от Google.

React  —  самый популярный, инновационный, гибкий и SEO-дружественный фреймворк. Angular  —  это жестко настроенный, полный, модульный и безопасный фреймворк со строгими правилами конфигурации. Angular также является фреймворком с “включенными батареями” для разработки веб-приложений корпоративного уровня с мощным CLI.

Источник: NPM Trends

В 2022 году React и Angular также продолжат лидировать в веб-разработке. Хотя Vue.js является самым популярным фреймворком, он не получит массового распространения в отрасли из-за проблем с безопасностью и слишком большой зависимости от одного человека  —  Эвана Ю.

20. Серверные фреймворки (Java): нативные фреймворки для микросервисов и внесерверных приложений

Spring MVC/Spring Boot является наиболее распространенным серверным фреймворком на Java. Spring использует традиционный OpenJDK и постепенно теряет популярность в облачно-ориентированной Java-разработке.

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

Наконец компания Spring объявила о выпуске Spring Native, который будет использовать GraalVM для облачно-ориентированной разработки. Он все еще является экспериментальным и будет выпущен с релизом Spring 6 (октябрь 2022 года). Одним из преимуществ Spring Native является то, что вы можете преобразовывать проекты Spring MVC в проекты Spring Native без какой-либо/минимальной переработки кода.

Таким образом, если вы разрабатываете облачно-ориентированные Java-приложения в 2022 году, рассмотрите возможность использования одного из Java Native фреймворков. Однако для монолитной Java-разработки можете по-прежнему использовать традиционный (OpenJDK) фреймворк (например, Spring MVC).

21. Разработка приложений: нативные приложения для большей гибкости

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

Источник: Statista

В настоящее время известно четыре способа разработки мобильных приложений:

  • разработка платформозависимых приложений;
  • разработка межплатформенных приложений,
  • разработка гибридных приложений;
  • разработка облачно-ориентированных приложений.

Разработка платформозависимых и межплатформенных приложений используется наиболее часто. Хотя разработка платформозависимых приложений является самой затратной (с точки зрения времени/ресурсов), она предлагает наибольшую гибкость. Именно поэтому ее предпочитают предприятия.

Разработка межплатформенных приложений позволяет использовать практически один и тот же код для iOS/Android. Ее предпочитают стартапы, которые, закрывая глаза на меньшую гибкость разработки, ценят ее оперативность и более низкую стоимость.

В 2022 году разработка платформозависимых приложений будет лидировать, поскольку разработка межплатформенных приложений уступает ей в гибкости.

22. Технология API: REST, gRPC и GraphQL

Современная разработка ПО часто является API-управляемой. Клиентские приложения (веб-приложения, мобильные приложения) взаимодействуют с бэкенд-приложениями через API-вызовы. Бэкенд-приложения также взаимодействуют друг с другом посредством API-вызовов. Связь между сервисами  —  классика разработки ПО, и множество технологий способны удовлетворить это требование. Но среди них три выделяются на фоне остальных: REST, gRPC и GraphQL.

REST  —  самая давняя из перечисленных технологий, разработанная в 2000 году. Она использует World Wide Web и технологию HTTP для связи клиент-сервер. Она является наиболее зрелой и широко используемой.

gRPC создана разработчиками Google как API для связи между серверами, основанный на старой технологии RPC (Remote Procedure Call). Здесь каждый запрос структурирован как вызов функции. В отличие от REST, который использует текстовый формат (например, JSON, XML) для передачи сообщений, в gRPC применяется двоичный формат на основе буфера протокола. В результате gRPC эффективнее и быстрее для связи между сервисами, чем REST.

При сложной структуре данных для связи между веб-клиентом и сервером требуется много обходов. Чтобы смягчить эту проблему, в 2015 году Facebook разработал API GraphQL. В GraphQL каждый клиент может определить форму структуры данных для конкретного случая использования и получить сразу все данные.

Как видно из вышеизложенного, все три технологии API (REST, gRPC, GraphQL) имеют свои сценарии использования, в которых преуспевают, чего нельзя сказать о внештатных ситуациях. В 2022 году разработчики и компании также будут применять одну из трех технологий в зависимости от конкретного случая использования.

Читайте также:

Читайте нас в TelegramVK и Яндекс.Дзен


Перевод статьи Md Kamaruzzaman: 22 predictions about the Software Development trends in 2022

Предыдущая статьяПроектирование базы кода API GraphQL в Node.js
Следующая статьяКак работать с большими наборами данных в Python: 3 способа