Chapter 3

Exchange Architectural Concepts

In Chapter 1, “Business, Functional, and Technical Requirements,” we spoke about the best practices that we tend to take for granted: that storage should be built in a certain way, that roles should be allocated in a certain ratio, and so forth. To this day, we often come across Exchange 2010 implementations that clearly reflect Exchange 2007 and even Exchange 2003 thinking. Exchange 2013 is a completely new version and, as such, the best ways for implementing it will develop as the product is deployed and it matures through various cycles of cumulative updates.

Exchange 2010 went through a similar cycle. The recommendations for implementation at RTM were very different than those made at SP2. These kinds of changes in guidance are natural for Exchange. Nevertheless, it means that those who don't keep up with the changes in guidance will implement Exchange according to some old guidance, and they will not be able to take advantage of the full capabilities, either of Exchange or the hardware platform on which it is deployed. Significant savings can also be achieved by deploying Exchange according to new guidance, because it takes advantage of the latest storage and application replication capabilities, which may be lost if deploying Exchange using outdated guidance.

The aim of this chapter is to define the concepts on which Exchange is built and then to extrapolate those concepts into the design choices that have resulted in the Exchange 2013 version.

If you are a messaging consultant or administrator faced with upgrading from an earlier version of Exchange, then the history section in this chapter will help you address the architectural changes and features required to guide your customer through an upgrade to Exchange 2013. Knowing which features have changed, which have been discontinued, and which have been de-emphasized is a critical skill for messaging administrators and consultants. Consider the example where significant applications have been developed to take advantage of WebDAV. As a consultant, you must be able to point out that this mechanism is no longer available to access mailbox contents and what the available alternatives are.

We will explore both the history of the product and specific areas that pertain to Exchange 2013. This chapter is built on the concepts and vocabulary for Exchange to increase your understanding of the product. Understanding Exchange fully will help you choose features and build a messaging system that meets the requirements put forth by a business. Understanding what and where Exchange starts and ends and what it does not do may also arm you with the necessary appreciation of how to choose products and features from the third-party ecosystem.

The Evolution of Exchange 2013


Note
As a messaging professional, we assume that you have a basic understanding of email systems such as Exchange. If your background is Novel GroupWise, Lotus Notes, or another mail system—or even previous versions of Exchange—this chapter will provide the basic architectural concepts of Exchange 2013 without exploring every specific feature of Exchange in detail.

To appreciate fully where Exchange 2013 is today, it helps to examine where Exchange 2013 came from. As we explore the previous versions of Exchange, we can identify the best practices of yesteryear and how those practices no longer apply to Exchange 2013. In Chapter 1, we explored that the “long trail of obsolete best practices” is still being applied to current-day products such as Exchange 2013 through storage and other best practices that originated in earlier versions of Exchange. As a consultant, you must be able to understand and identify which best practices no longer apply and why when faced with the inevitable discussions surrounding best practices, including topics such as storage, security, high availability, and so forth.

Exchange started as Microsoft Mail in 1991. Microsoft Mail reflected the thinking of the day in terms of storing email in a post office and interoperating via a Message Transfer Agent (MTA) and connectors. Exchange 4.0 was released in April 1996 followed by Exchange 4.0 (a) in August of the same year. Five service packs later, Exchange 5.0 was released in March 1997 and Exchange 5.5 SP4 in November 2000. Though Exchange 5.5 scaled well as a departmental messaging solution, it did not scale well at all as a global enterprise solution by today's standards.

The most important piece of technology for our purposes was the birth of the Extensible Storage Engine (ESE). It is the only architectural concept that has been carried forward—in a vastly optimized version—from Exchange 5.5 and below to Exchange 2013.

ESE is the database engine used in Microsoft Exchange, Microsoft Active Directory, and a number of other Microsoft products. It was built as a non-hierarchical database so that it could store unstructured data. ESE was designed to survive system crashes and to cache data intelligently in order to provide high-speed access to data when required. These tenets of ESE design have been carried through its various offspring released with different versions of Exchange.

ESE was initially optimized for the scenario when disk speeds were very slow and disk storage was very expensive. Emails were single instanced wherever possible. This meant that an email received for several recipients was stored only once but referred to as many times as necessary, eliminating the need to write disparate copies for every recipient into the same database. Because of the single-instance scenario, ESE was also highly optimized for random access in its read/write profile.

Exchange 2000/2003

Exchange 2000/2003 and later versions introduced a number of concepts that are carried forward into the current product in one form or another. We will briefly introduce each concept in order to add context to the overall architectural view of Exchange 2013. Unless otherwise noted as discontinued, the features discussed in previous versions of Exchange continue into Exchange 2013. These versions of Exchange moved the product out of the departmental email space and firmly into a datacenter-based enterprise-messaging solution. They supported high availability and a scale that was impressive for their time. Exchange had moved from a “garage” mentality to a datacenter approach.

Active Directory Integration

We will consider Exchange 2000 and Exchange 2003 together, because these versions introduced one of the key features of Exchange to this day: Active Directory integration. Exchange 2000 was the first product to integrate directly into Active Directory. Previous versions of Exchange, including version 5.5, maintained a separate directory that defined configuration data, recipient data, and authentication data for recipients. With Active Directory integration, Exchange 2000 natively integrated recipient and authentication information so that virtually all pertinent recipient information and configuration data resided in one place. This was a huge leap forward, and it allowed Exchange to scale to the limits of Active Directory. We are aware of Exchange implementations within the confines of a single forest that number into the millions of mailboxes. Moving forward in time, Exchange is now able to take advantage of the authentication mechanisms provided by Active Directory, including NTLM and Kerberos.

Exchange 2000/2003 used administrative and routing groups as administrative and message routing boundaries, respectively. Administrators were required to plan both the administrative layout of Exchange servers as well as the message routing topology. Limited delegation of responsibilities could be achieved using administrative groups and Exchange-specific groups.

Transport

Exchange incorporated message transport standards early on using the dominant standards of the day to route mail. Exchange 2000 was no exception, introducing SMTP as the standard for message routing.

Management

Exchange 2003 had limited management capability, with only three roles available for delegation via a Microsoft Management Console (MMC)-based administration console. No granular delegation models existed via the Exchange management utilities, and Exchange administrators tended to set very high levels of rights in Active Directory. Significant management overhead existed in order to build and maintain a granular delegation structure.

Role Separation

Exchange 2000/2003 could achieve role separation. Servers had differing functions, such as email storage, email routing, public folder storage, and client access for some client protocols. The drawback in this version of Exchange, however, was that it achieved role separation via configuration, not via a dedicated role. Administrators needed to enable specific features or configurations in order for a server to be a dedicated client access endpoint, which in Exchange 2000/2003 terminology was called a front-end server.

High Availability

Exchange 2000/2003 could be clustered in order to archive high availability. That is, a component could fail, but the availability of email remained unaffected. Clustering was dependent on expensive SAN-based storage that introduced a high level of complexity. Often, clustered implementations had lower uptime numbers when compared to standalone implementations. These solutions had no awareness of the nature of the data that they attempted to safeguard, and administrators needed to be highly proficient with both clustering and SAN technologies in order to maintain good uptime figures.

Storage

Storage groups are Exchange mailbox and public folder databases with a shared asynchronous database-logging mechanism per group. Exchange 2003 raised the limit of the number of databases to 20 to be contained in a maximum of four storage groups in the Enterprise version.

To this day, Exchange 2000/2003 storage recommendations surface incorrectly as “best practices,” specifically:

Sacrificial spindles were often needed, which allowed extra disks to be used in order to achieve the needed IOPS. This was accomplished at the expense of unused disk capacity.

Very few choices existed to the messaging administrator in terms of how to create storage solutions. RAID 5/10/50 for database volumes and RAID 1/10 for log volumes prevailed, both as SAN-attached volumes as well as locally attached volumes in the case of smaller implementations.

Exchange 2007

