Amazon’s store and other Amazon systems demonstrate critical application architecture best practices for extreme-scale systems that should become next practices for enterprise application architects and developers. According to Vogels, in 2006, the Amazon store’s first page called for 250 APIs to fill up a number of screens. What’s more amazing is that this represented at least one-third of the total APIs available for the store system or “application” from its SOA/WOA-based application architecture. Compared to many enterprise environments Amazon had the opportunity to learn about, this represented a small number of APIs and didn’t happen by accident. According to the infamous Steve Yegge “rant”4 from a previous Amazon employee, CEO Jeff Bezos issued a mandate that everything would go through APIs. Amazon itself says that the basic architectural principles were developed by architecture and engineering leaders, and strongly supported by all executive management — but it acknowledge that its charismatic CEO is instrumental in inspiring change and culture. Both bottom-up and top-down aspects drove significant adoption. According to Yegge, firing those who didn’t use the service interfaces was another of the rules from CEO Jeff Bezos’ mandate, but Amazon says this is a literal exaggeration — no one has ever been fired for this. The SOA/WOA API architecture wasn’t just motherhood and apple pie. Amazon doesn’t just pay lip service to this principle. Many organizations seem to say that SOA/WOA is an important principle, but few that we’ve seen take it this seriously. Changing the culture of an organization requires strong and action-oriented leadership for change — and Amazon’s executives accelerated this charge, even though the issue was a technical one. An applications architecture describes the behavior of applications used in a business, focused on how they interact with each other and with users. It is focused on the data consumed and produced by applications rather than their internal structure. In application portfolio management, the applications are usually mapped to business functions and to the application. The applications architecture is specified on the basis of business and functional requirements. This involves defining the interaction between application packages, databases, and middleware systems in terms of functional coverage. This helps identify any integration problems or gaps in functional coverage. A migration plan can then be drawn up for systems which are at the end of the software life cycle or which have inherent technological risks. Applications architecture means managing how multiple applications are poised to work together. It is different from software architecture, which deals with technical designs of how a system is built. Every organization has a core set of applications that are used across multiple divisions either as a single instance or a different instance per division. Create a solution architecture template for all the core applications so that all the projects have a common starting ground for designing implementations. The standard of today Architecture world is TOGAF, driven by The Open Group Architecture Framework. It covers all components of EA, including Application as well as Technology Architecture.
There are also other standards to consider, depending on the level of complexity of the organization:
• The Zachman Framework for Enterprise Architectures
• Federal Enterprise Architecture (FEA)