Evolution of Software Architecture is Costing Us More Energy (opens in new tab)  🔌Interface Evolution

From the earliest days of mainframe computing through the rise of client-server models, service-oriented and microservices architectures, and now today’s AI-driven systems, software architecture has continually evolved to meet the ever-growing demands of technological advancement. However, supporting these advancements has led to increasingly complex and distributed systems, requiring the continuous expansion of the underlying infrastructure. More energy is required not only to operate the infrastructure, but also to support the rising computational workloads it must handle. This post explores how the evolution of software architecture is contributing to increasing energy consumption.

Evolution

1960s–1970s: Monolithic Architecture

In the early days of computing, software systems were typically built as monolithic applications—single unified codebases with minimal modularity. These systems operated on mainframes or early minicomputers, where processing power, memory, and storage were severely limited. A notable example is the IBM 7094, introduced in the early 1960s, which supported major space missions like Gemini and Apollo with only 150 KB of memory. Combined with the use of highly optimized assembly language code, the centralized execution model of early monolithic architectures minimized network overhead and reduced resource duplication. This led to more efficient use of the limited processing and memory resources available on mainframes and minicomputers. As a result, early computing environments achieved lower overall energy consumption per operation compared to the distributed, network-intensive architectures common today. An IBM post states that consolidating workloads onto five IBM z16 mainframe systems, released in 2022, instead of running them on x86 servers under similar conditions, can reduce energy consumption by up to 75%.

1980s: Client-Server & Layered Architecture

The layered architecture introduced in the 1980s split the single codebase into presentation, business logic, and data access layers. In parallel, the rise of personal computing and the expansion of computer networks during the same timeframe led to the emergence of the client-server architecture. Applications were further divided into two distinct components: client-side interfaces handling user interactions, and server-side systems managing business logic, data processing, and storage.

Loading more...

Keyboard Shortcuts

Navigation

Next / previous item
j/k
Open post
oorEnter
Preview post
v

Post Actions

Love post
a
Like post
l
Dislike post
d
Undo reaction
u
Save / unsave
s

Recommendations

Add interest / feed
Enter
Not interested
x

Go to

Home
gh
Interests
gi
Feeds
gf
Likes
gl
History
gy
Changelog
gc
Settings
gs
Browse
gb
Search
/

General

Show this help
?
Submit feedback
!
Close modal / unfocus
Esc

Press ? anytime to show this help