Software deployment
Encyclopedia
Software deployment is all of the activities that make a 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...

 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 development
Software 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 environment
Development environment
In 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 Pro
    VersionTracker
    VersionTracker 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 process
      Software 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...

    • Build and release engineers: see Release engineering
      Release engineering
      Release 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 management
      Release management
      The release management process is a relatively new but rapidly growing discipline within software engineering of managing software releases....

    • Deployment coordinators: see DevOps
      DevOps
      "DevOps" is an emerging set of principles, methods and practices for communication, collaboration and integration between software development and IT operations professionals...


  • Production environments
    • System administrator
      System administrator
      A system administrator, IT systems administrator, systems administrator, or sysadmin is a person employed to maintain and operate a computer system and/or network...

    • Database administrator
      Database administrator
      A 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 DevOps
      DevOps
      "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 Library
      Information Technology Infrastructure Library
      The 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...


See also

  • Application lifecycle management
    Application lifecycle management
    Application Lifecycle Management is a continuous process of managing the life of an application through governance, development and maintenance...

  • Product lifecycle management
    Product lifecycle management
    In 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 management
    Systems management
    Systems management refers to enterprise-wide administration of distributed systems including computer systems. Systems management is strongly influenced by network management initiatives in telecommunications....

  • System deployment
    System deployment
    The deployment of a mechanical device, electrical system, computer program, etc., is its assembly or transformation from a packaged form to an operational working state....

  • OSGi
    OSGi
    The 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, RPM
    RPM Package Manager
    RPM 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...

    , Apt
    Advanced Packaging Tool
    The 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...

    , Capistrano
    Capistrano
    - External links :* * * * *...

  • Software release
  • Readme
    README
    A 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...

  • FAI
    Fully Automatic Installation
    Fully 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
  • M23
    M23 software distribution system
    m23 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 Integration
    OPSI
    OPSI 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
  • RPM
    RPM Package Manager
    RPM 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-Packard
    Hewlett-Packard
    Hewlett-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 Manager
    Tivoli Provisioning Manager
    Tivoli 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 Tivoli
    Tivoli Software
    Tivoli 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 ZENworks
    Novell ZENworks
    Novell 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...

     (Novell
    Novell
    Novell, 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
  • BlackBerry
    BlackBerry
    BlackBerry 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 Motion
    Research In Motion
    Research 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

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK