“This glossary contains definitions related to the DevOps movement. Some definitions explain the meaning of words used to describe how a DevOps culture breaks down silos between software development and operations teams. Other definitions are related to the software tools that DevOps engineers use to lower costs, achieve higher productivity and automate tasks.
- 12 factor app (twelve-factor app) – “Twelve-factor app is a methodology for building distributed applications that run in the cloud and are delivered as a service.”
- A/B testing (split testing) – “A/B testing, sometimes called split testing, is an assessment tool for identifying which version of something helps an individual or organization meet a business goal more effectively.”
- acceptance testing – “An acceptance test confirms that an story is complete by matching a user action scenario with a desired outcome.”
- ad hoc testing – “Ad hoc testing is a non-methodical approach to assessing the viability of a product.”
- Agile Project Management – “Agile Project Management (APM) is an iterative approach to planning and guiding project processes, that breaks it down into smaller cycles called sprints.”
- Agile Software Development – “Agile software development — also referred to simply as Agile — is a type of development methodology that anticipates the need for flexibility and applies a level of pragmatism to the delivery of the finished product.”
- agile test automation pyramid – “The agile test automation pyramid is a graphical strategy guide for implementing automated software testing.”
- Agile velocity – “Agile velocity is a metric that predicts how much work a software development team can successfully complete within a two-week sprint (or similar time-boxed period).”
- AIOps (artificial intelligence for IT operations) – “AIOps is an umbrella term for the use of big data analytics, machine learning and other AI technologies to automate the identification and resolution of common IT issues.”
- Amazon EBS (Elastic Block Store) – Amazon Elastic Block Store is a cloud-based block storage system provided by Amazon Web Services (AWS) that is best used for storing persistent data.
- Amazon Elastic Container Service (Amazon ECS) – Amazon Elastic Container Service (ECS) is a cloud computing service in Amazon Web Services (AWS) that manages containers and allows developers to run applications in the cloud without having to configure an environment for the code to run in.
- Amazon Simple Database Service (SimpleDB) – Amazon Simple Database Service (SimpleDB), also known as a key value data store, is a highly available and flexible non-relational database that allows developers to request and store data, with minimal database management and administrative responsibility.
- Amazon SWF (Simple WorkFlow Service) – Amazon SWF (Simple Workflow Service) is an Amazon Web Services tool that helps developers coordinate, track and audit multi-step, multi-machine application jobs.
- Amazon Web Services (AWS) – AWS (Amazon Web Services) is a comprehensive, evolving cloud computing platform provided by Amazon that includes a mixture of infrastructure as a service (IaaS), platform as a service (PaaS) and packaged software as a service (SaaS) offerings.
- Ansible – Ansible is an open source IT configuration management (CM) and automation platform, provided by Red Hat.
- Ansible playbook – An Ansible playbook is an organized unit of scripts that defines work for a server configuration managed by the automation tool Ansible.
- Apache HBase – Apache HBase is a column-oriented key/value data store built to run on top of the Hadoop Distributed File System (HDFS).
- Apache ZooKeeper – Apache ZooKeeper is an open source file application program interface (API) that allows distributed processes in large systems to synchronize with each other so that all clients making requests receive consistent data.
- AppBuilder – AppBuilder is an application development tool that takes advantage of reusable HTML5/Java Script to let developers create cross-platform applications that work seamlessly on iOS, Android or Windows Phones.
- application containerization (app containerization) – Application containerization is an OS-level virtualization method used to deploy and run distributed applications without launching an entire virtual machine (VM) for each app.
- application monitoring and management (AMM) – Application monitoring and management is the administrative area and associated tools involved with overseeing the operation of business software and ensuring that it functions and performs as expected.
- application release automation (ARA) – Application release automation (ARA) is a process that packages and deploys an application, or application updates, through the stages of development to production automatically.
- artifact (software development) – An artifact, in software development, is work that has been documented and stored in a repository so it can be retrieved upon demand.
- automated testing – Automated testing is a process that validates if software is functioning appropriately and meeting requirements before it is released into production.
- AutoRABIT – AutoRABIT is an end-to-end release management suite specifically aimed at streamlining the development and release of Salesforce.
- AWS CodeBuild – AWS CodeBuild is a managed cloud service that enables an IT developer to automate and manage server builds for applications that reside in the Amazon Web Services (AWS) public cloud.
- AWS CodeDeploy (Amazon Web Services CodeDeploy) – AWS CodeDeploy is a service that automates code deployments to Elastic Compute Cloud (EC2) and on-premises servers.
- AWS CodePipeline (Amazon Web Services CodePipeline) – AWS CodePipeline is an Amazon Web Services product that automates the software deployment process, allowing a developer to quickly model, visualize and deliver code for new features and updates.
- AWS Command Line Interface – The AWS Command Line Interface (AWS CLI) is an Amazon Web Services tool that enables developers to control Amazon public cloud services by typing commands on a specified line.
- AWS OpsWorks (Amazon Web Services OpsWorks) – AWS OpsWorks is a cloud computing service from Amazon Web Services (AWS) that manages infrastructure deployment for cloud administrators.
- Azure DevOps (formerly Visual Studio Team Services) – Visual Studio Team Services (VSTS) — rebranded as Azure DevOps in 2018 — is an Azure cloud-hosted extension of Microsoft’s Team Foundation Server (TFS) — now called Azure DvOps — that assist development teams with special tools and services for software programmers, analysts and testers as well as IT project or team managers.
- Azure Service Fabric – Azure Service Fabric is a Platform as a Service (PaaS) offering designed to facilitate the development, deployment and management of highly-scalable and customizable applications for the Microsoft Azure cloud platform.
- behavior-driven development (BDD) – Behavior-driven development (BDD) is an Agile software development methodology in which an application is documented and designed around the behavior a user expects to experience when interacting with it.
- beta test – In software development, a beta test is the second phase of software testing in which a sampling of the intended audience tries the product out.
- BizDevOps (Business, Development and Operations) – BizDevOps, also known as DevOps 2.
- black box (black box testing) – Black box testing assesses a system solely from the outside, without the operator or tester knowing what is happening within the system to generate responses to test actions.
- blue/green deployment – A blue/green deployment is a software deployment strategy that relies on two identical production configurations that alternate between active and inactive.
- branching – Branching is the practice of creating copies of programs or objects in development to work in parallel versions, retaining the original and working on the branch or making different changes to each.
- build – In a programming context, a build is a version of a program.
- build tool – A build tool is a programming utility that automates a software build task, such as ensuring that the proper source code files are compiled and that the proper object files are linked, after changes have been made to a program.
- burn down chart – A burn down chart is a visual representation of the amount of work that still needs to be completed before the end of a project.
- canary test (canary deployment) – In software development, a canary is an approach to progressive deployment in which code changes are rolled out to a small number of users who have not volunteered or opted-in for testing.
- Cassandra (Apache Cassandra) – Apache Cassandra is an open source distributed database system that is designed for storing and managing large amounts of data across commodity servers.
- change control – Change control is a systematic approach to managing all changes made to a product or system.
- ChatOps – ChatOps is the use of chat clients, chatbots and real-time communication tools to facilitate how software development and operation tasks are communicated and executed.
- Chef (software) – Chef is an open source systems management and cloud infrastructure automation platform.
- Cloud Foundry – Cloud Foundry is an open source cloud platform as a service (PaaS) on which developers can build, deploy, run and scale applications on public and private cloud models.
- cloud IDE – A cloud IDE is a web-based integrated development platform (IDE) that is accessed through a browser.
- cloud orchestration (cloud orchestrator) – Cloud orchestration is the use of programming technology to manage the interconnections and interactions among workloads on public and private cloud infrastructure.
- cloud testing – Cloud testing, also called cloud-based testing, is the assessment of a Web application’s performance, reliability, scalability and security in a third-party’s cloud computing environment.
- CloudStack – Apache CloudStack is an open source infrastructure as a service (IaaS) platform that allows IT service providers to offer public cloud services.
- CMDB (configuration management database) – A configuration management database (CMDB) is a database that contains all relevant information about the hardware and software components used in an organization’s IT services and the relationships between those components.
- code review – Code review is a phase in the computer program development process in which the authors of code, peer reviewers, and perhaps quality assurance reviewers get together to review code, line by line.
- codebase (code base) – A codebase (sometimes spelled as two words, code base) is the complete body of source code for a given software program or application.
- command line interface (CLI) – A command line interface (CLI) is a text-based user interface (UI) used to view and manage computer files.
- composable infrastructure – A composable infrastructure is a framework whose physical compute, storage and network fabric resources are treated as services.
- Concurrent Versions System (CVS) – CVS also is an abbreviation for Computer Vision Syndrome.
- configuration drift – Configuration drift occurs naturally in data center environments when changes to software and hardware are not recorded or tracked in a comprehensive and systematic fashion.
- Container Linux by CoreOS – Container Linux by CoreOS, originally named CoreOS Linux, is an open source operating system (OS) that provides the functionality required to deploy and manage applications within containers.
- Containers as a Service (CaaS) – Containers as a service (CaaS) is a cloud service that allows software developers to upload, organize, run, scale, manage and stop containers by using a provider’s API calls or a web portal interface.
- continuous deployment – Continuous deployment is a strategy for software releases wherein any code commit that passes the automated testing phase is automatically released into the production environment, making changes that are visible to the software’s users.
- continuous integration (CI) – Continuous integration (CI) is a software engineering practice in which frequent, isolated changes are immediately tested and reported on when they are added to a larger code base.
- continuous software development – Continuous software development is a blanket term that covers several aspects of an iterative application development process based on making each change when it is ready, rather than wrapping many changes into large batches.
- CoreOS rkt – CoreOS rkt (pronounced rocket) is a containerization engine to run application workloads in isolation from the underlying infrastructure.
- cowboy coding – Cowboy coding describes an undisciplined approach to software development.
- cross-functional team – A cross-functional team is a workgroup made up of employees from different functional areas within an organization who collaborate to reach a stated objective.
- cycle time – Cycle time is the time, usually measured in nanosecond s, between the start of one random access memory (RAM) access to the time when the next access can be started.
- debugging – Debugging, in computer programming and engineering, is a multistep process that involves identifying a problem, isolating the source of the problem, and then either correcting the problem or determining a way to work around it.
- definition of done – A definition of done is a checklist of criteria that a product, product increment or project must satisfy to be considered completed.
- dependency hell – Dependency hell is a negative situation that occurs when a software application is not able to access the additional programming it requires in order to work.
- DevOps as a Service – DevOps as a Service is a delivery model for a set of tools that facilitates collaboration between an organization’s software development team and the operations team.
- DevOps certification – DevOps certification is a formalized testing program intended to ensure that applicants have achieved an appropriate level of skills and knowledge for working in the converged areas of software development and IT operations.
- DevOps Dojo – DevOps Dojos provide software developers and operations engineers with an immersive learning environment where team members can gain practical work experience without having to worry about introducing errors into the production environment.
- DevOps engineer – A DevOps engineer is an IT professional who works with software developers, system operators and other production IT staff to create and oversee code releases and deployments.
- distributed tracing – Distributed tracing, also called distributed request tracing, is a method for IT and DevOps teams to monitor applications, especially those composed of microservices.
- Docker – Docker is an open source software platform to create, deploy and manage virtualized application containers on a common operating system (OS), with an ecosystem of allied tools.
- Docker Engine – Docker Engine is the underlying client-server technology that builds and runs containers using Docker’s components and services.
- Docker Hub – Docker Hub is a cloud-based repository in which Docker users and partners create, test, store and distribute container images.
- Docker Swarm – Docker Swarm is a clustering and scheduling tool for Docker containers.
- Eclipse (Eclipse Foundation) – Eclipse is an open source Java Integrated Development Environment (IDE) known for its plug-ins that allow developers to develop and test code written in other programming languages.
- ElasticSearch – ElasticSearch is an open source, RESTful search engine built on top of Apache Lucene and released under an Apache license.
- Eucalyptus – Eucalyptus is an open source software platform for implementing Infrastructure as a Service (IaaS) in a private or hybrid cloud computing environment.
- event-driven architecture (EDA) – An event-driven architecture (EDA) is a framework that orchestrates behavior around the production, detection and consumption of events as well as the responses they evoke.
- fail fast – Fail fast is a philosophy that values the development or implementation of many small experimental products, changes or approaches before committing large amounts of time or resources.
- forking (software fork) – Forking is to take the source code from an open source software program and develop an entirely new program.
- fuzz testing (fuzzing) – Fuzz testing (fuzzing) is a technique used by ethical hackers to discover security loopholes in software, operating systems or networks by massive inputting of random data to the system in an attempt to make it crash.
- Git – Git is a free and open source distributed code management and version control system that is distributed under the GNU General Public License version 2.
- git stash – Git stash is a built-in command with the distributed version control tool in Git that locally stores all the most recent changes in a workspace and resets the state of the workspace to the prior commit state.
- GitHub – GitHub is a web-based revision control hosting service for software development and code sharing.
- Google Bigtable – Google Bigtable is a distributed, column-oriented data store created by Google Inc.
- Google Cloud Platform (GCP) – Google Cloud Platform is a suite of public cloud computing services offered by Google.
- Google Kubernetes Engine (GKE) – Google Kubernetes Engine (GKE) is a management and orchestration system for Docker containers and container clusters that run within Google’s public cloud services.
- gray box testing (gray box) – Gray box testing, also called gray box analysis, is a strategy for software debugging based on limited knowledge of the internal details of the program.
- Heroku – Heroku is a cloud-based development platform as a service (PaaS) provider.
- high availability (HA) – High availability (HA) is the ability of a system or system component to be continuously operational for a desirably long length of time.
- HipChat – Atlassian HipChat allows employees to collaborate, work as teams and manage goals, all in real time, whether they work in the same office building or are located around the world.
- HP Helion (Hewlett-Packard Helion) – HP Helion (Hewlett-Packard Helion) is the brand name for HP’s custom distribution] of OpenStack.
- human factors (ergonomics) – In industry, human factors (also known as ergonomics) is the study of how humans behave physically and psychologically in relation to particular environments, products, or services.
- incremental shift left testing – Incremental shift left testing is a widely adopted method that starts testing earlier in the development cycle – shifting it to the left on the timeline — and breaks complex development down into smaller pieces that build upon each other.
- Infrastructure as a Service (IaaS) – Infrastructure as a service (IaaS) is a form of cloud computing that provides virtualized computing resources over the internet.
- infrastructure as code – Infrastructure as code (IaC) is an approach to software development that treats physical compute, storage and network fabric resources as web services and allows apps to run where they are best suited, based on cost and performance data.
- Internet Information Services (IIS) – Internet Information Services (IIS) is a flexible, general-purpose web server from Microsoft that runs on Windows systems to serve requested HTML pages or files.
- IT automation – IT automation is the use of instructions to create a repeated process that replaces an IT professional’s manual work in data centers and cloud deployments.
- iteration – In agile software development, an iteration is a single development cycle, usually measured as one week or two weeks.
- iterative development – Iterative development is a way of breaking down the software development of a large application into smaller chunks.
- Java IDE – Java IDEs typically provide language-specific features in addition to the code editor, compiler and debugger generally found in all IDEs.
- JBoss – JBoss is a division of Red Hat that provides support for the JBoss open source application server program and related middleware services marketed under the JBoss Enterprise Middleware brand.
- Jenkins – Jenkins is an open source continuous integration/continuous delivery and deployment (CI/CD) automation software DevOps tool written in the Java programming language.
- Kaizen (continuous improvement) – Kaizen is an approach to creating continuous improvement based on the idea that small, ongoing positive changes can reap significant improvements.
- Knative – Knative is an open source project based on the Kubernetes platform for building, deploying and managing serverless workloads that can run in the cloud, on premises or in a third-party data center.
- Kubernetes – Kubernetes, also referred to as K8s, is an open source system used to manage Linux Containers across private, public and hybrid cloud environments.
- Kubernetes Pod – Kubernetes Pods are the smallest deployable computing units in the open source Kubernetes container scheduling and orchestration environment.
- Kubernetes scheduler – Kubernetes scheduler is a part of the open source Kubernetes container orchestration platform that controls performance, capacity and availability through policies and topology awareness.
- lean software development – Lean software development is a concept that emphasizes optimizing efficiency and minimizing waste in the development of software.
- lean water spider – Lean water spider is a term used in manufacturing that refers to a position in a production environment or warehouse that ensures materials are supplied where and when they are needed.
- legacy application – A legacy application (legacy app) is a software program that is outdated or obsolete.
- Linux Containers Project – Linux Containers is a project created to provide a distro- and vendor-neutral environment for the development of Linux container technologies.
- longest delay in queue (LDQ) – Longest delay in queue (LDQ) is the longest time period that a customer in a queue waits before either connecting with an agent or hanging up.
- Memcached – Memcached is an open source, distributed memory object caching system that alleviates database load to speed up dynamic Web applications.
- microservice architecture (MSA) – A microservice architecture (MSA) is a logical structure for the design of a software program involving loosely-coupled modular components known as microservices.
- microservices – Microservices, or microservice architecture, is an approach to application development in which a large application is built as a suite of modular components or services.
- Microsoft Azure – Microsoft Azure, formerly known as Windows Azure, is Microsoft’s public cloud computing platform.
- Microsoft Azure Stack – Microsoft Azure Stack is an integrated platform of hardware and software that delivers Microsoft Azure public cloud services in a local data center to let organizations construct hybrid clouds.
- milestone – In project management, a milestone is a synchronization point.
- mobile application development platform (MADP) – A mobile application development platform (MADP) is a type of software that allows a business to rapidly build, test and perhaps deploy mobile apps for smartphones and tablets.
- model-based testing – Model-based testing (MBT) requires a test team to create a second, lightweight implementation of a software build- typically only the business logic – called the model.
- MongoDB – MongoDB is an open source NoSQL database management program.
- Nagios – Nagios is an open source monitoring system for computer systems.
- NoOps – NoOps (no operations) is the concept that an IT environment can become so automated and abstracted from the underlying infrastructure that there is no need for a dedicated team to manage software in-house.
- OpenConfig – OpenConfig is a working group and network communication model that attempts to unify standards in networking management interfaces across vendors.
- OpenStack – OpenStack is a collection of open source software modules that provides a framework to create and manage both public cloud and private cloud infrastructure.
- OpenStack Innovation Center – The OpenStack Innovation Center is a research and development facility dedicated to the open source cloud platform OpenStack.
- pair programming – Pair programming is an Agile technique originating from XP in which two developers team together and work on one computer.
- Perforce Software – Perforce is a software company that specializes in software configuration management, version control and collaboration products.
- performance testing – Performance testing is the process of determining the speed, responsiveness and stability of a computer, network, software program or device under a workload.
- Platform as a Service (PaaS) – Platform as a service (PaaS) is a cloud computing model where a third-party provider delivers hardware and software tools to users over the internet.
- poka-yoke – A poka-yoke is a mechanism that is put in place to prevent human error.
- policy-based management – Policy-based management is an administrative approach that is used to simplify the management of a given endeavor by establishing policies to deal with situations that are likely to occur.
- PostgreSQL – PostgreSQL (pronounced “post-gress-Q-L”) is an open source relational database management system (DBMS) developed by a worldwide team of volunteers.
- product backlog grooming – Product backlog grooming is an Agile software development process in which the development team revisits a pre-defined product backlog, working with stakeholders to prioritize and break the backlog list into user stories for future use.
- product owner – The product owner is a role in scrum development of the person who represents the business or user community.
- proof of concept (POC) – A proof of concept (POC) is an exercise in which work is focused on determining whether an idea can be turned into a reality.
- provisioning – In general, provisioning means “providing” or making something available.
- Puppet (Puppet Labs) – Puppet is an open source systems management tool for centralizing and automating configuration management.
- Rackspace Cloud – Cloud provider Rackspace offers several different cloud storage services including Cloud Files, Cloud Block Storage and Cloud Backup.
- Red Hat Mobile Application Platform – Red Hat Mobile Application Platform is a software development framework that enables organizations to extend their development capabilities to mobile by developing collaboratively, centralizing control of security and using back-end integration with a range of cloud deployments.
- Red Hat OpenShift – Red Hat OpenShift is a multifaceted, open source container application platform from Red Hat Inc.
- regression testing – Regression testing is a type of software test that assesses if changes to an application, or other related software components, introduce defects.
- release management – Release management is a software engineering process intended to oversee the development, testing, deployment and support of software releases.
- release plan – In agile software development, a release plan is an evolving flowchart that describes which features will be delivered in upcoming releases.
- relentless incrementalism – Relentless incrementalism is a process in which something substantial is built through the accumulation of small but incessant additions.
- rugged DevOps – Rugged DevOps is an approach to software development that places a priority on ensuring that code is secure at all stages of the software development lifecycle.
- SAP HANA – SAP HANA is an in-memory database and application development platform for processing high volumes of data in real time.
- Scrum – Scrum is a collaborative Agile development framework that breaks large processes down into small pieces in order to streamline efficiency.
- service-level agreement (SLA) – A service-level agreement (SLA) is a contract between a service provider and its customers that documents what services the provider will furnish and defines the service standards the provider is obligated to meet.
- service-oriented architecture (SOA) – Service-oriented architecture (SOA) is a software development model that allows services to communicate across different platforms and languages to form applications.
- seven wastes – The seven wastes are categories of unproductive manufacturing practices identified by Taiichi Ohno, the father of the Toyota Production System (TPS).
- shift left testing – Shift left testing is an approach used to speed software testing and facilitate development by moving the testing process to an earlier point in the development cycle.
- Simian Army – The Simian Army is a collection of open source cloud testing tools created by the online video streaming company, Netflix.
- Slack software – Slack software is a cloud-based collaboration software suite.
- Snort – Snort is an open source network intrusion detection system (NIDS) created by Martin Roesch.
- software development – Software development is the body of processes involved in creating software programs, embodying all the stages throughout the systems development life cycle (SDLC).
- software engineering – Software engineering is the application of principles used in the field of engineering, which usually deals with physical systems, to the design, development, testing, deployment and management of software systems.
- software stack – A software stack is a collection of independent components that work together to support the execution of an application.
- source code – Source code is the fundamental component of a computer program that is created by a programmer.
- source code analysis – Source code analysis is the automated testing of source code for the purpose of debugging a computer program or application before it is distributed or sold.
- specification by example (SBE) – Specification by example (SBE) is a user-driven contextual approach to defining software requirements.
- sprint (software development) – A sprint is a set period of time during which specific work has to be completed and made ready for review.
- technical debt – In software development, technical debt is a metaphor equating Extreme Programming’s incremental, get-something-started approach with the easy acquisition of money through fast loans.
- test-driven development (TDD) – Test-driven development (TDD), also called test-driven design, is a method of implementing software programming that interlaces unit testing, programming and refactoring on source code.
- The Three Ways (The Phoenix Project) – The Three Ways is a set of business principles that encourage organizations to value a corporate culture in which feedback loops are short, everyone understands how different parts of the business interrelate and employees are encouraged to continuously learn.
- time-to-live (TTL) – Time-to-live (TTL) is a value in an Internet Protocol (IP) packet that tells a network router whether or not the packet has been in the network too long and should be discarded.
- Tomcat – Tomcat is an application server from the Apache Software Foundation that executes Java servlets and renders Web pages that include Java Server Page coding.
- TOSCA (Topology and Orchestration Specification for Cloud Applications) – The Topology and Orchestration Specification for Cloud Applications (TOSCA) is an open source language used to describe the relationships and dependencies between services and applications that reside on a cloud computing platform.
- unit testing – Unit testing is a software development process in which the smallest testable parts of an application, called units, are individually and independently scrutinized for proper operation.
- user acceptance testing (UAT) – In software development, user acceptance testing (UAT)—also called application testing, and end user testing—is a phase of software development in which the software is tested in the “real world” by the intended audience.
- value stream mapping – Value stream mapping is a Toyota lean manufacturing visualization tool for documenting all the processes that are required to bring a product to market.
- version control – Version control (also known as revision control or source control) is a category of processes and tools designed to keep track of multiple different versions of software, content, documents, websites and other information in development.
- Visual Studio .NET – Visual Studio .
- VMware Orchestrator – VMware Orchestrator is a free vCenter feature that helps automate VMware vCloud Suite, vSphere and other virtualization management system processes.
- water-Scrum-fall – Water-Scrum-fall is a hybrid approach to application lifecycle management that combines waterfall and Scrum development methodologies.
- waterfall model – The waterfall model is a linear, sequential approach to the software development life cycle (SDLC) that is popular in software engineering and product development and emphasizes a logical progression of steps.
- WebLogic – BEA Systems’ WebLogic is a server software application that runs on a middle tier, between back-end databases and related applications and browser-based thin clients.
- WebSphere Development Studio Client (WDSC) – WebSphere Development Studio Client (WDSC) is a set of application development tools designed for the IBM (International Business Machines) iSeries server.
- What is container management and why is it important? – Container management refers to a set of practices that govern and maintain containerization software, and automate the creation, deployment, destruction and scaling of software or systems containers.
- white box testing – White box testing is a software testing methodology in which the code structure is known and understood by the tester.
- whole-team approach (team-based approach) – Whole-team approach, also called team-based approach, is a strategy for project management in which everyone on the project team is held equally responsible for the quality and success of the project.
- workflow – Workflow is the series of activities that are necessary to complete a task.
- YAML (YAML Ain’t Markup Language) – YAML (YAML Ain’t Markup Language) is a data-oriented language structure used as the input format for diverse software applications.
- Yet another Setup Tool (YaST) – YaST handles much of the administration load, offers a simple graphical interface and sets up setting system parameters easily.
- Zabbix – Zabbix is an open source monitoring software tool for diverse IT components, including networks, servers, virtual machines (VMs) and cloud services.”
Over-the-Air Vehicle Software Updates
Elon Musk (b. 1971)
“In January 2014, the National Highway Traffic Safety Administration (NHTSA) published two safety recall notices for components in cars that could overheat and potentially cause fires. The first recall notice was for General Motors (GM) and required owners to physically take their cars to a dealership to correct the problem. The second was for Tesla Motors, and the recall was performed wirelessly, using the vehicle’s built-in cellular modem.
The remedy described by the NHTSA required Tesla to contact the owners of its 2013 Model S vehicles for an over-the-air (OTA) software update. The update modified the vehicle’s onboard charging system to detect any unexpected fluctuations in power and then automatically reduce the charging current. This is a perfectly reasonable course of action for what is essentially a 3,000-pound computer on wheels, but an OTA fix for a car? It was a seismic event for the automotive industry, as well as for the general public.
Tesla’s realization of OTA updates as the new normal for car maintenance was a big deal in and of itself. But the “recall” also provided an explicit example of how a world of smart, interconnected things will change the way people go about their lives and take care of the domestic minutiae that are part and parcel to the upkeep of physical stuff. It was also a glimpse into the future for many, including those whose jobs are to roll up their sleeves and physically repair cars. The event also called into question the relevance of NHTSA using the word recall, because no such thing actually took place, according to Tesla CEO Elon Musk. “The word ‘recall’ needs to be recalled,” Musk tweeted.
This was not the first time Tesla had pushed an update to one of its vehicles, but it was the most public, because it was ordered by a government regulatory authority. It also served as a reminder of the importance of computer security in this brave new connected world—although Tesla has assured its customers that cars will respond only to authorized updates.
Indeed, OTA updates will likely become routine for all cars for that very reason—timely security updates will be needed when hackers go after those 3,000-pound computers on wheels.
SEE ALSO Computers at Risk (1991), Smart Homes (2011), Subscription Software (2013)
Don’t think of the Tesla as a car with a computer; think of it as a computer that has wheels.”
Google Releases TensorFlow
Makoto Koike (dates unavailable)
“Cucumbers are a big culinary deal in Japan. The amount of work that goes into growing them can be repetitive and laborious, such as the task of hand-sorting them for quality based on size, shape, color, and prickles. An embedded-systems designer who happens to be the son of a cucumber farmer (and future inheritor of the cucumber farm) had the novel idea of automating his mother’s nine-category sorting process with a sorting robot (that he designed) and some fancy machine learning (ML) algorithms. With Google’s release of its open source machine learning library, TensorFlow®, Makoto Koike was able to do just that.
TensorFlow, a deep learning neural network, evolved from Google’s DistBelief, a proprietary machine learning system that the company used for a variety of its applications. (Machine learning allows computers to find relationships and perform classifications without being explicitly programmed regarding the details.) While TensorFlow was not the first open source library for machine learning, its release was important for a few reasons. First, the code was easier to read and implement than most of the other platforms out there. Second, it used Python, an easy-to-use computer language widely taught in schools, yet powerful enough for many scientific computing and machine learning tasks. TensorFlow also had great support, documentation, and a dynamic visualization tool, and it was as practical to use for research as it was for production. It ran on a variety of hardware, from high-powered supercomputers to mobile phones. And it certainly didn’t hurt that it was a product of one of the world’s behemoth tech companies whose most valuable asset is the gasoline that fuels ML and AI—data.
These factors helped to drive TensorFlow’s popularity. The greater the number of people using it, the faster it improved, and the more areas in which it was applied. This was a good thing for the entire AI industry. Allowing code to be open source and sharing knowledge and data from disparate domains and industries is what the field needed (and still needs) to move forward. TensorFlow’s reach and usability helped democratize experimentation and deployment of AI and ML applications. Rather than being exclusive to companies and research institutions, AI and ML capabilities were now in reach of individual consumers—such as cucumber farmers.
SEE ALSO GNU Manifesto (1985), Computer Beats Master at Go (2016), Artificial General Intelligence (AGI) (~2050)
TensorFlow’s hallucinogenic images show the kinds of mathematical structures that neural networks construct in order to recognize and classify images.”
2016 Augmented Reality Goes Mainstream
John Hanke (b. 1967), Satoru Iwata (1959–2015), Tsunekazu Ishihara (b. 1957)
“Pokémon GO® was a watershed event for the computer game industry and for augmented reality (AR). In the first two months, the game had 500 million downloads—roughly 7 percent of the world’s population, and one out of every seven people use a cell phone. It popularized the use of a smartphone’s camera to integrate real views of the physical world with superimposed computer-generated images associated with the phone’s actual physical location.
The game works by overlaying Pokémon characters onto live video images captured from the phone’s camera. Relying on smartphones’ GPS and motion sensors, characters appear in different physical locations as the player moves about the real world trying to find them. The basic objective is to find and catch as many of these characters as possible for points, privileges within the game, and opportunities for collaboration. Think of it as a scavenger hunt that connects the virtual and physical worlds.
Before Pokémon GO, it was often hard to explain AR to a person unfamiliar with the concept. The game’s design, popularity, and incessant news coverage alleviated that ambiguity, giving the general public an understanding of the technology—both its potential benefits, and its dangers. Imagine trying to refill the fluids in a car—standing there with your phone showing images of the engine compartment overlaid with arrows and indicators, perhaps fed directly from the car’s own computer. On the other hand, in Missouri, armed robbers used a move in the game to lure Pokémon players to a secluded location, where they were ambushed.
Satoru Iwata and Tsunekazu Ishihara at the Pokémon Company in Japan came up with the idea of the game; the program uses crowdsourced data from Ingress, a geo-based AR game from Niantic®, a company founded by John Hanke. The original Ingress game was an alternate-reality world created by game designer and screenwriter Flint Dille along with E. Daniel Arey.”
SEE ALSO Head-Mounted Display (1967), VPL Research, Inc. (1984), GPS Is Operational (1990)
A Pokémon player goes “fishing” for the Pokémon species Magikarp in Lake Windermere in the United Kingdom.
Computer Beats Master at Go
“The path for machine victory over the humans who play the ancient Chinese game of Go was not achieved through mathematical superiority, because Go is a very different game from chess.
Rather than the 8 × 8 grid for chess, Go is played on a 19 × 19 board, with each player having dozens of black or white stones. Each stone has the same value—unlike chess, in which the pieces are not all equal. The rules of Go are fairly straightforward—the two players try to surround each other’s stones and take territory from each other. However, because of the size of the grid, the number of potential positions in Go is staggering—considerably larger than the number of atoms in the Universe.
This sheer complexity is why intuition is so often cited as a key factor in winning the game, and why a computer program beating one of the best Go players that ever lived was considered so significant. As players add more stones to the board, the number of possible countermoves and counter-countermoves grows exponentially. As a result, brute-force “look-ahead” computing approaches to solving Go just can’t look far enough ahead: computers aren’t big enough. The Universe isn’t big enough.
AlphaGo® is the AI program that beat South Korean Go master Lee Sedol (b. 1983) in March 2016, in four out of five games, by adopting the same sort of strategic search strategies a human would. The program was created by the Google DeepMind team that evolved from Google’s acquisition of British company DeepMind Technologies, a British AI company that built a neural network to play video games like a human.
Lee Sedol did win once, however, so the computer did not dominate the match. In game four, white move 78, Lee Sedol found AlphaGo’s Achilles’ heel and made a move that so thoroughly confused the system that it started to make rookie mistakes, not recovering in time to save the game. The irony is that Sedol placed the stone where he did because AlphaGo had put him in a position where he saw no alternative move to make.
SEE ALSO Computer Is World Chess Champion (1997)
Go is played on a 19 × 19 board, with one player using black stones and the other using white stones, all possessing the same value.”