This chapter is from the book

So far, you've discovered what open source is, where it originated, its
advantages, and how it is created. That's all good information if you
need background data to feel comfortable about the decision to move ahead.
This chapter gets down to the building blocksthe actual products and
solutions that are currently available to help you implement open source in
your organization. This chapter covers product specifications and integration,
as well as details case studies of open source implementations in real organizations.

It's worth pointing out again that, although in some instances, an organization
might elect to implement only open source software, total open source IT implementations
are generally not the case. By and large, open source is integrated with proprietary
software to create a solution that optimally meets the requirements of the
organization. These requirements might include heterogeneous system support
and management, gradual migration strategies, custom application support, recouping
capital investments, or any one of a number of other organization-specific
factors.

Integration Factors to Consider

Figure 3.1 graphically illustrates a general model and framework for Linux
integration that was developed by Novell Consulting. It is divided into two
halves, one representing desktops and the platform, applications, and services
that exist at the node or user end. The other half represents the
infrastructure, applications, and services that are considered to be backend or
data center solutions. Each of these halves is divided into concentric circles,
shaded different colors representing different levels of technical integration
complexity (less complex at the outer ring moving to most complex at the
center).

When implementing Linux and open source solutions, it often makes sense to
start with the outer rings and work to the center using a phased or incremental
approach. Depending on customer needs, it can also make sense to start with the
backend or data center areas first. These services can be staged, tested, and
implemented seamlessly without ever affecting the majority of end users.

As always, this is a "general" model, and is used as a framework
for analysis. Different environments require alternative approaches. An
objective of this book is to systematically work through each of the items in
the figure, starting with the data center side first and working from the
outside ring toward the center.

Novell Consulting has developed a phased approach for implementing open
source solutions. Each phase is general and might include elementary issues, but
experience shows that going through a comprehensive checklist minimizes problems
and helps accelerate full, successful deployment. Implementation phases include
assessment, design, implementation/migration, training, and support. The
following sections provide a brief overview of each.

Assessment

The assessment phase clarifies objectives and determines feasibility.
Don't blow off this stepit might sound simple, but the assessment
phase in some cases should be extensive. Invariably, information turned up
during the assessment phase affects objectives and feasibility. The following
questions will help refine the objectives and provide critical assessment of
feasibility:

What is the objective of this open source project? New capability, cost
savings, integration with partners, better security/reliability/scalability?
What are primary, secondary, and ancillary objectives and how should they be
weighted? Is there a gating measurement or criteria that determines whether this
project is successful?

How well does this project fit with existing corporate strategy? Is it an
extension of an existing objective, or is it breaking new ground in a new
direction? How ready and willing, in general, is the organization to accommodate
this technology?

What are the stakeholder and business unit requirements (business,
technical, and political for management, employees, customers, partners,
suppliers)?

Where is a logical starting point? Which servers, services, and
applications does it makes sense to implement/migrate in the short- and
long-term?

Which open source services and applications are available that meet your
needs and provide comparable (or better) features? What other alternatives might
need to be evaluated, such as terminal services or emulation? Are there any
solutions that are only available as proprietary software?

What are the general steps for how servers, services, and applications,
along with associated data and business processes, can best be
implemented/migrated?

What are the interdependencies among services and applications, desktop
clients, or other software that might affect this migration/implementation
plan?

Are there any regulatory policies and requirements that need to be taken
into account, such as licensing, government, security, or encryption?

What opportunities for hardware and service consolidation exist?

What level of requisite skills to support Linux/open source does your
staff have? Are there differences in requirements between implementation and
long-term support?

What will be the estimated cost of this project and does it fall within a
practical range given budget and timing restrictions?

What is the estimated internal rate of return, return on investment, or
total cost of ownership, and does it meet established requirements?

Design

After objectives have been defined and general feasibility has been
confirmed, it's time to begin the implementation/migration design phase. In
this phase, details are refined and a framework for execution is established.
Design questions and activities include the following:

Evaluate and select a Linux distribution. Will the distribution be
multipurpose, single purpose, enterprise, or single task focused? Will the
configuration be compiled with a standard list of packages, a custom list, or
with minimal function?

Select applications or services. Is the service or application you
require available as open source? If so, does it meet all requirements for
functionality, security, manageability, and so on? If not open source, does it
exist from a proprietary vendor? If not, can it be developed internally using
open source components?

Design a migration/implementation plan. What will be the specific project
steps for the process?

Consider staging with a test bed or staging configuration to help
determine actual implementation/migration steps and to expose unforeseen
issues.

If migrating, determine each phase of migration, including data, users,
applications, connections, services, and so on.

Determine the services architecture, which might include file, print,
identity, directory, messaging, collaboration, and web services, as well as
DNS/DHCP, virus protection, backup, virtual private networks (VPNs), clustering,
high availability, and so forth.

Roll out the migration design in a limited-production pilot. This might
be to a limited set of advanced users or for a particular edge service that has
redundancy or fail-back capabilities.

Install and configure any required migration tools.

Install or migrate server operating systems. This might include manual
activities or might be automated through remote control, package management, or
server management.

Install or migrate applications.

Migrate users, groups, accounts, domains, and any other management
controls that are required.

Migrate data, always ensuring that copies exist and that there is an
established method for fail-back if needed.

Validate pilot migration processes and deployment, and modify as
necessary.

Complete migration/implementation of all services and transition to
production.

Training

Training can be interspersed throughout the implementation/migration process.
In addition to staff training for transition, there will be a requirement for
staff training for management and support. In addition, users might need to be
trained for use of new applications and services:

Establish good communication across all stakeholders. This includes
education about the new services/applications, what they are, why they are
needed, and what the enhanced value to all stakeholders will be. It could also
include timelines, scheduled outages, and endorsements by management. Use this
opportunity to set expectations to ease transition and change.

Educate management. Management can be key in establishing a good
environment for accepting change. Ensure that all affected management have a
clear understanding of objectives, benefits, timelines, and possible problem
areas.

Train support staff for management and administration. This might include
specific training on administration software, management standards, and
protocols, such as Simple Network Management Protocol (SNMP) or Common
Information Model (CIM), health monitoring, logging and reports, and so
on.

Train help desk support staff, providing tools and education for
accommodating end users. This might include support request logging and
tracking, phone support management, new application or service training, and so
forth.

Train end users. Training might be provided through in-house training
sessions, web-based or computer-based training, offsite professional training
courses, distributed manuals, train-the-trainer programs, or any one of a number
of training solutions. With effective training, less demand will be placed on
help desk and system administration resources.

Support

After a solution has been migrated or implemented, the responsibility still
exists to provide ongoing support and management. This might be a simple
responsibility easily assumed by an existing administrator or might involve the
efforts of multiple managers in different locations and an extensive help desk
department:

Consolidate administration. Look for methods, tools, and applications
that simplify administration by consolidating and automating management tasks.
This includes tools that are interoperable, standards-based, and work with a
common interface.

Simplify support by creating self-help solutions using frequently asked
questions, an online support database, and web-based support solutions for chat,
problem submittal, or remote control.

Analyze support problems looking for simpler methods, workarounds, and
processes to avoid repetition and redundancy.

Consider outsourcing support and administration if third-party sources
can provide superior expertise at comparable or lower costs.

Periodically reevaluate solution for upgrades and enhancements both in
terms of features and functionality and also for security.

Open source migrations or integration doesn't need to be a painful
process. Many administrators and IT personnel have already picked up Linux
knowledge just out of curiosity, so in-house expertise is available. Starting
with edge services, open source solutions can be implemented without major
negative impact to other services or end users. Often, the actual migration will
go quite smoothly. One Novell customer, after working through each of the
preceding factors, was geared to expect a two-week implementation process. The
entire process went without a hitch and was accomplished in four hours.