Exchange 2007 was a major milestone that introduced several new concepts while improving on others. Exchange 2007 was the first version of Exchange that mandated a 64-bit architecture, albeit with a limit of 32 GB of usable memory. Technically, more memory was addressable, although it was cheaper to add more servers than to double the memory from 32 GB to 64 GB. Exchange 2003 had significant scalability limitations, due to a 32-bit memory model, which severely restricted how many mailboxes a given server could serve. Exchange 2007 discontinued a number of features, including routing groups, administrative groups, support for network-attached storage, and the Exchange Installable File System (ExIFS), among others. Nonetheless, these features were still available for the Exchange 2003 server hosting a desired feature or connector, for example, GroupWise. Exchange 2007 was the first version of Exchange to move from a centralized storage model to an application-based replication model, and it introduced the replication concepts that led to the model available via Exchange 2013.

Active Directory Integration

Exchange 2007 built on the model of using Active Directory by not only storing Exchange data in Active Directory but also through leveraging the Active Directory topology for message routing instead of using Exchange 2003 routing groups.

Transport

Exchange 2007 built on the foundation provided by Exchange 2003 and introduced new features that directly related to the scalability and availability of the platform:

Self-Signed Certificates Exchange 2007 introduced self-signed certificates, which were those certificates created by the Exchange server in order to bootstrap a secure configuration for Exchange. The Exchange 2007 Transport service made extensive use of certificates to secure mail flow so that message transfer between Exchange servers was encrypted by default.
Back Pressure This feature protects the message-transfer capabilities of Exchange by monitoring free disk space and memory. If thresholds are exceeded, Exchange throttles connections and eventually stops accepting messages. Once the monitored thresholds return to normal, Exchange accepts new messages.
Active Directory Site-Based Routing This feature leverages the Active Directory concepts of sites and Active Directory IP site links to route mail. Routing was configured automatically based on the Active Directory topology. However, administrators were still able to define additional routing information to specific Active Directory sites and Active Directory site links.
Least-Cost Routing This concept uses an algorithm that uses Active Directory site-based routing to determine the path a message should follow. Active Directory link costs are used to calculate the path with the lowest cost and the fewest message hops. An Exchange administrator may have configured a different Exchange cost to an Active Directory link. This would impact the resulting least-cost path directly and thereby define a different message route.
Receive Connectors These are server-based, dedicated configuration items that allow as many Receive connectors as necessary to be constructed. These connectors specify items such as source, authentication parameters, and IP address to receive email on, among others. Receive connectors introduced a new level of granularity in the ability to configure connections to receive email.
Send Connectors These are organization-wide configuration items that can be scoped to a specific Active Directory site and route messages to specific address spaces. Send connectors allow specific parameters to be defined per address space, such as whether a smart host or DNS should be used, what authentication parameters should be specified, whether secure message transfer via TLS is to be used, and other parameters.
Transport Rules These run on the Hub Transport or Edge Transport server role. They allow the administrator to create actions affecting mail in transit without writing any code. Transport rules can be defined via the Exchange Management Console or the Exchange Management Shell.
Transport Dumpster The transport dumpster is hosted by the Hub Transport role, and it defines an area to retain email messages that have already been delivered to mailboxes hosted on a CCR cluster participating in the same Active Directory site as the Hub Transport server. Messages are retained in transport queues for a stated period of time, along with defined storage limits, which may be adjusted by the administrator. Messages are replayed to mailboxes stored on the participating CCR cluster should a failover occur in which the passive node is not 100 percent in sync with the active node. The transport dumpster is not a guarantee against data loss in a failover scenario, because it is only able to protect email that has already been transmitted, as opposed to email still in transit or changes made to a mailbox using Outlook in online mode.

Management

Exchange 2007 introduced a new management paradigm with the use of PowerShell. Management capabilities were implemented via PowerShell first and afterward through the GUI. Just as Exchange 2000 was a trendsetter for its use of Active Directory, Exchange 2007 set the standard for future products in how PowerShell was used for administration.

Administrative roles were improved over Exchange 2003. However, granular delegation capabilities still did not exist natively. Split-permission models were available so that Exchange administrators had limited permissions in Active Directory. However, this required the implementation of custom access control lists at an Active Directory object and attribute level using tools such as ADSI Edit and DSACLS. Split-permission models were difficult to create and maintain, and they were by no means self-documenting.

Whereas Exchange 2000/2003 forced administrators to become storage experts, Exchange 2007 required administrators to learn new skills, specifically how to create and maintain X509 certificates. The following Exchange 2007 management features were significantly changed or introduced:

Autodiscover The introduction of Autodiscover, that is, the ability for an Outlook or ActiveSync client to query Exchange for configuration information based on an email address and credentials and to receive the connection parameters required to configure itself, was a major step forward. Autodiscover forms the basis not only of client configuration but also of high availability in this and future versions of Exchange.
Public Folders These were announced as deprecated in Exchange 2007, which initially did not even ship with a public folder management console. Recanting the preliminary announcement, Microsoft shipped service packs that introduced a new management console with limited capabilities. However, administrators soon learned that, beyond the basic tasks represented by the GUI, PowerShell was needed for day-to-day administration.
Exchange Web Services Exchange Web Services (EWS) provided a SOAP-based protocol via a web services interface to access mailbox and public folder data. It replaced WebDAV, CDOEX, and ExOLEDB, which prevailed as the dominant access mechanisms in Exchange 2003. These mechanisms were still available in Exchange 2007, but they were de-emphasized in favor of EWS.

Role Separation

Exchange 2007 reintroduced role separation via the concept of Exchange roles, which could be deployed together on a single server, by themselves on dedicated servers, or a combination of the two models. Exchange 2007 introduced five roles:

Client Access Server (CAS) This was used for handling most client access protocols, with the exception of MAPI.
Hub Transport Server (Hub/HT) This was used for handling all mail flow, as well as message delivery, journaling, and application of transport rules.
Mailbox Server This was used for hosting mailbox and public folder databases.
Unified Messaging Server This was used to integrate Exchange 2007 into telephone/SIP networks and for facilitating voicemail and fax integration into a unified inbox.
Edge Transport Server This was used as a standalone SMTP Transport server, designed to be deployed in perimeter networks.

The primary reason for role separation was that servers were “CPU bound,” such that CPU resources were exhausted first. Role separation allowed CAS to be separated from Hub and Mailbox roles, facilitating a scaling out of Exchange functions. An Exchange 2007 CAS server and Exchange 2007 Hub server were required in every Active Directory site hosting an Exchange 2007 Mailbox server.

Roles could be deployed autonomously from each other and thus facilitated flexibility in deployment, management, and engineering. Administrators no longer needed to deploy a full server and then disable the features that they did not want to use. Management tasks could now be grouped around a set of roles as opposed to a group of servers. An extra role could be deployed if required to bolster specific capacity that might be required. For example, if the existing CAS server could not handle all incoming HTTP client traffic, then another CAS role could be deployed. Although the roles could be split out, they still needed to be updated in sequence, specifically CAS, Hub, and then Mailbox roles.

In Exchange 2007, databases were grouped together via storage groups that contained the databases and the transaction logs. Single instance storage was available for databases within a storage group.

High Availability

In Exchange 2007, roles could be combined such that CAS, Hub, and Mailbox roles could coexist, although if the Mailbox role was clustered in any way, then the CAS and Hub roles could no longer be combined with the clustered Mailbox role. A resulting role combination that became quite popular was combining CAS and Hub roles over two or more machines that were highly available, using either Windows Network Load Balancing or another load-balancing mechanism and clustered mailboxes on other machines.

Exchange 2007 introduced several mechanisms for ensuring that stored mail was highly available via the Mailbox role using either traditional shared storage clustering similar in nature to Exchange 2003 or log shipping. Log shipping allows an Exchange database to be replicated from one location to another by copying the transaction logs asynchronously generated by the primary database to another location. There the logs are replayed to construct another database. Exchange 2007 supported the following cluster or log shipping-based features:

