“What will be hot and what to learn in 2022? This article is participating in the” Talk about 2022 Technology Trends “essay campaign.
This article is a translation from the following sources.
- Thomas Betts and Holly Cummins
- Software Architecture and Design Trends Report
🤞 personal home page: @Qingcheng sequence member Stone 🤞 fan benefits: plus one to one fan group to answer questions, get free rich resume template, improve learning materials, do a good job in the new era of volume king!
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.
- In the world of cloud computing, architects are reprioritizing their priorities. Innovative architects are designing 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 and the Open Application Model are two approaches that make it easier to build distributed systems, and it will be interesting to see how they are adopted in the future.
- 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.
- The pendulum seems to be coming to a halt after swinging to extremes between monoliths and Microservices. Therefore, regardless of the underlying technology, architects rely on mature patterns and designs that focus on high cohesion and low coupling.
- 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.
- In a completely remote working environment, architects are looking for new ways to communicate with their teams and looking for alternatives to water-cooler chat, which can be very 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.
- The next generation of GraphQL features, particularly GraphQL Federation and GraphQL Microservices, show the next steps after the strong adoption of GraphQL by companies.
Designing for ___
We start by looking at which “-ilities” are most important to architects. A software architect is responsible for the cross-cutting concerns and making sure that individual components of a large system can work together seamlessly to meet overall objectives. In 2021, four areas we feel architects are concerned with are designing for resilience, designing for observability, designing for portability, and designing for sustainability.
Let’s start by looking at which “cities” are most important to architects. The software architect is responsible for crosscutting concerns and ensuring that the components of a large system work seamlessly together to meet the overall goals. In 2021, we identify four areas of concern for architects: resilient design, observable design, portable design and sustainable design.
Designing for resilience is vital for modern, distributed systems, where any individual component could fail, and the overall system should remain available. In many ways, The ideas being implemented are not new — just becoming more important as distributed systems and modular architectures are more common. Daniel Bryant referred to the work done by David Parnas in the 1970s, And Michael Nygard’s more recent book, 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.
Design resilience is critical for modern distributed systems where any individual component can fail and the entire system should remain usable. In many ways, the ideas being implemented are not new — they just become more important as distributed systems and modular architectures become more common. Daniel Bryant mentions the work of David Parnas in the 1970s and Michael Nygaard’s new book unleash It! , as a good source of ideas on circuit breakers, timeouts, retries, and other basic requirements of resilient systems. The new approach is to find ways to solve these problems in systems, such as using local cloud service grids, or even building on frameworks like Dapr.
Correctly-built distributed systems
The topic of microservices has steadily moved across the trends graph and has been categorized as a late majority trend for some time, as it has become easier to build distributed systems. However, We’re continuing to see some pushback against the overuse of microservices as an attempt to solve all problems cases, this has led to major reversals, such as going back to a monolith. As the pendulum stops swinging, It seems we’re finally setting on a sane approach for most systems.
The topic of microservices has been moving steadily in the trend chart, and for some time has been classified as a late majority trend as it has become easier to build distributed systems. However, we still see some people who oppose the overuse of microservices as an attempt to solve all problems. In some cases, this has led to major reversals, such as a return to a single. As the pendulum stops swinging, we finally seem to have a reasonable approach for most systems.
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.
Some of the trends around building distributed systems or modular wholes go back to basic architectural principles, such as high cohesion and low coupling. Domain-driven design maps, while considered a late mainstream trend, are still being emphasized by architects who are looking for good guidance on mapping environments and identifying boundaries within systems. Similarly, the C4 model is useful for creating hierarchical sets of architecture diagrams that help you understand your system.
Data architecture
InfoQ is continuing to see innovation in the overlap between software architecture and data architecture. Data mesh, added to the graph last year, remains an innovator trend this year. It’s joined by data gateways, which are somewhat like API gateways but focus on the data aspect. As microservices have led to a polyglot persistence layer, API gateways offer abstractions, security, scaling, federation, and contract-driven development features.
InfoQ continues to see innovation in overlapping software architecture and data architecture. The addition of data grids last year continues to be an innovative trend this year. It is connected by a data gateway, which is sort of like an API gateway, but focuses on the data side. As microservices have led to the emergence of multilingual persistence layers, API gateways provide abstraction, security, scalability, federation, and contract-driven development features.
The role of the architect
We continue to look at the role software architects play in their organizations. Beyond the traditional “boxes and Arrows “responsibilities. architects are serving as technical leaders and mentors to other team members. Architects also need to be able to communicate with many audiences, Described by Gregor Hohpe as riding the architect elevator — talking to the CTO and other executives, then traveling down to the engine room to work with the developers.
We will continue to focus on the role that software architects play in their organizations. In addition to traditional “box and arrow” responsibilities, the architect acts as technical lead and mentor to other team members. Architects also need to be able to communicate with many viewers, Gregor Hohpe called the elevator architects ー ー talking to the CTO and other executives, and cooperation with the developers to room.
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.
For many teams, communication has been severely disrupted by epidemics and the adoption of long-term telecommuting strategies by many companies. This means that architects have lost the ability to learn through osmosis, simply because they can sit in the same room as developers and eavesdrop on conversations. Where this practice has helped, it has led to more written communication, whether in IM chat rooms or in architectural decision notes, and keeping those notes up to date because the team references them frequently. Leading architects are finding ways to take advantage of the constraints of a completely remote team and create better software designs as a result.
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.
Both Dapr and the Open Application Model (OAM) were introduced by Microsoft in late 2019. OAM is a specification for defining local cloud applications that focuses on applications rather than containers or coordinators. Similarly, Dapr is a framework with pluggable components designed to make on-premise cloud development easier. While Microsoft was involved in their creation, both are open source projects that work on any cloud provider, and Dapr could become a CNCF project. Both Dapr and OAM have yet to see major adoption, so they are clear innovation trends to watch.
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 is another innovation trend. It will be interesting for architects to see if it is simply used as a complement to Web frameworks and mobile development, or if the system will be designed with WebAssembly in mind, and how this will be achieved.
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. Just as the sprawl created by microservices led to new patterns for managing that sprawl, for companies that have invested heavily in GraphQL, GraphQL Federation to assist with managing the new complexity. This isn’t a problem every company will run into, but it remains useful to know and see where it goes in the future.
One final note about GraphQL is that it crossed the trend chart gap last year. Since then, there have been innovations for the next generation of GraphQL features, especially on Netflix, and GraphQL Federation and GraphQL MicroServices in particular. Just as the proliferation generated by microservices has led to new models for managing this proliferation, companies that have invested heavily in GraphQL need the GraphQL Federation to help manage the new complexity. This is not a problem every company faces, but it is still useful to know and anticipate where the future is headed.
Boy, haven’t you seen enough? Click on the details of the stone, casually have a look, maybe there is a surprise? Welcome to support the likes/attention/comments, your support is my biggest motivation, thank you!