Home > Articles > Operating Systems, Server

Solaris Migration Strategies

This chapter defines the most important terms in migration and differentiates these terms. It furthur presents migration strategies, the benefits and risks of each strategy, and the appropriateness of each strategy for various situations.
This chapter is from the book

This chapter defines the most important terms in migration and differentiates these terms. In addition, it presents migration strategies, the benefits and risks of each strategy, and the appropriateness of each strategy for various situations.

This chapter contains the following sections:

  • "Understanding the Concepts" on page 21

  • "Evaluating the Environment" on page 27

  • "Examining Strategies" on page 30

  • "Choosing a Strategy and Developing Tactics" on page 37

Understanding the Concepts

Within the context of this book, the term migration is defined as the transition of an environment's people, processes, or technologies from one implementation to another. While somewhat open ended, this definition allows us to discuss migration in a number of different contexts:

  • The migration of common off-the-shelf (COTS) software from one platform to a larger or smaller similar platform

  • The migration of data from one database to another, possibly similar data storage technology

  • The migration of a custom-written application from one platform to a different platform and operating environment

These examples have different inputs, different execution strategies, and dissimilar functional outcomes, but they are all migrations in that the IT functionality has been moved from one platform to a different platform. It is this varied scope that affords the term "migration" its varied interpretations.


Migration is often confused with the act of consolidation. Webster's College Dictionary defines consolidation as, "the act of bringing together separate parts into a single or unified whole." As defined in the Sun BluePrints book Consolidation in the Data Center, by David Hornby and Ken Pepple, consolidation should be thought of as a way to reduce or minimize complexity. If you can reduce the number of devices you have to manage and the number of ways you manage them, your data center infrastructure will be simpler. This simplicity should contribute to efficiency, and consistency should contribute to lower management costs in the form of a reduced total cost of ownership (TCO).

While consolidations involve migrations as applications and business functionality are moved to a single machine, migrations do not necessarily involve consolidation. The value proposition realized by migration relates to improved quality of service (QoS) and reduced TCO realized as a characteristic of the new platform, environment, and overall IT infrastructure.


Frequently, the release of a new edition of an operating environment might require that the platform's operating system (OS) be replaced with a more up-to-date version, a practice referred to as adoption. Depending on the changes introduced in the new version, upgrading to a new version of the current OS might be as difficult as migrating the application to a completely different OS, even though the hardware platform remains the same.

Usually, applications that must be moved to a newer version of the same environment have to be tested to determine whether they provide the same functionality in the new environment. This can be a time-consuming, as well as expensive, process. If test suites designed to verify critical application functionality are not available, they will need to be developed, at considerable time and expense.

Application programming interfaces (APIs) are the touch points between applications and the operating environment. In addition to defining APIs, the Solaris environment also supports the concept of the application binary interface (ABI), the description of these APIs used by the application executable at a binary level. This definition enables you to compare the API usage of an application executable created in one version of the OS to the binary description of interfaces supported by a different release of the OS. Consequently, compatibility between different versions of the OS can be guaranteed without any examination of the source code used to create the application.

In most cases, binaries created under an earlier version of the OS require no change. However, should any incompatibilities exist, specific APIs that don't conform to the ABI definition of the new OS can be identified. Tools exist to support the static analysis of the application binary. Sun's appcert tool identifies differences so that they can be remediated prior to moving the application. This technology enables migration engineers to ascertain whether an application can be moved without problem to a newer version of the OS.

Moving applications from an older version of the Solaris OS to a newer version is referred to as adoption rather than migration. This distinction is made because the use of stable API standards, backward compatibility, and an ABI and tools enables you to verify and compare application interface usage, thereby guaranteeing that an application will run without problem in the new OS. In most cases, adoptions do not require recompilation, although using a later version of the compiler might provide performance benefits.

The E-Stack

Before we introduce migration and porting, consider the following figure, which illustrates what we call the Enterprise stack or E-stack.

This construct is used as a model of the infrastructure of the enterprise. At the top of the stack, the business strategy, people, and process are defined. The high-level functions that occur here are usually controlled by an executive team. These functions provide logistical support to enable business functions, in addition to the unique value-added functions that differentiate one enterprise from another. The outputs of this level of the stack must be implemented by the lower levels. Typically, applications are used to implement and execute business processes.