Local Continuous Replication (LCR) This is a single-server solution that used log shipping to create and maintain a copy of a storage group in another location, normally another set of disks. The administrator drove the switchover; that is, it was a manual process.
Cluster Continuous Replication (CCR) CCR paired clustered Exchange 2007 servers using non-shared storage in an active-passive arrangement. Storage groups containing mailbox databases were made highly available using log shipping on the passive node. Failover was automatic or administrator driven. However, upon failover, all databases needed to failover from the primary node to the secondary node. If bandwidth allowed, the nodes of the CCR cluster could be deployed in different datacenters. Because of the shared-nothing clustering model of CCR and the less stringent requirements, CCR nodes could be dissimilar, as long as the storage paths were identical. CCR rapidly became the most adopted high-availability mechanism.
Standby Continuous Replication (SCR) This feature was introduced in Exchange 2007 SP1, and it allowed the administrator to create a copy of a storage group on another machine, irrespective of whether the source was a clustered or standalone instance, normally in another location. SCR required a manual switchover to activate a storage group in another location, and it was considered a disaster recovery solution.
Single Copy Clusters (SCC) These were a natural evolution of the traditional shared-storage clustering mechanism introduced in Exchange 2000/2003. Storage tended to be SAN-based in order to provide storage resilience, which allowed one of the hosts to suffer a failure so that the responsibilities of that node could be moved to another node, either manually or automatically. SCC supported a maximum of eight active and passive nodes combined. Similar to clustering in previous versions of Exchange, it was highly complex and had a stringent list of requirements. Nodes needed to be identical in terms of hardware, software, and, often, firmware levels.
Transport Dumpster This concept was introduced with CCR clusters, and it allowed received messages to be retained for a configurable period of time. In the event of a lossy CCR failover, messages retained in the transport dumpster would be retransmitted in order to negate possible data loss.

Storage

Exchange 2007 Enterprise increased the number of databases to a maximum of 50 contained within 50 storage groups. Even though a storage group could contain up to five databases each, Microsoft recommended the use of one database per storage group.

Improvements in the ESE database in Exchange 2007 gave the administrator more storage choices. Specifically, it provided the administrator with the ability to choose between SAN-based storage or Direct Attached Storage (DAS) shelves. Because of the introduction of roles as well as the CCR HA model, Exchange could scale up and out as required. Flexibility in storage choices made both scaling up and out cheaper than ever before, since DAS storage is far cheaper than SAN-based storage.

Exchange 2010

Building on the success of Exchange 2007, Exchange 2010 introduced many new features that form the basis of our understanding of Exchange 2013. Exchange 2003 and Exchange 2007 could still be upgraded from within the organization. While Exchange 2010 deprecated a number of features from both Exchange 2003 and Exchange 2007, such as Lotus Notes migration, by retaining the Exchange 2007 server hosting of the Microsoft Transporter Suite as part of the organization, these features can still be accessed. Exchange 2010 deprecated non-GUI features in the replication model, such as SCR, and it consolidated the various high-availability models available into one model. It also became the easiest version of Exchange ever to achieve a multiple-copy, highly available Exchange installation. It did so without having to reinstall Exchange (unlike every previous version of Exchange).

Discontinued Features

Exchange 2013 requires Exchange 2003 to be removed completely from the organization as an installation prerequisite. This means that a “double-hop” migration from Exchange 2003 to Exchange 2007/2010 and then from Exchange 2007/2010 to Exchange 2013 is the most natural upgrade path. As mentioned in the introduction, a consultant must be able to identify which features or product capabilities will be left behind during such an upgrade.

Exchange 2010 discontinued a number of features and concepts from Exchange 2007, some of which had been in place as far back as Exchange 2003. Thus, a number of features stand out architecturally from those that were deprecated, discontinued, or replaced:

Every version of Exchange has brought with it new features while discontinuing others. The lack of single-instance storage is still mourned by the storage community to this day. Nevertheless, this concern is only valid when thinking about high-cost storage. Single-instancing messages made a lot of sense when storage was expensive and needed to be very fast. Exchange 2010 introduced a new storage paradigm, which administrators still struggle with to this day—the ability to place databases on relatively slow and cheap disks. In Chapter 5, “Designing a Successful Exchange Storage Solution,” we will cover what changed and why, in order to leave single instancing behind and why it is no longer desirable.

Active Directory Integration

Exchange 2010's use of Active Directory to store configuration and directory information is similar to that of Exchange 2007. Every subsequent version of Exchange continued extending the Active Directory schema as features were added to Exchange.

Transport

Exchange 2010 introduced a number of new features designed to prevent a particular service from abuse or from becoming overwhelmed to the point of failure:

Message Throttling This protects the Transport service by implementing limits on message processing rates, SMTP connection rates, and SMTP session timeout values. These limits are adjustable to suit the messaging requirements of an organization, assuming that the rates defined at shipping time are insufficient.
Transport Agents These permit extensibility of the transport stack by allowing the administrator to install custom software that may access and act on messages while they are being transported via SMTP. A classic example of a transport agent is antivirus software, which inspects a message item in transit, before it reaches the intended destination.
Version-Based Routing Because of the differences between the API versions used to deliver messages to an Exchange store, Exchange 2010 introduced version-based routing, which prevents an Exchange 2007 Hub Transport server from delivering a message to an Exchange 2010 message store and vice versa.

Integrating transport rules with an Active Directory Rights Management server allowed the administrator to encrypt messages in transit, even after they had left the user's mailbox, if defined conditions were met.

Management

Exchange 2010 delivered a new set of management tools built on the remote PowerShell features introduced with PowerShell 2.0. The GUI capabilities were enhanced via the new Exchange Management Console with greater capabilities in the MMC-based tools and a new web-based administration portal, the Exchange Control Panel.

Similar to Exchange 2007, the Exchange 2010 Exchange Management Console was built on a PowerShell-based foundation in that it executed PowerShell in order to manage Exchange. However, the 2010 version of the Exchange Management Console exposed PowerShell, which it would execute via the properties dialog box via these features. Exchange 2010 introduced a number of new management features or improvements over Exchange 2007. A description of these features follows:

Administrator Audit Login This allowed actions performed in the Exchange Management Console, Exchange Admin Center, and PowerShell to be logged.
Role-Based Access Control Exchange 2010 introduced Role-Based Access Control (RBAC), which provided a new paradigm of granular control to Exchange administrators. Role-Based Access Control allows for the definition of roles, which define with exacting granularity who can do what and where can they do it. RBAC no longer relied on access control lists as did Exchange 2007, and, by the introduction of roles, it eliminated the management challenges caused by the use of access control lists. We will deal with RBAC in detail in Chapter 6, “Management.”
Split Permission Model A split permission model was introduced in Exchange 2010, which separated Exchange management and Active Directory management. If it was implemented while running setup, Exchange administrators could no longer create users, groups, or other security principals in Active Directory, but they could perform tasks pertaining to the management of servers and existing recipients. Choosing this model also meant that RBAC was not going to be used to delegate permissions.
Client Throttling Policies These policies defined a set of wide-ranging client access parameters to ensure that, irrespective of client access method, an individual or a few abusive clients would not affect Exchange Client Access server performance.
Multi-Tenant Model This was introduced in Exchange 2010 Service Pack 1. It allowed enterprises to host multiple Exchange customers in a single organization, with a logical separation between customers. This feature, known as hosting mode, replaced solutions such as Microsoft Hosted Messaging and Collaboration from Exchange 2007. However, it was deprecated with the release of Exchange 2010 Service Pack 2. Hosting mode provided no management GUI with the exception of ECP, which permitted limited management, and it did not see mass adoption. Exchange 2010 Service Pack 2 also introduced hosting guidance and Address Book Policies (ABP), which allowed hosting partners and customers to achieve global address list (GAL) separation, that is, the creation of multiple GALs within a single organization, for a hosted solution or an on-premises organization.
Archive Mailboxes These were introduced in Exchange 2010 as a concept for a secondary mailbox that could be stored in another database. Retention policies initiated via Messaging Records Management (MRM) or user interaction could cause mail to be moved from the primary mailbox to the archive mailbox. Users could interact with messages in the archive mailbox in a manner identical to the primary mailbox.
Retention and Litigation Holds These holds were introduced in Exchange 2010 and created a copy of items modified in the primary mailbox or the archive and stored them in a non-client-accessible area, specifically the mailbox dumpster. These changes could then be surfaced via another feature introduced in Exchange 2010, Discovery Search.
Discovery Search This feature of the Exchange Control Panel allowed users who had been given the required rights via RBAC to perform discovery searches against Exchange 2010 mailboxes and to store the results in a Discovery mailbox for further examination.

Role Separation

