High-availability application architecture

Last updated

In information technology, high-availability application architecture is a process followed when implementing a new application into an existing business-wide computer system or ERP while minimizing downtime. ff

Contents

The architecture contains three stages: development, quality assurance, and production.

Definition

In the above definition, high availability is "a design and implementation that ensures a certain degree of operational continuity", [1] and application architecture refers to the actual concept and design of implementing a new configuration into the particular system.

Summary

In the IT world minimizing downtime is very important, and in order to implement a new configuration into an existing computer system one must follow strict architectural guidelines before releasing the new configuration into production. Following the application architecture guidelines will greatly reduce the potential downtime when implementing a new configuration into an existing system.

Stages of architecture

There are three stages that an application must go through before it "goes live." Each of these stages must pass through the transport directory before going on to the next stage.

Development

The development stage is where program changes, and configuration settings are modified to meet the needs of the new or existing system.

Quality assurance

During the quality assurance stage the configuration settings, and program changes that impact the application are tested. If any faults are detected, they are corrected during this stage.

Production

The final stage that the application enters is the production stage, which entails the actual system that a company runs its business on.

Transport directory

The transport directory serves as a compiler for all of the changes to the application that occur through the stages. This component is the mechanism that allows the changes to be tracked from stage to stage. When the application is released for production, it will be delivered out of the transport directory.

Related Research Articles

<span class="mw-page-title-main">Legacy system</span> Old computing technology or system that remains in use

In computing, a legacy system is an old method, technology, computer system, or application program, "of, relating to, or being a previous or outdated computer system," yet still in use. Often referencing a system as "legacy" means that it paved the way for the standards that would follow it. This can also imply that the system is out of date or in need of replacement.

In software quality assurance, performance testing is in general a testing practice performed to determine how a system performs in terms of responsiveness and stability under a particular workload. It can also serve to investigate, measure, validate or verify other quality attributes of the system, such as scalability, reliability and resource usage.

<span class="mw-page-title-main">Configuration management</span> Process for maintaining consistency of a product attributes with its design

Configuration management (CM) is a systems engineering process for establishing and maintaining consistency of a product's performance, functional, and physical attributes with its requirements, design, and operational information throughout its life. The CM process is widely used by military engineering organizations to manage changes throughout the system lifecycle of complex systems, such as weapon systems, military vehicles, and information systems. Outside the military, the CM process is also used with IT service management as defined by ITIL, and with other domain models in the civil engineering and other industrial engineering segments such as roads, bridges, canals, dams, and buildings.

In telecommunication, provisioning involves the process of preparing and equipping a network to allow it to provide new services to its users. In National Security/Emergency Preparedness telecommunications services, "provisioning" equates to "initiation" and includes altering the state of an existing priority service or capability.

In software engineering, software configuration management is the task of tracking and controlling changes in the software, part of the larger cross-disciplinary field of configuration management. SCM practices include revision control and the establishment of baselines. If something goes wrong, SCM can determine the "what, when, why and who" of the change. If a configuration is working well, SCM can determine how to replicate it across many hosts.

Good agricultural practice (GAP) is a certification system for agriculture, specifying procedures that must be implemented to create food for consumers or further processing that is safe and wholesome, using sustainable methods. While there are numerous competing definitions of what methods constitute good agricultural practice there are several broadly accepted schemes that producers can adhere too.

In computer operating systems, memory paging is a memory management scheme by which a computer stores and retrieves data from secondary storage for use in main memory. In this scheme, the operating system retrieves data from secondary storage in same-size blocks called pages. Paging is an important part of virtual memory implementations in modern operating systems, using secondary storage to let programs exceed the size of available physical memory.

Jazelle DBX is an extension that allows some ARM processors to execute Java bytecode in hardware as a third execution state alongside the existing ARM and Thumb modes. Jazelle functionality was specified in the ARMv5TEJ architecture and the first processor with Jazelle technology was the ARM926EJ-S. Jazelle is denoted by a "J" appended to the CPU name, except for post-v5 cores where it is required for architecture conformance.

