Our microservices
TeskaLabs products and technologies employ heavily microservice architecture. It means that each product consists of many so-called microservices that operate independently. Such an architecture provides implicit scalability (you can run many microservice instances); and high availability (you can run microservices in various locations).
ASAB
asab-config
: Configurations
Management of the configurations for other microservices. Provides means for integration with user interface and dynamic reload of the services affected by the configuration changes.
asab-library
: The library
The library contains the content (aka artefacts) used by other microservices. The content of the library is provided by the vendor and users can create and manage their own custom libraries.
asab-print
: Exports, prints and emailing
The service manages exporting to structured formats suitable for reading, printing and also as eg. email attachments.
asab
: Framework for microservices
Asynchronous Server App Boilerplate (ASAB) is a micro-service framework for Python. All Python-based microservices in the ecosystem are powered by ASAB.
asab-webui
: Framework for React-based Web UIs
Frontend (web) framework that is companion to ASAB. It provides base for user-facing applications that interacts with (not only) ASAB-based microservices.
BitSwan
bs-pump
: Real-time stream processor
A real-time stream processor.
bs-query
: Data exporter
This microservice provides data export features. It exports data from all base technologies such as ElasticSearch, Apache Kafka and even microservices APIs. The output could be CSV, Excel, HTML and other formats. Users may download exports from the Web UI or receive emails with attached exports. Exports can be scheduled up-front including recurring schedules.
bs-webui
: React-based Web UIs
An extension to asab-webui
framework that adds data and stream oriented components such as data widgets and dashboards.
SeaCat
seacat-auth
: Authentication and Authorization
SeaCat Auth provides authentication, authorization, identity management, session management and other access control features.
seacat-pki
: Public Key Infrastructure
SeaCat PKI implements Public key infrastructure services to create, manage, distribute, use, store and revoke digital certificates and manage public-key encryption.
SeaCat PKI offers support for X.509 and C-ITS families.
seacat-auth-webui
: Login form and self-care Web UI
SeaCat Auth WebUI is a dedicated user interface for secure login and self-care user profile management.
seacat-webui
: SeaCat Administration Web UI
Web User Interface for management of seacat-auth
and seacat-pki
.
It provides an internal administration capabilities for admins and operators of Auth and PKIs.
LogMan.io
lmio-collector
: Log collection
The LogMan.io Collector is responsible for log extration and collection for TeskaLabs LogMan.io.
It is designed to operate in remote locations and it forwards collected logs securely to lmio-ingestor
.
lmio-ingestor
: Ingestion in the central system
The LogMan.io Ingestor is a central component responsible for receiving logs and other events from lmio-collector
and feeding them into the central LogMan.io instance.
LogMan.io Ingestor can be integrated with other log collecting technologies such as Logstash, Elasitc Beats, syslog-ng and nxlog.
lmio-parser
: Log parsing
The LogMan.io Parser is responsible for parsing, normalization, enrichment and schema enforcing of the incoming logs and events. It is a central component.
lmio-dispatcher
: Log forwarding
The LogMan.io Dispatcher is responsible for storing logs and other events in the persistent storage of the LogMan.io (ElasticSearch, OpenSearch and so on).
lmio-lookup
: LogMan.io lookups
This microservice manages lookups, which are auxiliary tables with various lists that supports event enrichment, correlations and other analytical functionalities of LogMan.io.
Lookups can be filled manually, over API or automatically from eg. correlation rules.
lmio-correlator
: Correlation of logs an events
An advanced component responsible for event correlations and hence detection of the complex events based on observed patterns in event streams. The correlator supports persistency, which means that it can correlate events in very long time windows.
The correlators use correlation rules, defined provided by the vendor or created by users.
lmio-integ
: Integrations
The microservice used for outbound integrations with third party systems such as SIEMs, SOARs and so on.
lmio-webui
: LogMan.io Web UI
The web-based user interface of LogMan.io.
SP-Lang
splang
: Language server
The microservice that provides language services for SP-Lang.
splang-webui
: SP-Lang related Web UI components
The user interface components related to SP-Lang, such as Blockly integration for visual programming or Apollo for computer-aided development of SP-Lang expressions.
C-ITS
cits-ea
: C-ITS Enrollment Authority
A microservice that provides administrative functions of C-ITS Enrollment Authority.
cits-ea-portal
: C-ITS Enrollment Authority User Portal
Web user interface for cits-ea
.
It provides self-care functions for users of C-ITS Enrollment Authority.
3rd Party
ElasticSearch
ElasticSearch is a schema-less database and a search (indexing) engine which enables storing and fast searching for individual events. ElasticSearch keeps data in the form of so called JSON documents stored within so called indexes – including their versing. In order to reach maximum scalability, the size of indexes can be modified automatically depending on the size of data or time window. To store data and create queries over them, ElasticSearch makes use of REST API. ElasticSearch is operated in a so-called cluster. Individual computing node determine the master junction all by themselves. ElasticSearch offers the possibility of acquiring information in real time as well as in batches.
Apache Kafka
Apache Kafka (Kafka for short) is a stream-processing software platform which makes it possible to gather data within so called topics and enables individual consumer processes connected to read them in publish-subscribe or producer-consumer regimes. Kafka provides a flexibility in terms of integrated systems (log sources) as well as a throughput and real-time capabilities. Kafka is operated in a cluster in order to provide high-availability feature.
Apache Zookeeper
Apache ZooKeeper is an open-source server for highly reliable distributed coordination of microservice-based applications. It is a project of the Apache Software Foundation.
InfluxDB
InfluxDB is an open-source time series database developed by the company InfluxData. It is designed as the storage and retrieval of time series data in fields such as operations monitoring, application metrics, Internet of Things sensor data, and real-time analytics.
Kibana
Kibana is a visualisation tool (GUI) which enables to search data in ElasticSearch database interactively. It is a web application – it is therefore possible to access it via web browsers like Google Chrome, Mozilla Firefox, Microsoft Explorer etc. Kibana also supports access from mobile phone browsers. Users of Kibana can easily set time windows as well as other filters. Kibana is also able to search according to key words through search fields. Kibana enables to easily create visualisations, dashboards and time graphs capable of displaying the development of more complex metrics and aggregations in time. Visualisations include creation of tables, graphs, diagrams and maps and thus make it possible to get fast insight into the nature of information included in data.
Grafana
Grafana is a multi-platform open source analytics and interactive visualization web application. It provides charts, graphs, and alerts for the web when connected to supported data sources.
ZooNavigator
ZooNavigator is a web-based ZooKeeper UI and editor/browser with many features.