The role separation concepts introduced in Exchange 2007 were maintained in Exchange 2010. However, a new high-availability model meant that the Exchange 2010 CAS, Hub, and Mailbox roles could now be combined, even if the Mailbox role was highly available. The combination of these roles onto one machine became the default guidance for Exchange 2010 in order to maximize hardware utilization. It should be noted that this guidance evolved over the life cycle of Exchange 2010 as hardware became more powerful.

Technically, the Unified Messaging role could also be combined with the CAS, Hub, and Mailbox roles, although it was not best practice to do so. An Exchange 2010 CAS server and Exchange 2010 Hub server were still required in every Active Directory site hosting an Exchange 2010 Mailbox server.

Deployment guidance has evolved significantly over the life cycle of Exchange 2010. However, there are still a significant number of deployments based on Exchange 2010 RTM or Exchange 2007 guidance. Old guidance is reflected in how roles are either fully split out to individual machines or combined so that the CAS and Hub roles share a server, while Mailbox roles that are part of a DAG are deployed separately. While the latter instance does make sense when Windows NLB is the load-balancing mechanism, since two types of clustering cannot coexist within the same OS, it should not be the default deployment option for an enterprise.

Client Access servers gained a new service, the RPC Client Access service, which allowed users to connect to their mailboxes, regardless of the location of their active database. Since databases were no longer connected to specific servers (more on this later in this section), CAS servers now acted as the MAPI endpoint, introducing near-seamless database failover.

High Availability

Exchange 2010 changed the high-availability model used in previous versions of Exchange from a server-based availability model to a database-based availability model. Database availability groups (DAGs) replaced all other continuous log-based shipping mechanisms and became the most flexible database high-availability model to date, with up to 100 databases potentially participating in a 16-node DAG.

Database Availability Groups DAGs superseded all other database, high-availability mechanisms in Exchange 2007, including high availability across sites. They incorporated the log-shipping technology of CCR clusters; however, they expanded the boundary to 16 servers and introduced failover at a database level, as opposed to the server level in Exchange 2007. Because of failover at the database level, different database copies could now be activated across nodes in the DAG cluster, thereby introducing load distribution and granular failover as high-availability concepts while still maintaining a single master architecture for database updates. The active database copy's log stream would be replicated to all other passive copies. Significant improvements were made from Exchange 2007, however, if databases or log streams diverged. Database copies could be seeded either from an active or a passive copy, allowing secondary copies to be created from passive copies within a site, as opposed to a potentially active copy in another site.
Datacenter Activation Coordination DAC mode was introduced as a DAG feature that acted as extra level of quorum, a clustering concept based on counting the active/remaining nodes in a cluster and making majority-based decisions to activate failover or deactivate technology as a result. DAC mode caused all databases participating in a DAG to dismount in the event of DAG quorum loss in order to prevent split brain, a condition that results when databases activate in two datacenters simultaneously.
Client Access Server Arrays CAS arrays represented a highly available MAPI (RPC over TCP) connection point per Active Directory site. CAS arrays had a logical name that was defined in DNS, and they required a persistent load-balancing mechanism that persisted connection states, such as a hardware load balancer. Clients would connect to the CAS array, as opposed to individual CAS servers, and would not reconnect semi-transparently in the event of a single CAS server failure.

CAS arrays introduced a MAPI-based name space alongside the other HTTP-based workloads, each having their own name space. This meant that, with only two datacenters participating in a site-resilient design, Exchange 2010 administrators could define up to nine disparate types of name spaces, specifically:

The MAPI name spaces did not need to be secured via a certificate.
Shadow Redundancy This is one of the features that made Exchange 2010 Transport highly available by design. It did so by retaining a copy of a message on the server responsible for initiating the transmission until the next hop had acknowledged successful transmission of the message. Shadow redundancy allows Hub Transport servers to be taken out of service with no data loss, as long as more than one Hub Transport server exists in an Active Directory site and the next message hop consists of another Exchange 2010 Hub Transport server or Exchange 2010 Edge Transport server.

Storage

Exchange 2010 Enterprise increased the number of databases to a maximum of 100. Improvements in the ESE database in Exchange 2010 gave the administrator even more storage choices, specifically the ability to choose between SAN-based storage, direct-attached storage (DAS) shelves, near-line SAS, and SATA drives. Low-cost disks could now be attached in a JBOD (just a bunch of disks) configuration.

Exchange Online Integration

Exchange 2010 Service Pack 1 introduced features that could integrate an on-premises Exchange deployment into Office 365 Exchange organizations. These hybrid deployments achieved a level of integration that provided a seamless experience for users. The introduction of Exchange 2010 CAS and Hub servers into an existing Exchange 2003 or Exchange 2007 organization meant that older Exchange versions could participate in, and migrate to, Office 365 Exchange.

The hybrid model required extensive configuration of both the CAS and Hub roles. However, the effort required to achieve this was massively reduced by the introduction of the Hybrid Configuration Wizard in Exchange 2010 Service Pack 2.

Exchange 2013

Exchange 2013 introduces some of the most significant changes to date in Exchange, including a single code base for customer, Office 365, or partner-hosted deployments. Quarterly cumulative updates, as opposed to service packs, allow customers and hosting partners to take advantage of new fixes and features as they become available in Office 365.

Architecturally, Exchange 2013 shares many concepts and features with previous versions of Exchange, especially Exchange 2010. While the Exchange server role functionality is present as in Exchange 2010, its implementation in Exchange 2013 is different.

Even though Exchange 2010 guidance recommended multi-role servers, many deployments still used individual physical or virtual servers per role, causing massive underutilization of CPU and memory resources on many of these servers. (See the sidebar in Chapter 1 called “Requirements Elicitation and the Long Trail of Obsolete Best Practices.”)

We hope that as we reviewed the history of Exchange, you gained an understanding of why role separation was introduced and where it and role amalgamation made sense. Exchange 2013 introduces a set of new paradigms, while a vast amount of functionality from previous versions of Exchange is retained or improved.

Exchange 2013 ships with the following design goals in mind:

The following list summarizes the major areas of change to Exchange 2013 architecture from Exchange 2010, which will be addressed in greater detail throughout the rest of this chapter:

Role Separation

Transport

Management

High Availability

Storage

Exchange 2013 also ships with new logic, which has been rewritten so that RPC calls between functionality tiers, such as Transport submitting email directly to the store via MAPI, and so forth, have been eliminated. This level of isolation builds on the design goal of failure isolation, since every server becomes an island.

Furthermore, moving away from five roles, each representing a potential building block in Exchange 2010, Exchange 2013 introduces a new model comprised of only two: the Client Access server and the Mailbox server roles.

Exchange 2013 offers a number of architectural benefits over previous versions of Exchange. These will be explored in greater detail throughout this chapter:

Deployment Exchange 2013 simplifies name space management dramatically, allows for transparent deployment with up- and down-level versions of Exchange, and introduces Layer 4 routing compared with Layer 7 routing required by Exchange 2010.
Client Connectivity Existing Exchange 2010 client protocols are supported with the exception of TCP-based protocols.
Client Protocol Offloading Exchange 2013 CAS servers are able to offload all client connections and authentication functions from the Mailbox server role, increasing scalability and failure isolation of the platform.

Exchange 2013 server roles overcome a number of boundaries introduced by Exchange 2007/2010 server roles. The following new capabilities are also introduced:

Functionality Interdependent functionality in Exchange 2010 was scattered among CAS, Hub, and Mailbox server roles, requiring these roles to be upgraded as a unit, even if they were not deployed as such. Exchange 2013 CAS versions may be deployed and upgraded independently of the Exchange 2013 mailbox role.
Geographic Affinity The CAS and Hub roles had very tight RPC-based integration, requiring the roles to be deployed on low-latency, LAN-type conditions. Exchange 2013 CAS uses WAN-resilient protocols (HTTP, SMTP), which are tolerant of tighter latencies, to communicate with Exchange 2013 Mailbox.
Versioning Exchange 2007 roles could not service Exchange 2010 roles and vice versa. Exchange 2013 CAS is able to integrate downstream with Exchange 2010 and upstream with newer versions of Exchange.
User Partitioning Generally speaking, a set of users served by a given Exchange 2010 Mailbox role was also served by a given set of Exchange 2010 CAS/Hub server roles. Exchange 2013 eliminates session affinity from the CAS server role, because the Exchange 2013 Mailbox server role now maintains session affinity. Users are able to move transparently among a pool of 2013 CAS servers, which are load balanced at Layer 4 as opposed to Layer 7.

