Browse Definitions by Topic

DevOps

DevOps (an acronym for development and operations) is a set of practices aimed at the active interaction of ‘development professionals’ with ‘information technology specialists,’ and the mutual integration of their work processes.

It is based on the idea of close interdependence of software development and operation, and is aimed at helping organizations to create and update software applications and services faster.

The methodology focuses on standardizing a development environment in order to facilitate rapid release.

The task of DevOps is to make the delivery of software consistent with the operation, often these tasks are solved with automatic support.

Toolbox

Since DevOps consists of teamwork (between employees involved in development, operations and testing), there is no single tool called "DevOps": it's more like a set (or "a tool chain of DevOps"), featuring several instruments and programs. Typically, DevOps tools fit into one or more of these categories, which reflects the key aspects of software development and delivery:

Code - code development and analysis, version control tools, code merging;

Build - tools for continuous integration, build status;

Test - continuous testing tools that provide feedback on business risks;

Package - repository of artifacts, preliminary installation of the app;

Release - change management, official release approval, release automation;

Configuration - infrastructure configuration and management;

Monitoring - app performance monitoring, experience with the end user.

The specific goals of DevOps cover the whole process of software delivery. Those include:

  • Reduced time to market;
  • Reducing the frequency of refusals of new releases;
  • Reducing the execution time of patches;
  • Reducing the amount of time to restore (in case of a failure with the new version or a disconnection error of the current system).

DevOps methods make simple processes more programmable and dynamic. Using DevOps, you can maximize the predictability, efficiency, security and maintainability of operational processes.

DevOps integration is designed for product delivery, continuous testing, quality control, function development and service upgrades to improve the software reliability and security and provide a faster development and deployment cycle.

Additional Terms
Alpha software

is computer software in the early testing phase. It has basic functions enough to be used, but it is often buggy and lacks features that will be integrated into the final version. Alpha software is often used for internal testing.

Internal (Alpha) testing - The stage of testing the program as a whole by testers, usually not developers of the software product, but, as a rule, within the organization or the community developing the product. Also, it can be the stage of adding new functionality, whereby programs can only be used to familiarize themselves with future opportunities.

Most often, alpha testing is carried out at an early stage of software development, but in some cases, it can be used for a finished product as an internal acceptance test. Sometimes alpha testing is performed under a debugger or using an integrated development environment that helps to quickly identify the errors found. The detected bugs can be reported to testers for additional investigation in an environment similar to the one in which the program will be used.

Typically, alpha testing ends with freezing properties and goes into beta testing.

 

Beta testing - The stage of active public testing and debugging of the program that passed the alpha testing (if any). Programs of this level can be used by other developers of software for compatibility testing. Nevertheless, the programs of this stage can still contain a large number of errors.

Sometimes beta testing is performed in order to get feedback about the product from its future users.

Often for free and open source software, the alpha testing phase is characterized by the functional content of the code, and beta testing is the error correction stage. At the same time, as a rule, at each stage of development, intermediate results of work are available to end users.

>>
Cloud Computing

Cloud computing often referred as the cloud, the practice of using a network of remote servers to store, manage, and process data, rather than a local server or computer.

Via cloud model the user can easily get a convenient web access to computing resources (for example, servers, storage devices, data networks, applications and services - both together and separately) that can be promptly provided and released with minimal operating costs, paid to the cloud computing provider.

The National Institute of Standards and Technology (NIST) recorded the following mandatory characteristics of cloud computing:

Self-service on demand - the consumer independently identifies and changes computing needs, such as server time, access and processing speeds, the amount of stored data without interacting with a representative of the service provider;

Universal access over the network - services are available to consumers over the data network, regardless of the device used;

Resource pooling - a service provider integrates resources to serve a large number of consumers in a single pool for dynamic redistribution of capacity between consumers in a constantly changing demand; while consumers control only the basic parameters of the service (for example, data volume, access speed), but the actual distribution of resources provided to the consumer is performed by the supplier ;

Elasticity - services can be provided, expanded, narrowed at any time, without additional costs for interaction with the supplier, usually in automatic mode;

Consumption accounting - the service provider automatically calculates the consumed resources at a certain level of abstraction (for example, the amount of data stored, the bandwidth, the number of users, the number of transactions) and, based on this data, estimates the volume of services provided to consumers.

