Uncategorized Software Architecture and Design InfoQ Trends Report—April 2021 – InfoQ.com
Stay ahead of the tech that matters: Attend in-person QCon London (April 4-6, 2022), or online QCon Plus (May 10-20, 2022). Register Now
Facilitating the spread of knowledge and innovation in professional software development
Justin Lee goes over a number of frameworks and libraries available for Kotlin development and not once have to touch the Android emulator.
What is the single best API technology you should always use? Thomas Betts moderated the discussion, with the goal to understand some of the high-level features and capabilities of three popular technologies for implementing APIs. The discussion covers some of the pros and cons of GraphQL and gRPC, and why you might use them instead of a RESTful API.
In this article, author Juan Pan discusses the data sharding architecture patterns in a distributed database system. She explains how Apache ShardingSphere project solves the data sharding challenges. Also discussed are two practical examples of how to create a distributed database and an encrypted table with DistSQL.
In this podcast, Shane Hastie, Lead Editor for Culture & Methods, spoke to Kevin Boyle about bringing DevOps culture practices and tools into low-code and no-code environments.
Christian Posta shares practical guidance for how to adopt a service mesh for an organization including separating out control plane and data plane, plugging in with observability tools, leveraging gateways appropriately, rolling out mTLS safely, and overall preparing for troubleshooting and debugging.
How do traditional security approaches scale in Cloud Native architectures? Register Now!
Learn from practitioners driving innovation and change in software. Attend in-person on April 4-6, 2022.
Uncover emerging trends and practices from software leaders. Attend online on May 10-20, 2022.
Your monthly guide to all the topics, technologies and techniques that every professional needs to know about. Subscribe for free.
InfoQ Homepage Articles Software Architecture and Design InfoQ Trends Report—April 2021
This item in japanese
Apr 19, 2021 8 min read
by
reviewed by
Each year, the InfoQ editors discuss the current state of software architecture and design, and identify the key trends to watch, resulting in this report and the accompanying graph. This year, we’re letting you listen in to the discussion, on an episode of the InfoQ podcast. The editors were joined by Holly Cummins, an innovation leader on IBM’s corporate strategy team, and a previous speaker at QCon.
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.
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.
Stuck trying to diagnose connectivity or performance issues? Learn how to quickly get to the root cause of traffic and network problems.
Further down the adoption curve, there has been a steady increase in the adoption of asynchronous programming techniques and event-driven architectures. This adoption is the result of both a lower barrier to entry for implementing asynchronous patterns and a built-in benefit of increased system resilience.
However, the flip side to event-driven architectures, and asynchronous systems, in general, is they are still difficult to reason about and understand. Which ties into the rise of designing for observability. Very often, observability is seen as a run-time need—can we tell if the system is behaving as expected? But, for architects, observability is becoming increasingly important as a design-time need—can we understand all the interactions occurring within the complex system?
In 2021, the innovators are finding ways to provide both the run-time and design-time observability benefits almost automatically. By removing the burden of developers having to manually implement observability non-functional requirements, it becomes less likely that a key component will be missing from the big picture of the system. That then leads to being able to use the observability to create accurate, living architecture diagrams, and a corresponding mental model of the system.
Another focus area for architects is designing for portability, whether that’s for multi-cloud or hybrid-cloud. In most cases, there are no reasons for architects to design for the lowest common denominator to enable true multi-cloud portability or avoiding vendor lock-in. However, especially with corporate acquisitions, CTOs are more likely to have systems that run in separate hosting environments, including AWS, Azure, GCP, and on-prem. When making decisions regarding standardization, architects need to pick their battles.
Holly Cummins has spoken on the subject of designing for sustainability, which is one of the new innovator trends. This is emerging because people are realizing the software industry is responsible for a level of carbon usage comparable to the aviation industry. Some of this is almost directly measurable, as the bill for compute usage is highly correlated to energy consumption. Where CTOs and architects can have an impact is by either reducing unnecessary compute usage or utilizing more sustainable cloud hosting options. Some cloud data centers run on 100% green energy, while data centers in Virginia are powered by coal. If latency is less of a concern, then it may make sense to host in Iceland instead of Virginia. While many companies look to reduce their hosting costs purely for economic reasons, some are choosing to make sustainability a priority, and architecting and deploying their systems accordingly.
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. In some 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.
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.
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.
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.
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.
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.
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.
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, they are needing 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.Thomas Betts is the Lead Editor for Architecture and Design at InfoQ, and a Sr. Principal Software Engineer at Blackbaud. For over two decades, his focus has always been on providing software solutions that delight his customers. He has worked in a variety of industries, including retail, finance, health care, defense and travel. Thomas lives in Denver with his wife and son, and they love hiking and otherwise exploring beautiful Colorado.
Daniel Bryant is the Director of Dev Rel at Ambassador Labs, and is the News Manager at InfoQ, and Chair for QCon London. His current technical expertise focuses on ‘DevOps’ tooling, cloud/container platforms and microservice implementations. Daniel is a leader within the London Java Community (LJC), contributes to several open source projects, writes for well-known technical websites such as InfoQ, O'Reilly, and DZone, and regularly presents at international conferences such as QCon, JavaOne, and Devoxx.
Holly Cummins is an innovation leader in IBM Corporate Strategy, and spent several years as a consultant in the IBM Garage. As part of the Garage, she delivers technology-enabled innovation to clients across various industries, from banking to catering to retail to NGOs. Holly is an Oracle Java Champion, IBM Q Ambassador, and JavaOne Rock Star. She co-authored Manning's Enterprise OSGi in Action.
Eran Stiller is the CTO and Co-Founder of CodeValue. As CodeValue’s CTO, Eran designs, implements, and reviews various software solutions across multiple business domains. With many years of experience in software development and architecture and a track record of public speaking and community contribution, Microsoft recognized Eran as a Microsoft Regional Director (MRD) since 2018 and as a Microsoft Most Valuable Professional (MVP) on Microsoft Azure since 2016.
Upcoming QCon Events
QCon, the international software development conference, is returning (in-person and online) in 2022.
QCon brings together the world’s most innovative senior software engineers across multiple domains to share their real-world implementation of emerging trends and practices.
Find practical inspiration (not product pitches) from software leaders deep in the trenches creating software, scaling architectures and fine-tuning their technical leadership to help you make the right decisions.
Attend in person at QCon London, (April 4-6) or online at QCon Plus (May 10-20).
Save your spot today
A round-up of last week’s content on InfoQ sent out every Tuesday. Join a community of over 250,000 senior developers. View an example
We protect your privacy.
You need to Register an InfoQ account or Login or login to post comments. But there’s so much more behind being registered.
Get the most out of the InfoQ experience.
Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p
by Paulo Merson,
by Hiral Dave,
by Hiral Dave,
by Paulo Merson,
Your message is awaiting moderation. Thank you for participating in the discussion.
Our coming of age wrt microservice design is very nicely put: “As the pendulum stops swinging, it seems we’re finally setting on a sane approach for most systems.”
As we watch, hopefully get to experiment with, and possibly adopt these trends, let’s all remember to consider the tradeoffs involved in each.
(I think “data mesh” deserves a hyperlink. ;^))
by Hiral Dave,
Your message is awaiting moderation. Thank you for participating in the discussion.
Well said on level of carbon usage by software industry compared to aviation.
A less talked about scenario.
by Hiral Dave,
Your message is awaiting moderation. Thank you for participating in the discussion.
If we go with standard terms of quality attributes of ISO 25010 quality model, where can we fit the four areas of concern – Designing Resilience, Observability, Portability, Sustainability?
Portability straight away fits under quality characteristic – Portability.
Can we say Resilience and Observability be part of Reliability?
And Sustainability be part of Maintainability?
Can we have some insight on it?
Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p
Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p
A round-up of last week’s content on InfoQ sent out every Tuesday. Join a community of over 250,000 senior developers. View an example
We protect your privacy.
QCon, the international software development conference, is returning (in-person and online) in 2022.
QCon brings together the world’s most innovative senior software engineers across multiple domains to share their real-world implementation of emerging trends and practices.
Find practical inspiration (not product pitches) from software leaders deep in the trenches creating software, scaling architectures and fine-tuning their technical leadership to help you make the right decisions. Save your spot now!
InfoQ.com and all content copyright © 2006-2022 C4Media Inc. InfoQ.com hosted at Contegix, the best ISP we’ve ever worked with.
Privacy Notice, Terms And Conditions, Cookie Policy