3.1 KiB
Software Architecture Overview
This document provides an overview of Fleet's Software architecture.
Introduction
Fleet's Software architecture is designed to manage software across the device fleet, including software inventory, vulnerability management, and software installation. This document provides insights into the design decisions, system components, and interactions specific to the Software functionality.
System Components
The Software architecture consists of the following main components:
- Software Inventory: The component that collects and manages information about installed software.
- Vulnerability Management: The component that identifies and manages software vulnerabilities.
- Software Installation: The component that manages the installation of software on devices.
- Software Updates: The component that manages software updates on devices.
- Software Policies: The component that defines and enforces software policies.
Architecture Diagram
[Placeholder for Software Architecture Diagram]
Software Inventory
The Software Inventory component collects and manages information about installed software on devices. It leverages osquery's capabilities to collect software information and Fleet's infrastructure to process and display it.
Inventory Collection Flow
- osquery agent collects software information using osquery tables.
- osquery agent sends the information to the Fleet server.
- Server processes and stores the information in the database.
- UI displays the information to users.
Vulnerability Management
The Vulnerability Management component identifies and manages software vulnerabilities in the device fleet. It compares installed software versions with known vulnerabilities and provides information about affected devices.
Vulnerability Identification Flow
- Server retrieves software inventory information from the database.
- Server compares software versions with vulnerability databases.
- Server identifies vulnerable software and affected devices.
- UI displays vulnerability information to users.
Software Installation
The Software Installation component manages the installation of software on devices. It leverages platform-specific mechanisms to install software packages.
Installation Flow
- User initiates software installation through the UI or API.
- Server sends installation instructions to the device.
- Device installs the software using platform-specific mechanisms.
- Device reports installation status to the server.
Integration Points
The Software architecture integrates with the following components:
- Fleet Server: For device management and software inventory collection.
- Database: For storing software inventory and vulnerability information.
- External Vulnerability Databases: For retrieving vulnerability information.
- Platform-Specific Installation Mechanisms: For installing software on devices.
Related Resources
- Software Product Group Documentation - Documentation for the Software product group
- Software Development Guides - Guides for Software development