Good Enterprise Mobility ServerTM Deployment Planning Guide Product Version: 1.1 Doc Rev 2.3 Last Updated: 6-Nov-14 © 2014 Good Technology, Inc. All Rights Reserved. Table of Contents Purpose and Scope 1 Prerequisites 1 Pre-Deployment ConsiderationsLegal Notice 2 Microsoft Windows Server Considerations 2 Database Server 2 Hardware 3 Good Proxy Connections 6 Scalability 7 High Availability 7 Disaster Recovery 8 Scaling Factors 8 RTO and RPO 9 Physical Deployment 9 Simplest Deployment 10 Typical Deployment 11 High Availability (HA) 12 GEMS-HA Design Principles 12 HA for Instant Messaging 13 Load Distribution 13 Referral 14 HA for Presence Load Distribution 14 14 HA for Push Notifications 14 HA Failover Process/Behavior Summary 15 Additional HA Considerations 16 Disaster Recovery (DR) 16 ii DR Failback Process/Behavior 18 Phased Approach Recommendation 18 Deployment with Good Dynamics Network Separation 19 Server Instance Configuration in Good Control 19 Server-Side Services 20 Conclusion 21 Appendix A – Upgrading from Good Connect Classic 22 Upgrade Scenario 1: Parallel Server (Recommended) 22 Pertinent Considerations in this Scenario Upgrade Scenario 2: Repurpose Existing Server iii 19 23 24 Pertinent Considerations in this Scenario 25 Appendix B – Hardware Used for Testing GEMS 27 Purpose and Scope Purpose and Scope Good Enterprise Mobility Server™ (GEMS) is the designated consolidation of servers currently supported by Good. The purpose of this document is to identify the key planning factors that will influence the performance, reliability, and scalability of your deployed GEMS configuration, as well as to offer guidance on high available and disaster recovery options. The guidance presented herein is intended to help ensure the highest possible levels of reliability, sustainability, performance, predictability, and end-user availability. The target audience for this guide includes enterprise IT managers and administrators charged with evaluating technology and network infrastructure, as well as those responsible for making corresponding business decisions. This document does not discuss general GEMS and supporting network installation and software configuration tasks. Rather, it focuses on infrastructure configuration topics that require careful consideration when you are first planning your GEMS deployment. For both general and specific installation and configuration guidance and best practices, see the GEMS Installation and Configuration Guide. First, however, a discussion centered in the basics of physical deployment will be helpful. Prerequisites The planning information in this document is predicated on the following software releases: l Good Enterprise Mobility Server (GEMS) – v1.0 l Good Control (GC) – v1.7.38.19 l Good Proxy – v1.7.38.14 l Good Connect Client – v2.3 SR7 l Good Work Client – v1.0 General knowledge of GEMS and the Good Dynamics platform, along with Windows Server environments employing Microsoft Lync, Exchange and Active Directory is likewise required to effectively plan your GEMS deployment. 1 Pre-Deployment ConsiderationsLegal Notice Pre-Deployment ConsiderationsLegal Notice Before attempting to deploy GEMS, you may also need to plan for upgrades to the supporting environment. Is your existing change management process sufficient and are all the required tools handy? If not, you'll need to plan for these as well. In addition, your inhouse support team may need to have aspects of its training upgraded. Other key factors in the deployment of GEMS include the Microsoft Windows Server version and the machine hosting GEMS, available RAM, number of CPUs, Microsoft Lync Server version, Microsoft Exchange version, Microsoft SQL Server edition, and the roles and responsibilities of the IT staff supporting these servers and other vital components of your production network. Microsoft Windows Server Considerations Because GEMS uses Microsoft's Unified Communications Managed API (UCMA) to integrate Microsoft Lync with the GEMS Connect and Presence services, the OS version required to run GEMS Connect-Presence is dependent upon on the version of Microsoft Lync deployed. Per guidance from Microsoft, use the following guidelines to determine the version of MS Windows Server supported by GEMS Connect-Presence: l l l For MS Lync 2010 Deployments use Windows Server in one of these 64-bit versions: o 2008 R2 o 2008 R2 SP1 For MS Lync 2013 Deployments use Windows Server in one of these 64-bit versions: o 2008 R2 SP1 o 2012 R2 To host the Push Notification Service (PNS) only, use Windows Server in one of these 64bit versions: o 2012 R2 o 2008 R2 SP1 Database Server A relational database is required for the GEMS Connect and Push Notification services, but not the Presence service. This database can be part of your existing environment or newly 2 Pre-Deployment ConsiderationsLegal Notice installed. GEMS supports Microsoft SQL Server in the versions and editions listed below. In all cases, the database must be installed and prepared before starting GEMS installation. This means the necessary SQL scripts included in the GEMS installation zip file must be executed before beginning GEMS installation proper. The following versions of MS SQL Server are supported: l SQL Server 2008 (Express/Standard/Enterprise) l SQL Server 2008 R2 (Express/Standard/Enterprise) l SQL Server 2012 (Standard) l SQL Server 2012 SP1 (Enterprise) Microsoft has visual and command line tools to assist with database and schema creation; i.e., Microsoft Management Studio or sqlcmd. It must be noted that, although SQL Server Express is installed and set up with little effort, it has limited resources. For most enterprises, Microsoft SQL Server Standard or Enterprise editions are recommended. Hardware The recommended hardware specifications for each GEMS machine running any combination of the services offered is captured in the following table: Component Specification CPU 4 vCPU Memory 16 GB RAM Storage 50 GB HDD The specifications listed above are considered sufficient to handle the majority of use cases. Your specific enterprise environment, combined with your particular traffic and use requirements, is the key consideration in determining the actual hardware to implement. Hardware configurations used in testing by Good are listed in Appendix B. Use Profile Definitions (per server instance) for Push (Mail) Notification The Mail Push Notification service uses Exchange Web Services (EWS) to watch for messages sent and received. A user profile is characterized by the number of messages sent and received by a user in a typical eight hour day. 3 Pre-Deployment ConsiderationsLegal Notice Messages sent/received Activated Devices per mailbox per day supported per server Light 50-100 40,000 Medium 100-200 20,000 Heavy 200-400 5,000 Profile For details regarding the user profile used for scale testing, please follow the Microsoft Load Gen Profile to determine which profile suits your needs best. The results of testing conducted by Good1 reveal: Metric Medium Profile Heavy Profile 7% 29 % 5 iops 4 iops 25% 25 % 40 iops 45 iops GEMS CPU Utilization GEMS IOPS SQL CPU Utilization SQL IOPS Use Profile Definitions (per server instance) for Presence Since Presence is exposed as a Good Dynamics Server-Side Service, it can be used for many applications and the load will vary depending on the characteristics of the application invoking the Presence service. Refer to the following table to gauge the load you can place on a server hosting the Presence service. Profile Active Devices (%) Activated Devices subscribed per server Medium 20% 40,000 Heavy 50% 20,000 The Good Work client also uses the GEMS Presence service. Plannning for a larger profile is recommended when sizing for a Good Work deployment due to higher activity inherent in an email-centric application. The Heavy profile results reported here represent each active device subscribing to 100 contacts. 1Good lab test results are reported for the 90th percentile. The 90th percentile is a measure of statistical distributiion. Whereas the median is the statistical value for which 50% of the actual results were higher and 50% were lower, the 90th percentile reports the value for which 90% of the data points are smaller and 10% are greater. 90th percentile performance metrics are obtained by sorting test result values in increasing order, then taking the first 90 % of entries out of this set. 4 Pre-Deployment ConsiderationsLegal Notice Metric Heavy Contact Profile GEMS Presence Service CPU Utilization 9.8 % GEMS Memory 3.5 GB The Presence service does not use SQL, so there is negligible disk I/O activity. Hence, only CPU and Memory test results are reflected in the above use profile for Presence . Use Profile Definitions (per server instance) for Connect Here, a profile is characterized by the amount of activity generated by users against enterprise Lync deployments. Profile Active Devices (%) Activated Devices supported per server Light 5% 15,000 Medium 10% 10,000 Heavy 15% 5,000 The activity used for scale testing followed general guidelines published in Microsoft Lync 2010 Capacity Planning for Mobility guidance, wherein a user has 60-80 contacts and each user initiates ≈4 IM sessions, each lasting ≈6 mins per session, with 1 message sent every 30 seconds during a session. Once again, for a more detailed explanation of user profile and activity testing, please see Microsoft Lync 2010 Capacity Planning for Mobility. Resource Consumption During GEMS-Connect Load Tests 4-Core, 16 GB GEMS-Connect Profile CPU Memory Disk IOPS Light 55% 8.4 GB 0.000218 MBps/read 0.000398 MBps/write Heavy 70% 9.2 GB 0.016115245 MBps/read 0.000379 MBps/write Note: For 10,000 activated devices (containers) and a medium or average 10% concurrency—the DB size will be no more than 1GB. IOPS is negligible. 5 Pre-Deployment ConsiderationsLegal Notice General Performance (for Connect , Presence, and Push (Mail) configured on the same machine) Due to the modular design of GEMS, you can configure and run all or any of the GEMS services on the same machine or on different machines. As with all distributed systems, performance will suffer without adroit load balancing. One exception should always be made for production environments—do not run SQL Server on the same machine with other GEMS components. For lighter loads, or a lesser number of users (under 10,000), Connect, Presence and Mail Push Notifications can be configured to run on the same physical machine with a low or medium load as defined in the profiles above. Refer to the general performance outline below to determine the best configuration of (a) all services on the same machine or (b) using dedicated servers for each service to optimize performance for your particular traffic and load requirement(s). Generally, the actual use profile for most enterprises per GEMS instance will most likely be somewhere between Light and Heavy. Light profile testing1 conducted by Good on the recommended hardware configuration running all three services reveal the following metrics. Metric GEMS CPU Utilization GEMS IOPS SQL CPU Utilization SQL IOPS Light Profile 60 % 17 iops 32 % 55 iops Good Proxy Connections From the perspective of the Good Proxy (GP) server, GEMS is an application server. Any traffic relayed from GEMS to the GP server will consume a concurrent connection session on the GP server. Consequently, it's important to understand how the individual services in the GEMS machine interact with the GP server. Connect – 1 active device requires 3 connections Presence – 1 active device requires 1 connection Push (Mail) Notification – 1 active device requires 1 connection for EWS 1Again, Good lab test results are reported for the 90th percentile. The 90th percentile is a measure of statistical distributiion. Whereas the median is the statistical value for which 50% of the actual results were higher and 50% were lower, the 90th percentile reports the value for which 90% of the data points are smaller and 10% are greater. 6 Pre-Deployment ConsiderationsLegal Notice Scalability GEMS scales linearly. For this reason, and given the specifications cited, you can create additional capacity by adding more GEMS machines. You will then need to scale-out the database and Good Proxy resources accordingly to account for the additional capacity. See Scaling Factors below for best practices on utilization measurement. High Availability Hardware failure, data corruption, and physical site destruction all pose threats to GEMS services availability. You improve availability by identifying the points at which these services can fail. Increasing availability means reducing the probability of failure. At the end of the day, availability is a function of whether a particular service is functioning properly. Think of availability as a continuum, ranging from 100 percent—a completely fault-tolerant system/service that never goes offline—to 0 percent (never available/never works). Well-planned HA systems and networks typically have redundant hardware and software that makes them available despite failures. Well-designed high availability systems avoid single points-of-failure. Any hardware or software component that can fail has a redundant component of the same type. When failures occur, the failover process moves processing performed by the failed component to the backup component. This process remasters system-wide resources, recovers partial or failed transactions, and restores the system to normal, preferably within a matter of microseconds. The more transparent failover is to users, the higher the availability of the system. At all events, you cannot manage what you cannot measure, so two planning elements are vital before anything else. The first is determining the hardware required to manage and deliver the IT services in question, the basis for which is outlined above. Adequately allowing for growth, measuring as accurately as possible the number of devices, traffic and load likely to be placed on GEMS and its services offers the best indication of the server hardware and supporting infrastructure likely to be required. Concentrating solely on GEMS with Connect and Presence and its supporting architecture, the first objective in setting the goals of a high availability/disaster recovery (HA/DR) investment strategy is to develop a cost justification model for the expense required to protect each component. If the expense exceeds the value provided by the application and 7 Scaling Factors data furnished to the business, plus the cost to recover it, then optimizing the protection architecture to reduce this expense is an appropriate course of action. See High Availability (HA) below for a general discussion of HA options and alternatives. Disaster Recovery Your data is your most valuable asset for ensuring ongoing operations and business continuity. Disasters, unpredictable by nature, can strike anywhere at any time with little or no warning. Recovering both data and applications from a disaster can be stressful, expensive, and time consuming, particularly for those who have not taken the time to think ahead and prepare for such possibilities. However, when disaster strikes, those who have prepared and made recovery plans survive with comparatively minimal loss and/or disruption of productivity. Establishing a recovery site for failover if your primary site is struck by a disaster is crucial. Good recommends mirroring your entire primary site configuration at the DR site, complete with the provision for synchronous byte-level replication of your SQL databases. This is because if the system does fail, the replicated copy is up to date. To avoid a “User Resync” situation, the replica must also be highly protected. See Disaster Recover (DR) below for a discussion of Good's DR recommendations for GEMS. Scaling Factors The scale of your GEMS deployment is largely dependent on the size of your enterprise and its IT logistics—number of sites, distance between sites, number and distribution of mobile users, traffic levels, latency tolerance, high availability (HA) requirements, and disaster recovery (DR) requirements. With respect to HA/DR, two elements must be considered—applications and data. Most commonly, though not exclusively, HA refers to applications; i.e., GEMS Connect and Presence. With clustering, there is a failover server for each primary server (2xN). DR focuses on both applications and data availability. The primary driver of your DR solution is the recovery time objective (RTO). RTO is the maximum time and minimum service level within which a business process must be restored after a disaster to avert an unacceptable break in business continuity. 8 RTO and RPO Before contemplating the optimal number of servers to be deployed, however, it’s wise to first determine the right size of an individual server to meet your enterprise’s “normal use” profile. There are a number of methods for projecting a traffic and use profile. Actual, realworld measurement is recommended and made easy using built-in Windows Performance Monitoring tools. Notwithstanding the method applied, it is important to remember that GEMS performance is governed by two principal factors: CPU utilization and available memory, the former being somewhat more critical than the latter. RTO and RPO For GEMS deployment planning purposes, the first step in defining your HA/DR planning objective is to balance the value of GEMS and the services it provides against the cost required to protect it. This is done by setting a recovery objective. This recovery objective includes two principal measurements: l Recovery Time Objective (RTO) – the duration of time and a service level within which the business process must be restored after a disaster (or disruption) to avoid unacceptable consequences associated with a break in business continuity. For instance, the RTO for a payroll function may be two days, whereas the RTO for mobile communications furnished by GEMS to close a sale could be a matter of minutes. l Recovery Point Objective (RPO) – the place in time (relative to the disaster) at which you plan to recover your data. Different business functions will and should have different recovery point objectives. RPO is expressed backward in time from the point of failure. Once defined, it specifies the minimum frequency with which backup copies must be made. Obviously, if resources were fully abundant and/or free, then everything could have the best possible protection. Plainly, this is never the case. The intent of HA/DR planning is to ensure that available resources are allocated in an optimum fashion. Physical Deployment A production deployment of GEMS requires a clustered configuration, plus consideration given to integration with the Good Dynamics server infrastructure and with your existing enterprise systems. Here, it's important to understand the definition of a "GEMS cluster" and an "instance" within that cluster. 9 Physical Deployment An "instance" is any individual deployment of GEMS, with any combination of services provided by its Java tier and its .NET tier. An instance of GEMS usually runs on one physical machine. However this is not mandatory. The same physical machine could be used to deploy multiple instances of GEMS with service endpoints that listen in different ports. A GEMS cluster is just a group of instances. Within a GEMS cluster, each instance is identical in that they all expose the same services and share a common database. Instances in a cluster can be considered "active / active" in that there is no concept of a "passive" instance used for failover. Even so, instances in a cluster never communicate with each other or synchronize data. All GEMS instances in a cluster are homogeneous in that they all expose exactly the same service(s). This means that when an application is configured in the GC with a list of server endpoints, any of these server endpoints can be expected to provide the same service used by the application. This strategy also promotes ease of horizontal scale/replication, as well as ease of hardware failure correction by swapping in pre-built spares. Simplest Deployment The simplest production deployment of GEMS in a corporate network ( depicted below) comprises: As shown, such a deployment comprises: 10 Physical Deployment l One Microsoft Lync Server and an Microsoft Exchange server deployed in a corporate network and one database. l A single GEMS cluster made up of two physical instances (for fail over). This cluster provides all services—Presence, Instant Messaging, Push Notifications and Exchange Integration—for all device clients. l One Good Proxy server (GP) with affinity configured to both instances in the GEMS cluster, along with only one Good Control (GC) server. Typical Deployment Expanding on the simplest configuration, a typical deployment, adhering to generally accepted IT practices, offers high availability (HA) service access within data centers, rather than geographically distributed disaster recovery (DR) sites between data centers. 11 High Availability (HA) Here, there are two geographical regions (UK and US) to which GEMS clusters are deployed, furnishing device clients access to the services provided by GEMS. Two Microsoft Lync Pools are deployed—one in each geographical region. Device clients in each region are provided access to the Presence service and Connect (IM) service by a GEMS cluster configured to use the Microsoft Lync Pool infrastructure in that region. There is only one GEMS cluster in the UK region (Cluster #1), and it provides the Presence and Connect services. Two GEMS clusters (Clusters #2 and #3) are deployed in the US Region. Cluster #2 provides the Presence and Connect services for devices clients in the US Region, whereas Cluster #3 provides the Email (Push) Notification service for device clients in both regions. In this example, only two physical instances are required for HA. As seen above, there is a separate GP Cluster deployed in each region. GP servers in each cluster are configured to have affinity to the GEMS cluster(s) used by device clients in their region. Only one GC cluster is necessary. It is deployed in the US Region and used by the proxy servers in both GP clusters for both regions. High Availability (HA) Availability is measured in terms of outages, which are periods of time when the system is not available to users. Your HA solution must provide as close to an immediate recovery point as possible while ensuring that the time of recovery is faster than a non-HA solution. Unlike with disaster recovery, where the entire system suffers an outage, your high availability solution can be customized to individual GEMS resources and services. HA for GEMS means that the runtime and Service APIs for Push Notifications, Presence, and Connect are unaffected from the perspective of a device client whenever any instance of GEMS goes down or any of its services stop working. GEMS-HA Design Principles Services provided by GEMS instances should not differ in their approach to: i. Even distribution of work over instances ii. Detection of instance failure and 12 High Availability (HA) iii. Reallocation of work for existing users. Hence, the following design principles are followed for all services: l Shared Storage – Achieves HA/DR by adopting a shared storage model and, where possible, services provided by GEMS instances are stateless so that device clients can select any GEMS instance regardless of where they may have been previously connected. l Client-Side Load Balancing – Clients know the list of server endpoints in a GEMS cluster (with affinity to their GP cluster) and service requests are evenly distributed to those server endpoints via client-side load balancing. l Heartbeat – Services on each instance are responsible for reporting their own health in the shared database. l Elected Health Watcher pattern – One instance in the cluster is chosen through an election algorithm to watch the health of all the others, and then centrally coordinate work load distribution in response to a failed instance. All instances can be watchers and the election algorithm provides fail over for watchers. l User tables in Shared Storage – To aid failover, the database can be used to determine which instance in a GEMS cluster is currently being used to handle work for which end users. HA for Instant Messaging Instant Messaging (IM) is provided by the GEMS-Connect service to the Good Connect client. Load Distribution Client devices are aware of a list of endpoints (server instances in the same GEMS cluster) which they can contact for the Connect (IM) service. Each user session is kept up to date in the database, including which server instance is currently handling the user session. If a server instance receives a request for a user it has not yet served, it first looks for any sessions the user may have in the database, and may respond with a 503 referral to a different instance that is already holding a live session for that user. The Connect client cooperates by obeying referral responses. 13 High Availability (HA) Referral Server instances can be marked "offline" in the database due to a heartbeat failure or because another instance in the GEMS cluster has determined that it is offline. If the server of record for the user is offline, the newly contacted server can adopt the user session, dynamically establish a session with Lync on behalf of the user, and then transition the user to the new server. The offline status of the server has no effect on requests being routed to it, but it prevents referral to it by other servers of incoming requests. HA for Presence The Presence Service provided by GEMS consists of an HTTP service called by device clients and a "Lync Presence Provider" that integrates with a Lync Pool deployment (.NET). GEMS clusters used for the Presence and Connect Services will be specialized for this purpose, even though they are capable of supporting Push Notifications and Exchange integration. Put another way, the Presence service is deployed with Connect following the Connect deployment pattern with the Lync infrastructure. Load Distribution Device clients can use any instance in the GEMS cluster to establish multiple different Presence subscriptions; for example, matching a list of Contacts, Email participants, or a GAL Search. Moreover, multiple instances in the GEMS cluster can all reuse the same Lync Presence subscription. Presence subscriptions are not long lived and they are not suitable for storage in a database. Instead, they are stored in a persistent cache shared by all instances in the GEMS cluster, where they readily expire. The persistent cache is used to maintain a timestamp for each subscription which is used by the Presence service to determine what new presence information to provide to the client on request. HA for Push Notifications The High Availability objective for Push Notifications is that device clients should be able to register once for Push Notifications, and not be impacted by servers that manage those notifications going up and down. Even though device clients can be expected to eventually resubscribe, the GEMS HA design does not depend on them doing so. 14 High Availability (HA) Incoming push registrations are directed at random to any instance of GEMS in a cluster. There is no affinity to server instances for device clients based on mailbox. If the push registration already exists in the shared database, then it is assumed that one instance in the cluster is already managing an EWS Listener subscription for that user. No new action needs to be taken, except to reset the watermark of the push registration in the database for aging purposes. The EWS Listener Service on each instance of GEMS is responsible for periodically updating its own health status in the shared database. If the EWS Listener Service for any one instance fails to refresh its own health status within an expected time window, then it is considered down. One instance in the cluster is elected as a "Watcher" for this condition, whereupon it is responsible for instructing another instance to take over (and recreate) EWS subscriptions for user mailboxes that were currently attributed to the dead instance. This is done by updating Push Registrations in the shared database to reflect the new instance upon which the EWS Listener Service should manage those user mailboxes. When the dead instance comes back it is just another instance that is ready to manage new push registrations. HA Failover Process/Behavior Summary GEMS can scale horizontally and offers N+1 redundancy. This offers the advantage of failover transparency in the event of a single component failure. The level of resilience is referred to as active / active (a k a "hot") as backup components actively participate with the system during normal operation. Failover is generally transparent to the user as the backup components are already active within the system. In adequately configuring your GEMS components for this redundancy, the following measures must be taken: 1. Configure additional GEMS machines in a cluster to use the same underlying SQL Server database. This is done through the GEMS Dashboard. 2. Configure the additional GEMS Hosts in Good Control. This configuration can happen in two locations within Good Control, depending on your deployment model. Once configured, each client receives a list of supported GEMS servers during app start up of Good Connect/Good Work. The client will then choose a server from the list at random and continue to utilize that server for the life of the user's session. 15 Disaster Recovery (DR) A session constitutes an active login with the system and persists until a user either manually signs out or a 24-hour period (configurable), which ever comes first. Should one server fail, the client will retry additional servers from the list until it can successfully login. Any existing active user session will be seamlessly transferred to the new server. Detailed HA configuration steps are available in the GEMS Installation and Configuration Guide. Additional HA Considerations After adding servers for HA, each client must update its policies in order for it to be aware of the new systems. Policy updates are automatically performed each time the client is launched or a new policy is detected. However, the update could be delayed if the Good Control (GC) server is overburdened with update requests. As of the current release, each GC server can process two policy updates per second. Thus, it is important to scale your GC servers to match your policy update requirements. If you are using server affinities, these settings will need to be adjusted to account for the new servers. Disaster Recovery (DR) Disaster Recovery is different from High Availability among instances of a GEMS cluster in that an entire cluster in one region has become unavailable and device clients need to be Conclusion redirected to a GEMS cluster in a different region that provides the same services. The DR model for a GEMS cluster in a data center is to have another identically configured GEMS cluster in different data center (failover) that shares the same storage through a replication strategy provided by the vendor of the database and file system. This is the same strategy prescribed by Good Dynamics for disaster recovery of a GC cluster. Diagrammed below is a typical pattern for Disaster Recovery using a Primary and a Standby data center. Note that although the GEMS cluster illustrated is used for Presence and Connect, the pattern should be identical for a GEMS cluster used for Push Notifications and Exchange integration. 16 Disaster Recovery (DR) Note: Virtual IP is commonly employed by IT for failover, but it is not mandated by Good Dynamics in this case. GP Clusters already have a "primary", "secondary" and "tertiary" configuration with respect to an application managed in the GC. A Load Balancer with Virtual IP is used to route device traffic to a GP cluster in the primary datacenter. This GP cluster has affinity to the GEMS instances in a GEMS cluster likewise located in the primary datacenter. The Load Balancer is responsible for periodic heath check of the GEMS cluster in the primary datacenter. If the health check fails, then the Load Balancer initiates fail over to the GEMS cluster in the standby datacenter. Device clients are then routed to a GP cluster with affinity to server instances in that GEMS cluster. The database in the standby datacenter is replicated from the production database in the primary datacenter. However, any state—such as Presence subscriptions and active Lync conversations—would be lost and must be recovered as clients submit subsequent requests. 17 Disaster Recovery (DR) Good Control server instances in both the standby datacenter and the primary datacenter are in the same GC cluster because they all use replicas of the same shared storage. The only difference is that GC server instances in the standby datacenter have affinity with the GP cluster in the same datacenter. When the Health Check indicates that the primary datacenter is available once again, the Load Balancer will initiate failover back to the GEMS cluster in the primary datacenter. With respect to push notifications(, when a DR failover happens, device clients must resubscribe using the Push Notification Service (PNS) provided by the GEMS cluster in the standby datacenter. There is no expectation that EWS Listener subscriptions for existing users will be automatically recreated. DR Failback Process/Behavior Assuming the DR site is properly configured , failover should be transparent to the end user. As noted earlier, the client is aware of multiple GC, GP and GEMS with which it can connect. In the event that the primary site goes offline, GEMS clients will try to connect to the services in the secondary site. Before failing back, you must make sure that the secondary database is synchronized with the primary database. Update the DNS accordingly to remap infrastructure resources. From a client perspective, the user may need to quit and relaunch the app. In most cases, however, the process will be transparent to the end-user, and the app will reconnect to the primary resources once it comes back online. Phased Approach Recommendation Clearly, the key to a successful GEMS disaster recovery event is proper planning. To this end, the following phase approach is recommended: Phase 1 – Ensure and verify that all services are working properly in the primary site before introducing DR. Phase 2 – Independent of GEMS, test and verify that the infrastructure is setup properly in the secondary site. This includes, but not limited to, AD, SQL and Lync. Phase 3 – Add additional GC, GP and GEMS machines in the secondary site as appropriate. Phase 4 – Update configuration to include new GC, GP and GEMS machines. Phase 5 – Test a Failover/Failback. 18 Deployment with Good Dynamics Deployment with Good Dynamics A number of factors bear consideration in appropriately deploying GEMS services with an existing or newly established GD infrastructure. Network Separation Good Control instances in a GC cluster do not need to be reachable by GEMS instances in a GEMS cluster. This may be desirable to an IT administrator since GC instances could be installed with high privilege service accounts to perform Kerberos Constrained Delegation (KCD) and may hold sensitive security tokens. In such cases, GC clusters and GEMS clusters can be deployed in different network zones separated by a trust boundary. Server Instance Configuration in Good Control Device clients are able to access GEMS instances in a GEMS cluster because each individual network endpoint for each instance in the cluster has been configured in a "Server List". This is the list of endpoints provided to a device client identified by its application ID. For example, a device client activated with a deployment of Good Control as configured below would be presented with three network endpoints to use for access to Services in a GEMS cluster. Not shown here is the ability to associate user groups to each network endpoint. This permits assignment of users to a GEMS cluster accessed via the GP cluster in their region, as described earlier. 19 Deployment with Good Dynamics These network endpoints configured in the GC do not reflect any physical deployment topology for the actual server instances. IT departments rely on separate infrastructure for routing within the enterprise and across sites. In fact, an IT department may employ VPN, Router, Load Balancer or other infrastructure configuration behind each of these devicefacing network endpoints. Note also that network endpoints configured in this way are implicitly whitelisted by the GC. Server-Side Services Service names for each service provided by GEMS are registered on the Good Dynamics Network along with a service definition. An "application" is then created in Good Control and has bound to it one or more Service Definitions. In the example below there is an "application" called "com.g3.good.presence" and it has been bound to one server-side service called, "G3 Presence Service". Note that the application concept here does not represent an app on a device. Rather, it is a construct that can be used to entitle user and group access to the service(s) that are bound to it. Now, when a user who is entitled to this Application ID uses any GD application in their device, the device client is informed of this server-side service, plus all the network endpoints for it (via the "Application" entitlement in the GC), as illustrated above in Server Instance Configuration in Good Control. 20 Conclusion Conclusion In the most optimistic scenario, practically speaking, a GEMS cluster exposing all GEMS services and has two physical instances for failover—a simple system to manage. However, in large enterprises, IT organizations typically choose to deploy GEMS in a manner consistent with their existing enterprise systems, matching how Microsoft Lync and Exchange are deployed. The deployment architecture and HA design principles for GEMS are, in essence, identical to those of Good Dynamics. This consistency becomes increasingly necessary as GEMS seeks to provide the runtime environment for GD Server-Side Services, and ultimately to replace the Application Server runtime environment for Good Control. 21 Appendix A – Upgrading from Good Connect Classic Appendix A – Upgrading from Good Connect Classic Good Enterprise Mobility Server (GEMS) with Connect and Presence (CP) services is built on a different platform than the classic Good Connect server. As a result, there is no direct upgrade path from the classic Good Connect server to GEMS with Connect and Presence. For existing classic Good Connect server environments, please review the guidance that follows when upgrading to GEMS with Connect and Presence. The guidance found here covers two of the most common upgrade scenarios. It is not intended to be a step-by-step upgrade procedure, but rather a general overview of the process as a whole. Knowledge of the classic Good Connect server is required. Where appropriate, cross-references to more detailed instructions are indicated. Upgrade Scenario 1: Parallel Server (Recommended) In this scenario a new server is provisioned for GEMS with Connect and Presence to run in parallel with the existing classic Good Connect Server. The benefit is that no service interruption is required on the existing Good Connect system while GEMS is deployed. The parallel server upgrade environment can be generally depicted as follows: 22 Appendix A – Upgrading from Good Connect Classic Pertinent Considerations in this Scenario Good Dynamics We recommend that you upgrade Good Control to v1.7.38.19 and Good Proxy to v1.7.38.14 in preparation for the installation of GEMS. Service Account The service account used for the classic Good Connect server can also be used for GEMS. Database A new schema (Oracle) or database (MS SQL) will need to be created for use by the new GEMS installation. Microsoft Lync Configuration Your existing classic Good Connect Lync application pool can be reused. However, the new GEMS machine must be added as a Trusted Application computer. If you are planning to use the Presence service as well, an additional Application ID will need to be created. Please see the GEMS Installation and Configuration Guide for details. GEMS Host Machine SSL/TLS Certificate The new GEMS machine will need its own (unique) SSL/TLS certificate. Please see the GEMS Installation and Configuration Guide for additional detail regarding setting up the SSL/TLS certificate. Good Control Configuration The “Good Connect” application configuration in Good Control will need to be updated to include the new GEMS-Connect service. Caution: To minimize interruption to production users, Good Connect server affinities should be set up prior to updating the Good Connect application configuration. It is recommended that you set up two polices: one with user affinity to the classic Good Connect server, and another with affinity to GEMS-Connect. When you schedule your users to be switched over to the new server, make sure you ask them sign out of their Connect client prior to the maintenance window. 23 Appendix A – Upgrading from Good Connect Classic Verification/Testing Verify that clients can connect to the GEMS-Connect service. This can be done by assigning a user to a policy that contains the new GEMS-Connect service. Moving Users After testing is complete, all users can be moved to GEMS by updating the user’s policy set. Specifically, update the server affinity to point to the new GEMS machine. As mentioned above under Good Good Control Configuration, it is also recommended that when you schedule users to be switched over to the new server, you ask them sign out of their Connect client prior to the maintenance window. Classic Good Connect Server After all users have been moved to the new GEMS machine, the old classic Good Connect server can be decommissioned or repurposed. Upgrade Scenario 2: Repurpose Existing Server In this scenario the existing classic Good Connect server will be repurposed for GEMS. As pointed out previously, a direct upgrade on the same machine running classic Good Connect is not possible. The existing classic Good Connect server software must be uninstalled before the GEMS software is installed. The benefit of this approach is that a new server is not needed. This mean, however, that service on your production Good Connect server will be interrupted. The existing server upgrade environment can be generally depicted as follows: 24 Appendix A – Upgrading from Good Connect Classic Pertinent Considerations in this Scenario Good Dynamics We recommend that you upgrade Good Control to v1.7.38.19 and Good Proxy to v1.7.38.14 in preparation for the installation of GEMS. Service Account The service account used for the classic Good Connect server can be used for GEMS. Database You will need to run the DDL/DML database scripts for Oracle or MS SQL to reset the schema or database used by the GEMS product. Microsoft Lync Configuration The existing classic Good Connect Lync application pool and Trusted Application Computer can be reused. Again, if you are planning to use the Presence service, an additional 25 Appendix A – Upgrading from Good Connect Classic Application ID will need to be created. See the GEMS Installation and Configuration Guide for details. GEMS Host Machine SSL Certifcate If the FQDN of the server did not change, the existing SSL certificate can be reused; however, if you are planning to use the Presence service, the certificate will need to be updated with a SAN to include the Presence service App ID. Consult the relevant section in the GEMS Installation and Configuration Guide for additional instructions. Good Control Configuration If the FQDN of the server did not change, then the “Good Connect” application configuration in Good Control can remain the same. Please ask users to sign out of Good Connect prior to the upgrade since their temporary session information on the server will be lost during the upgrade process. Verification/Testing Verify that both existing and newly provisioned clients can connect to the GEMS-Connect service. 26 Appendix B – Hardware Used for Testing GEMS Appendix B – Hardware Used for Testing GEMS The following computer hardware was used for PSR validation. Component Processor EWS Push (Mail) AMD Opteron Notification 6234 2.4 GHz – Memory OS 16 GB Microsoft Windows Server 2008 R2 Enterprise 64 bit 4vCPU Connect AMD Opteron 16 GB 6234 2.4 GHz – Microsoft Windows Server 2008 R2 Enterprise 64 bit 4vCPU Presence AMD Opteron 16 GB 6234 2.4 GHz – Microsoft Windows Server 2008 R2 Enterprise 64 bit 4vCPU Connect , Presence, and AMD Opteron EWS Push (Mail) 6378 2.39 GHz – configured on the same 4 cores Virt 16 GB Microsoft Windows Server 2008 R2 Enterprise 64 bit machine SQL Server for GEMS AMD Opteron 8 GB Microsoft Windows Server 2008 6234 2.4 GHz – R2 Enterprise 64 bit / MS SQL 4vCPU Server 2008 R2 Note: This hardware profile was used for all GEMS PSR testing. All service configurations were tested running SQL Server on a separate machine. 27 Legal Notice This document, as well as all accompanying documents for this product, is published by Good Technology Corporation (“Good”). Good may have patents or pending patent applications, trademarks, copyrights, and other intellectual property rights covering the subject matter in these documents. The furnishing of this, or any other document, does not in any way imply any license to these or other intellectual properties, except as expressly provided in written license agreements with Good. This document is for the use of licensed or authorized users only. No part of this document may be used, sold, reproduced, stored in a database or retrieval system or transmitted in any form or by any means, electronic or physical, for any purpose, other than the purchaser’s authorized use without the express written permission of Good. Any unauthorized copying, distribution or disclosure of information is a violation of copyright laws. While every effort has been made to ensure technical accuracy, information in this document is subject to change without notice and does not represent a commitment on the part of Good. The software described in this document is furnished under a license agreement or nondisclosure agreement. The software may be used or copied only in accordance with the terms of those written agreements. The documentation provided is subject to change at Good’s sole discretion without notice. It is your responsibility to utilize the most current documentation available. Good assumes no duty to update you, and therefore Good recommends that you check frequently for new versions. This documentation is provided “as is” and Good assumes no liability for the accuracy or completeness of the content. The content of this document may contain information regarding Good’s future plans, including roadmaps and feature sets not yet available. It is stressed that this information is nonbinding and Good creates no contractual obligation to deliver the features and functionality described herein, and expressly disclaims all theories of contract, detrimental reliance and/or promissory estoppel or similar theories. Legal Information © Copyright 2014. All rights reserved. All use is subject to license terms posted at www.good.com/legal. GOOD, GOOD TECHNOLOGY, the GOOD logo, GOOD FOR ENTERPRISE, GOOD FOR GOVERNMENT, GOOD FOR YOU, GOOD APPCENTRAL, GOOD DYNAMICS, SECURED BY GOOD, GOOD MOBILE MANAGER, GOOD CONNECT, GOOD SHARE, GOOD TRUST, GOOD VAULT, and GOOD DYNAMICS APPKINETICS are trademarks of Good Technology Corporation and its related entities. All third-party technology products are protected by issued and pending U.S. and foreign patents. 28
© Copyright 2024