The topics to watch in software architecture
Microservices, serverless, AI, ML, and Kubernetes are among the most notable topics in our analysis of proposals from the O’Reilly Software Architecture Conference.
Proposals submitted for the O’Reilly Software Architecture Conference serve as a valuable weather vane, providing direction for developers and architects from what some of the leading names in the field propose as sessions. These go-to experts and practitioners work on the front lines of technology, and they understand that business and software architecture need to operate in harmony to support overall organizational success.
Our recent analysis[1] of speaker proposals from the O’Reilly Software Architecture Conference turned up a number of interesting findings:
- Microservices was the No. 1 term in the proposals. This topic remains a bedrock concept in the software architecture space.
- A big year-over-year jump in serverless, up 89 slots, suggests increased interest, exploration, and experimentation around this nascent and evolving topic for software architects.
- AI (No. 45) and Machine Learning (No. 20) ranked well individually in the most frequently referenced topics, but if you combine them they would rise to the No. 7 topic overall. The increase of AI/ML in proposals is likely tied to the need for more skills development in the software architecture space as well as AI/ML’s role in monitoring and reliability.
- Kubernetes rose 72 positions year-over-year, reflecting how important orchestration has become to software architects who increasingly plan distributed systems.
- Monitoring grew from an unranked term in 2018 to the No. 48 term in 2019. This signals that DevOps-related topics are becoming important for those working on software architecture.
The increased interest in the proposals for serverless, Kubernetes, and AI/ML shows what we see roiling the software architecture ecosystem—i.e., the effect of organizations migrating to the cloud and distributed microservices, the potential to instantiate microservices as serverless components, and the increasing importance of data for monitoring and automation.
The following table shows topics of interest from our analysis of proposals from the 2018 Software Architecture Conference in New York and our upcoming 2019 Software Architecture Conference in San Jose. We used a form of the Term Frequency-Inverse Document Frequency (TF/IDF) technique to identify and rank the top terms.
Term | Software Architecture ’19 Proposal Rank | Software Architecture ’18 Proposal Rank | Rank Change: 2019 vs 2018 |
Microservices | 1 | 1 | No Change |
Cloud | 4 | 5 | 1 |
Data | 5 | 2 | -3 |
Serverless | 7 | 96 | 89 |
API | 9 | 11 | 2 |
Application | 10 | 4 | -6 |
Pattern | 11 | 15 | 4 |
Security | 12 | 17 | 5 |
Scale | 18 | 14 | -4 |
Machine Learning | 20 | 93 | 73 |
Domain | 26 | 589 | 563 |
Testing | 29 | 114 | 85 |
Kubernetes | 34 | 106 | 72 |
Mesh | 35 | Unranked | N/A |
Agile | 38 | 102 | 64 |
Enterprise | 41 | 37 | -4 |
AI | 45 | 413 | 368 |
We focused this list on important industry terms and terms showing notable year-over-year changes. We omitted stop-like words such as “software,” “system,” and “how” from the results. Unranked means a term had less than three instances in the corpus of proposals submitted for an event.
Microservices still matter
“Microservices,” the No. 1 term in proposals, may seem like it’s past its prime given how much has already been written and said about it, but microservices remains directional or at least aspirational to software architecture for many organizations. Consistent interest in this topic in the speaker proposals suggests organizations that have already committed to microservices are still pushing to get the most out of their investments. Note that adopting microservices doesn’t mean you’ve mastered it.
Microservices is also an essential part of the Next Architecture, the trend we’re tracking that sees organizations embracing the combination of cloud, containers, orchestration, and microservices to meet customer expectations for availability, features, and performance. We expect microservices to continue as a top concept in Software Architecture Conference proposals for the foreseeable future.
Serverless and service mesh are ascendant
Some view serverless as an unproven topic, and clearly we have a lot to learn about moving toward mainstream use of serverless architecture. However, the uptick in the term “serverless” in the proposals is hard to ignore (up 89 slots to the No. 7 position), suggesting increased exploration, investigation, and experimentation with serverless implementations. Serverless is a good fit for software architects, as it abstracts the messy implementation, hardware, and other elements of a design. With serverless filling a need for software architects, we expect it to continue as a notable proposal term.
The term “mesh,” used to describe the service mesh frameworks used to coordinate between microservices without using shared assets, made a big jump: from unranked in 2018 to its current rank of No. 35. For the conceptual work that software architects engage in, service mesh allows operational coupling while avoiding domain coupling and has become the dominant operational reuse pattern in the microservices world.
Embracing AI and machine learning
The ranks of “AI” (No. 45) and “machine learning” (No. 20) both increased individually, and combining the two topics would create the 7th-ranked term overall. We see AI/ML becoming more important to software architecture on two fronts: putting AI/ML into production requires new skills and, for most organizations, a steep learning curve; AI/ML can also be used to help address software architecture issues such as monitoring and reliability. Clearly the software architecture community has embraced the two related topics in a big way.
A need to understand Kubernetes
“Kubernetes,” the open source container orchestration tool, is another Next Architecture-related term that made a strong showing in our proposal results. In 2019, Kubernetes moved up 72 slots to the No. 34 position.
Software architects won’t become Kubernetes experts—implementation and management is typically handled by infrastructure teams—but with Kubernetes growing in importance in the enterprise, architects need to understand how this powerful and complicated tool can best be applied in their organizations.
Mature concepts make inroads
The term “domain,” most likely associated with the “domain-driven design” approach to software development, was up 563 positions to the No. 26 slot in the 2019 proposal data. “Testing” was up 85 positions year over year, taking the No. 29 slot. “Agile” increased 64 slots to No. 38. Why do we see these mature topics showing up in the proposals? The data suggests these established topics from the broader technology world have made inroads with software architects. Software architecture needs to reflect the entire business, so as these topics grow within organizations their relevance to software architects also grows.
Noteworthy trends in the second-tier proposal topics
Second-tier topics are often mentioned in the proposal data, but less frequently than the top-tier topics covered above. While these second-tier topics show more rank volatility over time, careful investigation can turn up topics worth paying attention to, either as poised to climb to the top tier, or topics that are losing their currency with the proposing cohort.
Term | Software Architecture ’19 Proposal Rank | Software Architecture ’18 Proposal Rank | Rank Change: 2019 vs 2018 |
Monitoring | 48 | Unranked | N/A |
Open Source | 80 | 252 | 172 |
Monolith | 99 | 120 | 21 |
DevOps | 105 | 110 | 5 |
Istio | 150 | Unranked | N/A |
Migration | 191 | 482 | 291 |
Compliance | 285 | Unranked | N/A |
Blockchain | 312 | 201 | -111 |
Container | 470 | 111 | -359 |
Web | 482 | 36 | -446 |
Unranked means a term had less than three instances in the corpus of proposals submitted for an event.
The term “monitoring” went from unranked in 2018 to the No. 48 term in 2019. This is a sign that DevOps-related topics have become more important for those working on software architecture. Combined with the increased ranks of the terms “testing” and “agile” in the top-tier topics, we see a trend of software architecture making a more pronounced embrace of DevOps-style deployment and production-ready designs, along with the continuing uptick in the engineering practices espoused by continuous delivery.
The rise of “open source” to a mid-tier rank of No. 80 shows that software architects, even while working at the conceptual phase of system design, are turning more regularly to open source tools and platforms.
The growth in the terms “monolith” (No. 99), used in the context of migrating to a microservices architecture or describing legacy architecture, and “migration” (No. 191), suggests that proposers are increasingly distinguishing between monolith and microservice applications.
The increase in “Istio” mentions (No. 150), a tool for implementing a service mesh to connect and monitor distributed microservices, reinforces the focus on microservices and empirical support for the rapidly increasing interest in service mesh for our cohort of session proposers.
Finally, the drop in position for the term “web” to a rarely mentioned rank of No. 482 shows a trend we notice in other areas. What we used to call “web” is now just computing, and there’s no need to call out the web anymore. It’s the water we swim in.
Concluding thoughts
The proposal analysis shows us the broad and growing swath of factors that must be considered by the software architecture practitioner. There are too many topics for any practitioner to know every facet of the software architecture ecosystem. To perform efficiently, software architects should avoid getting bogged down in too much technical detail. They need just enough technical knowledge and an expansive approach to keeping up with the changing nature of software architecture to grow with this dynamic field.