What does N-tier Architecture mean nowadays?

回眸只為那壹抹淺笑 提交于 2019-12-03 14:22:55

From wikipedia article I read:

Generally, the term tiers is used to describe physical distribution of components of a system on separate servers, computers, or networks (processing nodes). A three-tier architecture then will have three processing nodes. Layers refer to a logical grouping of components which may or may not be physically located on one processing node.

I do think that the concept of "layer" and the concept of "tier" got mixed up with time. I personally like to talk about layers only rather than tiers as I prefer PAAS solutions where my concerns are only on the software, and the industry is slowly moving in this direction.

Also when you plan for an application that could greatly expand I still don't think that you should think about n-tier for scalability. In fact, very popular websites with a lot of traffic only separate themselves into 3 components: Database servers, web servers (including the caching servers), and a few CDN (content delivery networks). This kind of separation can be achieved in any application.

But to conclude, I think a programmer should only think abuot layers and separation of concerns within the application to achieve the most important (and difficult) task: maintainability in the long run.

Security for one? I'd rather you hit my web servers than my app servers!

I think it is, and always has been, an artificial distinction. I agree with your premise that it refers mostly to logical separation of components these days. However, there are still plenty of applications that are too big (use wise or data-wise) to fit on a single machine, so the idea of separating an application into discrete components for scalability reasons is definitely not dead.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!