Architecture

TwitterFacebook
Get flash to fully experience Pearltrees
http://cacm.acm.org/magazines/2010/11/100622-understanding-throughput-oriented-architectures/fulltext

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.
http://www.michaelnygard.com/blog/2010/04/failover_messy_realities.html I've recently been reminded of this during some discussions about disaster recovery. This topic seems to breed misconceptions. Somewhere, I think most people carry around a mental model of failover that looks like this: That is, failover is essentially automatic and magical. Sadly, there are many intermediate states that aren't found in this mental model.

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. http://www.michaelnygard.com/blog/2008/07/s3_outage_report_and_perspecti.html
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. http://www.dancres.org/blitzblog/2008/06/18/exposure/

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

http://hinchcliffe.org/archive/2009/03/17/16712.aspx

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: http://jacobian.org/writing/great-documentation/what-to-write/
http://jacobian.org/writing/great-documentation/technical-style/ Now that I’ve discussed what kinds of technical documentation to write , I can move on to the question of how to actually develop a writing style that produces great technical documentation. Learn to write Unfortunately, there aren’t any shortcuts here. The best way to learn how to write great documentation is to first learn how to write (anything).

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. http://www.codingthearchitecture.com/2009/10/19/documenting_your_software_architecture_why_and_how.html
http://www.dancres.org/blitzblog/2008/07/01/corruption/

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. http://smoothspan.wordpress.com/2008/04/23/bug-or-architecture-flaw-fail-or-no-fail/

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.

How do you define software architecture?

Architectural Options for Asynchronous Workflow

Summary: This article describes the benefits of asynchronous processing and discusses three possible ways to implement this type of workflow within your own systems. (21 printed pages) Many processes that occur as part of a line-of-business application are not executed instantaneously. Authorizing a credit card, for instance, can take ten seconds in some cases. Ten seconds is very fast when you are in line at the local store, but in the world of electronic commerce, ten seconds is a very long time.