Deployment Models

Private cloud

Private cloud is an infrastructure intended for use by one organization, including several consumers (for example, units of the same organization), possibly also customers and contractors of this organization. A private cloud can be owned, managed and operated by both the organization itself and a third party (or some combination thereof), and it can physically exist both inside and outside the owner's jurisdiction.

Public cloud

The public cloud is an infrastructure designed for free use by the general public. A public cloud can be owned, managed and operated by commercial, scientific and government organizations (or some combination thereof). A public cloud exists physically in the jurisdiction of the owner-provider of services.

Community cloud

The community cloud is a kind of infrastructure intended for use by a specific community of consumers from organizations that have common tasks (for example, security requirements, policies, missions, and compliance with different requirements). A public cloud may be co-operative (co-owned), managed and operated by one or more community organizations or a third party (or any combination thereof), and it can physically exist both inside and outside the owner's jurisdiction.

Hybrid cloud

A hybrid cloud is a combination of two or more different cloud infrastructures (private, public or community) that remain unique objects but are linked together by standardized or proprietary data and application technologies (for example, short-term use of public cloud resources for load balancing between clouds).

>>
Commercial Software

Commercial software is software designed to make profit by other means; for example, by selling copies.

Commercial and free software

Many people mistake commercial and free software; they often get it the wrong way round. Above all, software is considered free from the moment the author grants the rights to modify, distribute and extract profits from the product. Free software may be commercial products as well. Good examples of commercial programs that are classified as free are the GNU ADA compiler or many GNU/Linux based operating systems.

The opposite of free software is proprietary software, which can also be commercial or freeware.

Freeware is the software licensing agreement that does not require any payments to the right holder. Freeware is usually distributed in binary form, without source codes and is regarded as proprietary software. Freeware, unlike shareware, does not involve any fee to the developer. No additional services, such as improved versions, are expected.

Shareware is software with royalty-free (or reimbursable under certain conditions) use.

Proprietary software is software that is the private property of authors or rights holders and does not satisfy the criteria of free software (the availability of open source code is not enough). The owner of proprietary software retains the monopoly on its use, copying and modification, in full or essential moments. Typically, any non-free software, including semi-free software, is called proprietary.

  • For legal and technical reasons, the software is usually proprietary by default.
  • Copyright laws operate by default, making non-trivial works proprietary.
A custom program is a separate type of commercial program in which the customer pays for all the development work. Such programs are often deprived of all the advantages of commercial products, since they have a limited budget, but are more adapted to the requirements of the customer than out-of-the-box analogues.
>>
Additional Terms of Software development
See more words
Command Line Interface

Command line interface (CLI) - a kind of textual interface between a person and a computer, in which computer instructions are given mainly by typing text strings (commands) from the keyboard, on UNIX-systems it is possible to use a mouse. Also known as the console user interface.

The command-line interface, often mentioned as command-line user interface, is contrasted with the menu-based control systems of the program, as well as to various implementations of the graphic user interface (GUI).

The output format of the information in the command-line interface is not regulated; usually, this is a simple text output, but it can also be graphic, audio, etc.

Advantages

  • Small memory consumption compared to the menu system.
  • In modern software, there is a large number of commands, many of which are extremely rare. Therefore, even in some programs with a graphical interface, the command line is used: the command set (provided that the user knows this command) is much faster than, for example, navigating through the menu.
  • A natural extension of the command line interface is the batch interface. In essence its a sequence of commands written to a file of ordinary text format, after which the file can be executed in the program, which will lead to the same (in most cases) effect, as if these commands were entered one by one on the command line. Examples - .bat-files in DOS and Windows, shell-scripts in Unix-systems.

If the program is fully or almost completely managed by commands from the command line interface, and supports a batch interface, a skilful combination of the command line interface with a graphical interface provides the user with very powerful capabilities.

Disadvantages

  • The command-line interface is not user-friendly for those, who have begun familiarizing themselves with the computer with a graphical mode, due to the almost unavailable discoverability.
  • The need to study the syntax of commands and memorize abbreviations is complicated, because each command can have its own designations.
  • Without auto-completion, entering long and special characters from the keyboard can be difficult.
  • No analog input. For example, adjusting the volume with the sounded slider allows you to set the appropriate volume faster than a command like aumix -v 90.

