A glossary of terms for Micro
Micro has a number of overloaded meanings. This document serves as a single source for all those, categorised by open source and product related things.
Micro itself is an overarching brand, company, product and project. As Apple, Google and others have gone through an evolution they have moved beyond the Apple Computer and Google Search Engine. Micro too moves beyond its original offering of a Framework for microservices development.
Micro is a:
- Brand
- Company
- Project
- Product
- Ecosystem
As a brand Micro takes something of a developer centric world view looking to become the focal point for all developer needs and then moving beyond to be seen and used by businesses and consumers.
Micro is the company Micro Services, Inc. A globally distributed technology company focused on delivering tools and services to simplify Micro Services development. Micro is primarily a "services" company. Meaning we deliver Services to developers and end users via our M3O platform.
Micro started life as an open source project. A Go Framework for microservices development. It has thrived as a Framework and gone on to also become a Runtime and Platform.
At a high level Micro provides the following as open source:
- Framework - Go framework for Micro services development
- Runtime - A runtime environment (aka operating system) for Micro services
- Platform - A managed Cloud platform to run Micro as a Service
- Network - Build, share and collaborate on services from anywhere.
- Services - A set of reusable Micro services. Building blocks.
A few terms that are overloaded
- Service - is a Go Micro service and the service provided to an end user
- Runtime - is an abstraction for running services, a service itself and described as the Micro Runtime which is a microservices OS.
- Platform - is a running copy of the Runtime and a service which provides a layer of abstraction on top
- M3O - is a platform for microservices development. Bootstrapped by the OSS Platform automation it provides Micro as a Service and a shared Runtime in the Cloud for developing services.
- Cloud - is M3O as a paid product which allows others to have their own private managed version of Micro as a Service.
Micro is an ecosystem which encompasses the totality of it as a project, product, platform and network. Key pieces of the ecosystem.
- Community - a shared place to collaborate
- Platform - a place to run and reuse services
- Marketplace - a way to buy, sell and share services
We are continuously evolving the meaning of Service where today it stands for a backend Micro service consumed by other services, but in the future there will be far more businesses and consumers centric in us offering Services to end users.
For the time being we are creating a line between Apps and Services.
- Apps - are User centric services consumed via Web or Mobile
- Services - are a Dev centric services consumed via RPC or APIs
Apps can also reference serverless Apps thought of as applications.
What are cloud services and why are we a "development platform for cloud services"?
A cloud service is essentially an end service delivered to a user through the Cloud. The future of software development is cloud-native and the tools we provide are largely geared towards that model therefore Micro is a development platform for cloud services.
For more on Cloud services https://www.citrix.com/glossary/what-is-a-cloud-service.html