<span class="mw-page-title-main">Portable application</span> Type of computer program

A portable application, sometimes also called standalone, is a program designed to read and write its configuration settings into an accessible folder in the computer, usually in the folder where the portable application can be found. This makes it easier to transfer the program with the user's preferences and data between different computers. A program that doesn't have any configuration options can also be a portable application.

High availability (HA) is a characteristic of a system which aims to ensure an agreed level of operational performance, usually uptime, for a higher than normal period.

Validation is the process of establishing documentary evidence demonstrating that a procedure, process, or activity carried out in testing and then production maintains the desired level of compliance at all stages. In the pharmaceutical industry, it is very important that in addition to final testing and compliance of products, it is also assured that the process will consistently produce the expected results. The desired results are established in terms of specifications for outcome of the process. Qualification of systems and equipment is therefore a part of the process of validation. Validation is a requirement of food, drug and pharmaceutical regulating agencies such as the US FDA and their good manufacturing practices guidelines. Since a wide variety of procedures, processes, and activities need to be validated, the field of validation is divided into a number of subsections including the following:

Coding best practices are a set of informal rules that the software development community employs to help improve software quality.

Engineer to order is a production approach characterized by:

  1. Engineering activities need to be added to product lead time.
  2. Upon receipt of a customer order, the order engineering requirements and specifications are not known in detail. There is a substantial amount of design and engineering analysis required.
<span class="mw-page-title-main">Computer appliance</span> Dedicated computer system

A computer appliance is a home appliance with software or firmware that is specifically designed to provide a specific computing resource. Such devices became known as appliances because of the similarity in role or management to a home appliance, which are generally closed and sealed, and are not serviceable by the user or owner. The hardware and software are delivered as an integrated product and may even be pre-configured before delivery to a customer, to provide a turn-key solution for a particular application. Unlike general purpose computers, appliances are generally not designed to allow the customers to change the software and the underlying operating system, or to flexibly reconfigure the hardware.

In computing, Microsoft's Windows Vista and Windows Server 2008 introduced in 2007/2008 a new networking stack named Next Generation TCP/IP stack, to improve on the previous stack in several ways. The stack includes native implementation of IPv6, as well as a complete overhaul of IPv4. The new TCP/IP stack uses a new method to store configuration settings that enables more dynamic control and does not require a computer restart after a change in settings. The new stack, implemented as a dual-stack model, depends on a strong host-model and features an infrastructure to enable more modular components that one can dynamically insert and remove.

A SAP transport is a package which is used to transfer data from one SAP installation to another. This data can range from a simple printer driver to a whole SAP client. It can be considered as an "update", with the only difference being that SAP transports are made by the SAP users themselves. Transports can also be used to transfer data from external applications.

LynxSecure is a least privilege real-time separation kernel hypervisor from Lynx Software Technologies designed for safety and security critical applications found in military, avionic, industrial, and automotive markets.

Continuous delivery (CD) is a software engineering approach in which teams produce software in short cycles, ensuring that the software can be reliably released at any time and, when releasing the software, without doing so manually. It aims at building, testing, and releasing software with greater speed and frequency. The approach helps reduce the cost, time, and risk of delivering changes by allowing for more incremental updates to applications in production. A straightforward and repeatable deployment process is important for continuous delivery.

SAP implementation refers to the name of the German company SAP SE, and is the whole of processes that defines a method to implement the SAP ERP enterprise resource planning software in an organization. The SAP implementation method described in this entry is a generic method and not a specific implementation method as such. It is based on best practices and case studies from various literature sources and presents a collection of processes and products that make up a complete implementation method to allow any organization to plan and execute the implementation of SAP software.

In software deployment, an environment or tier is a computer system or set of systems in which a computer program or software component is deployed and executed. In simple cases, such as developing and immediately executing a program on the same machine, there may be a single environment, but in industrial use, the development environment and production environment are separated, often with several stages in between. This structured release management process allows phased deployment (rollout), testing, and rollback in case of problems.

References

  1. "7 Stages of Scaling Web Applications". 2008-08-06.