diff --git a/content/concepts/personalities.md b/content/concepts/personalities.md new file mode 100644 index 0000000000000000000000000000000000000000..45fcf845d1e38a8ce0f377a4e30a3861fe9db281 --- /dev/null +++ b/content/concepts/personalities.md @@ -0,0 +1,112 @@ ++++ +date = "2021-04-08" +weight = 100 + +title = "Apertis Personalities" + +outputs = ["html", "pdf-in"] + ++++ + +# Overview +Apertis is an ecosystem of resources that surrounds your product. From a high +level perspective, we are an aggregator of two software supply chains: the +Apertis catalog of enterprise-friendly open source software, and the +proprietary software stack that is specific and private to each product using +Apertis. + +An important part of our day-to-day work is the maintenance of the Apertis +catalog of open source software. There are three important dimensions: +* The Apertis project is active upstream: we consider each upstream project to + be our supplier, and our relevance increases with our involvement. We +contribute upstream to have an open channel to ask for help and to propose +future directions. +* The Apertis project is reactive: Because we are part of important upstream + communities, and because we understand their code base, we have in-house +knowledge of how these projects work. Our team can react quickly to any +disruption, such as a bug, or a security vulnerability. +* The Apertis project is flexible: Our broad understanding of the open source + ecosystem allows us to combine different building blocks to meet the unique +requirements of any specific product. + +Besides the enterprise-friendly catalog of open source software, Apertis is +also an elaborate set of infrastructure services to support the development and +testing of the entire software stack of your product. At its lowest level the +infrastructure is used for the development and testing of Apertis itself, and +on top of it we encourage you to do the development and testing of the software +components that are private to your product under the Apertis infrastructure. +The motivation here is to offer an easy way to follow best practices of +integration. + +As a general principle Apertis is flexible and we allow the developer to choose +the combination of building blocks that are best suited for each specific +product. We offer up to package level granularity that allows for precise +control of which software components will be present in an image. This level of +customization is important for Apertis, but making all the micro decisions for +selecting every package is not always desired. Some developers are looking for +an image to use as a starting point. + +At the time of writing this document, we have identified four basic images for +Apertis: +* Fixed function device: represents an appliance or a fixed function setup, + meaning that the functionality cannot be extended by installing extra +software on top of the base system. +* Industrial IoT device: Similar to the fixed function device as there is + little to none user interaction, however these devices are not fixed function +and are expected to run edge workloads. These devices are usually intended to +acquire data from sensors, and then either act on them or relay it to a cloud +infrastructure. This system can be extended by running containers which are a +good fit for edge workloads. +* HMI device: Typically this device will have a modern graphical user interface + driven via a touch screen and may include other capabilities such as audio +input and output. This system can be extended by installing new applications +using flatpak. +* SDK: The Apertis software Development Kit is not intended to be the base for + a product, but it enables smooth development and comes with all the tooling +that the developer needs. + +This means that there are currently two ways to start creating with Apertis: a +developer can select the exact set of packages that will compose the image for +a product, or the developer can use one of the existing images as starting +point and then adjust the package selection. + +These are solid starting points, but even with the scope limited to the +contents of the image, we already have overlaps of functionality. We expect +that as the use cases evolve in complexity, contextualizing each use case, and +each building block becomes a challenge. + +We can use Flatpak to illustrate this challenge. Flatpak is a utility for +software deployment and package management for Linux. It offers a sandbox +environment in which users can run application software in isolation from the +rest of the system. When we brought Flatpak into Apertis we had one main use +case in mind: A device running the HMI image with an appstore. Flatpak is +suitable for handling the installable applications from a variety of +perspectives, including security. + +However the fact that we brough Flatpak into Apertis does not mean that we will +force Flatpak on every scenario that includes installable applications. This is +where the notion of Apertis Personalities becomes relevant. An Apertis +Personality is the minimal combination of characteristics or qualities that +form an individual and distinctive Apertis based solution. So for an Apertis +Personality that uses an appstore for user facing graphical applications, +Flatpak is a good choice. + +Apertis as a project favors flexibility over distinctive choices, and we do so +by design. While there is a core set of technical and non-technical principles, +the project offers very broad latitude. In this sense the idea of Apertis +Personalities allow us to keep the flexibility at a project level while +offering more value to specific use cases as we allow personalities to +potentially deviate quite far from one another. + +The scope of an Apertis Personalities goes beyond the content of the image and +can include: +* Cloud services such an appstore or an edge workload orchestrator +* Software deployment Fleet management +* Non-functional requirements such as power consumption, and performance +* Workflows such as development and testing +* Security features such as trusted boot and TEE +* ... + +Another advantage we expect from Apertis Personalities is to open a new door +for contributions. Service oriented personalities such as a personality for the +Bosch IoT suite can be a benefit for Apertis and for the Bosch IoT suite.