
Architecture
Get flash to fully experience Pearltrees
Understanding Throughput-Oriented Architectures
Much has been written about the transition of commodity microprocessors from single-core to multicore chips, a trend most apparent in CPU processor families. Commodity PCs are now typically built with CPUs containing from two to eight cores, with even higher core counts on the horizon. These chips aim to deliver higher performance by exploiting modestly parallel workloads arising from either the need to execute multiple independent programs or individual programs that themselves consist of multiple parallel tasks, yet maintain the same level of performance as single-core chips on sequential workloads. A related architectural trend is the growing prominence of throughput-oriented microprocessor architectures.Failover: Messy Realities
S3 Outage Report and Perspective
Amazon has issued a more detailed statement explaining the S3 outage from June 20, 2008. In my company, we'd call this a "Post Incident Report" or PIR. It has all the necessary sections: There are a few interesting bits from the report. First, the condition seems to have arisen from an unexpected failure mode in the platform's self-management protocol. This shouldn't surprise anyone.A large proportion of this information is lost when the design document is written, because the focus is typically on providing a (notionally) definitive view of how a system should be structured which might be in the form of a bunch of UML diagrams or merely a collection of Visio-type diagrams and explanation of what each of the boxes in the diagrams does. At the code-level there is almost no chance that any of this information will have been retained. Yet this information is of high value since it: Thus I believe It’s important to expose elements of the act of design via documentation alongside the design itself, conversations during the design work etc.
Exposure
In the last year or so, after quite a lull, the software architecture business has gotten rather exciting again. We're finally seeing major new topics emerging into the early mainstream that are potential game-changers, while at the same time a few innovations that have been hovering in the margins of the industry are starting to break out in a big way. The big changes: The hegemony of traditional 3 and 4-tier application models , heavyweight run-time platforms, and classical service-oriented architecture that has dominated for about a decade is now literally being torn asunder by a raft of new approaches for designing and architecting applications. These might sound like incautious words but major changes are in the air and architects are reaching out for new solutions as they encounter novel new challenges in the field.
10 Must-Know Topics For Software Architects In 2009
Writing Great Documentation - What to write?
Tech docs can take a bunch of different forms ranging from high-level overviews, to step-by-step walkthroughs, to auto-generated API documentation. Unfortunately, no single format works for all users; there’s huge differences in the way that people learn, so a well-documented project needs to provide many different forms of documentation. Good tutorials are a must as they’re usually the first thing someone sees when trying out a new piece of tech. First impressions are incredibly important: that rush of success as you work through a good tutorial will likely color your future opinions about the project. Django’s tutorial is frankly a bit musty at this point and is probably due for at least a light refresh, but it hits all the important points. A good tutorial should:Writing great documentation: technical style
Documenting your software architecture - why and how?
Another of the sessions that I delivered at the recent Software Architect 2009 conference was entitled "Documenting your software architecture - why and how?" and covered some of the drivers for creating software architecture documentation along with some guidelines on how to do this. As I said in the session, any software architecture documentation should be complementary to the code and describe what the code itself doesn't . For example, it's really hard to identify things like architectural principles, operational aspects and how security works from just the code itself.Corruption
Amazon has had a few problems of late, one of the more interesting ones being something S3 users encountered . It took Amazon a little while to identify the root cause : We’ve isolated this issue to a single load balancer that was brought into service at 10:55pm PDT on Friday, 6/20. It was taken out of service at 11am PDT Sunday, 6/22.Blaine Cook, Twitter’s lead architect, has left the company . Predictably, the blogosphere is flaying him pretty good. Michael Arrington asks , “Amateur Hour Over At Twitter?” Ouch! Blaine, I feel for you. People expect and are pretty tolerant of a few bugs, but the problems at Twitter have been going on for long enough that it’s clear there were deep-seated architectural flaws that were not going away very soon.
Bug or Architecture Flaw? (Fail or No Fail)
Bryan Wheeler, Director Platform Development at msnbc.com “ Udi Dahan is the real deal. We brought him on site to give our development staff the 5-day “Advanced Distributed System Design” training. The course profoundly changed our understanding and approach to SOA and distributed systems. Consider some of the evidence: 1. Months later, developers still make allusions to concepts learned in the course nearly every day 2. One of our developers went home and made her husband (a developer at another company) sign up for the course at a subsequent date/venue 3.
Non-functional Architectural Woes
Every software system has an architecture, but not every software architecture is defined. While there is structure to most software systems, sometimes that structure has been explicitly thought about and sometimes it isn't. This is what can make a difference to whether a system works and how it's received by the stakeholders.

