In spite of the big inroads of various cloud based services in the messaging infrastructure space such as BPOS/Office 365, Google, many organizations continue to host their messaging infrastructure on-premise due to the unique nature of their requirements. Microsoft Exchange has made great strides in keeping up with user requirements for newer functionality, increased demand for mailbox sizes, social networking components, support for iOS / Android based devices and various browsers and simplifying the administration experience. From an application perspective, Microsoft has made many important architectural changes to the platform to suit the needs of high availability, virtualization, huge demand for storage, separation of functions into roles to make it simpler to manage etc. These changes have introduced many dependencies on various elements of the IT infrastructure for Exchange.
Even though evaluating requirements for CPU, Memory, Disk and Network are common to all applications, this blog provides an outline of the unique requirements and many dependencies that need to be taken into account for any size of Exchange install or transition project. Please refer to my earlier blog on top 10 features in Exchange for end users.
Processing power / CPU – Exchange as an application has unique demands for CPU requirements. The processing power that is provisioned to Exchange requires special attention because of the unique needs of different application roles such as CAS (Client Access Role), HT (Hub Transport role) and Mailbox. The need for additional applications such as message hygiene, increased usage of mobile device access adds to the CPU requirements for Exchange. CPU requirements need to be carefully calculated and appropriately provisioned based on various factors such as number of users, their profile (number of messages they send and receive), role requirements, additional applications tied to Exchange etc. Microsoft has provided many tools to calculate the processing power required for a optimal infrastructure and some of them take into account the need to provision Exchange under a virtual environment. CPU provisioning in a virtual infrastructure demands extra attention to make sure that it is not overprovisioned.
Memory – Microsoft has made many changes to the database engine to reduce the required load on storage and that has resulted in increased foot print for memory. Apart from the memory requirements for the base operating system, each user is typically provisioned a 10 to 20MB of cache on the servers. It is typical of a server to be configured with 32GB to 64GB of memory for a Exchange server with combined roles. The need for additional servers for different roles increases the memory capacity requirements for the messaging infrastructure. Provisioning appropriate memory for different roles is the key to optimal performance for Exchange. Memory configuration under a virtual infrastructure adds another layer of complexity. Many organizations may not be able to provision reserved or dedicated memory in a virtual environment for certain roles such as Mailbox server and that may mean not able to virtualize that role.
Storage – Storage performance requirements for Exchange was probably one of the most talked about topics with earlier versions of Exchange. With the changes in the database engine and increased availability of memory due to 64 bit nature of both the Operating System and the application the demand for storage performance has come down considerably. On the other hand, the need for high availability, site resiliency, increased mailbox size, has resulted in two to three fold increase in disk space. This in addition to virtual layers under a Virtualized environment has increased the complexity of storage provisioning. Under a virtual infrastructure additional care needs to be taken for storage provisioning due to many options and layers available such as native file system, raw disk mapping, iSCSI in the guest etc. Each of these options has their strengths and each of them needs careful planning.
Networking – Exchange has various options for high availability and site resiliency and a suitable solution requires proper planning. The network architecture needs to take into account additional bandwidth and latency requirements for database replication, and review of network traffic patterns. Exchange 2010 requires all clients to connect to the CAS (middle tier) role as opposed to the Mailbox server. This change requires careful planning on client network traffic and load balancing. Site resiliency requirements need to take into account careful planning for load balancing; DNS name space, failover and failback procedures. A NLB solution may require changes to the networking infrastructure such as proxy arp on the routing layer and NLB rules to control different client traffic such as MAPI and HTTPS.
Proxy – Many organizations require that all application traffic pass through an application firewall / proxy layer. This layer minimizes the risk of various threats such as denial of service, malware etc. in the client traffic. As more and more mobile devices are used to access email there is a need to put appropriate measures to secure the messaging infrastructure including application proxy, mobile device management etc. An application proxy can be in the form of an appliance, an existing firewall or software such as Microsoft Forefront Gateway. Each of these solutions has unique capabilities and every organization needs to weigh in on the pros and cons of these solutions. The application proxy layer also requires careful planning with various factors such as SSL certificates, pre authentication, firewall rules etc.
As is evident from the factors outlined in this blog, Exchange 2010 project requires careful planning, due diligence and involves taking into account the many dependencies.
Prakash is a Senior Consultant at Zensar