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 по-прежнему остается самой популярной библиотекой ИИ:
В 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).
12. Потоковая передача данных в реальном времени: Flink против публичных облачных сервисов
В 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 занял лидирующую позицию:
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.
В 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 миллиард приложений. Создание мобильных приложений — это огромный рынок в современной разработке ПО.
В настоящее время известно четыре способа разработки мобильных приложений:
- разработка платформозависимых приложений;
- разработка межплатформенных приложений,
- разработка гибридных приложений;
- разработка облачно-ориентированных приложений.
Разработка платформозависимых и межплатформенных приложений используется наиболее часто. Хотя разработка платформозависимых приложений является самой затратной (с точки зрения времени/ресурсов), она предлагает наибольшую гибкость. Именно поэтому ее предпочитают предприятия.
Разработка межплатформенных приложений позволяет использовать практически один и тот же код для 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 году разработчики и компании также будут применять одну из трех технологий в зависимости от конкретного случая использования.
Читайте также:
- 7 секретов для поддержания мотивации при изучении программирования
- Нативное будущее кроссплатформенной разработки
- 10 тенденций в разработке программного обеспечения в 2019 году
Читайте нас в Telegram, VK и Яндекс.Дзен
Перевод статьи Md Kamaruzzaman: 22 predictions about the Software Development trends in 2022