The next section of the E-stack represents the execution architecture, which is composed of the following items:

  • Applications that support business functionality. Changes in business processes most likely require changes in the application layer. Consequently, a rapidly evolving business must be able to implement application change in a timely manner. Business segments that are not subject to frequent change are less likely to require an agile development or runtime environment to effect application change.

  • Application infrastructure that supports the applications. Modern implementations of this layer include web servers, application servers, middleware, and database technology that support a typical n-tiered architecture. For older, legacy applications, the application infrastructure layer is composed almost entirely of the OS. Applications in this layer are written to interact with the APIs provided by the OS vendor and software provided by independent software vendors (ISVs).

  • Computing and storage platforms. These hardware components enable the application infrastructure. This layer of the stack is usually composed of a heterogeneous mix of hardware provided by a number of different vendors. As we will see, industry consolidation within the hardware manufacturing segment might require changes at this level of the stack. Unless the vendor has gone to great lengths to support backward compatibility, changes to the computing and storage platforms will require changes to the layers above them in the stack.

  • Network infrastructure. In today's environment, the ability to communicate over a network is critical. This infrastructure can be based on any type of networking technology, from low-speed dial-up to fiber-optic, high-speed backbones. Many legacy applications and their interfaces were designed and developed before the advent of networking technology. They depend on antiquated, proprietary interconnect technology, which might include a series of screens for data entry or possibly thick-client technology. These applications are not web enabled.

  • Facilities infrastructure. Frequently overlooked, this layer provides critical support to the stack elements above.

The upper portion of the E-stack that defines the execution architecture supports a number of systemic properties that are key to any enterprise. Availability, scalability, measurability, and security are all desirable but can be implemented only to the extent that they are driven and supported by the execution architecture and its components.

The lower portion of the E-stack represents the management architecture. These tools, people, and processes implement the management infrastructure for the enterprise and combine to control, measure, and manage the execution architecture. Tools can be used to monitor capacity, utilization, and throughput, and to help ensure that service levels can be met. Processes are in place to support change, service, deployment, and maintenance. These tools and processes are selected, developed, and administered by the IT staff. As change is effected within the E-stack, IT staff must be made aware of all changes. Training must take place to ensure that people understand the management process, as well as the execution architecture.

As you can see, all the elements of the stack support each other. If the facilities do not provide adequate power or air conditioning, the results will manifest themselves in the computing and storage platforms. If the computing and storage platforms do not support the application infrastructure, the application will not be able to function correctly and service level agreements will not be met. This would mean that the business function and requirements mandated and defined from the top layer of the stack could not be implemented.

The following table outlines the relationship between consolidation, migration, and adoption.

Table 3-1. Consolidation, Migration, and Adoption




The act of reducing the complexity in a data center


The act of moving technology from one platform or OS to another


The act of moving from an earlier version of the Solaris OS to a later version


As illustrated in the E-stack shown in FIGURE 3-1 on page 23, the term porting applies to applications rather than infrastructures. In particular, it is usually used in discussions about custom-written applications and refers to modifying or normalizing the code of an application so it can be recompiled and deployed on a new hardware platform that supports a different OS. Wherever possible, coding standards (ANSI, POSIX, and the like) should be adopted to minimize potential future changes that might have to be made.

03fig01.gifFigure 3-1. E-Stack Model for Enterprise Infrastructure

Porting is inherently associated with modifying the code base of an application so that the functionality provided by the APIs of the existing OS and supporting software products is replicated in the new target environment. This is typically done by developing compatibility libraries that map the older APIs to the new environment. Vendors might provide these libraries to ease the burden of migrating applications to their environments, but in many cases, you will have to develop compatibility libraries yourself.

Porting the application requires minimal understanding of the logic or functionality of the application. It is a somewhat mechanical effort for making the application compatible with the new environment.

A porting strategy requires you to integrate the application with a new development environment, as well as with a new operating system. While source code, scripts, and data are moved, compilers, source code repositories, and software tools are replaced by new versions that are compatible with the target platform.

When porting an application, you must also migrate any supporting third-party software. If the software is no longer available, you will have to find similar software and integrate it into the application. Should the amount of integration become excessive, the migration might begin to look less like a port and more like a rearchitecture effort, as described later in the chapter. Ensure that you determine the availability of third-party software used by the application before choosing a migration strategy.