Throughout the rest of this chapter, we will explore the new architecture of Exchange 2013.

Discontinued Features

Exchange 2013 discontinued a number of features and concepts from Exchange 2010. While a number of individual features were deprecated, discontinued, or replaced, those that stand out architecturally are as follows:

While the loss of some features has been mourned more than others, the new GUI has been met with some criticism and disapproval. The Exchange 2010 MMC-based GUI relied on remote PowerShell, which massively increased its management and RBAC capabilities, while sacrificing speed. Exchange 2013 introduces a web-based GUI, which is fast and feature rich, giving the administrator more configurability than in any previous version of Exchange since Exchange 2007. However, the new GUI caused the loss of the ability to show the PowerShell-generated management operations, arguably one of the most popular management features of Exchange 2010. This feature is expected to return via a later service pack.

Exchange 2013 Editions

Exchange 2013 is available in two editions: Standard and Enterprise. These editions are limited to 5 and 50 databases, respectively. As with Exchange 2010, specific functionality is determined by the product key used to license the Exchange server. Standard and Enterprise editions can both take advantage of high-availability features such as DAGs, limited only by the number of databases available per edition.

The Exchange Hybrid edition is available for hybrid deployments, and while its name indicates that it could be could be considered a separate edition from the Standard or Enterprise editions, the license model by which it operates is its only distinguishing factor. Introduced with Exchange 2010, this edition is available for free when used as part of an Office 365 hybrid deployment. To obtain a Hybrid edition product key, contact Office 365 support.

Transport

Transport in Exchange 2013 has changed from Exchange 2010. Here is a brief summary of the changes and benefits in Exchange 2013:

Transport Pipeline The transport pipeline is split between the Front End Transport service on Client Access servers and the Transport service on Mailbox servers.
Routing Active Directory sites are still recognized as routing boundaries. However, database availability group boundaries have been introduced.
Connectors The default maximum message size of Send and Receive connectors has been increased from 10 MB to 25 MB.
Edge Transport Exchange 2013 does not ship with an Edge Transport server, and it requires the use of either an Exchange 2007 or Exchange 2010 Edge Transport server.

For an examination of the Exchange 2013 transport pipeline and the transport components, please review the Exchange 2013 Client Access server and Mailbox server sections of this chapter. The following section examines the next-largest change in Exchange 2013: transport mail flow.

Mail Flow

Earlier, we stated that messages, which originate externally to the organization, are handled by the Front End Transport service on the Client Access server role and proxied to the Transport service on the Mailbox server role. Messages from within the Exchange organization are received by the Transport service on the Mailbox server role via one of the following methods:

Similar to Exchange 2010, all messages sent or received must be categorized by the Transport service on the Mailbox server role in order to be routed or delivered. Mail routing is achieved using the same least-cost routing algorithm used in Exchange 2010. Exchange 2013 defines a delivery group as a collection of transport servers responsible for delivering messages to a routing destination. Post categorization, messages are placed in a delivery queue for one of the following delivery groups:

Active Directory Site This can be either as a hub site or an Edge Transport server subscribed to the Active Directory site.
Mailbox Delivery Group This a collection of Exchange servers in the same Active Directory site separated by Exchange version.
Connector Source Servers This is a collection of Exchange 2007, 2010, or 2013 servers, in the same or different Active Directory sites, which share a defined scope for a Send connector, a Delivery Agent connector, or a Foreign connector.
Server List This consists of Exchange 2007, 2010 Hub Transport, or Exchange 2013 Mailbox servers configured as distribution group expansion servers.
Destination Database Availability Group This is also known as the routable DAG.

The routable DAG is a new routing destination, which is defined simply as a group of Exchange 2013 Mailbox servers that belong to the same DAG. Routable DAGs may span Active Directory sites as a routing destination. Messages will be delivered to the closest DAG member. The final delivery location within the routable DAG will be the server hosting the active database copy.

Management

Exchange 2013 introduces a number of new management features or improvements over Exchange 2010. A description of these features follows.

Exchange Administration Center

The Exchange Administration Center (EAC) is a complete replacement for the MMC-based Exchange Management Console in Exchange 2010. With a few exceptions, all Exchange 2013 management operations can be performed via this new web-based GUI. PowerShell is required for those operations that cannot be performed within the GUI. The Exchange Administration Center presents a single, unified interface for Exchange Online and Exchange on-premises when operating in Hybrid mode.

Outlook Web App

The Outlook Web App has been completely rewritten to look and feel like a tablet-optimized application. It supports the Office Web App extensibility model so that it may be extended using web-based applications via the Office Marketplace or an on-premises equivalent. As with Exchange 2010, the Office Web App ships with support for multiple browsers. However, because of the capabilities of HTML5 and offline browser databases, the Office Web App ships with an offline mode, similar in concept to Outlook's cached mode.

Data Leak Prevention

Exchange 2013 introduced a new set of features based on improved transport rules, including prebuilt Data Leak Prevention (DLP) templates for common scenarios. DLP integrates with both Outlook MailTips and Transport Rules to offer a configurable experience to the end user. A range of actions may be chosen by the administrator, which range from a Non Delivery Report (NDR) of the message down to a MailTip, warning the user about sensitive information contained in the message body.

SharePoint Integration via Site Mailboxes

Site mailboxes have been introduced in Exchange 2013. They offer a way to share data between Exchange mailboxes and SharePoint team sites via a shared mailbox. Exchange 2013 and SharePoint 2013 have become aware of each other along this integration point. Documents submitted via Outlook into the site mailbox are uploaded to the correct SharePoint document library. Reciprocally, SharePoint users are able to view the shared email via OWA without requiring Outlook, while users who prefer to use Outlook may consume the relevant SharePoint documents without leaving the application. Outlook 2013 is required to participate in a site mailbox.

Lync Integration

Lync 2013 is able to store compliance information into the Exchange mailbox dumpster as opposed to using SQL servers to store data. If a user is placed on hold in Exchange 2013, they are automatically placed on hold in Lync 2013, as long as Exchange and Lync are configured accordingly.

SharePoint Integration via the eDiscovery portal

SharePoint is able to search and locate Exchange and Lync discovery data via a single integrated eDiscovery portal. Discovery capabilities in Exchange have been retained using the EAC. However, the eDiscovery portal introduces significant added functionality, such as real-time searching.

Hosting

The hosting model based on Address Book Policies introduced in Exchange 2010 SP2 persists in Exchange 2013. Hosting in Exchange 2013 is based on one of a number of certified control panels, which are available along with published guidance at the following link:

http://technet.microsoft.com/en-us/exchange/jj720331.aspx

Role Separation

Role separation in Exchange 2013 still exists, but the architecture is quite different from Exchange 2010. Exchange 2013 has simplified the number of roles from five down to two in Exchange 2013: Client Access server and Mailbox server roles.

Every Server Is an Island

A significant change in Exchange 2013 over Exchange 2007 and Exchange 2010 is the banning of RPC for inter-role communications. This includes the RPC functionality used in what used to be Exchange 2010 CAS and Hub roles when communicating with the Exchange 2010 Mailbox role. In Exchange 2013, WAN-friendly protocols such as SMTP and HTTP are used for inter-server role communication, even if the servers are adjacent to each other within the same Active Directory site. For example, the Transport service in Exchange 2013 no longer uses RPC to write an email to the destination mailbox database on a mailbox server within the same Active Directory site. If an email needs to be submitted to an adjacent server, it will be done via SMTP. RPC is still used, but only within a Mailbox server role and no longer between servers.

Client Access Servers

Client Access servers in Exchange 2013 are quite different than the functionality rich, code-laden CAS role in Exchange 2010. The Exchange 2013 Client Access server role (CAS 2013) is a thin, stateless Layer 7 protocol proxy that requires very few server resources and may be deployed together with the Exchange 2013 Mailbox role or by itself. No files or data will ever be written or stored on the CAS 2013 role. Similar to Exchange 2010, CAS 2013 must be deployed on a domain-joined machine and not placed in a DMZ.

