Microservices Architecture – Glossary
An Application Programming Interface (API) is a set of functions, procedures, methods, or classes used by computer programs to request services from the operating system, software libraries, or other service, either locally or via a web-based application or service.
Architecture is the structure of components, their inter-relationships, and the principles and guidelines governing their design and evolution over time.
Capital Expenses (CapEx) and Operating Expenses (OpeEx) are two different basic categories of business expenses. They differ in the nature of the expenses and their respective treatments for tax purposes.
Cloud computing is a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort.
Continuous Deployment (CD)
Continuous Deployment (CD) can be thought of as an extension of Continuous Integration, aiming at minimizing lead time, the time elapsed between development writing one new line of code and this new code being used by live users, in production.
Continuous Integration (CI)
Continuous Integration (CI) is a development practice that requires developers to integrate code into a shared repository several times a day. Each check-in is then verified by an automated build, allowing teams to detect problems early.
DevOps (a clipped compound of “development” and “operations”) is a culture, movement, or practice that emphasizes the collaboration and communication of both software developers and other Information Technology (IT) professionals while automating the process of software delivery and infrastructure changes.
Domain-Driven Design (DDD)
Domain-Driven Design (DDD) provides a set of principles and methods to manage complexity by identifying core and ancillary domains and addressing Architecture, Development, Operations, Teams, etc. within the Bounded Context of each domain.
Architecture governance is the practice and orientation by which Enterprise Architectures and other architectures are managed and controlled at an enterprise-wide level.
Decomposition of the functions performed by a software application to determining the size of work performed by a single task.
Internet of Things (IoT)
The Internet of Things (IoT) is the network of physical objects – devices, vehicles, buildings, and other items embedded with electronics, software, sensors, and network connectivity – that enables these objects to collect and exchange data.
An individual microservice is a service that is implemented with a single purpose, that is self-contained, and independent of other instances and services. A microservice is a primary architectural building block of a Microservices Architecture.
Microservices Architecture (MSA)
Microservices Architecture (MSA) is a style of architecture that defines and creates systems through the use of small independent and self-contained services that align closely with business activities.
A monolithic application describes a single-tiered software application in which the user interface and data access code are combined into a single program from a single platform. A monolithic application is self-contained, and independent from other computing applications.
Object-Oriented Design (OOD)
Object-Oriented Design (OOD) is the application of object-oriented methodology to the design of computer systems or applications.
Application resilience is the ability of an application to react to problems in one of its components and still provide the best possible service.
SOLID is an acronym coined by Rob Martin distilling the first five principles of a class in OOD.
- SRP: The Single Responsibility Principle – a class should have one, and only one, reason to change.
- OCP: The Open Closed Principle – you should be able to extend the behavior of a class without modifying it.
- LSP: The Liskov Substitution Principle – derived classes must be substitutable for their base classes.
- ISP: The Interface Segregation Principle – make fine-grained interfaces that are client-specific.
- DIP: The Dependency Inversion Principle – depend on abstractions, not on concretions.
Scalability is the capability of a system, network, or process to handle a growing amount of work, or its potential to be enlarged in order to accommodate that growth.
Service-Oriented Architecture (SOA)
A Service-Oriented Architecture (SOA) is an architectural pattern in computer software design in which application components provide services to other components via a communications protocol, typically over a network. The principles of service-orientation are independent of any vendor, product, or technology.
Web-Oriented Architecture (WOA)
Web-Oriented Architecture (WOA) is a software architecture style that extends SOA to web-based applications.