With the v8.5 release of Ektron comes the ability to develop and deploy a website using a 3-tier architecture, comprised of a front-end for presentation logic, middle-tier for business logic, and a data-tier for data persistence. In recent developer webinars, I've covered both the 3-tier basics (Ektron & the 3-tier Architecture) and the advanced topics (Advanced Development in a 3-tier Architecture). In this blog post, I'll answer one of the most common 3-tier related questions by helping you to understand when to use 3-tier architecture, and when not to.
Using v8.5 doesn't "make your site 3-tier" -- if you upgrade to v8.5 from a previous version, your site remains 2-tier. If you develop a new v8.5 site following the approach you have for previous versions, your site will be 2-tier. If you're still trying to understand the differences between a 2-tier and 3-tier architecture, see the previous webinar links for some helpful information.
Some have asked if it the decision should be a function of the size of the deployment, or based on the number of site visitors accessing the site, etc. The reality is, it's not really a function of a single variable, like the size or usage of the website. You might have a very large deployment that remains a 2-tier architecture. You also might have a small marketing site that could be a good candidate for the 3-tier architecture. The following list will help guide you through the process and help you to understand which is the best fit for your project.
In some cases, the decision to use 3-tier will be based entirely on requirements that necessitate it. The five attributes of a 3-tier architecture:
3-tier & eSync: When you develop and deploy Ektron in a 3-tier architecture, you have to keep in mind that the front-end machines do not have a full ektron installation. The full Ektron installation exists on the middle-tier, which is where eSync resides. This means you can move content, assets, page builder pages, etc. just fine from a Stage environment to the middle-tier in a Production environment. However, since eSync does not reside on the front-end, you need to consider alternative eSync configuration to move images, assets, and code from a staging environment directly to a production environment. You can watch this webinar for more information.
3-tier & PageBuilder: Again keeping in mind that the front-end does not have a full Ektron installation, you cannot author PageBuilder pages on the front-end machines.
PageBuilder authoring needs to happen either:
Have you ever developed a 3-tier web application before? Do you understand the benefits of the 3-tier architecture? While the 3-tier architecture certainly simplifies a number of things for an Ektron deployment (for example, the minimal foot-print on the front-end), you have more moving pieces to consider during development and testing. While the Framework API hides the Windows Communication Foundation (WCF) Service layer, you should have some previous familiarity with using WCF and the Unity Application Block, which is a dependency injection framework used by Ektron in the implementation of the cache layer.
Beyond the license cost for Ektron, you'll have to consider the cost of provisioning the additional hardware and OS for your front-ends. Though the cost of physical hardware might be potentially mitigated by using virtualized front-ends in a Production environment, you need to consider how this will affect Staging and Development environments. Will you need to mirror the hardware of your production environment in staging?Additionally, if you're implementing your own 3-tier service layer, this could increase implementation costs, so it requires considering more than just hardware.
There you have it -- these are the questions that I usually ask someone to help them guide them down the path of choosing between a 3-tier and 2-tier deployment. Making the right choice for your project boils down to understanding the benefits and limitations of the 3-tier, recognizing the strengths and limitations of your own technical abilities, and understanding the budget for your project. I like working with the minimal Ektron footprint on the 3-tier front-end, so will choose to use it even on smaller sites -- provided that -- the requirements match up, and it makes sense from a content deployment standpoint (with eSync, PageBuilder, etc).
Do you have anything to add to this list? Let me know in the comments!