Отчет о тенденциях в архитектуре и дизайне программного обеспечения за 2021-2022 гг.

задняя часть Архитектура дизайн
Отчет о тенденциях в архитектуре и дизайне программного обеспечения за 2021-2022 гг.

"Что загорится в 2022 году? Чему научиться? Эта статья участвует«Поговорим о технологических тенденциях 2022 года»Требуют документов"

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

🤞 Персональная домашняя страница:@青城Sequencer Stone
🤞 Преимущества вентилятора:Добавить фан-базуОтвечайте на вопросы один на один, получайте бесплатные богатые шаблоны резюме, улучшайте учебные материалы и т. д. и станьте королем новой эры!

Key Takeaways

  • In a cloud-native world, architects are reprioritizing the -ilities they consider most important. Innovative architects are designing for resilience, observability, portability, and sustainability.
  • В мире облачных вычислений архитекторы пересматривают приоритеты того, что они считают наиболее важными. Архитекторы-новаторы проектируют с упором на устойчивость, наблюдаемость, мобильность и устойчивость.
  • Dapr and the Open Application Model are two ways to make building distributed systems easier, and it will be interesting to watch how they are adopted in the future.
  • Dapr и Open Application Model — это два способа упростить создание распределенных систем, и будет интересно посмотреть, как они будут приняты в будущем.
  • The pendulum seems to be coming to rest, after swinging to extremes between monoliths and microservices. As a result, architects are relying on well-established patterns and designs that focus on high cohesion and low coupling, regardless of the underlying technology.
  • Маятник, кажется, вот-вот остановится, качнувшись в крайности между монолитами и микросервисами. Таким образом, вне зависимости от лежащей в основе технологии, архитекторы полагаются на зрелые шаблоны и проекты, ориентированные на высокую связность и низкую связанность.
  • In fully-remote work environments, architects are finding new ways to communicate with their teams, and finding replacements for the water cooler chats which were useful for gathering knowledge.
  • В полностью удаленной рабочей среде архитекторы ищут новые способы общения со своими командами и ищут альтернативы смене чатов с водяным охлаждением, которые отлично подходят для сбора знаний.
  • The next generation of GraphQL features, notably GraphQL Federation and GraphQL Microservices, are showing where to go next after companies have strong adoption of GraphQL.
  • Следующее поколение функций GraphQL, особенно GraphQL Federation и GraphQL Microservices, показывают следующий шаг после того, как компании активно внедряют GraphQL.

Designing for ___

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

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

Проектирование с учетом отказоустойчивости жизненно важно для современных распределенных систем, где любой отдельный компонент может выйти из строя, а система в целом должна оставаться доступной.Во многих отношениях реализуемые идеи не новы — просто они становятся все более важными по мере того, как распределенные системы и архитектуры становятся все более распространенными. . Дэниел Брайант сослался на работу, проделанную Дэвидом Парнасом в 1970-х годах, и на более позднюю книгу Майкла Найгарда Release It!, as good sources for ideas regarding circuit breakers, timeouts, retries, and other fundamental requirements for a resilient system. What is new is finding ways to solve those problems across a system, such as using a cloud-native service mesh, or even building on a framework such as Dapr

Отказоустойчивость конструкции имеет решающее значение для современных распределенных систем, где любой отдельный компонент может выйти из строя, а вся система должна оставаться доступной. Во многих отношениях реализуемые идеи не новы — они просто становятся все более важными по мере того, как распределенные системы и модульные архитектуры становятся все более распространенными. Дэниел Брайант упоминает работу, проделанную Дэвидом Парнасом в 1970-х, и новую книгу Майкла Найгарда Release It! , как хороший источник идей о автоматических выключателях, тайм-аутах, повторных попытках и других основных требованиях к отказоустойчивым системам. Новый подход заключается в поиске способов решения этих проблем в системе, таких как использование локальной сети облачных сервисов или даже построение на такой платформе, как Dapr.

Correctly-built distributed systems

Тема микросервисов неуклонно перемещалась по графику тенденций и некоторое время была отнесена к категории поздних тенденций большинства, поскольку стало проще создавать распределенные системы. попытка решить все проблемы. В некоторых случаях это приводило к серьезным неудачам, например going back to a monolithКогда маятник перестает качаться, кажется, что мы, наконец, переходим к разумному подходу к большинству систем.

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

