Software Architecture and Design InfoQ Trend Report - April 2020

 

important points

  • New software architecture trends to watch include micro frontends, data grids, AsyncAPI, and policy as code. The variety of purposes suggests that innovation is taking place in many different areas of the built landscape.
  • As microservices become more pervasive, the resistance to starting with a microservices architecture increases. More and more companies are looking at the foundations of properly building distributed systems or creating modern modular monoliths that may need to be decomposed into microservices in the future.
  • GraphQL has clearly crossed this chasm, the only argument being its widespread adoption. There is still innovation in extending GraphQL and making it pervasive for large enterprises.
  • There is growing interest in low-code/no-code platforms that can enable non-developers to customize systems. 
  • Several architectural concepts tracked apply only in certain situations. So they don't have a natural progression on the adoption curve. Examples include functional programming and event-driven architecture.

 

                  Innovators Early Adopters Early Mainstream Users Mature Mainstream Users                          

The goal of good software architecture is to help manage complex systems. In response to distributed systems, event-driven architectures, and big data, recent innovations in software architecture hope to leverage emerging best practices and also help guide engineers out of common pitfalls.

The InfoQ Software Architecture and Design Topic Map highlights the main software architecture concepts and their current state of adoption in the industry. Both InfoQ and QCon are focused on the left side of the chart, covering the state of software trends between innovators and early adopters. We'll also look for ideas that will eventually "cross the chasm" and be embraced by the majority of companies.

Over the past year, we've seen compelling ideas in the A&D space, each targeting a different software trend. For example, as microservices become more widely adopted and practitioners discover more pros and cons, patterns emerge to consolidate proven approaches and make the next generation of microservices even more successful.

innovator

 

Four emerging trends among innovators include micro frontends, AsyncAPI, data grid and policy as code.

micro front end

Micro frontends aim to bring the same benefits of microservices to the UI layer. By breaking down complex systems into smaller, more manageable pieces, teams can quickly develop and release new features.

After appearing on the InfoQ Podcast , we reached out to Luca Mezzalira, author of Building Micro Frontends , to offer his thoughts on what to expect for the next year or two.

Luca Mezzalira : Micro frontends aren't a new trend, but they gained traction in 2019.

There are still many best practices to discover and the community is very active. Over the past 8-10 months, we've crafted new frameworks, techniques, and documentation to make micro frontends more accessible to all developers.

I don't think micro frontends will be a panacea for frontend development, but I do believe it's a great addition to single page applications and server-side rendering architectures.

Micro frontends shine when we're working on a project with dozens of developers in a large business domain, and we want to reduce complexity by dividing into subdomains, deploying different parts of the application independently, without having to work on a team communication and coordination overhead.

Several organizations are starting to embrace them, and I expect to see more case studies in 2020 explaining how these companies adopted the paradigm and what PROs and CONs they encountered.

I believe that by 2020 micro frontends will become an established architecture and understood by the frontend community. I don't expect micro frontends to be used for all frontend projects, but there are many companies that could really benefit from this architectural paradigm.

Asynchronous API

AsyncAPI resolves the inconsistency between static  APIs and event-driven architectures and event sourcing. The growing adoption of microservices has led to more companies implementing EDA, which has also led to the development of EDA. However, these improvements require a transition from synchronous request/response APIs to APIs built specifically for asynchronous communication.

Daniel Bryant said he "overheard this in a customer chat. Pretty much everyone adopting Swagger/OpenAPI is looking at something like AsyncAPI."

data grid

Zhamak Dehghani of ThoughtWorks first discusses the concept of a data grid in an article . The thought-provoking concept is that by embracing domain-oriented data ownership, the pitfalls of traditional data warehouses or monolithic data lakes can be avoided.

"We haven't tracked data architecture in the past, but I'm interested to see if this follows the trend of subdividing monoliths into microservices to increase the agility of big data systems," says Thomas Betts.

InfoQ asked Dehghani for her thoughts on the current and future state of Data Mesh.

Zhamak Dehghani : Internet decentralization is an underlying trend in the development of our digital economy, society and organizations. Over the past decade, technologies such as cloud, microservices, APIs, containerization, and domain-driven design have enabled the decentralization of the operating world. But, unfortunately, the data world has been ruled by a centralized, outdated paradigm. The data grid is a direct response to analyzing data management failure modes, and aims to move beyond organizations to become data-driven and aligned with related decentralization trends.

Over the next year or two, I expect to see more adoption of Data Mesh and more implementation case studies shared. I expect that many early implementations will create custom engineering tools and techniques, which I hope will lead to the development of open source tools or extensions of cloud provider offerings to meet the technical needs of Data Mesh.

I see the question in the industry what is Data Mesh , will change in the new year to How to do Data Mesh , and of course how will Data Mesh change in the next few years as adoption grows .

Given that Data Mesh requires organizational change around data ownership and governance, engineering-oriented organizations can truly realize this paradigm with strong support from senior executives and leadership.

policy as code

We're also seeing innovation in managing the software development lifecycle. Strategy as code is one of the notable trends in placing structure around desired system states. This builds on the idea of ​​infrastructure as code and brings similar benefits to the architectural level. In KubeCon and cloud vendors, Bryant saw the Policy that Code was talking about.

early adopter

serverless

