Sun Java logo     Previous      Contents     

Sun logo
Sun Java Enterprise System Deployment Planning White Paper 

Chapter 6
Implementing a Deployment Design

This chapter provides an overview of the steps necessary to implement a deployment design.

After the deployment architecture has been approved and a detailed design specification has been completed, you enter the implementation phase of deployment planning. During the implementation phase, you build out the deployment architecture. Depending on the nature of your deployment project, implementing a deployment design includes some or all of the following steps:

This chapter discusses the following sections:


Developing Pilots and Prototypes

Java Enterprise System deployments typically fall into two categories, those based primarily on services provided with Java Enterprise System and those that require a significant number of custom services that are integrated with Java Enterprise System services. You can think of the former type of deployment as an 80:20 deployment (80% of the services are provided by Java Enterprise System) and similarly, the former as a 20:80 deployment.

For 80:20 deployments, during the implementation phase, you typically develop a pilot deployment for testing purposes. Because 80:20 deployments use mature Java Enterprise System services that provide “out-of-the-box” functionality, pilot deployments move relatively quickly from development, testing, and modification steps, to production deployments.

20:80 deployments, on the other hand, introduce new, custom services that do not have the history of interoperability that comes with 80:20 deployments. For this reason, you create prototype deployments, which are proof-of-concept deployments that typically require a more rigorous development, testing, modification cycle before going to production.


Note

Actual enterprise deployments can vary greatly in the amount of custom development of services they require. Whether you use pilot or prototype deployments for testing purposes depends on the complexity and nature of your deployment.



Testing Pilot and Prototype Deployments

The purpose of testing pilot and prototype deployments is to determine, as best as possible under test conditions, whether the deployment satisfies the system requirements and also meets the business goals.

Ideally, functional tests should model scenarios based on all identified use cases—a set of metrics should be developed to measure compliance. Functional testing can also involve a limited deployment to a select group of beta users to determine if business requirements are being satisfied.

Stress tests measure performance under peak loads. These tests typically use a series of simulated environments and load generators to measure throughput of data and performance. System requirements for the deployment are typically the basis for designing and passing stress tests.


Note

Functional and stress tests are particularly important for large deployments where system requirements might not be well-defined, there is no previous implementation on which to base estimates, and the deployment requires a significant amount of new development.


Testing can indicate problems with the deployment design specification, and might involve several design, build, test iterations before you can roll out the deployment to a production environment. However, testing should never be the place where you discover problems with the deployment architecture. If you discover design problems at the testing stage for deployment architecture, then your analysis, planning, and design can be considered a failure.


Rolling Out a Production Deployment

Once the pilot or proof of concept deployment passes the test criteria, you are ready to roll out the deployment to a production environment. Typically, you roll out to a production environment in stages. A staged rollout is especially important for large deployments that affect a significant number of users.

The staged deployment can start with a small set of users and eventually expand the user base until the deployment is available to all users. A staged deployment can also start with a limited set of services, eventually phasing in the remaining services. Staging services in phases can help isolate, identify, and resolve any problems a service might encounter in a production environment.

Because testing never completely simulates a production environment, you should continue to monitor the deployed systems to identify any areas that require tuning, maintenance, or service.



Previous      Contents     


Copyright 2004 Sun Microsystems, Inc. All rights reserved.