Tech Arch What?
Technical architecture relates to the design, planning, deployment, and operations of a system. It spans all layers - infrastructure (network, servers, persistence/data), application, and presentation. Bundled in there is also the way that the technology is delivered; from the version control system (Subversion vs. Git), delivery methodology (Waterfall vs. Agile), to the way the code makes its way to the users of the application (Continuous Integration & Automated Deployment). Architects need to holistically understand the solution, and have the knowledge to make granular decision to support the big picture.
The Correct Architecture for Your Solution
Many factors influence architecture choices, ranging from the purpose of the application, expected load as it rises in popularity, to the total cost of ownership. Some examples of questions that shed light on the way the puzzle should be built include:
- Is your application static, or transactional?
- How many users will the app support per month/day/hour, and what is their expected behavior?
- Will the application usage stay consistent over time, or do you need to plan for viral explosion of usage?
- Does it need to be performant in the same way for users in the US vs. Europe or Asia?
- How important is data synchronization speed and integrity across multiple locations?
- And the ever-important - How much money is available to support the whole system?
The answers to these question will drive the technologies and architectures that should be used. There’s no need to build a fully automated home, complete with wifi-enabled lighting, suited for hosting decadent parties, when all you wanted and needed was a rustically-romantic cabin in the woods.
Building it Right