One topic that always sparks a healthy discussion is serverless . InfoQ editors believe that serverless has not solved this problem, and there are also people who oppose this idea. This has to do with the resistance to microservices as more and more teams realize that serverless and microservices architectures are not the right solution for every problem.

This leads to a healthy discussion about properly built distributed systems and modular monoliths .

Jan Stenberg observed serverless and distributed systems discussed at the recent DDD Europe conference:

Stenberg : An interesting point for me is that Gojko Adzic  talked about serverless and was very enthusiastic, but he pointed out that even very simple "Hello World" applications are highly distributed. This will require skilled developers; will this affect the cost-effectiveness of serverless?

Vladik Khononov  recommends reading Composite/Structured Design  written in 1970 by Glenford J. Myers for anyone interested in microservices . He said that although the term microservices is not mentioned in the book, the basic design principles discussed in the book are the same as microservices.

Stenberg also thinks modular monoliths should be added to early adopters:

Stenberg : Mentioned Kamil Grzybek , Randy Shoup et al and also Stefan Tilkov who claimed in 2015 that it is difficult to build modular monoliths and therefore recommends using microservices when needed .

But that's a little weird. How to build a well-designed modular application to become an "early adopter"? Are there early adopters like a "new generation"?

Modesty : With serverless, I don't think it's crossed the chasm, and I've actually seen some anecdotal arguments against it. I think it's a broader backlash against microservices (or rather the realization that microservices aren't the answer to every problem) - we gave a talk on this topic at QCon London . I think it's likely to preserve some niche methods. Do we think we should be tracking/talking about regressions overall?

Bryant : I did initially wonder if "serverless" had crossed the chasm, but I don't think so. There are a lot of reports ( for example ) that indicate a huge growth opportunity in this space, which also makes me think it's still in Early Adopter.

Bates : A year ago, people were talking about building completely serverless systems, and the hype has diminished. Individual serverless functions like AWS Lambda or Azure Functions may have crossed the chasm, but fully serverless architectures have not, and likely never will, gain widespread adoption.

low-code and no-code

Low-code and no-code solutions promise to deliver more functionality to end users without developer involvement. While industry veterans may be skeptical of the vendor's push, there has been a marked increase in developer experimentation with these platforms.

Modesty : I'm a bit of a cynic when it comes to low-code platforms. I think it's mostly a vendor push, and that's something I've seen before. Having said that, I'd like to see more developers experiment with low-code platforms, driven in part by Microsoft's push to relaunch its PowerApps, Flow, Power BI, and Power Platform products. I also find Google's acquisition of AppSheet interesting. These platforms are becoming big business, and I think that's a trend we should be paying attention to.

Betts : (Lightweight) workflow and decision automation platforms should remain in Early Adopter. This correlates strongly with low-code/no-code platforms, which is probably a better general term for thematic graphs. These platforms are aimed at non-developers, so are buying, not building on. The challenge revolves around integration rather than building major systems around one platform.

Stenberg : Low code reminds me of my younger colleagues who taught 4GL in college in the 90's only because of obsolete OO.

I don't see modern workflow engines (like Zebee ) falling under low-code (but they might fall under "workflow and decision automation platforms"). They're handling core business workflows, you want the domain to know that your core business is running smoothly, and you don't want to monitor to find problems.

GraphQL

GraphQL has clearly crossed this divide, but the question for InfoQ editors is whether it belongs to the early majority or the late majority. Although the use of GraphQL as a technology has reached a late majority, we are still seeing innovation where GraphQL influences architectural decisions around scalability and creates a cohesive language across systems.

Modesty : I think GraphQL straddles the chasm firmly. Dylan ranks it as "late majority" in his latest Web Trends report .

Bates : I think GraphQL has crossed the chasm. The level of adoption has taken it from something implemented only at the API layer to a central aspect of system design. This is probably most similar to the adoption of TypeScript, as in this case the team recognized the benefits of using strongly typed constructs throughout the system.

Software Architecture Ethics

Bryant raises the question of whether we should be tracking ethics in this cohort. "I'm seeing ethics sessions and resumes more and more at SACON and QCon ." We ultimately decided not to include ethics on this topic map as it could be  better covered on the " Software Culture and Approach" topic map reflect.

Humble points out that QCon and InfoQ have been discussing ethics issues for years:

Humility : I think we tend to think of ethics as a cultural topic, but it's cross-cutting. We should definitely continue to track this and report on it. I 'm proud to have done this quickly at QCon London and the corresponding ethics of eMag , and I think it's important to continue the discussion given the ubiquity of software in everyone's lives.

Bates sees ethics as an aspect of architects as technical leaders:

Bates : While I applaud the increased awareness and discussion of ethics, I'm not sure that a mention of ethics needs to be on the A&D topic chart. However, I do think technology leaders have to consider many aspects of ethics, and I would love to see some InfoQ articles on ethical considerations in A&D. I have always believed that the best people to provide guidance in this area are practitioners who really understand it. Without active leadership, design will eventually become reactive and forced to comply with inevitable government regulations such as GDPR and CCPA.

other topics

The rest of the chart remains largely unchanged. Reactive programming, HTTP/2, and gRPC crossed this chasm, but all other projects left untouched. This is to be expected for A&D, good ideas take longer to mature and have a longer lifespan than programming language trends.

For reference, the thematic map from early 2019 is shown below. The 2020 edition is the beginning of this article.

 

Guess you like

Origin blog.csdn.net/ccc7574/article/details/106128789