By itself, CAS 2013 without a Mailbox role is unable to service requests of any sort, because the Client Access server logic now resides on the Exchange 2013 Mailbox server role. CAS 2013 performs three major functions:

Authentication CAS 2013 authenticates the connection in order to establish who is the incoming user.
Location CAS 2013 locates the user's mailbox on the mailbox server on which it is currently active.
Proxy/Redirect CAS 2013 proxies the connection to the Mailbox server, and it either maintains the connection or redirects it to another Mailbox server.

These three functions are performed for the two components hosted by CAS 2013: client protocols (HTTP, POP, IMAP, or SIP) and SMTP.

A fundamental concept for CAS 2013 and Mailbox 2013 is that the Mailbox server hosting the active database copy for a given mailbox is always the connection endpoint. CAS 2013 determines the correct endpoint for all incoming protocols, and it proxies traffic to the same Mailbox server that is hosting the active copy, irrespective of which CAS 2013 server the session originated, and it will do that for Mailbox servers inside or outside its own Active Directory site. The Exchange 2013 Mailbox server hosts the logic, and it is the endpoint for all protocols, including client and transport traffic. These concepts are illustrated in Figure 3.1, which shows client traffic passing through a Layer 4 load-balancing device before reaching the Exchange 2013 CAS server role.

Figure 3.1 Client traffic and Layer 4 distribution

3.1

The Mailbox server hosting the active database copy, as opposed to the Client Access server, now maintains affinity and persistence for a user's session. In this model, CAS servers are loosely coupled to Mailbox servers. The same Mailbox server is responsive to the user's requests, irrespective of which CAS server the request originates from. Effectively, this means that as long as traffic can reach the Exchange 2013 CAS server at a Layer 4 level, it will make the networking decisions previously required by a Layer 7 load balancer. The advantage of this model is that a number of Layer 4 load-balancing mechanisms become available, including the following:

The available range of load-balancing mechanisms as well as how to make a choice for your organization will be discussed in Chapter 4, “Defining a Highly Available Messaging Solution.”

MAPI in Exchange 2013

Earlier in this chapter, we stated that Exchange 2013 has reduced the potential number of name spaces required by two: the RPC client access name space for the primary and secondary datacenters. This does not mean that client-side MAPI has been discontinued as a protocol. Rather, it means that MAPI over TCP has been discontinued and that RPC over HTTP (Outlook Anywhere) is the only remaining connectivity option. Clients have had the option of using MAPI via either TCP or HTTP since Exchange 2003. Exchange 2013 reduces the available transport mechanisms for MAPI down to TCP.

An Outlook client connecting to Exchange for the first time is supplied with several connection endpoints that appear to be quite similar to an Exchange 2010 Autodiscover request. The connection endpoint, however, is no longer an Exchange server's name. It is now in the form of a GUID and a UPN suffix, for instance, GUID@UPN similar to b0f54714-5af0-4564-a71b-ebe8b780f0ca@exchange-D3.com. Autodiscover will also supply the HTTP connection endpoints required for Outlook.

Once Outlook is configured, it will connect to the Exchange 2013 CAS via HTTP, supplying the GUID@UPN endpoint with which it has been configured. Remember that CAS is loosely coupled to Mailbox. Using the supplied endpoint, CAS will query Active Directory for location information as well as the Active Manager component to determine which Mailbox server is currently hosting the active database copy. Once CAS has the required information, it is able to proxy the request to the correct Mailbox server or redirect it to another CAS server in the same forest.

A significant advantage to using the GUID@UPN endpoint as opposed to an Exchange server name is realized during a switchover or a failover event. If the connection to the Mailbox server is lost due to a switchover or a failover event, and Outlook is reconnected via CAS to the new active database copy, the connection endpoint remains the same, that is, GUID@UPN as opposed to a new RPC connection endpoint. Outlook no longer displays the “The administrator has made a change which requires you to restart Outlook” message since, as far is it is concerned, no change has occurred.


MAPI-Based Applications
Third-party products using MAPI need to use RPC over HTTP to connect to CAS 2013 via the updated MAPI.CDO download. These applications may require reconfiguration in order not to default to RPC over TCP, either by programmatically editing the MAPI profile or by setting a registry key value.
Note that Exchange 2013 is advertised as the last version of Exchange to support MAPI/CDO, and that future applications will need to move to Exchange Web Services. We will discuss how to access Exchange programmatically as well as how to port your old code in Chapter 11, “Extending Exchange.”

Name Space Reduction

Exchange 2013 reduces the number of name spaces required for a two-datacenter scenario by two name spaces: the primary and secondary client RPC name spaces. This also means that the minimum number of name spaces required for a given Exchange 2013 deployment is two: the Autodiscover name space and the Internet Protocol name space.

For example, in a single datacenter using the Exchange-D3.com name space, we need the following:

autodisover.exchange-D3.com
mail.exchange-D3.com

A graphical representation of the minimum number of name spaces required is shown in Figure 3.2. The details of each potential protocol are found in Table 3.1.

Figure 3.2 Single name space

3.2

Table 3.1 Name spaces and protocols—single name space

Name Protocol
Autodisover.Exchange-D3.com Autodiscover
Mail.Exchange-D3.com SMTP
Mail.Exchange-D3.com Outlook Anywhere
Mail.Exchange-D3.com EWS
Mail.Exchange-D3.com EAS
Mail.Exchange-D3.com OWA
Mail.Exchange-D3.com ECP
Mail.Exchange-D3.com POP/IMAP

We previously stated that the Mailbox server hosting the active database copy for a given mailbox is always the connection endpoint. The Exchange 2013 Client Access server will proxy traffic to the active database copy even if it is in another Active Directory site. Understanding this logic allows us to build a single global Internet Protocol name space using a mechanism as simple as DNS round robin or a more advanced mechanism, such as a global load balancer. Assuming that connectivity from any point around the globe is roughly equal, and that connectivity between datacenters is high speed with acceptable latency in order to guarantee a positive user experience, we are able to build a two-datacenter scenario using the same two name spaces. This is illustrated in Figure 3.3 for a similar protocol breakdown as detailed in Table 3.1.

Figure 3.3 Single name space with global load balancer

3.3

Autodiscover

Autodiscover is a major component of Outlook connectivity because, without it, Outlook would require manual configuration to connect to a mailbox. Outlook will perform an autodiscover under the following circumstances:

When planning Exchange name spaces, Autodiscover is the only name that needs to follow a number of potential conventions. You need to consider it if you are planning for external or internal Autodiscover.

External Autodiscover behavior will see Outlook attempt to connect to the following URLs in order, based on the SMTP domain specified in the user's email address:

https://<smtpdomain>/Autodiscover/Autodiscover.xml

https://autodiscover.<smtpdomain>/Autodiscover/Autodiscover.xml

http://autodiscover.<smtpdomain>/Autodiscover/Autodiscover.xml

If any of these fail, Outlook will perform a DNS SRV record lookup or a local registry query.

If Outlook manages to connect to Autodiscover, Autodiscover will supply the rest of the connection information required in order to connect to the user's mailbox. One aspect of using Autodiscover is that only one name space needs to be named in a predictable manner. The naming convention for other name spaces is largely open ended, as long as Autodiscover is able to reveal their location.

Internal Autodiscover behavior will see an authenticated Outlook client query Active Directory for service connection point (SCP) records pointing to Exchange CAS servers, filtering those SCP records for a well-known GUID. Every CAS server publishes an SCP record with Autodiscover information, which results in a list of available SCP records. Once a list of SCP records has been returned, Outlook will choose the oldest record and the following attributes:

serviceBindingInformation This attribute contains a URL in the form of https://caasserver.exchange-D3.com/autodiscover/autodiscover.xml.
keywords This attribute contains the Active Directory site name in which the CAS server is located.

Using the URL contained in serviceBindingInformation, Outlook will connect to Autodiscover and obtain the rest of its profile information to connect to the given mailbox.


