Deployment planning is a critical step in the successful implementation of a Java Enterprise System solution. Each enterprise has its own set of goals, requirements, and priorities to consider. Successful planning starts with analyzing the goals of an enterprise and determining the business requirements to meet those goals. The business requirements must then be converted into technical requirements that can be used as a basis for designing and implementing a system that can meet the goals of the enterprise.
Successful deployment planning is the result of careful preparation, analysis, and design. Errors and missteps that occur anywhere during the planning process can result in a system that can misfire in many ways. Significant problems can arise from a poorly planned system. For example, the system could under-perform, be difficult to maintain, be too expensive to operate, could waste resources, or could be unable to scale to meet increasing needs.
The solution life cycle shown in the following figure depicts the steps in the planning, design, and implementation of an enterprise software solution based on Java Enterprise System. The life cycle is a useful tool for keeping a deployment project on track.
The life cycle consists of ordered phases. Each phase consists of related tasks that result in outputs that are carried forward as inputs to subsequent phases. The tasks within each phase are iterative, requiring thorough analysis and design before generating the outputs for that phase. The early phases can be iterative also. For example, during the deployment design phase, you might discover that the analysis in earlier phases is insufficient and requires more work.
The following sections in this chapter briefly describe each life cycle phase.
During business analysis, you define the business goals of a deployment project and state the business requirements that must be met to achieve those goals. When stating the business requirements, consider any business constraints that might affect the ability to achieve the business goal. Throughout the life cycle, you measure the success of your deployment planning, and ultimately your deployment solution, according to the analysis performed in the business analysis phase.
During the business analysis phase you create business requirements documents that you later use as inputs to the technical requirements phase.
For more information on the business analysis phase, refer to Chapter 2, Business Analysis
The technical requirements phase starts with the business requirements and business constraints defined during the business analysis phase and translates them into technical specifications that can be used to subsequently design the deployment architecture. The technical requirements specify quality of service (QoS) features, such as performance, availability, security, and others.
During the technical requirements phase, you create documents that contain the following information:
Analysis of user tasks and usage patterns
Use cases that model user interaction with the planned system
Quality of service requirements derived from the business requirements, possibly taking into consideration the analysis of user tasks and usage patterns
The resulting usage analysis, use cases, and QoS requirements documents are inputs to the logical design phase of the solution life cycle. The usage analysis also plays a significant role in the deployment design phase.
During the technical requirements phase, you might also specify service level requirements that are the basis for subsequently creating service level agreements (SLA). Service level agreements specify the terms under which customer support must be provided to maintain the system and are generally signed as part of project approval in the deployment design phase.
For more information on technical requirements, refer to Chapter 3, Technical Requirements
During logical design, using use cases from the technical requirements phase as inputs, you identify the Java Enterprise System components necessary to implement a solution. You identify components that provide support to those Java ES components, and also identify any additional custom-developed components necessary to meet the business requirements. You then map the components within a logical architecture that shows the interrelationships among the components. The logical architecture does not specify any hardware required to implement the solution.
The output of the logical design phase is the logical architecture. The logical architecture by itself is not sufficient to begin deployment design. You also need the QoS requirements from the technical requirements phase. The logical architecture and the QoS requirements from the technical requirements phase form a deployment scenario. This deployment scenario is the input to the deployment design phase.
For more information on logical design, refer to Chapter 4, Logical Design
During deployment design, you map the components specified in the logical architecture to a physical environment, producing a high-level deployment architecture. You also create an implementation specification, which provides low-level details specifying how to build the deployment architecture. Additionally, you create a series of plans and specifications that detail different aspects of implementing the software solution.
Project approval occurs during the deployment design phase. During project approval, the cost of the deployment is assessed. If approved, contracts for implementation of the deployment are signed, and resources to build the project are acquired. Often, project approval occurs after the implementation specification has been detailed. However, approval can also occur upon completion of the deployment architecture.
The outputs of the deployment design phase include the following:
Deployment architecture. A high-level design document that represents the mapping of components to network hardware and software.
Implementation specifications. Detailed specifications used as blueprints for building the deployment.
Implementation plans. A group of plans and specifications that cover various aspects of implementing an enterprise software solution. Implementation plans include a migration plan, installation plan, user management plan, test plan, and others.
For more information about deployment design, refer to Chapter 5, Deployment Design
During the implementation phase, you work from specifications and plans created during deployment design to build the deployment architecture and implement the solution. Depending on the nature of your deployment project, this phase includes some or all of the following tasks:
Installing and configuring the hardware infrastructure
Installing and configuring the software
Modeling users and resources within an LDAP directory design
Migrating data from existing directories and databases according to a user management plan
Creating and deploying pilot and prototype deployments in a test environment
Designing and running functional tests to measure compliance with system requirements
Designing and running stress tests to measure performance under peak loads
Developing and integrating any custom enterprise applications
Creating a production deployment, which might be phased into production in stages
Once a deployment is in production, you proceed to the operations phase of the solution life cycle.
For more information on the implementation phase, refer to Chapter 6, Implementation of a Deployment Design
The operations phase covers tasks necessary to keep the implementation of the deployment running smoothly. This phase includes the following:
Monitoring the deployment to ensure that the system is running according to plans
Performance tuning to ensure that the deployed software runs at optimal levels
Providing scheduled maintenance for smooth operations and unscheduled maintenance as the need arises
Upgrading software and hardware as the need arises
Details about the operations phase are out of scope for this guide.