Some of the trends around building distributed systems, or modular monoliths, all come back to fundamental architectural principles, such as high cohesion and low coupling. Domain-Driven Design, while considered a late majority trend, continues to be emphasized by architects looking for good guidance on context mapping and identifying boundaries within a system. Similarly, the C4 model can be very useful to create a hierarchical set of architecture diagrams to help understand your system.

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

Data architecture

InfoQ is continuing to see innovation in the overlap between software architecture and data architecture. Data mesh, добавленный на график в прошлом году, в этом году остается новаторской тенденцией. К нему присоединяются шлюзы данных, которые чем-то похожи на шлюзы API, но сосредоточены на аспекте данных. , масштабирование, федерация и функции разработки на основе контрактов.

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

The role of the architect

Мы продолжаем смотреть на роль, которую архитекторы программного обеспечения играют в своих организациях. Помимо традиционных обязанностей «прямоугольники и стрелки», архитекторы служат техническими лидерами и наставниками для других членов команды. Архитекторы также должны иметь возможность общаться со многими аудиториями, описанными Грегор Хохпе как верхом наarchitect elevator— поговорить с техническим директором и другими руководителями, а затем отправиться в машинное отделение, чтобы поработать с разработчиками.

Мы продолжим уделять внимание роли, которую архитекторы программного обеспечения играют в своих организациях. В дополнение к традиционным обязанностям «прямоугольной формы» архитекторы служат техническими лидерами и наставниками для других членов команды. Архитекторы также должны иметь возможность взаимодействовать со многими аудиториями, что Грегор Хохпе называет подъемом в лифте архитектора — общением с техническим директором и другими руководителями, прежде чем отправиться в машинное отделение для работы с разработчиком.

For many teams, communication styles were very disrupted due to the pandemic and many companies adopting a long-term remote working strategy. This means architects have lost the ability to learn by osmosis simply because they could sit in the same room as the developers and overhear conversations. Where this has been helpful, it has led to more written communication, whether in IM chat rooms, or architecture decision records, and keeping those up to date because teams are regularly referring to them. The leading architects are finding ways to leverage the constraints of a fully remote team to their advantage, and creating better software designs because of it.

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

Other topics

Dapr and the Open Application Model (OAM) were both introduced by Microsoft in late 2019. OAM is a specification for defining cloud-native applications and focuses on the application, rather than the container or orchestrator. Similarly, Dapr is a framework that has pluggable components meant to make cloud-native development easier. Although Microsoft was involved in their creation, both are open source projects, work on any cloud provider, and Dapr may become a CNCF project. Both Dapr and OAM have yet to see major adoption and are therefore clearly innovator trends to keep an eye on.

И Dapr, и Open Application Model (OAM) были представлены Microsoft в конце 2019 года. OAM — это спецификация для определения облачных приложений, ориентированная на приложения, а не на контейнеры или оркестраторы. Точно так же Dapr — это платформа с подключаемыми компонентами, предназначенная для упрощения разработки собственного облака. Хотя Microsoft принимала участие в их создании, оба проекта с открытым исходным кодом, работающие на любом облачном провайдере, Dapr может стать проектом CNCF. Ни Dapr, ни OAM не получили широкого распространения, поэтому они являются очевидными инновационными тенденциями, за которыми стоит следить.

WebAssembly is another innovator trend. For architects, it will be interesting to see if it is used as just a supplement to web frameworks and mobile development, or if systems will be designed with WebAssembly in mind, and how that will manifest.

WebAssembly — еще одна инновационная тенденция. Архитекторам будет интересно посмотреть, будет ли он использоваться только в качестве дополнения к веб-фреймворкам и мобильной разработке, или система будет спроектирована с учетом WebAssembly, и как это будет реализовано.

A final note about GraphQL, which crossed the chasm on the trends graph last year. Since then, there has been innovation, particularly at Netflix, for the next-generation of GraphQL functionality, notably GraphQL Federation and GraphQL microservicesТак же, как разрастание, вызванное микросервисами, привело к появлению новых шаблонов для управления этим разрастанием, компаниям, которые вложили значительные средства в GraphQL, нужна федерация GraphQL, чтобы помочь справиться с новой сложностью.Это не проблема, с которой столкнется каждая компания. , но по-прежнему полезно знать и видеть, куда он пойдет в будущем.

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


Мальчик, ты не можешь видеть достаточно? нажмите на каменьПодробное описание, Просто нажмите и посмотрите, может быть, будут сюрпризы? Добро пожаловать в поддержкуНравится/подписывайтесь/комментируйте, ваша поддержка — моя самая большая мотивация для Gengwen, спасибо!