laitimes

InfoQ Trends 2022: Architecture and Design

Author | Thomas Betts, Eran Stiller, Vasco Veloso et al

Translated by | Hirakawa

Planning | Ding Xiaoyun

InfoQ Trends 2022: Architecture and Design

Each year, InfoQ editors discuss what we've observed across the software development landscape and produce trend reports, each with its own adoption graph. This helps the editorial team focus the report on innovative technologies and ideas, while also giving our readers a global view of the topics that need to be focused on.

The report consists of two main parts. The first part is the written report you're reading, which includes a trend graph and a detailed description of individual new or changed entries over the past year, as well as a general analysis by InfoQ editors.

The second part of the report is an episode on the InfoQ podcast (https://www.infoq.com/podcasts/architecture-trends-report-2022/). Interested readers can listen to some of the editors' conversations, as well as some anecdotes from our panel of experts.

Trend chart updates

In 2021, we looked at many ways architects can implement their designs, taking into account the main "non-functional needs" (-ilities). This year, we added "Security by Design" to the list and considered it in the early adoption phase. Security has always been a consideration, and it is increasingly important to consider security issues early and repeatedly when designing a system and its components.

Architecture may not be part of the ternary hybrid word DevSecOps, but it is an underlying building block of the idea. There are also many similarities between cybersecurity and software architecture, which we discussed with Maxime Lamothe-Brassard in the InfoQ podcast.

We considered adding "scalability design," but ultimately decided that this information could be captured from "elastic design" and other trends toward scalability. In the second year of the pandemic, online service consumption continues to grow, and businesses must be able to scale up to meet demand.

eBPF, or extended Berkeley packet filters, is a way to program the Linux kernel. It allows developers to add functionality to the operating system at runtime. We have embraced eBPF as an innovative trend and will be observing its adoption in the coming years. Liz Rice gave a good overview of the technology in a recent InfoQ podcast.

Replace "next-generation GraphQL" with "GraphQL Federation" because it is the most important work companies have done on top of their existing GraphQL implementations.

The "Data Gateway" was removed and replaced with "Data + Schema". In addition, "Architect Elevator" was replaced with "Architectural Decision Record". These changes are discussed in detail below.

Both Dapr and WebAssembly have gone from innovation to early adoption.

Several entries were removed because they had not been adopted and there was not enough innovation in the past few years, including the Open Application Model (OAM) and RSocket & Reactive Streams.

Data + schema

We see a change from data being considered only at the system storage or transport layer to data becoming an element of the system definition. This is especially evident in AI/ML systems. These systems are built on data, and the same is true in design patterns like event sources. Sometimes, it manifests itself as a well-defined concept, such as a data grid, which we will continue to focus on as an independent innovation trend. More often than not, architects just think differently about data, so we've added "data + architecture" to this year's trend chart.

In an interview with the InfoQ podcast, Neal Ford and Mark Richards talk about the need to include a data-related chapter in their new book, Software Architecture: the Hard Parts. Neal says:

We wanted to make sure we provided a more comprehensive picture because we strongly believe that data plus architecture will be one of the topics that will be a high-profile topic in the coming years. That's the subject of a lot of the professional work we're doing right now — managing this relationship and making it a smooth one requires collaboration between dbA and architects, and making these practices what we're accustomed to in architecture and design.

Data + architecture includes some search engine-friendly terminology, such as the data gateway that was replaced by it on trend charts. It also includes concepts such as data quality, as well as attempts to address the "How do we ensure that the data we use is correct?" How do we know if it's in line with our expectations? "Tools for this problem. This problem is not addressed and its consequences can be catastrophic.

InfoQ Editor Eran Stiller works at Badook and considers data quality issues in his work. His views on this issue are as follows:

Today's companies increasingly rely on artificial intelligence and machine learning algorithms. They use these algorithms to improve customer experiences, predict sales and inventory levels, and gain valuable insights into their business. In some cases, they even make decisions completely automated without human intervention. These algorithms rely on data. If the data is good, the model built with it is available. Unfortunately, our data changes over time and its quality declines. Data collection errors, data pipelines can inadvertently wreak havoc on our data, and assumptions we made about data may no longer work over time, with potentially disastrous business consequences.

Real estate firm Zillow, for example, recently wrote down more than $500 million because the data model it uses to predict house prices and drive its business decisions fails to adapt to changing realities.

In addition, regulators around the world, such as the European Union, are regulating how AI algorithms are created and used. Recently, the U.S. Congress introduced a similar Algorithmic Accountability Act. A key part of these regulations will be to ensure that the data used to derive the algorithm is legitimate.

As a result, I predict that data quality and reliability will become a growing topic of concern for most, if not all, tech companies. Just like testing code, we should test and validate our data to make sure it meets our expectations. If we don't, we may wake up one morning and put our business strategy above wrong predictions, or worse, make catastrophic, fully automated financial decisions that could cost us billions of dollars. I believe that no one wants to be in such a situation.

Architects and architects

Across the industry, the role of the architect and the software architecture and design practices are defined in one way. Many companies don't have a software architect position, and those that do have this position have very different responsibilities. Still, software is always designed, and there is always an architecture. The challenge is to identify innovative ways of architecture and how this manifests itself in the role of software architect.

This idea is difficult to condense into a short concept on a trend chart. Last year, we had the "Architect Elevator". Gregor Hohpe's idea is that architects need to communicate at multiple levels of the organization. Prior to that, we had "architects as technology leaders". Both concepts fall into the category of early adoption. This is mostly from an intuition that they are not necessarily innovative, but they are also not widely adopted.

This year, we're adding Architectural Decision Records (ADRs) to early adoption. Michael Nygard published a great article about ADR in 2011 (https://cognitect.com/blog/2011/11/15/documenting-architecture-decisions). Most software teams are familiar with the Box and Arrow architecture diagram, which is useful for recording both the desired and current state of the system.

However, it is often beneficial to understand why these design decisions are made, which is the purpose of ADR. By documenting the decision, along with other options considered at the time and the analysis of trade-offs made, ADR can be useful if the design needs to be updated in the future, or simply as a reminder when the design is questioned.

One side effect of building distributed systems and microservices by semi-autonomous teams is that architectural decisions become fragmented. As a result, architects need to help teams perform architectural tasks such as trade-off analysis, making the right decisions, and documenting and communicating those decisions. Andrew Harmel-Law believes that ADR can be an important part of extending software architectures.

To learn more about the architect role and software architecture practices, I highly recommend listening to the corresponding podcast (https://www.infoq.com/podcasts/architecture-trends-report-2022/).

InfoQ Trends 2022: Architecture and Design

About the Author

Thomas Betts is the Lead Editor of infoQ Architecture and Design, co-host of the InfoQ podcast, and Senior Principal Software Architect at Blackbaud. For more than two decades, he has focused on providing software solutions that delight customers. He has worked in a variety of industries, including retail, finance, healthcare, defense and tourism. Thomas lives in Denver with his wife and son, and they enjoy hiking and exploring beautiful Colorado.

Eran Stiller is the Lead Software Architect at Badook (based in Melbourne, Australia). As an experienced software architect and CTO, Eran has designed, implemented and audited a variety of software solutions across multiple business areas. With years of experience in software development, as well as a track record of public speaking and community contributions, Microsoft has awarded him microsoft Azure Most Valuable Expert (MVP) title since 2016 and a Regional Director (MRD) for Microsoft since 2018.

Vasco Veloso has been involved in software development and design for over twenty years. From assembly to C, C++, and Prolog, to Java, Scala, and Kotlin, from mainframe computers to small computers, from floppy disks to SSDs, from on-premises to the cloud, he's seen, done, and used. He led the team to work together to develop well-designed software. He also enjoys sharing knowledge through teaching and continues to design software and connected devices. In his spare time, he enjoys exploring the city of Amsterdam. He loves photography and is very interested in the aviation industry. He has flown an ultralight aircraft and believes that as long as he maintains the necessary concentration, he can continue flying, reaching his destination, and enjoying the scenery along the way.

Daniel Bryant is Director of DevRel at Ambassador Labs, News Manager at InfoQ and Chairman of QCon London. Currently, he focuses on "DevOps" tools, cloud/container platforms, and microservices implementations. Daniel is a leader in the London Java Community (LJC). He has contributed to several open source projects, written for well-known technology sites such as InfoQ, O'Reilly and DZone, and regularly speaks at international conferences such as QCon, JavaOne, and Devoxx.

Sarah Wells has been in development for 20 years and has led delivery teams in the consulting, financial services and media industries. Building ft's content and metadata publishing platform using a microservices-based architecture gave her a keen interest in operability, observability, and DevOps. In early 2018, she assumed operational and reliability responsibilities for the Financial Times. More recently, Wells took over the engineering implementation department, adding platform and security engineering to it. She has led multiple teams at the Financial Times, building tools and services for other engineers. At the end of 2021, Wells left FT. She decided to take a break before taking the next step. You can contact her via Twitter (@sarahjwells).

https://www.infoq.com/articles/architecture-trends-2022/

Read on