Understanding and Managing SCP Records
Outlook sorts the list of SCPs by date and binds to the oldest (first created) SCP in the list. If the SCP record points to an Exchange 2007 or Exchange 2010 CAS server, it will then query a downstream version for Exchange 2013 information. SCP records may be updated using a command similar to the following via Exchange Management Shell:
Set-ClientAccessServer -AutodiscoverUri https://cas2013.exchange-D3.com/autodiscover/autodiscover.xml -AutodiscoverSiteScope ActiveDirectorySite
The -AutodiscoverUri parameter sets the URL used in the serviceBindingInformation attribute. It should point to an Exchange 2013 load-balanced name space, as opposed to an individual server name, wherever possible.

Autodiscover returns the information required to configure the profile including EXCH and EXPR nodes, which point to internal and external configuration items, respectively. Traditionally EXPR points to the protocol used to connect a client to Exchange via RPC over HTTP. Exchange 2013 Autodiscover includes a new node type, EXHTTP, for Outlook 2013 clients. Autodiscover will return two EXHTTP nodes: an internal Outlook Anywhere URL (HTTP URL) and an external Outlook Anywhere URL (HTTPS URL).

Outlook 2013 will attempt to bind to each URL, running from the first to the last one. If it manages to bind via the HTTP URL, then it will establish an HTTP-based Outlook Anywhere session (as opposed to an HTTPS session). While you may be tempted to think that this eliminates certificate planning, you should note that the other services that Outlook requires, such as Exchange Web Services and the Offline Address Book among others, still require certificates.

Transport on the Exchange 2013 Client Access Server Role

As with the client protocol components, the SMTP component of CAS functions as a Layer 7 proxy. Since the Exchange 2013 Mailbox server role houses the equivalent of the Exchange 2010 Hub Transport role, a new component emerges on the CAS 2013 server role: the Front End Transport service. Similar to the client protocol components, all inbound and outbound SMTP protocol traffic passes through CAS 2013 for the Exchange organization and, if desired, all client SMTP traffic. The Front End Transport service is completely stateless. As a Layer 7 protocol proxy with full access to the conversation occurring within the SMTP protocol, it does not store any data on the server role, nor does it perform any sort of message bifurcation. The Front End Transport service can filter messages based on connections, domains, senders, and recipients.

The Front End Transport service listens for SMTP traffic on the following three ports:

TCP 25 Similar to previous versions of Exchange, this port is used for external SMTP into the Front End Transport service, SMTP traffic with Exchange 2007 and Exchange 2010 Hub Transport server roles, and SMTP traffic between Exchange 2013 Mailbox server roles. This port matches up with a Receive connector named Default Frontend ServerName.
TCP 587 Similar to Exchange 2007 and Exchange 2010, this port is used for POP and IMAP clients requiring SMTP services. This port matches up with a Receive connector named Client Frontend ServerName.
TCP 717 This port is used to proxy connections from the transport service on the Mailbox server role to the Front End Transport service. Send connectors that have the FrontEndProxyEndabled property enabled can use the CAS 2013 server role as the outbound connection point, as opposed to the Transport service on the Mailbox server role, so that messages appear to have originated from the CAS server role. This port matches up with a Receive connector named Outbound Proxy Frontend ServerName.

The Front End Transport service receives an inbound message and locates a single destination, which is a healthy transport service on a Mailbox server role. Based on a number of rules in the Transport section of Exchange 2013 that will be discussed later in this chapter, it proxies the connection to the Transport service.

Mailbox Servers

Exchange 2010 guidance recommended deploying CAS, Hub, and Mailbox server roles on the same Exchange server, as a multi-role or “brick” configuration. The term brick implies a standardized unit or building block, which may be replicated inexpensively. This model is used quite successfully in large datacenter or cloud-based configurations. Thus, the benefits of a brick or standardized configuration hold true with three or three hundred servers. The Exchange 2013 Mailbox role installed as a multirole server includes the following equivalent Exchange 2010 server roles:

No Exchange 2013 components may be deployed separately; that is, the Client Access, Hub, Mailbox, or Unified Messaging server roles cannot be installed on their own. However, additional Exchange 2013 Mailbox server roles can be deployed and used purely as Unified Messaging servers if required, or more servers can be added for the sake of additional capacity if additional roles are required.

Exchange 2013 Mailbox Database Improvements: Managed Store

The Information Store process has been completely rewritten in C# (a .NET-based language) from C and C++, thereby moving it to what is known as managed code as opposed to unmanaged code. As part of the rewrite, the Information Store service has been split into two processes: Microsoft.Exchange.Store.Service.exe and Microsoft.Exchange.Store.Worker.exe. Instead of having only one Information Store process responsible for all of the mounted databases as in previous versions of Exchange, the Worker process spawns a new Store service for every mounted database. If a store process were to suffer a catastrophic failure of some kind, only one database would be affected at any one time. Another effect of process isolation is that database failover times have been reduced.

Due to the rewrite and further optimization of the Mailbox database structure, a 50 percent drop in IOPS has been achieved over Exchange 2010. We will cover this in depth in Chapter 5, “Designing a Successful Exchange Storage Solution.”

Modern Public Folders

Public folder databases have been discontinued in favor of storing public folders in public folder mailboxes. If these mailboxes participate in a database availability group, then public folders are as highly available as any other mailbox. All public folder PowerShell cmdlets are still available, but the public folder database cmdlets have been discontinued.

The first public folder mailbox contains the public folder hierarchy; successive public folder mailboxes contain a read-only copy of the hierarchy and the public folder contents. Administrators have the option of choosing the public folder mailboxes when creating or moving public folders. Public folder mailboxes are subject to the same management requirements as other mailboxes in terms of size and quota management.

A major shift for administrators is that public folders have moved to a single-master model. Previous versions of Exchange employed a multi-master model, where every instance of a public folder was writable and would replicate changes to all other public folder instances. In Exchange 2013, a public folder is writable to one network location only. Specifically, it will only be writeable in the mailbox database containing the public folder mailbox.

Transport on the Exchange 2013 Client Access Server Role

The Transport service on the Exchange 2013 Mailbox server role is similar to the Exchange 2010 Hub Transport server role, hosting both Send and Receive connectors, as well as the queuing and routing of the logic required to process messages. The Transport service listens for SMTP traffic on the following ports:

TCP 25 This port is used by the Transport service to receive SMTP connections. This port matches up with a Receive connector named Default ServerName.
TCP 465 This port accepts the proxied connections, which were accepted by the Front End Transport service on port TCP 587 for POP and IMAP clients requiring SMTP service. This port matches up with a Receive connector named Client Proxy ServerName.
TCP 476 This port is used by the Mailbox Transport Delivery service to listen for connections from either the Transport service SMTP Send connector or the Transport service on other Mailbox server roles attempting to route mail for users located on this role.
TCP 2525 This port is used by the Transport service to receive connections in the event that the CAS 2013 and Mailbox 2013 server roles are collocated on the same machine. In this case, the Front End Transport service will listen on port TCP 25 and the Transport service will listen on port TCP 2525. This port matches up with a Receive connector named Default ServerName.

Typically, messages that originate from outside the Exchange organization are handled by the Front End Transport service and then proxied by the Front End Transport service to the Transport service on the Mailbox role. The Transport service is one of a number of transport-related services on this role that help process incoming and outgoing messages as follows:

Transport Service

The Transport service is included with every Mailbox server role and, for all intents, is a duplicate of the Hub Transport server role in Exchange 2007 and Exchange 2010. All SMTP mail flow for the Exchange organization is processed by the service, which includes message categorization and message content inspection. Reenforcing the concept that every server is an island, the Transport server no longer delivers email directly to mailbox databases via RPC. This task is now completed by the Mailbox Transport service. The Transport service is responsible for overall message routing among the Mailbox Transport service, the Front End Transport service, and itself.

Mailbox Transport Service

The Mailbox Transport service is another service that is included with every Mailbox server. This service comprises two different services: the Mailbox Transport Submission service and the Mailbox Transport Delivery service. The Mailbox Transport Submission service builds on the concept that every server is an island by using RPC calls to retrieve messages from local mailbox databases, and it submits these messages via SMTP to the Transport service. It does this without queuing any messages in a local queue. The Mailbox Transport Delivery service receives SMTP messages from the Transport service and again, building on the concept that every Exchange 2013 server is an island, uses RPC to perform a delivery to a local mailbox database.