The term enterprise migration refers to the process of migrating all layers of the E-stack, not only the application that supports business functionality. This is a very involved exercise that will have a greater impact on the entire IT staff than other strategies do. For example, migrations include the following changes:

  • Management policies present in the old environment must be migrated to the new environment.

  • Tools used to monitor and manage the execution environment must be replicated.

  • Supporting software, in the form of third-party products provided by an ISV, or locally written scripts to manage applications and data, must be integrated into the new environment.

  • People must be trained to administer the new hardware platform and operating environment.

  • Adding a large symmetric multiprocessor compute platform might justify the use of a multithreaded architecture for the application.

  • Implementing a Storage Area Network (SAN) rather than attached storage might enable other applications to fully utilize storage resources that were previously unavailable.

  • Adding networking capabilities might eliminate the need to transport and mount tapes.

  • Web-enabling an application might reduce the need for proprietary terminal interfaces or thick-client technology.

  • Changing hardware might require changes to the facilities to support more, or possibly less, power and cooling.

  • Creating new tiers in the architecture might allow for the use of cheaper, more cost-effective hardware to support that portion of the application, which might, in turn, support greater availability and supportability.

  • Using a modern programming language might enable the application to leverage more new third-party software, reducing the need for costly in-house development.

InformIT Promotional Mailings & Special Offers

I would like to receive exclusive offers and hear about products from InformIT and its family of brands. I can unsubscribe at any time.


Pearson Education, Inc., 221 River Street, Hoboken, New Jersey 07030, (Pearson) presents this site to provide information about products and services that can be purchased through this site.

This privacy notice provides an overview of our commitment to privacy and describes how we collect, protect, use and share personal information collected through this site. Please note that other Pearson websites and online products and services have their own separate privacy policies.

Collection and Use of Information

To conduct business and deliver products and services, Pearson collects and uses personal information in several ways in connection with this site, including:

Questions and Inquiries

For inquiries and questions, we collect the inquiry or question, together with name, contact details (email address, phone number and mailing address) and any other additional information voluntarily submitted to us through a Contact Us form or an email. We use this information to address the inquiry and respond to the question.

Online Store

For orders and purchases placed through our online store on this site, we collect order details, name, institution name and address (if applicable), email address, phone number, shipping and billing addresses, credit/debit card information, shipping options and any instructions. We use this information to complete transactions, fulfill orders, communicate with individuals placing orders or visiting the online store, and for related purposes.


Pearson may offer opportunities to provide feedback or participate in surveys, including surveys evaluating Pearson products, services or sites. Participation is voluntary. Pearson collects information requested in the survey questions and uses the information to evaluate, support, maintain and improve products, services or sites, develop new products and services, conduct educational research and for other purposes specified in the survey.

Contests and Drawings

Occasionally, we may sponsor a contest or drawing. Participation is optional. Pearson collects name, contact information and other information specified on the entry form for the contest or drawing to conduct the contest or drawing. Pearson may collect additional personal information from the winners of a contest or drawing in order to award the prize and for tax reporting purposes, as required by law.


If you have elected to receive email newsletters or promotional mailings and special offers but want to unsubscribe, simply email information@informit.com.

Service Announcements

On rare occasions it is necessary to send out a strictly service related announcement. For instance, if our service is temporarily suspended for maintenance we might send users an email. Generally, users may not opt-out of these communications, though they can deactivate their account information. However, these communications are not promotional in nature.

Customer Service

We communicate with users on a regular basis to provide requested services and in regard to issues relating to their account we reply via email or phone in accordance with the users' wishes when a user submits their information through our Contact Us form.

Other Collection and Use of Information

Application and System Logs

Pearson automatically collects log data to help ensure the delivery, availability and security of this site. Log data may include technical information about how a user or visitor connected to this site, such as browser type, type of computer/device, operating system, internet service provider and IP address. We use this information for support purposes and to monitor the health of the site, identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents and appropriately scale computing resources.

Web Analytics

