Software deployment
Encyclopedia
Software deployment is all of the activities that make a software system
available for use.
The general deployment process consists of several interrelated activities with possible transitions between them. These activities can occur at the producer
site or at the consumer
site or both. Because every software system
is unique, the precise processes
or procedures
within each activity can hardly be defined. Therefore, "deployment" should be interpreted as a general process that has to be customized according to specific requirements or characteristics. A brief description of each activity will be presented later.
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.
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.
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.
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.
Update : The update process replaces an earlier version of all or part of a software system with a newer release.
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.
Version tracking : Version tracking systems help the user find and install updates to software systems installed on PCs and local networks.
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
.
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
.
Software system
A software system is a system based on software forming part of a computer system . The term "software system" is often used as a synonym of computer program or software; is related to the application of systems theory approaches in software engineering context and are used to study large and...
available for use.
The general deployment process consists of several interrelated activities with possible transitions between them. These activities can occur at the producer
Software developer
A software developer is a person concerned with facets of the software development process. Their work includes researching, designing, developing, and testing software. A software developer may take part in design, computer programming, or software project management...
site or at the consumer
User (computing)
A user is an agent, either a human agent or software agent, who uses a computer or network service. A user often has a user account and is identified by a username , screen name , nickname , or handle, which is derived from the identical Citizen's Band radio term.Users are...
site or both. Because every software system
Software system
A software system is a system based on software forming part of a computer system . The term "software system" is often used as a synonym of computer program or software; is related to the application of systems theory approaches in software engineering context and are used to study large and...
is unique, the precise processes
Process (computing)
In computing, a process is an instance of a computer program that is being executed. It contains the program code and its current activity. Depending on the operating system , a process may be made up of multiple threads of execution that execute instructions concurrently.A computer program is a...
or procedures
Algorithm
In mathematics and computer science, an algorithm is an effective method expressed as a finite list of well-defined instructions for calculating a function. Algorithms are used for calculation, data processing, and automated reasoning...
within each activity can hardly be defined. Therefore, "deployment" should be interpreted as a general process that has to be customized according to specific requirements or characteristics. A brief description of each activity will be presented later.
Deployment activities
Release : The release activity follows from the completed developmentSoftware development process
A software development process, also known as a software development life cycle , is a structure imposed on the development of a software product. Similar terms include software life cycle and software process. It is often considered a subset of systems development life cycle...
process. It includes all the operations to prepare a system for assembly
Compiler
A compiler is a computer program that transforms source code written in a programming language into another computer language...
and transfer to the customer site. Therefore, it must determine the resources
Resource (computer science)
A resource, or system resource, is any physical or virtual component of limited availability within a computer system. Every device connected to a computer system is a resource. Every internal system component is a resource...
required to operate at the customer site and collect information for carrying out subsequent activities of deployment process.
Install and activate : Activation is the activity of starting up the executable
Executable
In computing, an executable file causes a computer "to perform indicated tasks according to encoded instructions," as opposed to a data file that must be parsed by a program to be meaningful. These instructions are traditionally machine code instructions for a physical CPU...
component of software. For simple system, it involves establishing some form of command
Command (computing)
In computing, a command is a directive to a computer program acting as an interpreter of some kind, in order to perform a specific task. Most commonly a command is a directive to some kind of command line interface, such as a shell....
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 environmentDevelopment environmentIn hosted software development, a development environment refers to a server tier designated to a specific stage in a release process....
and disaster recovery environment.
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
Application retirement
Application retirement is the practice of shutting down redundant or obsolete business applications while retaining access to the historical data. Legacy applications are often maintained solely to provide infrequent or sporadic access to the data within the application database for regulatory or...
or application decommissioning.
Adapt : The adaptation
Adaptation (Computer Science)
The term “adaptation” in computer science refers to a process, in which an interactive system adapts its behaviour to individual users based on information acquired about its user and its environment.-The need for 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.
Update : The update process replaces an earlier version of all or part of a software system with a newer release.
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
Norton Internet Security
Norton Internet Security, developed by Symantec Corporation, provides malware prevention and removal during subscription period and uses signatures and heuristics to identify viruses. Other features include a software firewall, e-mail spam filtering, and phishing protection.Symantec distributes...
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.
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: VersionTracker ProVersionTrackerVersionTracker was a website that tracked software releases. It began as a Mac OS software tracker, eventually expanding into Mac OS X, iPhone, Microsoft Windows and Palm OS software....
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.
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
Computer file
A computer file is a block of arbitrary information, or resource for storing information, which is available to a computer program and is usually based on some kind of durable storage. A file is durable in the sense that it remains available for programs to use after the current program has finished...
and dependencies
Coupling (computer science)
In computer science, coupling or dependency is the degree to which each program module relies on each one of the other modules.Coupling is usually contrasted with cohesion. Low coupling often correlates with high cohesion, and vice versa...
.
Retire : Ultimately, a software system is marked as obsolete and support
Technical support
Technical support or tech support refers to a range of services by which enterprises provide assistance to users of technology products such as mobile phones, televisions, computers, software products or other electronic or mechanical goods...
by the producers is withdrawn. It is the end of the life cycle of a software product
Product life cycle management
Product life-cycle management is the succession of strategies used by business management as a product goes through its life-cycle. The conditions in which a product is sold changes over time and must be managed as it moves through its succession of stages.Product life-cycle Like human beings,...
.
Deployment roles
The complexity and variability of software products has necessitated the creation of specialized roles for coordinating and engineering the deployment process. For desktop systems, an end user is frequently also the "software deployer" when they install the software package on their machine. For enterprise software, there are many more roles involved. Additionally, the roles involved typically change as the application progresses from test (pre-production) to production environments. The typical roles involved in software deployments for enterprise applications are:- Pre-production environments
- Application developers: see Software development processSoftware development processA software development process, also known as a software development life cycle , is a structure imposed on the development of a software product. Similar terms include software life cycle and software process. It is often considered a subset of systems development life cycle...
- Build and release engineers: see Release engineeringRelease engineeringRelease engineering, frequently abbreviated as "releng", is a sub-discipline in software engineering concerned with the compilation, assembly, and delivery of source code into finished products or other software components. Associated with the software release life cycle, it is often said that...
- Release managers: see Release managementRelease managementThe release management process is a relatively new but rapidly growing discipline within software engineering of managing software releases....
- Deployment coordinators: see DevOpsDevOps"DevOps" is an emerging set of principles, methods and practices for communication, collaboration and integration between software development and IT operations professionals...
- Application developers: see Software development process
- Production environments
- System administratorSystem administratorA system administrator, IT systems administrator, systems administrator, or sysadmin is a person employed to maintain and operate a computer system and/or network...
- Database administratorDatabase administratorA database administrator is a person responsible for the design, implementation, maintenance and repair of an organization's database. They are also known by the titles Database Coordinator or Database Programmer, and is closely related to the Database Analyst, Database Modeller, Programmer...
- Release coordinators: see DevOpsDevOps"DevOps" is an emerging set of principles, methods and practices for communication, collaboration and integration between software development and IT operations professionals...
- Operations project managers: see Information Technology Infrastructure LibraryInformation Technology Infrastructure LibraryThe Information Technology Infrastructure Library , is a set of good practices for IT service management that focuses on aligning IT services with the needs of business. In its current form , ITIL is published in a series of five core publications, each of which covers an ITSM lifecycle stage...
- System administrator
See also
- Application lifecycle managementApplication lifecycle managementApplication Lifecycle Management is a continuous process of managing the life of an application through governance, development and maintenance...
- Product lifecycle managementProduct lifecycle managementIn industry, product lifecycle management is the process of managing the entire lifecycle of a product from its conception, through design and manufacture, to service and disposal...
- Software Lifecycle Management
- Systems managementSystems managementSystems management refers to enterprise-wide administration of distributed systems including computer systems. Systems management is strongly influenced by network management initiatives in telecommunications....
- System deploymentSystem deploymentThe deployment of a mechanical device, electrical system, computer program, etc., is its assembly or transformation from a packaged form to an operational working state....
- OSGiOSGiThe Open Services Gateway initiative framework is a module system and service platform for the Java programming language that implements a complete and dynamic component model, something that does not exist in standalone Java/VM environments...
, JNLP, RPMRPM Package ManagerRPM Package Manager is a package management system. The name RPM variously refers to the .rpm file format, files in this format, software packaged in such files, and the package manager itself...
, AptAdvanced Packaging ToolThe Advanced Packaging Tool, or APT, is a free user interface that works with core libraries to handle the installation and removal of software on the Debian GNU/Linux distribution and its variants...
, CapistranoCapistrano- External links :* * * * *... - Software release
- ReadmeREADMEA readme file contains information about other files in a directory or archive and is commonly distributed with computer software. Such a file is usually a text file called README.TXT, README.1ST, READ.ME, or simply README, although some Microsoft Windows software may occasionally include a...
Examples
- Redhat / Fedora Spacewalk (software)Spacewalk (software)Spacewalk is open source systems management software developed by Red Hat. It is the upstream version of the RHN Satellite Server, which was open sourced in 2008. Spacewalk includes the web interface and back-end, as well as RHN Proxy Server and associated client software of Satellite and makes...
- FAIFully Automatic InstallationFully Automatic Installation is a non-interactive systemto install the Debian computer operating system and otherdistributions unattended on a single computer or a whole cluster....
OpenSource Software Linux - M23M23 software distribution systemm23 is a software distribution and management system for the Debian, Ubuntu, Kubuntu Linux, Xubuntu, Linux Mint, Fedora and openSUSE distributions....
OpenSource Software Linux - Open PC Server IntegrationOPSIOPSI may stand for:*Overwhelming post-splenectomy infection, rapidly fatal septicaemia in a patient who has undergone splenectomy .*Office of Public Sector Information, a UK government body incorporating Her Majesty's Stationery Office....
(opsi) OpenSource Software Windows - RPMRPM Package ManagerRPM Package Manager is a package management system. The name RPM variously refers to the .rpm file format, files in this format, software packaged in such files, and the package manager itself...
with YUM OpenSource Software Linux - MS SCCM Microsoft Windows
- HP OpenView (Hewlett-PackardHewlett-PackardHewlett-Packard Company or HP is an American multinational information technology corporation headquartered in Palo Alto, California, USA that provides products, technologies, softwares, solutions and services to consumers, small- and medium-sized businesses and large enterprises, including...
) - IBM Tivoli Provisioning ManagerTivoli Provisioning ManagerTivoli Provisioning Manager is a product in IBM´s Tivoli Software brand. Its purpose is to automate the provisioning of virtual servers and software. TPM is a "manager of managers", in that it does not manage any hardware itself, but issues commands to the hypervisors that do actually manage the...
and TivoliTivoli SoftwareTivoli Software is the service management brand of the IBM Software Group. IBM purchased Austin-based Tivoli Systems, Inc. on March 4, 1996 and allowed existing executive management to operate Tivoli as a wholly owned subsidiary in the IBM Software Group...
Intelligent Orchestrator - Novell ZENworksNovell ZENworksNovell ZENworks, a suite of software products developed and maintained by Novell, Inc. for computer systems management, aims to manage the entire life cycle of servers, of desktop PCs , of laptops, and of handheld devices such as personal digital assistants . ZENworks recently included full disk...
(NovellNovellNovell, Inc. is a multinational software and services company. It is a wholly owned subsidiary of The Attachmate Group. It specializes in network operating systems, such as Novell NetWare; systems management solutions, such as Novell ZENworks; and collaboration solutions, such as Novell Groupwise...
) Zero Effort Networks - BlackBerryBlackBerryBlackBerry is a line of mobile email and smartphone devices developed and designed by Canadian company Research In Motion since 1999.BlackBerry devices are smartphones, designed to function as personal digital assistants, portable media players, internet browsers, gaming devices, and much more...
MDS Suite Research In MotionResearch In MotionResearch In Motion Limited or RIM is a Canadian multinational telecommunications company headquartered in Waterloo, Ontario, Canada that designs, manufactures and markets wireless solutions for the worldwide mobile communications market...
(RIM)
External links
- Standardization efforts
- Articles
- The Future of Software Delivery - free developerWorks whitepaper
- Carzaniga A., Fuggetta A., Hall R. S., Van Der Hoek A., Heimbigner D., Wolf A. L. — A Characterization Framework for Software Deployment Technologies — Technical Report CU-CS-857-98, Dept. of Computer Science, University of Colorado, April 1998. http://serl.cs.colorado.edu/~carzanig/papers/CU-CS-857-98.pdf
- Resources