DigitalOcean Community Glossary
Ansible is a configuration management system used to set up and manage infrastructure and applications in varied environments. It allows users to deploy and update applications in approachable language, using SSH, without needing to install an agent on a remote system.
The Apache HTTP Server is an open-source web server popular for its flexibility, power, and widespread support. It is extensible through a dynamically loadable module system and can process a large number of interpreted languages without connecting out to separate software.
An application programming interface (API) is a set of routines, definitions, and protocols that allow developers to build application software. APIs abstract implementation and expose only necessary objects and actions to the developer. Within cloud computing, developers use APIs to manage servers and other resources through conventional HTTP requests.
- A complete list of resources on APIs.
- How to get started with the DigitalOcean API.
- The DigitalOcean API resource homepage.
- The DigitalOcean API documentation library.
Backups are copies or archives of data used for recovery after loss, deletion, or corruption. Developers can create backups in a number of ways, including manual implementation, cloud hosting services, or backup programs (such as Bacula).
- A complete list of resources on backups.
- An introduction to web application backups in a production context.
Big data is a blanket term for the non-traditional strategies and technologies needed to organize, process, and gather insights from large datasets. Many users and organizations are turning to big data for certain types of work loads, and using it to supplement their existing analysis and business tools. Tools that exist in this space offer different options for interpolating data into a system, storing it, analyzing it, and working with it through visualizations.
A block storage service functions as a hard drive provided over the network. Developers can use block storage services to store files, combine multiple devices into a RAID array, or configure a database to write directly to the block storage device. Block storage offers a different set of capacities than object storage, which allows developers to store unstructured data using an HTTP API. Developers working on complex applications often take advantage of both options.
- A complete list of resources on block storage.
- An introduction to block storage and to the differences between block and object storage.
Caching refers to the process by which reusable responses are stored to make subsequent requests faster.
- A complete list of resources on caching.
- An introduction to web caching terminology, HTTP headers, and caching strategies.
Chef is a configuration management tool that automates infrastructure as code. It uses Ruby and groups configuration details into what it calls “recipes.”
Continuous integration focuses on integrating work from individual developers into a main repository multiple times a day to catch integration bugs early and accelerate collaborative development. Continuous delivery is concerned with reducing friction in the deployment or release process, automating the steps required to deploy a build so that code can be released safely at any time. Continuous deployment takes this one step further by automatically deploying each time a code change is made.
- A complete list of resources on CI/CD.
- A general introduction to CI/CD concepts, and more about various open-source CI/CD projects.
Clustered computing is the practice of pooling the resources of multiple machines and managing their collective capabilities to complete tasks. Developers can use clusters to increase processing power and storage.
- A complete list of resources on clustering.
- An introduction to configuring a Galera cluster with MariaDB 10.1 on Ubuntu 16.04 servers.
Content Management System
A content management system is an application used to support the creation and revision of web content. Popular CMS tools include WordPress, Joomla, and Drupal.
- A complete list of resources on CMS topics and tools.
- An introduction to installing WordPress with LAMP on Ubuntu 16.04.
Configuration management refers to the processes by which administrators and operations teams control large numbers of servers. Automation is at the heart of most configuration management tools, which allow developers to quickly provision new servers, recover from critical events, manage version control, and replicate environments. Popular CM tools include Puppet, Ansible, Chef, and Salt.
- A complete list of resources on CM topics and tools.
- An introduction to configuration management and popular CM tools.
A control panel allows users to manage system settings and features in a single place. The nature and function of a control panel depends on its environment: in web hosting, for example, users can navigate the control panel offered by their web hosting provider for an external or global view of their servers and resources. Users can also install control panels on these servers to manage their internal aspects.
- A complete list of resources on control panels.
- An introduction to installing Webmin on Ubuntu 16.04.
Data analysis refers to activity, across a range of fields, that investigates the structure of data and uses it to identify patterns and possible solutions to problems. Within this domain, data science draws on methodologies from statistics, mathematics, and computer science to both analyze events using data and predict possible outcomes. One important trend within data science is machine learning, which uses algorithmic data inputs and statistical analysis to train computers to output values within a certain range. In this way, machine learning enables practices such as automated decision-making.
Deployment refers to the process of readying something for use . Depending on what is being deployed (software system, hardware, etc.), this process can include installing scripts or commands for software execution, activating executable software elements, and updating older software systems, among other things.
- A complete list of resources on deployment.
- An introduction to building a Node.js application on CentOS 7.
Development can refer to a range of programming activities and routines involved in the creation and maintenance of programs. Within software development, these activities can include writing and revising code, prototyping, researching, testing, and modifying problematic components.
- A complete list of resources on development.
Django is a high-level Python framework for developing web applications rapidly. Its core principles are scalability, re-usability, and rapid development.
The Domain Name System is a decentralized naming system that translates memorable and accessible domain names to numerical IP addresses within underlying network protocols. Users can establish greater control over hosted domains by managing their DNS servers, opting for caching servers, forwarding servers, authoritative-only servers, or a combination of different types.
- A complete list of resources on DNS topics and issues.
- An introduction to managing DNS resources and how to set up a hostname with DigitalOcean.
Docker is a popular containerization tool used to provide software applications with a filesystem that contains everything they need to run. Using Docker containers ensures that the software will behave the same way, regardless of where it is deployed, because its run-time environment is consistent.
Drupal is a popular content management system (CMS) used to run some of the largest blogs and websites across the internet. Due to the stability of the base, the adaptability of the platform, and its active community, Drupal remains a popular choice among users after more than a decade on the scene.
Free software is any program released with a license approved by the Free Software Foundation which allows users to view, modify, and share the source code without risk of legal repercussions. Similarly to the open-source movement, the goal behind free software is to promote and support community-driven development methods and to curb the spread of proprietary software licenses.
- For an in-depth explanation of the free software movement, read DigitalOcean’s tutorial on The Difference Between Free and Open-Source Software.
Joomla is a widely-used, highly customizable, free and open-source web content management system written in PHP.
Kubernetes is a cloud platform for automating the deployment, scaling, and management of containerized applications.
A LAMP Stack is a set of software that can be used to create dynamic websites and web applications. LAMP is an acronym for the software that comprises the stack: the Linux operating system, the Apache HTTP Server, the MySQL relational database management system, and the PHP programming language. Note that some components are interchangeable, and a LAMP Stack may include MariaDB instead of MySQL, or Perl or Python instead of PHP.
- A complete list of resources on LAMP Stacks.
- For a basic introduction to LAMP Stacks, check out this tutorial on how to assemble a LAMP Stack on Ubuntu 16.04.
LEMP (also known as LNMP) is a software stack used for creating dynamic websites and web applications. It consists of the Linux operating system, the (E)Nginx web server, the MySQL relational database management system, and the PHP programming language. Like LAMP Stacks, some of these components are interchangeable with others.
- A complete list of resources on LEMP Stacks.
- For a basic introduction LEMP stacks, check out this tutorial on how to assemble a LEMP Stack on Ubuntu 16.04.
Let’s Encrypt is a certificate authority that provides free TLS/SSL certificates. Let’s Encrypt focuses on simplicity and ease-of-use, with the ultimate goal of making encrypted connections to the World Wide Web ubiquitous.
Load balancing refers to the distribution of work among a pool of homogeneous backend servers in order to optimize the use of computing resources and prevent the overload of any single resource.
- A complete list of resources on load balancing.
- For a basic introduction to load balancing-related concepts and practices, check out our article “What is Load Balancing?”.
Logging refers to the recording of all the events that occur in a computer’s operating system. This information is usually stored for review in the system’s log file.
MariaDB is a free and open-source relational database management system. MariaDB was originally built as a fork of MySQL, and is thus highly compatible with its source code.
MEAN is a free and open-source software stack for creating dynamic websites and web applications. The software stack typically includes MongoDB, Express, Node.js, and AngularJS.
Messaging is the act of passing content or controls between users, computers, programs, and/or components of a single system. Message queuing refers to the management of messages between software users or components for a given process.
MongoDB is a free and open-source document-oriented database platform which uses JSON-like documents with schemas.
- A complete list of resources on MongoDB.
- For a general introduction to working with MongoDB, check out this tutorial on How to Install and Secure MongoDB on Ubuntu 16.04.
MySQL is an open-source relational database management system. An incredibly flexible and powerful program, MySQL is used to store and retrieve data for a wide variety of popular applications.
Nginx (pronounced like ‘engine-x’) is an open-source web server capable of reverse proxying, load balancing, and more. Nginx is one of the most popular web servers in the world and is used to host some of the largest and most highly-trafficked sites on the internet.
A NoSQL database is any non-relational database environment that allows for the fast organization and analysis of disparate and high-volume data types. By using an unstructured (or structured-on-the-go) approach, NoSQL databases aim to eliminate the limitations of strict relations and offer many different types of ways to keep and work with the data for specific use cases (e.g. full-text document storage).
- A complete list of resources relating to NoSQL.
- Our tutorial, A Comparison Of NoSQL Database Management Systems And Models, can be helpful for understanding the differences between various kinds of NoSQL databases.
Object storage is a data storage architecture that manages data as objects (unstructured blobs of data and metadata) using an HTTP API, instead of as blocks or a file hierarchy.
- A complete list of resources on Object Storage.
- For a basic introduction to object storage, check out DigitalOcean’s comparison between Object Storage vs. Block Storage Services.
Open-source software is any program released with a license approved by the Open Source Initiative which allows users to view, modify, and share the source code without risk of legal repercussions. Similarly to the free software movement, the goal behind open-source software is to promote and support community-driven software development methods.
- A complete list of resources related to open-source concepts.
- For an in-depth explanation of open-source practices, read DigitalOcean’s tutorial on The Difference Between Free and Open-Source Software.
Perl is a family of programming languages, popular for their extreme versatility and their use as a glue language between software components.
PHP is a scripting language designed primarily for web development, but it’s also become widely-used as a general-purpose programming language.
PostgreSQL is a free and open-source object-relational database management system which emphasizes extensibility and standards compliance.
- A complete list of resources relating to PostgreSQL.
- A basic introduction to working with PostgreSQL.
Python is a high-level, interpreted programming language which prioritizes the clarity and readability of code.