Pearson may use third party web trend analytical services, including Google Analytics, to collect visitor information, such as IP addresses, browser types, referring pages, pages visited and time spent on a particular site. While these analytical services collect and report information on an anonymous basis, they may use cookies to gather web trend information. The information gathered may enable Pearson (but not the third party web trend services) to link information with application and system log data. Pearson uses this information for system administration and to identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents, appropriately scale computing resources and otherwise support and deliver this site and its services.

Cookies and Related Technologies

This site uses cookies and similar technologies to personalize content, measure traffic patterns, control security, track use and access of information on this site, and provide interest-based messages and advertising. Users can manage and block the use of cookies through their browser. Disabling or blocking certain cookies may limit the functionality of this site.

Do Not Track

This site currently does not respond to Do Not Track signals.


Pearson uses appropriate physical, administrative and technical security measures to protect personal information from unauthorized access, use and disclosure.


This site is not directed to children under the age of 13.


Pearson may send or direct marketing communications to users, provided that

  • Pearson will not use personal information collected or processed as a K-12 school service provider for the purpose of directed or targeted advertising.
  • Such marketing is consistent with applicable law and Pearson's legal obligations.
  • Pearson will not knowingly direct or send marketing communications to an individual who has expressed a preference not to receive marketing.
  • Where required by applicable law, express or implied consent to marketing exists and has not been withdrawn.

Pearson may provide personal information to a third party service provider on a restricted basis to provide marketing solely on behalf of Pearson or an affiliate or customer for whom Pearson is a service provider. Marketing preferences may be changed at any time.

Correcting/Updating Personal Information

If a user's personally identifiable information changes (such as your postal address or email address), we provide a way to correct or update that user's personal data provided to us. This can be done on the Account page. If a user no longer desires our service and desires to delete his or her account, please contact us at customer-service@informit.com and we will process the deletion of a user's account.


Users can always make an informed choice as to whether they should proceed with certain services offered by InformIT. If you choose to remove yourself from our mailing list(s) simply visit the following page and uncheck any communication you no longer want to receive: www.informit.com/u.aspx.

Sale of Personal Information

Pearson does not rent or sell personal information in exchange for any payment of money.

While Pearson does not sell personal information, as defined in Nevada law, Nevada residents may email a request for no sale of their personal information to NevadaDesignatedRequest@pearson.com.

Supplemental Privacy Statement for California Residents

California residents should read our Supplemental privacy statement for California residents in conjunction with this Privacy Notice. The Supplemental privacy statement for California residents explains Pearson's commitment to comply with California law and applies to personal information of California residents collected in connection with this site and the Services.

Sharing and Disclosure

Pearson may disclose personal information, as follows:

  • As required by law.
  • With the consent of the individual (or their parent, if the individual is a minor)
  • In response to a subpoena, court order or legal process, to the extent permitted or required by law
  • To protect the security and safety of individuals, data, assets and systems, consistent with applicable law
  • In connection the sale, joint venture or other transfer of some or all of its company or assets, subject to the provisions of this Privacy Notice
  • To investigate or address actual or suspected fraud or other illegal activities
  • To exercise its legal rights, including enforcement of the Terms of Use for this site or another contract
  • To affiliated Pearson companies and other companies and organizations who perform work for Pearson and are obligated to protect the privacy of personal information consistent with this Privacy Notice
  • To a school, organization, company or government agency, where Pearson collects or processes the personal information in a school setting or on behalf of such organization, company or government agency.


This web site contains links to other sites. Please be aware that we are not responsible for the privacy practices of such other sites. We encourage our users to be aware when they leave our site and to read the privacy statements of each and every web site that collects Personal Information. This privacy statement applies solely to information collected by this web site.

Requests and Contact

Please contact us about this Privacy Notice or if you have any requests or questions relating to the privacy of your personal information.

Changes to this Privacy Notice

We may revise this Privacy Notice through an updated posting. We will identify the effective date of the revision in the posting. Often, updates are made to provide greater clarity or to comply with changes in regulatory requirements. If the updates involve material changes to the collection, protection, use or disclosure of Personal Information, Pearson will provide notice of the change through a conspicuous notice on this site or other appropriate way. Continued use of the site after the effective date of a posted revision evidences acceptance. Please contact us if you have questions or concerns about the Privacy Notice or any objection to any revisions.

Last Update: November 17, 2020