background preloader

Software Architecture

Facebook Twitter

The Cloud Architect: A Necessary Evil? - DZone Cloud. The title “Architect” is a problematic one, as there are Data Architects, Infrastructure Architects, Application Architects, Technical Architects, Enterprise Architects (EA), and many, many more.

The Cloud Architect: A Necessary Evil? - DZone Cloud

However, as the drive to Modern (i.e., Cloud) Architectures continues, we are now seeing references to “Cloud Architects”. This title seems to be a necessary evil, as the move to cloud-based architectures is inevitable. Thus, “Cloud Architect” is destined to be a temporary designation, but a necessary one for now. Louis-Léopold Boilly [Public domain], via Wikimedia Commons What’s Makes Cloud Application Architectures Different?

Architects (of all kinds) had been focused on on-premises-based applications with a small component of the portfolio being SaaS or cloud-based. Unfortunately, traditional EA competencies (software design, integration patterns, security perimeters, SLDC) have not adequately prepared Architects for this shift. Finding the Silver Lining Example of "Bounded Context"[6] [3] [4] Microservice Design Patterns - DZone Cloud. Software Architecture Review Guidelines. Introduction Reviews are an opportunity for others to eyeball your documents/design/code/software architecture and for you to inspect others' work.

Software Architecture Review Guidelines

They facilitate knowledge interchange. But their primary goal is to increase software quality. They help you to spot faults before they become real disasters. Software Architecture AntiPatterns. Architecture AntiPatterns focus on the system-level and enterprise-level structure of applications and components.

Software Architecture AntiPatterns

Although the engineering discipline of software architecture is relatively immature, what has been determined repeatedly by software research and experience is the overarching importance of architecture in software development: Good architecture is a critical factor in the success of the system development.Architecture-driven software development is the most effective approach to building systems. Architecture-driven approaches are superior to requirements-driven, document-driven, and methodology-driven approaches. Projects often succeed in spite of methodology, not because of it. Software architecture is a subset of the overall system architecture, which includes all design and implementation aspects, including hardware and technology selection.

Architecture provides a view of the whole system. Read next This article is taken from our book AntiPatterns: The Survival Guide. Service-Disoriented Architecture. “You can have a second computer once you’ve shown you know how to use the first one.”

Service-Disoriented Architecture

-Paul Barham The first rule of distributed systems is don’t distribute your system until you have an observable reason to. Teams break this rule on the regular. People have been talking about service-oriented architecture for a long time, but only recently have microservices been receiving the hype. The problem, as Martin Fowler observes, is that teams are becoming too eager to adopt a microservice architecture without first understanding the inherent overheads. The term “monolith” has a very negative connotation—unscalable, unmaintainable, unresilient. Service-Disoriented Architecture. MonolithFirst. Evolutionary design · microservices tags: As I hear stories about teams using a microservices architecture, I've noticed a common pattern.


Almost all the successful microservice stories have started with a monolith that got too big and was broken up Almost all the cases where I've heard of a system that was built as a microservice system from scratch, it has ended up in serious trouble. This pattern has led many of my colleagues to argue that you shouldn't start a new project with microservices, even if you're sure your application will be big enough to make it worthwhile. . Microservices are a useful architecture, but even their advocates say that using them incurs a significant MicroservicePremium, which means they are only useful with more complex systems.

The first reason for this is classic Yagni. Enterprise Architecture. MSDN Library Servers and Enterprise Development.

Enterprise Architecture

Twitter Architecture. Toy solutions solving Twitter’s “problems” are a favorite scalability trope.

Twitter Architecture

Everybody has this idea that Twitter is easy. With a little architectural hand waving we have a scalable Twitter, just that simple. Well, it’s not that simple as Raffi Krikorian, VP of Engineering at Twitter, describes in his superb and very detailed presentation on Timelines at Scale. If you want to know how Twitter works - then start here. It happened gradually so you may have missed it, but Twitter has grown up.

Twitter now has 150M world wide active users, handles 300K QPS to generate timelines, and a firehose that churns out 22 MB/sec. 400 million tweets a day flow through the system and it can take up to 5 minutes for a tweet to flow from Lady Gaga’s fingers to her 31 million followers. ZeroMQ. ZeroMQ is a messaging library, which allows you to design a complex communication system without much effort.


It has been wrestling with how to effectively describe itself in the recent years. In the beginning it was introduced as ‘messaging middleware’ later they moved to ‘TCP on steroids’ and right now it is a ‘new layer on the networking stack’. I had some trouble understanding ZeroMQ at first and really had to reset my brain. First of all, it is not a complete messaging system such as RabbitMQ or ActiveMQ. I know the guys of Linden Research compared them, but it is apples and oranges. Wikipedia on HHVM « HHVM. Posted on January 6, 2015 by Brett Simmers If you’ve been watching our GitHub wiki, following us on Twitter, or reading the wikitech-l mailing list, you’ve probably known for a while that Wikipedia has been transitioning to HHVM.

Wikipedia on HHVM « HHVM

This has been a long process involving lots of work from many different people, and as of a few weeks ago, all non-cached API and web traffic is being served by HHVM. This blog post from the Wikimedia Foundation contains some details about the switch, as does their page about HHVM. I spent four weeks in July and August of 2014 working at the Wikimedia Foundation office in San Francisco to help them out with some final migration issues.

Http-headers-status-v3.png (3138×2184) Software Architecture AntiPatterns.