Usage

Historically, the main areas of application of the command line interface were on computer terminals  in 1960-1980s, for MS-DOS, Unix operational systems and later on on Apple DOS. Now it’s used for chats, computer games and program testing.

>>
AppStore

is an application store accessed via iTunes containing various apps for iPhone smartphones, iPod Touch, iPad tablets, and also for Mac personal computers and allowing to buy them or download for free. Similar to Google Play for Android applications.

  • The App Store offers more than 1.5 million apps for iPhone and iPod Touch and about 1 million for the iPad;
  • The number of downloads exceeded 100 billion;
  • The user base is about 575 million.
  • Applications are divided into many categories, including games and social networking apps.

Costs for an App range from $ 0.99 to $ 9.99, and significantly more for professional software. However, most apps are distributed through the App Store for free.

The store is supervised by Apple experts. Each application is equipped with a special electronic certificate. If somebody starts to commit illegal actions with the purchased program, they will remove it from the database, and developers will be "severely reprimanded".

Revenues from sales of apps are distributed as follows - the authors receive 70%, Apple collects 30% of the share in order to maintain the store. Officially, Apple claims that they don’t intend to make money on sales. Developers also have an opportunity to release free apps. It is also interesting that all purchased programs can be registered in iTunes to download all the new updates.

In the iPod Touch, the App Store service works when you connect to the Internet via Wi-Fi. So users can buy and download apps through the wireless network from anywhere. Applications are available either for free or have a certain cost which is charged from the user's account in the iTunes Store.

The App Store will promptly notify the user about the latest updates, which happens regularly. The App Store service is available in iTunes for both Macs and personal computers, wherein apps are synchronized with the iPhone or iPod Touch via a USB interface.

>>
Content Management System (CMS)

Content management system (CMS) - information system or a computer program with simple and convenient user interface, used to provide and organize a joint process of creating, editing and managing content without special programming knowledge.

Main functions

  • Providing tools for creating content, and organizing collaborative work;
  • Content management: storage, version control, compliance with access mode, flow control of documents, etc.;
  • Publishing;
  • The presentation of information in a form convenient for navigation and searching.

The content management system can contain a wide variety of data: documents, films, photographs, phone numbers, scientific data, and so on. Such a system is often used to store, manage, review and publish documentation.

Version control is one of its main advantages when the content is changed by a group of people.

Types

In general, content management systems are divided into:

  • The Enterprise Content Management System (ECMS)
  • Web Content Management System (WCMS)

The term CMS replaced WCMS, becoming a synonym for the website management system.

Such CMS allows you to manage the text and graphic content of a website, providing the user with an interface for working with the content of the site, convenient tools for storing and publishing information, and automating the processes of placing information in databases and issuing it to HTML.

There are many ready-made content management systems, including free ones. They can be divided into three types according to the mode of operation:

  • Generate pages on request. Systems of this type work on the basis of the link "Editing module → Database → Presentation module". The presentation module generates a page with content when it is requested, based on information from the database. The information in the database is modified using the editing module. Pages are newly created by the server at each request, which in turn creates an additional load on the system resources.
  • Generate pages when editing. Systems of this type serve for editing pages that, when making changes to the content of the site, create a set of static pages.
  • The mixed type. As the name implies, it combines the advantages of the previous two. Can be implemented by caching - the presentation module generates the page once, in the future it is loaded several times faster from the cache. The cache can be updated automatically, after a certain time period or when making changes to certain sections of the site, or manually by the administrator's command. Another approach is to save certain information blocks at the stage of editing and build a page from these blocks when the user requests the corresponding page.

Most of the modern CMS are implemented as a visual (WYSIWYG) editor - a program that creates HTML code from a special simplified markup that allows the user to easily format the text.

>>
View all IT-related terms
Results for "DEV"
Logo Magora LTD
close
Get in touch
Do you agree to the personal data processing?


Logo Magora LTD
close
Thank you very much.

Your registration to the webinar on the 24th of May at 4 p.m. GMT was successfuly completed.
We will send you a reminder on the day before the event.
Magora team
Registration for a webinar

"GDPR compliance: Workflow Automation"
Date: 24.05.2018 Time: 4 p.m. GMT
Do you agree to the personal data processing?