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



Книга Тенденции в области программного обеспечения в 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 году разработчики и компании также будут применять одну из трех технологий в зависимости от конкретного случая использования.



390   0  

Comments

    Ничего не найдено.