Unified Messaging

Unified Messaging is a standard feature of Exchange 2013. This functionality is split between the Exchange 2013 Client Access and Mailbox server roles. The Exchange 2013 Client Access server role includes the Microsoft Exchange Unified Messaging Call Router service, while the Exchange 2013 Mailbox server role includes the Microsoft Exchange Unified Messaging service. Neither of these services can be uninstalled. They may be disabled, however, if desired.

Unified Messaging ships with the following enhancements:

High Availability

Exchange 2013 continues the trend that began with Exchange 2010 of a database-based availability model as opposed to the server-based availability models that were used in previous versions of Exchange. Along with the simplification of Exchange server roles, Exchange 2013 simplifies high availability planning down to two building blocks: the client access array and the database availability group.

Client Access Arrays

Client access arrays are different than those in Exchange 2010 in that they do not represent RPC or MAPI endpoints. Exchange 2013 Client Access server arrays (CAS arrays) are a grouping of Exchange 2013 Client Access servers, represented by a single DNS-based name. In Exchange 2013, CAS arrays are no longer RPC endpoints. Rather, they are HTTP-based endpoints for all client protocols. CAS arrays are grouped behind a single DNS name and load-balanced using any of the supported Exchange 2013 load-balancing methods.

Database Availability Groups

Database availability groups (DAGs) are the basis for all storage-based high availability in Exchange 2013. Though similar to DAGs in Exchange 2010, they offer some significant improvements:

These improvements will be covered further in Chapter 5.

DAG Networks Autoconfiguration

DAG networks in Exchange 2010 required administrators to collapse the networks created by deploying DAG members in multiple subnets with multiple network interfaces. These would be created automatically as DagNetwork01, DagNetwork02, and so on. Exchange 2013 requires the administrator to mark those networks that are used for MAPI and those that are used for replication. It then automatically collapses the DAG networks into their appropriate MAPI and replication networks. This behavior is enabled by default, and it may be configured using the EAC or using the Set-DatabaseAvailabilityGroup cmdlet and setting the ManualDagNetworkConfiguration parameter to $TRUE.

Best Copy Selection and Best Copy and Server Selection

Best copy selection (BCS) is the algorithm used in Exchange 2010 to determine the best available mailbox database copy to activate based on copy queue length, replay queue length, database status, and content index status.

Best copy and server selection (BCSS) is the Exchange 2013 version of BCS, and it is still performed by the Active Manager component. Now, however, it includes four indicators of Exchange 2013 health status supplied by Managed Availability as part of the selection status. If BCSS detects that is was invoked as a result of Managed Availability, then an additional rule is added to BCSS, which mandates that the components that failed in the server that are currently holding the active copy (for example, OWA) must be healthy on the target server.

The four new status indicators are evaluated as part of database selection in the following order:

1. All Healthy—All monitoring components report a healthy state.
2. Up to Normal Healthy—All monitoring components report a healthy state with Normal priority.
3. All Better than Source—Monitoring components report a better healthy state than the server currently hosting the affected copy.
4. Same as Source—Monitoring components report the same state as the server currently hosting the affected copy.

Managed Availability

Exchange 2013 ships with the capability to monitor health and, based on the health of specific components, take remedial action. Health is monitored using several probes that inspect the health of Exchange at multiple levels. If a component is degraded or deemed unhealthy, then Managed Availability will attempt to recover the component via one or more actions. These actions may include a service restart, a server restart, or even marking the server as unavailable.

If OWA or other components fail on one of the nodes within a DAG, and Managed Availability is unable to restart OWA via recycling the OWA application pool, or it is unable to restart the affected services and return it to a healthy state, then it will select a node within the DAG and failover the databases affected by the OWA failure to the next available node where OWA is healthy.

Managed Availability runs on both the Client Access server and Mailbox server roles. Managed Availability comprises the following components:

Probe Engine This component is responsible for measuring and collecting data.
Monitor The monitor contains the business logic required to make the decisions to determine if a component is healthy or if action is required.
Responder This component is responsible for initiating and managing recovery actions.

Managed Availability manifests itself as two services: Exchange Health Manager Service (MSExchangeHMHost.exe) and Exchange Health Manager Worker process (MSExchangeHMWorker.exe), which are the controller and worker processes, respectively. The controller process builds, executes, starts, and stops the worker process so that, in the case of a worker process crash, no single worker process becomes a distinct point of failure. The worker process, as the name implies, performs the unit of work selected by the controller process.

Managed Availability health checks span the entire Exchange 2013 spectrum of workloads. They include the functionality that shipped as scripts in Exchange 2010, for example, the Exchange 2010 CheckDatabaseRedundancy.ps1 script, which checks that at least two healthy copies of a replicated database exist and generates an event log if they do not. As in Exchange 2010, Managed Availability still performs the same checks, and it alerts administrators using event log notifications. However, in Exchange 2013, it now includes the ability to generate an appropriate action.

Transport High Availability

Exchange 2013 builds on the Exchange 2010 concepts of shadow redundancy and the transport dumpster to ensure that messages are successfully delivered by keeping redundant copies of messages. Shadow redundancy is now aware of both Active Directory sites and DAGs as transport high-availability boundaries. The transport dumpster concept has been retained, improved, and renamed to Safety Net.

Safety Net stores messages that have been successfully processed by the server in a Transport service queue on a Mailbox server for a default period of two days. However, when compared with the Exchange 2010 transport dumpster, Safety Net does not require a DAG, and it will also function for individual Mailbox servers in the same Active Directory site.

The key differentiator for Safety Net is guaranteed mail delivery compared to best effort mail delivery for the transport dumpster. Thus, the only configurable parameter for Safety Net is the retention period of messages. Messages are stored on the destination Mailbox server as well as Mailbox servers that participated in shadow transport. These are known as the Primary and Shadow Safety Nets.

If required, messages are resubmitted from Safety Net automatically after a mailbox database failover within a DAG or a lagged mailbox database copy is activated. Message resubmission is initiated by the Active Manager component of the Replication service, and it requests message resubmission over a specific time period for a specific mailbox database. If the Primary Safety Net becomes unresponsive, or if it is unavailable within 12 hours, Active Manager will revert to the Shadow Safety Net.

We will discuss the implications of these features and how to apply them in Chapter 4.

Storage

Exchange 2010 Enterprise reduced the number of databases to a maximum of 50. Improvements in the ESE database in Exchange 2013 allow the administrator to retain the storage choices from Exchange 2010. Additional details on these improvements will be addressed in Chapter 5.

Exchange Online Integration

Building on the success of Exchange 2010, Exchange 2013 continues integration with Office 365, known as hybrid deployments, such that the on-premises organization and the Office 365 tenant appear to be a single Exchange organization. Exchange 2007 and Exchange 2010 organizations may also benefit from an Exchange 2013 hybrid configuration. In order to be deployed, however, it requires at least one Exchange 2013 CAS and Mailbox role running Exchange 2013 Cumulative Update 1 or later. A number of improvements and new configurations exist. These will be covered in Chapter 7, “Hybrid Configuration.”

Summary

Exchange 2013 is the newest messaging platform to be released by Microsoft, and it forms the basis for new enterprise as well as ongoing Office 365 deployments.

We started this chapter by noting that the history of Exchange is relevant in order to appreciate the feature set of Exchange 2013. We also made the point of stating that the features that were introduced and later deprecated in previous versions of Exchange have driven certain deployment patterns, which may no longer be relevant.

It is worth restating that, as a consultant, you should know which new and which deprecated features are relevant to your customer. If you're facing an Exchange 2000/2003/2007/2010 upgrade, or even an Exchange 5.5 upgrade, you should be able to articulate the gains and losses of moving to the newer platform.

If you are reading this chapter as background for building an Exchange organization using a structured approach, then we suggest that you review both Chapter 1 and Chapter 2 in this book to consolidate your approach. As the newest version of the Exchange platform, Exchange 2013 is feature and functionality rich. However, we suggest that you take the time to understand the deployment choices that are available and implement according to requirements and not features. Armed with the information provided in this book, you will be able to design and deploy a successful messaging solution.