Upload
vcissgroup
View
537
Download
3
Tags:
Embed Size (px)
DESCRIPTION
Citrix Application Lifecycle Management
Citation preview
Page 2 of 46
TABLE OF CONTENTS SUMMARY .................................................................................................................................................................4
PHASE ONE ...............................................................................................................................................................5
THE DON’TS ..............................................................................................................................................................5 THE DO’S ..................................................................................................................................................................6 CORE COMPONENTS .................................................................................................................................................7 SERVICE LEVEL AGREEMENT GOALS ..........................................................................................................................7 IMMEDIATE GOALS .....................................................................................................................................................8 APPLICATION LIFECYCLE MANAGEMENT......................................................................................................................9 DEFINITION OF END USER EXPERIENCE (EUC) ........................................................................................................ 10
APPLICATION LIFECYCLE MANAGEMENT ........................................................................................................ 11
APPLICATION PACKAGING PROCESS FLOW DIAGRAM ............................................................................................... 12
APPLICATION PACKAGING ................................................................................................................................. 13
SETUP.EXE INSTALLATION FORMAT ......................................................................................................................... 13 VENDOR SUPPLIED MSI’S ....................................................................................................................................... 13 NO SETUP ROUTINE PROVIDED ............................................................................................................................... 13
STANDARDS AND PROCEDURES ....................................................................................................................... 14
GENERAL FUNDAMENTALS ...................................................................................................................................... 14 EXPLANATION OF ©WINDOWS INSTALLER FILE TYPES: ............................................................................................. 14 APPLICATION PACKAGE FOLDER ............................................................................................................................. 14 MERGE MODULES .................................................................................................................................................. 15
PATCHES ................................................................................................................................................................ 16
INTRODUCTION TO PATCH FILES .............................................................................................................................. 16 NAMING CONVENTION ............................................................................................................................................. 17
Standardized Naming Schema for Patches ..................................................................................................... 17 Transforms (MST) and Features ...................................................................................................................... 17
APPLICATION DEPENDENCIES AND REQUIREMENTS .................................................................................................. 17 SRM APPLICATIONS ............................................................................................................................................... 17 MSI PROPERTIES ................................................................................................................................................... 18 PACKAGING AND SECURITY EXCEPTIONS ................................................................................................................. 18
Files and Directories ......................................................................................................................................... 18 File and Directory Permissions ......................................................................................................................... 19 Registry Permissions ........................................................................................................................................ 19 Files and Directories ......................................................................................................................................... 19 File System Permissions .................................................................................................................................. 19 Registry Permissions ........................................................................................................................................ 19
NAMING CONVENTIONS ....................................................................................................................................... 20
SAMPLE PACKAGE PROCESS ............................................................................................................................ 21
WISE PACKAGE STUDIO......................................................................................................................................... 21 Install ©WISE Package Studio ......................................................................................................................... 21 SetupCapture ................................................................................................................................................... 22
SOFTWARE INSTALLATION PROCESS .............................................................................................................. 28
PACKAGER’S CHECKLIST ................................................................................................................................... 42
Page 3 of 46
REFERENCED DOCUMENTS ................................................................................................................................ 43
REFERENCED COPYRIGHTS ............................................................................................................................... 44
Reference Information ...................................................................................................................................... 44
DOCUMENT CONTROL SHEET ............................................................................................................................ 45
DOCUMENT NAME, LOCATION, AND OWNER ............................................................................................................. 45 CONTINUOUS IMPROVEMENT ................................................................................................................................... 45 DOCUMENT HISTORY .............................................................................................................................................. 45
DEFINITIONS .......................................................................................................................................................... 46
REFERENCES ......................................................................................................................................................... 46
Page 4 of 38
Summary
Application Lifecycle Deployment of new applications, updates, and software patches is one of the most common – and important – functions of any Citrix hosting framework. This framework maintains the reliability and stability of the XenApp hosting tier while providing internal or external application developers a proven and repeatable process. This document defines a framework for a repeatable, successful, deployment process to properly package, QA, UAT, and future updates relative to deployment of business applications to Citrix. Properly preparing software packages for deployment across an organization is a complex process involving multiple steps, including repackaging, customization, impact assessment, QA and UAT. The software packaging process can become exponentially more complex as a company’s size increases, especially when the organization has multiple offices and software packaging centers across the globe. Application Lifecycle Management must be centralized and utilize a best practice framework for success. Otherwise, different teams follow ad hoc processes; the entire organization suffers. Problems include: Costly Deployment Catastrophes – Deploying a poorly prepared software package can erase important files required by mission-critical software, causing those software programs to fail. The resulting downtime can force company productivity to a halt, increase IT help desk costs, and – depending on the importance of the application – potentially cost the organization millions in lost revenue opportunities. Software Rollout Delays – Without a clear, orderly process in place for preparing an application for deployment, bottlenecks and packaging issues can take far too long to resolve and software rollouts can suffer lengthy delays. Inefficient or Overloaded Packagers – Citrix Management cannot obtain accurate global view of who in IT is working on what projects, so packaging assignments are often unevenly distributed. This means that projects that might have been completed right away - if properly assigned - are instead overlooked, assigned to the wrong packager, or stuck in QA or UAT; for example. Duplicated Packaging Efforts – Lack of having a centralized Application Lifecycle Management for Business Applications results in disparate packaging teams, duplicate work streams, potential for multiple strategies when a single cohesive packaging initiative is required for success and Center of Excellence. Lost Application Data – Data generated by the software packaging process is invaluable for improving the way, AIGGS manage, package, and update applications. However, if the entire process is not centrally managed – or if the data remains scattered in various spreadsheets, documents, and email communications – it isn’t available to the global Application Lifecycle Management Team preventing a Center of Excellence for Citrix Application Deployment.
Page 5 of 38
Phase One
Primary focus for phase one is proper architecture of XenApp 6.5 Feature Release 2 while in parallel a strategy for migration of legacy applications to the new infrastructure. Citrix is a conduit for the business application. Strategy is highly focused on the business application and compatibility with performance as pertinent and primary goals for the new architecture. Prior to migration, all applications must:
1. Create an inventory as it resides on the local Citrix server to include; a. Application name b. Application version c. Application contact(s) d. Application local dependencies
i. Some applications require special fonts installed in C:\Windows\Fonts ii. Some applications require JRE – Java Run Time and specific versions
1. JRE 1.7 supported in new production iii. Some applications require ActiveX controls to run for printing or other purposes iv. Some applications require Oracle Client and corresponding ODBC and/or INI files v. Some applications require SQL Tools/Client installed with ODBC and/or INI files
e. Application client dependencies i. Some applications require special fonts installed in C:\Windows\Fonts
2. Create an application matrix mapping from application to middleware to backend database
The Don’ts
Not having an Application Lifecycle Management Plan – Application Center of Excellence
Not leveraging MSI and Windows Installer Best Practices to create clean, pristine application(s)
Not leveraging MSI and Windows Installer Best Practices to create clean, pristine application patches
Not leveraging MSI and Windows Installer Best Practices to create clean, pristine new releases
Not leveraging a centralized MSI application NAS or SMB share repository
Not testing the applications first before ordering hardware or architecture of Citrix
Not analysing application usage patterns before ordering hardware or architecture of Citrix
Not using ©Citrix XenApp 6.5 Feature Pack 2 to host your applications o Versus hosting in a virtual operating system aka virtual operating system (VDI/VOS)
Not using ©Citrix Provisioning Services to host a single read-only XenApp VDISK images o Cost save o Agility o Scale out not up o Dynamic capacity at demand
Not installing applications, AV, inventory agents in read-only XenApp Dynamic VDISKs o Cost save o Image is read-only, streamed, memory and write-cache disk only o Reality – no longer a typical server; read-only
One image to update, applications only, huge cost savings on agents
Not installing anything other than ©Citrix Universal Receiver
Not using ©Citrix AppDNA for MSI Packaging analysis and remediation steps o Streamlines application migrations from legacy platforms
Not using qualified packagers for Citrix / RDS environment o Standard desktop packaging does not apply to multi-user RDS/Citrix
Not providing adequate workstations, tools, and software for packagers o Tools combined with expertise equals success otherwise failure
Page 6 of 38
o Packaging applications utilize software such as Dell\Wyse Packaging Studio with Conflict Analysis is critical to stabilize the applications and future deployments of patches and new releases
The Do’s
Do create MSI databases with files extrapolated to a centralized share
Do import those MSI databases into a conflict analysis repository
Do utilize Wyse Package Studio
Do utilize packagers with expert knowledge of MSI packaging as it pertains to: o Windows Installer Service 5.0 (Windows Server 2008 R2) o Packaging for Remote Desktop Services in Microsoft Server 2008 R2 o Packaging for Citrix XenApp 6.5 / 7.0 / 7.1 / 7.X o Do utilize merge modules, triggers, coding where applicable
Do have a goal of 90% of applications packaged o 5% network hosted o 5% streamed to XenApp such as Microsoft App-V where applicable
Do centralize application packages to one share
Do run Citrix AppDNA against the MSI packages for QA o Produces list of Citrix specific remediation steps
Do create a list of “low hanging fruit” based on AppDNA results Do convert the users with the largest # of low hanging fruit first
Do analyse every remote site after applications o # of users per site o # of users per site on shift differentials o # of time zones domestic and abroad
Do analyse bandwidth per site o Consolidation has many benefits most of all the reduction of CIR rates per site equates to monthly OPEX
cost saves
Do analyse telecom per site o Telecom can be consolidated using ©Citrix XenApp 6.5 Feature Pack 2 and hosting the Cisco or Avaya
Softphone in XenApp 6.5 Feature Pack 2 – Been there and done it.
Do analyse license usage per application and look for concurrent cost saves by hosting the application in XenApp 6.5 Feature Pack 2 and hard coding usage based on worldwide usage patterns reducing the need for:
o COTS applications o Any concurrent license or non-named user license o SQL licensing if not processor based o Remote Desktop CALs’ o ©Citrix CALs’ o List goes on – many cost saves to be had by centralizing everything
Do leverage ©Citrix Branch Repeater for better WAN performance and possibly further reduction in CIR rates or bandwidth per site.
Do leverage ©Citrix Cloud Bridge for B2B connections (versus high cost private circuits).
Do leverage ©Citrix Netscaler with Content Switch and wild card certificates o Combined with Insight for Netscaler – web and HDX o Enable AppFlow on Netscaler to Insight devices
The intent of this document is to expose one of the most egregious errors when implementing XenApp 6.5 Feature Pack 2 (Published Application). Published Applications create agility and efficiency for IT Operations, Help Desk and most important – end users. All is lost without a defined “Application Lifecycle Management” or “Center Of Excellence” for application packaging, ongoing updates, patches, new releases. Published Application is merely a conduit for the business application and ultimately a way for all users to access their business applications needed to perform their jobs. Published Application allows users to do this from any device, from any location, and any time. The experience made consistent across device(s) utilizing:
1. ©Citrix Universal Receiver 4.X, 5.X, X.X 2. ©Citrix Storefront 2.X, 3.X, X.X
Page 7 of 38
Next, the #1 reason why most implementations fail is “Application Lifecycle Management”. You never buy hardware [other than proof of concept] [called “just enough”] prior to application validation in the new XenApp 6.5 Feature Pack 2 environment. Published Application is a “conduit for the business application”. The goal is to make the business application available from anywhere, anytime, on any device. The core components consist of:
Core Components
1. ©Citrix XenApp 6.5 Feature Pack 2 2. ©Citrix Provisioning Services 3. ©Citrix Netscaler Access Gateway 10.x
a. ©Citrix AppFlow for Insight enabled 4. ©Citrix Insight 10.x 5. ©Citrix EdgeSight 5.4 for XenApp 6.5 Feature Pack 2 6. ©Citrix Director 2.1 for XenApp 6.5 Feature Pack 2
a. Insight and EdgeSight data now integrate direct to Director Console 7. ©Citrix Cloud Bridge 7.1 (formerly Branch Repeater)
a. By default accelerate ICA/HDX traffic across Wide Area Networks addressing both high latency and lower bandwidth constraints
8. ©Citrix AppDNA 7.0 9. ©Citrix Storefront 2.1 10. ©Citrix Merchandising Server 2.2 11. ©Citrix Licensing Server 11.11.1 12. ©Citrix Provisioning Services 6.1.x 13. ©Liquidware Profile Unity or ©Appsense 14. ©Vmware ESX Hypervisor 15. ©Microsoft SQL 2008R2 SP1 running on Server 2008R2 SP1 Enterprise Edition, 2-node Cluster 16. ©Wyse Package Studio with Conflict Analysis Module (SQL Backend)
Service Level Agreement Goals
1. ©Citrix XenApp 6.5 Feature Pack 2: 10 second < logon 2. Two (2) tickets per 8000 concurrent users 3. ©Citrix Provisioning Services 6.1.1/7.1 Virtual OS: 15 IOPs’ or less with read-only single VDISK
a. This advantage Provisioning Services to stream instances of single VDISK from NAS shared drive or NFS shared drive leveraged by Provisioning Services 6.1.x.
4. ©Citrix XenApp 6.5 Feature Pack 2 average of 50,000 IOPs’ per 2200 applications a. This alone should convince you that leveraging ©Citrix XenApp 6.5 Feature Pack 2 on 2008R2 and
beyond [2012 to 2XXX) RDS/RDP server is the only way to host your applications b. Assumption is 90% are MSI packages, installed silent mode c. Assumption 5% are network applications hosted on NAS, CIFS, or SMB share d. Assumption 5% are “streamed applications” – updating MSI packages done correctly is far easier than
streaming applications. 5. The goal, as indicated above, is packaging to MSI so that applications can utilize Microsoft Windows Installer
Service. MSI packaging is Best Practice. ©Citrix implemented properly saves money in the following areas;
ROI
TCO
CAPEX
OPEX
Page 8 of 38
Understanding that my recommendations should be utilized for deploying applications to Windows Server OS running Remote Desktop Services [formerly Terminal Services] (RDS) running ©Citrix XenApp 6.5 Feature Pack 2 (formerly Presentation Server, Metaframe, Winframe). The standards based on Microsoft Windows Installer Technology (also referred to as “MSI”). With that said, the names of ©Citrix XenApp 6.5 Feature Pack 2, Provisioning Services, and Remote Desktop Services, et cetera are destined to change at some point in the future. Please consider these placeholders only as I will provide a definitions summary as to the purpose each technology at the end of this document.
Immediate Goals
Proven, Citrix solutions architecture with repeatable processes relative to virtual hosted applications, architecture, Application Lifecycle Management (Application Center of Excellence) , hardware refresh lifecycles, operations training and documentation, Help Desk training and documentation
Iron clad agreements with Change Management and Help Desk relative to UAT, run book, and ticket queue priority assignments
Customer inspired unique authentication design allowing for customized Published Application using on template for the entire company yet ability for customer to choose logon banners, drastic reduction of logon scripts required for applications by moving this and other logic to the published application, drastic reduction of network aggregate bandwidth requirements per site and working with third-party vendor before and after to determine CIR adjustments where monthly costs for bandwidth has become the most beneficial OPEX savings for some companies
Emphasis on EUC satisfaction in the production solution is critical and most important in all implementations closely followed by a paradigm impact to all internal IT teams where the focus is making life easier for IT services at the happiness of end-users
Operations, Windows Server Team, Desktop Support, Help Desk, Storage, Networking, Firewall Team, and Change Management, efficiency impacts for business units requesting access to business applications and IT Security Fulfilment or HR
o Depends on which tower does the security fulfilment
In some cases, with the goal being streamline the entire procurement process by focusing on the Corporate Business Applications, proven repeatable process for migration of all COTS, internal developed, external developed, direct vendor managed, basically having a strategy that addresses the consolidation of all business applications to a centralized location regardless of the number of applications; hence, the term repeatable in practical use is relative whether 300 or 3000 applications – it just works and leveraging published application best practices combined with Application Lifecycle Management (ALM) is what guarantees previous experienced success
The unique design, combined with a proven project plan, dynamic capacity, maximum utilization of underlying hosts (goal 200%), workflows, escalation paths, application lifecycle proprietary process including custom agreements with Help Desk management and Change Control management team approvals new process is immediately implemented with a customized letter sent to all Business Unit management to emphasize the critical role of allocating 1 to 3 power user UAT resources whereby user is shadowed during UAT to assist with creating of application run books which helps shift priority of success relative to new production applications working in a shared virtual cloud; therefore, preventing end users from pointing the finger immediately at the new solution when evidence is provided showing the power user did not UAT that report or that query after review of the run book
Citrix AppDNA does expedite application migrations and set the standard for “Application Lifecycle Management” analysis with remediation steps. AppDNA run against a network share hosting MSI packages. It assigns a # by weight of how many remediation steps are required and lists those remediation steps. A score of one is considered “low hanging fruit” and five is where having the best packagers is required
Relative to my reasons for stating ©Citrix as my preferred vendor for virtualization, virtual desktop and server, and all the top layer tools to ascertain application viability, followed by remediation steps, the tools to find these remediation steps and reduce migration of applications by 50% or greater.
All the components required at the delivery stack including login GUI, support for any authentication model, Global Load Balancing, Routing by Proximity, Client NAP with DMZ ability, SSL VPN with split tunnel and split DNS, Content Switch, SSL compression, application layer 7, 4-tiered Firewall and specific QOS between sites for better application performance prior to ICA delivery.
Page 9 of 38
Hardware, software, and process level monitoring tools with elite custom reporting. Including in-depth HDX and Web utilizing Insight for Netscaler and enabling AppFlow.
Elite custom proactive monitoring with automated remediation steps, alerts, and built in workflow for adhering to change management procedures.
True support for any device such as; phones (iPhone, IPad, and newer IOS’s coming soon, laptops, zero clients, thin-clients, desktops of any vendor, any software client such as the various Linux builds such as Debian (becoming popular), any IOS, to Open BSD, Macintosh, and all versions of Windows.
With HDX, ability to create SaaS Desktops for purpose of running Internet only applications to high end virtual TV’s for watching videos on Amazon Instant Video, Amazon Prime, Netflix, intranet training, live video, video-on-demand, investor relation video for internal employees and so forth
Support for call-center telephony software, customer service chat for banks and other organizations, support for Skype Video, Google Voice and Video, Microsoft Lync with Video plug-in, Video conferencing, Cisco IP Soft Phone, and Avaya Softphone
You can purchase the software and tools herein but what matters most is the depth of knowledge of your packager or packaging team. Spare no expense, they specialize in packaging for RDS/Citrix environments and should be paid accordingly
o Packaging applications utilize software such as Dell\Wyse Packaging Studio with Conflict Analysis is critical to stabilize the applications and future deployments of patches and new releases
Application Lifecycle Management
One of the main objectives of these standards is to guarantee consistency across the organization. A package fulfilling the requirements set down in these guidelines and the Windows Installer SDK should automatically be consistent with Windows Server and Windows Client by simply utilizing the appropriate MST and therefore easy to deploy.
Requirements:
Windows Installer (MSI)
Windows Client OS – Windows 7
Windows Server OS – Server 2008 R2 running Remote Desktop Services
Altiris Package Studio
©Citrix XenApp 6.5 Feature Pack 2 - multi-user environment utilizing published applications
©Citrix XenApp 6.5 Feature Pack 2 – leveraging read only desktops that obtain the published application from the XenApp 6.5 Feature Pack 2 solution
The following processes implemented as pre-requisites:
WISE Package Studio is the preferred tool or a reputable tool that performs some of the same functionality such as loading the meta-data into SQL database on every MSI package for conflict analysis reporting
High-end workstation for hosting VMWare Workstation and hosting the binaries, images, snaps, and users connecting for UAT. This is one option is most efficient when there are a small group of packagers they can have up to four VM’s running and everything is maintained and managed by each packager.
The second option is providing a “Packaging” instance of XenApp 6.5 Feature Pack 2 or XenApp 6.5 Feature Pack 2. The packager must package to the environment where the application will reside. If the MSI installs on XenApp 6.5 Feature Pack 2 then the VM must match the current OS for the XenApp 6.5 Feature Pack 2 farm.
VMWare Workstation or Oracle Box (Free) utilized for packaging, QA, and testing in order to reduce rebuild time. VMWare/Oracle rebuilds done instantaneously by simply powering off the virtual machine and choosing to revert to the clean build.
Oracle Box seems equally as stable yet is free of charge. Simply Google “Oracle Box Free Download”. It allows you to create Published Application in several flavours.
Conflict Analysis
AppDNA remediation steps Some of these you will find can be fixed with a prefix script with all the variables or “reg add” or path statements
and so forth Then simply host the prefix script on your NFS/CIFS/SMB share and the publish application points to the .cmd,
.bat, .vbs scripts. Business Applications + Application Lifecycle Management advantages the following:
Leverage Windows Installer Server to create best practice MSI packages
Page 10 of 38
Wyse Packager + Wyse Conflict Analysis and DLL Remediation
©Citrix AppDNA application analysis for Published Application with 1 to 5 rating and application specific remediation steps to resolve application working in ©Citrix XenApp 6.5 Feature Pack 2
Low hanging fruit identified by AppDNA – remediation steps to production ready MSI packages
Master packaging team dedicated to multi-user application packaging
Full customer UAT by power user
Packager and power user working together while packager takes screenshot of every function
User signs off on the new “run book” for each application tested
Iron clad agreement with Change management & Help Desk stating user cannot open Severity 1 or 2 ticket for anything not UATd’ post implementation of new install to production
Creation of run-book for each application during UAT and screen capture for Help Desk and Change Management and Customer Reference
Policy stating naming standards for packages
Windows Installer Service creates a GUID for each new package, that GUID is tied to the patch (MSP) or version aka clean uninstall and new install which is fully automated by Windows Installer Service by capturing new package and new GUID associated to old GUID and trigger to perform clean uninstall
Document when to patch, policy that everything is patched as MSI/MSP and documented whether single dll or regkey change
That GUID is associated to the primary GUID; and, using triggers create workflow install and dependency installs. o In other words, you can have prerequisites so if this GUID (appA) does not exist it installs App A first,
then appB, then AppB1 regkey change
Published Application influences all of IT. Every team in IT must cooperate or management must be prepared to offer choices.
Definition of End User Experience (EUC)
“Real” End User Experience is defined by the three primary components that dynamically interact to constantly impact how End Users experience IT Services in real-time:
Physical, Virtual Application, Virtual Desktop OS, Streamed Desktop OS,and Mobile Device Performance – Storage, Event Log, Hung Processes, Application Crashes and Blue Screens of Death, WMI, Top Resource Consumers, Network Read/ Write, Boot and Logon Profiling, Hypervisor, Remote File Share, Battery, Wi-Fi and Cellular Network
Application Performance – Latency, response time and “key-to-glass” transaction time for user workflows across any application, e.g., HTTP(s), RIA/AJAX, Thick Client, .NET, WPF, Native iOS and Android apps, Citrix ICA/HDX, Vmware PCoIP and Microsoft RDP
User Productivity – Application, module and business function usage statistics, e.g. trades executed, calls closed, emails sent, invoices created, etc. including usage trail, execution time and time spent.
Page 11 of 38
Application Lifecycle Management
This document should be referred in conjunction with the Microsoft Windows Installer SDK. The SDK contains a wealth of detailed information and guidelines which this document does not duplicate. As a general principle, anything written in the SDK is valid in terms of packaging standards and procedures. The basic idea behind this is to make MSI packages portable and easy to support.
One of the main objectives of these standards is to guarantee consistency across the organization. A package fulfilling the requirements set down in these guidelines and the Windows Installer SDK should automatically be consistent with Windows Server and Windows Client by simply utilizing the appropriate MST and therefore easy to deploy.
It is assumed that the reader is technically proficient in the following areas;
Windows Installer (MSI)
Windows Client OS – Windows XP and Windows 7
Altiris Package Studio
©Citrix XenApp - multi-user environment utilizing published applications
©Citrix XenDesktop – leveraging read only desktops that obtain the published application from the XenApp solution
In order for this process to be used, the following processes should be implemented as pre-requisites:
WISE Package Studio is the preferred tool or a reputable tool that performs some of the same functionality such as loading the meta-data into SQL database on every MSI package for conflict analysis reporting
High end workstation for hosting VMWare Workstation and hosting the binaries, images, snaps, and users connecting for UAT. This is one option and generally the fastest when there are a small group of packagers they can have up to 4 VM’s running and everything is maintained and managed by each packager.
The second option is providing a “Packaging” instance of XenApp or XenDesktop. The packager must package to the environment where the application will reside. If the MSI installs on XenApp then the VM must match the current OS for the XenApp farm.
VMWare Workstation can be used for packaging, QA, and testing in order to reduce rebuild time. VMWare rebuilds are done instantaneously by simply powering off the virtual machine and choosing to revert to the clean build.
Oracle Box seems equally as stable yet is free of charge. Simply Google “Oracle Box Free Download”. It allows you to create VOSSKS in several flavours.
Conflict Analysis
AppDNA remediation steps Some of these you will find can be fixed with a prefix script with all the variables or “reg add” or path statements
and so forth Then simply host the prefix script on your NFS/CIFS/SMB share and the publish application points to the .cmd,
.bat, .vbs scripts. Business Applications + Application Lifecycle Management leverages the following:
Leverage Windows Installer Server to create best practice MSI packages
Wyse Packager + Wyse Conflict Analysis and DLL Remediation
©Citrix AppDNA application analysis for VOS with 1 to 5 rating and application specific remediation steps to resolve application working in ©Citrix XenApp
Low hanging fruit identified by AppDNA – remediation steps to production ready MSI packages
Master packaging team dedicated to multi-user application packaging
Full customer UAT by power user
Packager and power user working together while packager takes screenshot of every function
User signs off on the new “run book” for each application tested
Iron clad agreement with Change management & Help Desk stating user cannot open Severity 1 or 2 ticket for anything not UATd’ post implementation of new install to production
Creation of run-book for each application during UAT and screen capture for Help Desk and Change Management and Customer Reference
Page 12 of 38
Policy stating naming standards for packages
Windows Installer Service creates a GUID for each new package, that GUID is tied to the patch (MSP) or version aka clean uninstall and new install which is fully automated by Windows Installer Service by capturing new package and new GUID associated to old GUID and trigger to perform clean uninstall
Document when to patch, policy that everything is patched as MSI/MSP and documented whether single dll or regkey change
That GUID is associated to the primary GUID and using triggers create workflow install and dependency installs. o In other words, you can have prerequisites so if this GUID (appA) does not exist it installs App A first,
then appB, then AppB1 regkey change VOS impacts all of IT. Every team in IT must cooperate or management must be prepared to offer choices.
Application Packaging Process Flow Diagram
Packaging
request is
processed and
assigned
Packaging
Process
Pass Self
Test?UAT
Pass UAT? QA
Pass QA? Deployment
Yes
Yes
Yes
No
No
No
Page 13 of 38
Application Packaging
All packages should include a Microsoft ©Word document, based on the ‘Application Package Template’. This document is created by the packager when finished packaging an application. It will contain the following information:
Application Name
Version
Packager Details (Name and Contact Number)
Date
MSI Details (Product, Package and Upgrade Codes)
Installation Instructions
Technical Information
Special Instructions to Deployment Team (if any)
Dependency Information
SQL.INI, TNSNAMES.ORA Strings (if any)
ODBC information (if any)
Useful Contacts
©Citrix Deployment Info (if needed)
Verification Script Any section of the application package documentation that is left intentionally blank should be marked “N/A or None”. Once the document is complete it should be reviewed and edited as required.
Setup.exe Installation Format
This is where the installation source is provided by running a setup routine in a non-MSI format. Use ©Wise Setup
Capture and related tools to capture changes to the workstation.
Vendor Supplied MSI’s
It is preferred to use vendor-supplied MSI’s. However, there are cases where this creates problems due to custom
actions and poorly scripted MSI’s, etc. A snapshot of the MSI will be allowed, dependent on the integrator to decide on
the most suitable option.
No Setup Routine Provided
This can occur where the application is a set of files to be placed in a single directory or just an ODBC entry with few
registry keys. In such cases, create a new installation from within ©Wise or use ©Wise Setup Capture and related tools to
build the package.
Page 14 of 38
Standards and Procedures
General Fundamentals
All ©Windows Installer file types are supported (MSI, MSP, MST and MSM).
Variables (©Windows Installer or System) will be used to support single integrations.
No hard coded settings will be included in any package.
There will be one MSI file per package.
Multiple MSI files per package are not permitted. An application that requires several MSI files must be packaged using several packages.
Nested installations of MSI files are not permitted (i.e. one MSI file cannot call another).
All packages must support silent installation
Suppress Reboot on Installation. If Reboot is required, it must be listed in the QA Exceptions section of Application Document.
All packages should be thin MSI’s with external support files.
All Developer packages should be packaged to same standards as end-user packages excluding rights issues.
Where VB Script Custom Actions are required, the code must be viewable and editable within the ©Wise Package Studio tool.
Clean uninstallation of packages is required and must be tested prior to production deployment.
MST’s packaged against a vendor MSI should be considered a package, MST’s packaged against a produced MSI should be considered Localisation.
Transforms must be delivered under the same folder as the MSI file.
Automatic updates of applications from the Internet are forbidden.
It is not permitted to specify IP addresses anywhere in the package. The DNS representative value of the IP address should be entered instead.
If any of the standards in this standards document are not followed, an exception request should be made.
Explanation of ©Windows Installer File Types:
File Extension Description
MSI The ©Windows Installer database file
MST The ©Windows Installer transform file (applied to an MSI file)
MSP The ©Windows Installer patch file (used to patch an MSI installation)
MSM The ©Windows Installer merge module file (merged into an MSI file)
Application Package Folder
All package folders should contain the following:
MSI file
MST file (if applicable)
Application Packaging Document
Supporting Files
Page 15 of 38
Merge Modules
Merge modules are pre-compiled libraries of components (files, registry changes, and other system changes) that install a
discrete portion of your application. They cannot be run alone, but must be merged with a ©Windows Installer database
(MSI file). Merge modules give you flexibility in developing installations because you can break the installation of your
application into logical chunks and share merge modules between projects.
With ©Wise for ©Windows Installer the selection of a module to include in your installation is automatic. If your
application uses a resource that is included in a merge module a dialog box will appear asking you if you would like to
include the merge module with your application. Choose “yes” whenever this option is given. The module plus any
dependent modules are automatically integrated with your MSI file. All table entries etc. will automatically be updated with
the module specific information.
The ©Wise database of merge modules should be the trusted source of Vendor-supplied merge modules approved for Application Packaging and will be updated on a weekly basis. It is recommended that all sites should use the same merge modules to maintain consistency.
To download the latest Merge Modules, go to: www.wise.com
Page 16 of 38
Patches
Introduction to Patch Files
Patches provide the ©Windows Installer Service with a mechanism for implementing upgrades of installed applications. These applications, of course, must have been installed by the Installer Service originally.
Patches are represented as .MSP files and represent the difference between the MSI presently installed (through the old package) and the upgraded MSI file (through the new package). Based on what changes we are making to the package, we can categorize patches as Small Updates, Minor Upgrades and Major Upgrades.
The below table compares the differences:
Type of update Product code Product Version Description
Small Update No change No change An update to one or two files that is too small to warrant changing the Product Version. The package code in the Revision Number Summary Property does change. Can be shipped as a full installation package or as a patch package.
Minor Upgrade No change Changed A small update making changes significant enough to warrant changing the Product Version property. Can be shipped as a full installation package or as a patch package.
Major Upgrades Changed Changed A comprehensive update of the product warranting a change in the Product Code property. Shipped as a patch package or as a full product installation package.
If an update changes .msi file and application files, but does not change the Product Code property or Product Version property, it is termed a small update.
If an update changes the Product Version, but does not change the Product Code, it is termed a minor upgrade.
If the update changes the installation into an entirely different product, the Product Code must change and the update is termed a major upgrade.
It is a good practice to adopt a standardized naming schema for Patches that are created and distributed by the Windows System Engineering AI (Application Integration) team.
Page 17 of 38
Naming Convention
Create consistency across all ©Windows Installer Patch files that are deployed across the firm.
Easily recognize the LOB application to which a specific patch is applied to.
To maintain a systematic inventory of all applications and patches.
Standardized Naming Schema for Patches
AppName-VersionNumber-PVersionNumber.MSP MyCompany: Company Info for inventory purposes AppName: Application Name as it was used in the original MSI. VersionNumber: Original version P: Represents a Patch file VersionNumber: The new version number being assigned through patch. Appname-606-P607.MSP Scenario 1: If this is a small update with one or two files, no changes in Product Code and ProductVersion are necessary. And the patch file will be named as below. Appname-606-P606.MSP Scenario 2: If this is a minor upgrade with a significant change in installation, like EXE, and dll changes, we will change the Product Version but Product Code will still remain same. Appname-606-P607.MSP Scenario 3: For major upgrades, whole new package will be created with new ProductCode and new Product Version which will uninstall the application with older version.
Transforms (MST) and Features
Transforms are files with MST extension that are applied to an MSI file at install time. An MST will deliver any informational and configuration changes that are required for the package.
Transforms are not permitted to change the “ProductVersion”
A transform cannot be uninstalled, replaced or added without uninstalling the entire application.
Transforms cannot contain the same resources as MSI file.
All requested changes to vendor packages should be delivered by a Transform.
Features - The common standard is to use “Complete” feature which is also part of the default ©WISE template. However, additional Features may be used and the option is left to the packager as to the best choice. Features should be explicitly enabled and disabled by specifying the ADDLOCAL and REMOVE MSI properties respectively. This should be specified on the “msiexec” command line.
Application Dependencies and Requirements
Applications with particular system requirements (e.g. disk space, memory size, install software, etc) should have these requirements checked and built in to the MSI package. Additionally all dependencies should appear in the welcome dialog. All SRM’s required by an application must be detailed within the MSI’s welcome dialogue box.
SRM Applications
Examples for Shared Runtime Module (SRM) applications are:
MyCompany-Oracle-Client-10g-SRM
MyCompany-Sybase-PC-Client-12-5-SRM
How to use SRM Applications
All the SRM applications are used as dependencies for LOB [Line Of Business] applications. No LOB application package should have files that belong to any SRM.
Page 18 of 38
For example, when APPA1.exe is installed, the install routine also copies files Crystal Reports 10. In such case, Crystal Reports 10 must be packaged separately as an SRM and should be called as a dependency for APPPA1.
Each SRM must be packaged to allow support for multiple versions.
The names of package folder, MSI, and Application Package doc will have SRM at the end. (for e.g., MyCompany-Sybase-PC-Client-12-5-SRM)
MSI Properties
Packagers should make use of the predefined MSI property values as much as possible. This particularly includes, for example, the list of properties given in the ©Windows Installer SDK under the heading “System Folder Properties”. Using such properties makes packages portable and robust. Fortunately WFWI tends to make use of these properties automatically as required.
Default ©WISE template has the following properties set:
Property
Value
Description
ALLUSERS 2 “Per-machine” installation must be supported. Most software installation will be performed with Administrator level security credentials thus ensuring “per-machine” installation.
INSTALLTIME 10 Packager can right click it and select Details to
amend the value field to the estimated time (mins) for installation – the default is 10 minutes.
REBOOT Really Suppress Does not allow MsiExec.EXE to cause a reboot. If required, the software distribution mechanism handles reboots.
Req1 None Packager should use this value to mention “dependency” information. If there is only one dependency, then “Req2” and “Req3” properties can be deleted. Default is “None”
Req2 None -------Same as above-----
Req3 None -------Same as above-----
Packaging and Security Exceptions
The Application Packager will attempt to package each application to the defined standards. If they are unable to package the application to standards and have it function properly, they have been permitted within limits, to have acceptable deviations from the standard provided these deviations are well documented in the Application Packaging Document. The following are examples of exceptions they have been pre-approved for:
Files and Directories
Files located in C:\Windows\System32\Drivers
Files located in C:\Windows\System32\Fonts
Apps requiring Files in more than one directory under C:\Program Files - e.g.: Additional Files located in C:\Program Files\Common Files
Page 19 of 38
Add additional rights to directories from within the MSI – the rights should be added to the ‘everyone’ group.
File and Directory Permissions
Allowed to grant write permissions on files e.g.: C:\Program Files\App\myfile.ext
Allowed to grant write permissions on folders e.g.: C:\Program Files\App\Logs
Registry Permissions
Allowed to grant write permissions to the User Group to registry keys of the packaged application eg: HKLM\Software\MyApp
Allowed to grant write permissions to the User Group to registry values and data of the packaged application e.g.: HKLM\Software\MyApp\Setting1 | mydata
Setting Security on a Registry Value in a Package:
Select “Installation Expert” Tab
Select “Registry” in the Feature Details section on the left.
Select the desired feature (normally “Complete”) from the “Current Feature” dropdown box.
In the lower left hand pane, expand the registry tree display as needed and navigate to the desired registry key. (Note that if the desired key does not exist, it can be located in the upper left hand pane and dragged and dropped to the lower left pane)
Right click the value to be operated on from the lower right pane then click “Details”. (Note that if the desired value does not exist, it can be navigated to in the upper left and right hand panes and dragged and dropped to the lower right pane)
Select the “Permissions” Tab
Leave the “Domain” box empty and enter “Everyone” in the Box labelled “User”.
Check the boxes by the permissions you require on the file.
Click “Add”
Setting Security Permissions for a Registry value inside a Package is now complete.
Note: Though the packagers are allowed to make certain exceptions mentioned above, they have been given limits on how far they can
deviate from standards. For some standards there are hard and fast rules that may not be deviated from. The following is a list of
standard items AI packagers cannot violate during the packaging process. These deviations need prior approval from the senior level
Management.
Files and Directories
Not allowed to write files located in other directories to enable the application to function e.g.: C:\
Must document files located in C:\Windows
Must document files located in C:\Windows\System
Must document files located in C:\Windows\System32
File System Permissions
Not allow to grant write permissions to the User Group to the root of C:\ directory
Not allow to grant write permissions to the User Group to the root of C:\Windows and its’ children directories
Not allow to grant write permissions to the User Group to the C:\Program Files directory
Not allow to grant write permissions to the User Group to the C:\Program Files\Common Files directory
Not allowed to grant write permissions on files under C:\Windows directory.
Registry Permissions
Not allowed to grant write permissions to the User Group to any root hive
Not allowed to grant write permissions to the User Group to HKLM\Software.
Page 20 of 38
Naming Conventions
Name
Description
Examples
Package Folder Name of the package folder. This will have the same name as MSI.
MyCompany-MyApp-6-6
MSI Name of the MSI file, if not vendor provided. Every MSI name should contain the name of the app and version number. The name should start with MyCompany.
MyCompany-MyApp-6-6.msi
MST Name of the MST file. If the MSI is vendor provided, use this name as the base for all other names in this section. Multiple MSTs should be named to indicate the purpose of each MST.
MyCompany-MyApp-6-6.mst MyCompany-MyApp-6-6.msi
Name of the Application Package doc
Name of the AP document provided with the application package. For SRM packages, document’s name will have SRM at the end.
MyCompany-MyApp-6-6.doc
MyCompany-Oracle-Client-10g-SRM.doc
Destination Directory Capture the default directory the install routine creates. No version number required. Note: Some 32 bit applications should be installed in a short-name directory such as C:\Prod being default it would go to (x86) directory on 64 bit and some applications cannot “read” this type of path statement.
C:\Prod\MyApps\MyApp C:\Program Files\MyApp
Add/Remove programs in Control Panel
Only admin users will see this. The name appearing in the Add/Remove control panel is the name specified in the Product Details of the MSI. The name should be based on the MSI file name including the version and Release number (but without the '-'s).
MyCompany MyApp 6.6
Page 21 of 38
Sample Package Process
WISE Package Studio
This section is a sample only of a generic package preparation. These steps will be performed by Windows Systems Engineering to prepare the application package for testing and deployment.
Install ©WISE Package Studio
Map network drive Y: to Wise Share Point
Make sure to have the latest "WISE Template" in "Y:\Wise Share Point\Templates" folder
'Default Merge Modules Directory' is set to Y:\Merge Modules as below
©Wise Package Studio – Merge Modules
Page 22 of 38
SetupCapture
From your desktop, click on Start-->Programs-->Wise-->Wise Package Studio
Login with a valid ID and Password
©Wise Package Studio - SQL Server Login
From the SetupCapture screen, double-click on SetupCapture
©Wise Package Studio - Tools
Page 23 of 38
1) Select SetupCapture and click on Next
SetupCapture – Welcome screen
2) The ‘Specify Target Installation File’ screen will display
3) Click on Browse
SetupCapture – Specify Target Installation File
Browse to the location of the project file where the MSI file will be saved Name the project file (WSI) in the File name field as per the naming standards described in this document and
click on Save
Note: The SAMPLE below has been provided for reference only.
Page 24 of 38
Save WSI File per the naming standards
The ‘Specify Target Installation File’ screen will display with the ‘Target Installation’ populated with the MSI file information
Click on Next
SetupCapture – Specify Target Installation File
MyCompany-MyApp1-5-0-1
Z:\Capture\My-App1-V5-0-1\My-App1-V5-0-1.msi
MyCompany-MyApp1-5-0-1
Page 25 of 38
The ‘SetupCapture Welcome’ screen will display
Leave the default settings for ‘Configuration File Location: Local PC’
Click on Settings
SetupCapture – Select Settings
The ‘SetupCapture Configuration’ screen will display
Select the ‘Directories to Watch’ panel
Add more drives and directories if the application installs files in other locations, otherwise leave the default values and process by clicking on OK
Setup Capture Configuration Settings
Page 26 of 38
Select ‘Snapshot’ and click on Next to take the system snapshot before the application is installed
Setup Capture – Capture Methodology screen
The ‘Begin Installation Capture’ screen will display
Click on Next
Setup Capture – Begin Installation Capture
Page 27 of 38
This will scan all the files, directories and registry information on your computer
Setup Capture – Begin Installation Capture – Scan Status
When complete, click on Next
The ‘Execute Installation’ screen will display
Click on Browse to select the executable in the ‘.EXE Name:’ field
SetupCapture – Execute Installation
Click on Execute to complete the Software Installation Process
X:\Prod\To-Be-MSI\MyApp1\Setup.exe
Page 28 of 38
Software Installation Process
Note: These steps may not be same for every application install
The ‘Setup’ screen will display
Click on Next
Software Installation Process – Setup Screen
Browse for the destination folder and click on Next
Setup – Choose Destination Location
C:\Prod\MyApp1\
Page 29 of 38
Select the ‘Setup Type’ and click on Next
Setup – Select the Setup Type
Select the ‘Program Folder’ and click on Next
Setup – Select Program Folder
My App1
Page 30 of 38
The setup program will process and you can view the status from the ‘Setup Status ‘screen that will display
Setup Status
When complete, click on Finish
Setup – Setup Complete screen
Page 31 of 38
The ‘SetupCapture – Execute Installation’ screen will display
After installing the application, any changes or customizations can be made at this point before taking the snapshot again (i.e. adding ODBC entries, updating INI files etc.).
SetupCapture – Execute Installation screen
Once all the changes are made, click on Next
The ‘End Installation Capture’ screen will display
Click on Next
SetupCapture – End Installation Capture
Page 32 of 38
At this point, SetupCapture will scan the computer again to find any differences
When complete, click on Next
SetupCapture – End Installation Capture – Scan Status screen
The ‘SetupCapture Inclusions’ screen will display
Verify the content and click on Next
SetupCapture – Inclusions screen
C:\Prod\MyApp1\Subdirectory\ C:\Prod\MyApp1\Subdirectory\ C:\Prod\MyApp1\Subdirectory\jre C:\Prod\MyApp1\Subdirectory\jre C:\Prod\MyApp1\Subdirectory\jre C:\Prod\MyApp1\Subdirectory\jre C:\Prod\MyApp1\Subdirectory\jre C:\Prod\MyApp1\Subdirectory\jre C:\Prod\MyApp1\Subdirectory\jre C:\Prod\MyApp1\Subdirectory\jre C:\Prod\MyApp1\Subdirectory\jre\bin C:\Prod\MyApp1\Subdirectory\jre\bin
Page 33 of 38
The ‘SetupCapture Exclusions’ screen will display Verify the content and click on Next
SetupCapture – Exclusions screen
The ‘Finish’ screen will display.
Verify the default directories and click on Finish
Page 35 of 38
SetupCapture will process and will generate capture reports
SetupCapture – Finish – Generating Capture Reports
When complete with capturing reports, the ‘Saving Installation’ screen will display
Saving Installation progress screen
At this point, it will save the installation capture into a Project file (WSI)
My App1
Page 36 of 38
From your desktop, launch the ‘©Wise Package Studio’ application (click on Start-->Programs-->Wise-->Wise
Package Studio)
Double-click on Windows Installer Editor
©Wise Package Studio – Windows Installer Editor
Login with a valid ID and Password
SQL Server Login screen
Page 37 of 38
The ‘Installation Expert’ screen will display
Click on Product Details
Windows Installer Editor - Installation Expert
Enter in the following information, per the standards outlined in this document: o Product Name o Manufacturer o Version o Default Directory
SAMPLE: Product Name: MyCompany-MyApp1-V5.0.1 Manufacturer: Business Unit Version: 5.0.1 Default Directory: Click on "Change" button to select working directory. (C:\Prod\BusinessUnit\MyApp1)
CompanyName-AppName-Version Company Name Version # C:\Prod\MyApp\ \\fileserver\packages\capture
Page 38 of 38
Select the ‘General Information’ panel
Figure 1: Installation Expert – General Information screen
Fill in the information as shown above
Note: Make sure to have the same Title name as the Product Name
Click on Compile
Click on Local Compile when prompted
Figure 2: Local Compile
My Company MyApp1 5.0.1
Brian Murphy
Page 39 of 38
The ‘Saving Installation’ screen will display
Figure 3: Saving Installation progress screen
Once compiled, you will have the MSI file saved in the package folder
Close the project file (WSI) and edit the MSI that has been saved
From the ‘Installation Expert’ screen, click on Files
Installation Expert – Files screen
Clean up all the unnecessary files that are captured
Note: In this example, "Windows\System32\tssesdir" folder and its contents can be deleted. It is up to the packager to keep the
package as clean as possible with file and registry information.
My App1
My App1 Subdir
Page 40 of 38
From the ‘Installation Expert’ screen, click on Registry
Installation Expert – Registry screen
Clean up any unnecessary Registry keys
From the ‘Setup Editor’ screen, select Components
Setup Editor – Components screen
Verify that there are no RED components or components with empty key paths
My App1
My App1
My App1
Page 42 of 38
Packager’s Checklist
Checklist Details Comment
Pre-Packaging Checklist Setup files available?
Install Instructions available?
Technical contacts?
Any connectivity requirements?
Test scripts available?
Test ID and Password?
Dependencies?
Any special hardware requirements?
Setup files include vendor MSI?
Create an MST as per standards.
MSI Capture Checklist Do you have the latest ©WISE template?
In Installation ExpertProduct Details, Have you entered “Product Name”, “Manufacturer”, “Version” info properly?
General Information: Have you filled in the “Title”, “Subject” and “Author” details?
Product Name and Title should be same without dashes
Are you using Merge Modules?
Did you clean up unnecessary files?
Did you cleanup unnecessary reg keys?
Any components that are marked RED?
Any components that are missing key path info?
No hard coded IP addresses, server names or user names?
Page 43 of 38
Referenced Documents
Document Name Description Team Owner
Application Package Template
Template used to document the detailed description for application package deployments.
Packaging Team
Microsoft Windows Installer SDK
Microsoft packaging standard More details can be found at: http://www.arnebrachhold.de/2005/05/24/microsoft-component-installer-software-development-kit-spring-2005
Microsoft
Page 44 of 38
Referenced Copyrights
Reference Information
Copyright ©Altiris Network America, Inc. All rights reserved. http://www.altirispro.com/Products/Altiris/index.html
Copyright ©Citrix ©Citrix Systems, Inc. All rights reserved. http://www.©Citrix.com/lang/English/home.asp
Copyright ©Windows Microsoft Corporation. All rights reserved. http://www.microsoft.com/
Copyright ©Word Microsoft Corporation. All rights reserved. http://www.microsoft.com/
Copyright ©VMWare VMware, Inc. All rights reserved. http://www.vmware.com/
Copyright ©Wise Altiris Corporation. All rights reserved. http://www.wise.com/ ** Altiris purchased Wise product line.
Copyright ©Altiris Altiris Corporation. All rights reserved. http://www.altiris.com/ ** Altiris purchased Wise product line.
Copyright ©Dell Dell Corporation. All rights reserved. http://www.dell.com/
Copyright ©Liquidware Labs Liquidware Labs Corporation. All rights reserved. http://www.liquidwarelabs.com/products/profileunity.asp ** Profile Unity
Page 45 of 38
Document Control Sheet
Document Name, Location, and Owner
Name Location Creator
Citrix Application Packaging Methodology Brian Murphy
Continuous Improvement
The procedure defined in this document is subject to regular review based on input from Dell associates. Suggestions for improvement to the content of this document should be submitted using the Dell Services Change Procedure.
Document History
Version Date Revision history or Review (Author)
1.0 10/6/2013 Document creation / Brian Murphy
1.1 10/8/2013 Minor revisions / Brian Murphy
Page 46 of 38
Definitions
BOS Bottom of Stack
TOS Top Of Stack
VDI Virtual Desktop Infrastructure
VOS Virtual Operating System
VOSI Virtual Operating System Infrastructure
References
Reference Link Source
Microsoft - Before Installing Failover Clustering Microsoft
Installing a SQL Server 2008 R2 Failover Cluster Microsoft
Hardware and Software Requirements for Installing SQL Server 2008 R2 Microsoft
Editions and Components of SQL Server 2008 R2 Microsoft
Features Supported by the Editions of SQL Server 2008 R2 Microsoft
How to: Create a New SQL Server Failover Cluster (Setup) Microsoft
Using Upgrade Advisor to Prepare for Upgrades Microsoft
SQL Server support policy for Microsoft Clustering Microsoft
Microsoft 2008 R2 and SQL 2008 R2 Failover Clustering Microsoft
What's New in Failover Clusters in Windows Server 2008 Microsoft
What's New in Failover Clusters in Windows Server 2008 R2 Microsoft
Additional Tests in Cluster Validation Microsoft
Support for SQL Server on iSCSI technology components Microsoft
Microsoft Certified Server Catalog for Windows 2008 R2 Microsoft
Catalog - Certified for Windows Server 2008 R2 – OS Microsoft
Catalog - Works with Windows Server 2008 R2 – OS Microsoft
Catalog - Supports Windows Server 2008 R2 - OS Microsoft
SQL Server 2008 - Before Installing Failover Clustering Microsoft
Features Supported by the Editions of SQL Server 2008 R2 Microsoft