Friday 29 June 2012

Deployment-Process





1.       What are various different deployment activities?
a.       Release
The release activity follows from the completed development process. It includes all the operations to prepare a system for assembly and transfer to the customer site. Therefore, it must determine the resources required to operate at the customer site and collect information for carrying out subsequent activities of deployment process.
b.      Install and activate
Activation is the activity of starting up the executable component of software. For simple system, it involves establishing some form of command for execution. For complex systems, it should make all the supporting systems ready to use.
In larger software deployments, the working copy of the software might be installed on a production server in a production environment. Other versions of the deployed software may be installed in a test environment, development environment and disaster recovery environment.
c.       Deactivate
Deactivation is the inverse of activation, and refers to shutting down any executing components of a system. Deactivation is often required to perform other deployment activities, e.g., a software system may need to be deactivated before an update can be performed.
 The practice of removing infrequently used or obsolete systems from service is often referred to as application retirement or application decommissioning.
d.      Adapt
The adaptation activity is also a process to modify a software system that has been previously installed. It differs from updating in that adaptations are initiated by local events such as changing the environment of customer site, while updating is mostly started from remote software producer.
e.      Update
The update process replaces an earlier version of all or part of a software system with a newer release.
f.        Built-In
Mechanisms for installing updates are built into some software systems. Automation of these update processes ranges from fully automatic to user initiated and controlled. Norton Internet Security is an example of a system with a semi-automatic method for retrieving and installing updates to both the antivirus definitions and other components of the system. Other software products provide query mechanisms for determining when updates are available.
g.       Version tracking
Version tracking systems help the user find and install updates to software systems installed on PCs and local networks.
Web based version tracking systems notify the user when updates are available for software systems installed on a local system. For example: Version Tracker Pro checks software versions on a user's computer and then queries its database to see if any updates are available.
Local version tracking system notifies the user when updates are available for software systems installed on a local system. For example: Software Catalog stores version and other information for each software package installed on a local system. One click of a button launches a browser window to the upgrade web page for the application, including auto-filling of the user name and password for sites that require a login.
Browser based version tracking systems notify the user when updates are available for software packages installed on a local system. For example: wfx-Versions is a Firefox extension which helps the user find the current version number of any program listed on the web.
h.      Uninstall
Uninstallation is the inverse of installation. It is the removal of a system that is no longer required. It also involves some reconfiguration of other software systems in order to remove the uninstalled system’s files and dependencies.
i.        Retire
Ultimately, a software system is marked as obsolete and support by the producers is withdrawn. It is the end of the life cycle of a software product.

2.       What are the various processes, you follow to deploy your application?
To deploy anything we need to follow following steps:
a.       Plan the deployment
b.      Design and Test the deployment strategy.
c.       Deploy the application
d.      Maintain the application
3.       What do you do when you are planning for deployment?
a.       Know the User’s computer’s system requirements.
b.      Evaluate the systems for compatibility.
c.       Identify your deployment method.

4.       What are the various factors you should consider while creating a deployment plan/coming up with a deployment strategy?
The deployment plan outlines the scope, approach and execution planned for the deployment of the project deliverables. The plan includes, where relevant, information about system support, issue tracking, escalation processes, roles and responsibilities before, during, and after deployment. The deployment plan is intended to provide clients, stakeholders and support personnel with a smooth transition to the new product or software being deployed. The deployment plan describes each step of the deployment process at each deployment location, whether there is one site or multiple sites, or one deployment or a phased deployment planned. The Deployment Plan defines all of the work steps for complete deployment, and who does them.


5.       What information needs to be gathered to create a deployment plan?
·         Deployment goals and critical success factors
·         Roles and responsibilities of the parties involved in the deployment of the project deliverables
·         Task and resource dependencies
·         How team members will communicate
·         How to track issues and resolve them
·         Contingency information
·         Training plan

6.       What are the contents of a deployment plan
Outcomes
Description
Release Plan
Describe the activities for a phased implementation or rollout. Track the dates for the release of various functions, and/or track the formal review points in the testing cycle of your product. Your release plan may also include the following activities, as appropriate:
·         Preparation of the environment
·         Conversion information
·         Product installation information
·         Distribution details
·         Data Migration
Production Readiness
Create a Product Implementation Task List. Describe what preparation is required for this new tool or application to operate. Specify any features that need modification to adapt to the new product. Identify the steps necessary to assist the user in preparing for this new product.
Communication Plan
Develop a plan to communicate with all interested parties of this project (stakeholders, sponsors, users, developers) This planning ensures that everyone who needs to be informed about project activities and results gets the needed information in a timely manner.
Issue/Change Request Tracking Method
Use a tool to record:
Project issues and their associated actions and owners
Project decisions and reasons
Contingency Plan
Plan for what to do when something goes wrong. Develop a business resumption plan and comprehensive statement of action.
Training Plan
Outline the training timeline and describe the approach, activities and tasks necessary at each point in the deployment.
7.       How do you come up with a deployment method?
a.       Evaluate the infrastructure available: It should not be like end user uses a LINUX system and you are developing a Silverlight app.
b.      Understand the security requirements thoroughly: It should not be like the user is not allowed to access internet and your updates are available only through internet.
c.       Understand user’s perspective and user’s location: User should not be a mobile user and your application a purely intranet app.

8.       When is the deployment plan written?
   The Deployment planning begins in the design phase and continues throughout the project lifecycle.

9.       Who owns the deployment plan?
The deployment plan is typically drafted by the Project Manager, but its development is a team effort.

10.   What should a release note contain?
  • Release Number
  • Release Date
  • Features Released
  • List of known issues
  • Issues Fixed in this release
  • Link to installation document
  • Link to database
  • Link to test cases
  • Link to user manual


11.   How do you deploy reusable user controls?
There is an interesting side application of Web deployment projects that solves a problem that has plagued ASP.NET developers for years-how to
create reusable user controls to share across applications. User controls are fundamentally just composite custom controls whose child controls
are laid out in an .ascx file. The ability to use the designer for laying out controls and adding handlers is a huge benefit for most developers since
 it feels almost identical to building a page, except that the resulting .ascx file can be included as a control in any page. The disadvantage has
always been that you need the physical .ascx file in the application's directory to actually use it. Techniques for making .ascx controls shareable
 across applications are available, but they usually involve chores like creating shared virtual directories between applications or harvesting
 temporary assemblies generated by ASP.NET at request time, and they've never been satisfactory.
The introduction of the aspnet_compiler.exe utility in version 2.0 brought us much closer to a decent solution. With the compiler, you can create
 a Web site consisting of only user controls and publish the site in non-updateable mode using the compiler to generate reusable assemblies. 
Once you have the resulting assembly (or assemblies), you can then deploy to any Web application and reference the user control just as you
 would a custom control (not by using the src attribute as you would for .ascx files). The only disadvantage to this technique is that you either
 have to accept the randomly named assembly produced by the compilation process or select the fixednames option in the compiler to 
generate a fixed named assembly for each Master Page in the site (not a single assembly for the entire collection).
Web Deployment Projects provide the final step to create truly reusable user control assemblies. You can take the same 
Web site consisting exclusively of user controls and add a Web Deployment Project to create a single output assembly with 
the name of your choice. It's even straightforward to create a signed assembly to deploy to the GAC for sharing controls across multiple 
applications without redeploying the assembly in each /bin directory.

No comments:

Post a Comment