Customizable microservice architecture
Every feature of the Kaa platform, such as messaging or visualization, is essentially a collection of microservices that perform their specific functions. Microservices simplify customization and ensure effective separation of concerns between different parts of the platform.
The Kaa microservices interact via open APIs and can be integrated with third-party systems and rearranged according to your needs. You can even skip those microservices that you don’t need or replace any of them with your own components.
Freedom of technology
Following the industry best practices, Kaa runs its microservices in Docker containers. This means you can use your favorite DevOps tools when implementing Kaa-based solutions in any environment.
Moreover, Kaa uses well-defined interfaces based on REST and NATS, which makes it technology agnostic and allows you to develop and deploy applications written in virtually any programming language.
Scalable, elastic, and self-healing
Kaa is scalable by design and can be elastically expanded by simply adding more servers to the Kaa cluster. With Kaa, you can reliably support as many endpoints as you need.
The platform ensures stability of operation by utilizing a highly available type of deployment: every service replica is equally important with no master-slave relations and no single point of failure.
Together with the self-healing capabilities provided by a container orchestration system, such as Kubernetes, this helps restore the platform upon any failures.
Freedom of deployment
You are free to deploy Kaa services anywhere you prefer. You can do that at your own data center premises—either bare metal or virtual machines—or you can host Kaa on some public cloud infrastructure.
The platform is also perfect for hybrid deployments, for example, when a company runs Kaa in its own data center and scales it into the cloud whenever the performance demand increases.
Private cloud and on-premises deployment options provide the full control over the system, which is often a requirement in stringent security domains.
Open IoT protocols
The Kaa platform supports messaging with the devices via MQTT and CoAP. These two are widely used IoT protocols that have dozens of implementations for all mainstream languages.
Application-level protocols of Kaa by default use widespread JSON encoding available in all programming languages.
The Kaa protocols are developed via a transparent RFC process and are completely open.
Depending on the type of your devices, you can choose between two device connectivity options: either connect them directly or via an IoT gateway. Using the gateway, you can have a multiplexed connection where the gateway uses one server connection to communicate messages to/from multiple devices, as opposed to having an individual connection for each device.
IoT gateway also comes in handy when your devices do not support any of the Kaa protocols, because it can convert the data semantics and content of the device messages into protocols supported by the Kaa platform.
Using such gateway may be the only option for sensors with tiny computing power, devices within local IoT environments, such as LoRaWAN or ZigBee, or legacy devices that do not offer access to their source code or firmware.
By default, Kaa communication with devices is secured with TLS or DTLS. Devices authenticate the server by checking its TLS certificate; the Kaa server supports a variety of methods for device authentication, from none at all to preshared keys to checking the client-side TLS certificates.
Also, Kaa features flexible credentials lifecycle management, which allows you to provision, suspend / unsuspend, and revoke device credentials.
Kaa Application defines a separate type of device that has a unique set of functions and capabilities: consider a fitness tracker, a car, or a telecom retransmitter. Every Kaa endpoint is attributed to one Application. This helps organize your device ecosystem, isolate the device management functionality, and manage data flows in the platform. One Kaa Solution cluster can support multiple Kaa Applications, allowing for cross-Application interaction.
By design, Kaa supports flexible application versioning. Different application versions allow you to define different functions and capabilities for your endpoints. For example, as your IoT solution evolves over time, some new capabilities may be introduced, while others retired.
Importantly, the Kaa platform maintains support of all application versions used by your devices in the field. This greatly speeds up the evolution of your IoT solution from an MVP to a market winning product.
Kaa solution blueprint is a declarative definition of an IoT solution. It fully defines the system functionality by declaring the necessary microservices along with their configurations.
Blueprints are stored in human-readable, plain text files and empower you with the Infrastructure as Code approach for managing your clusters.
One blueprint can be used to reliably deploy identical instances of the same solution to your various environments: development, testing, staging, production, etc.—even when they sit at different infrastructure providers.
Built on open components
The Kaa platform relies upon a variety of popular, proven, and well-tested open-source components. This type of design dramatically improves a learning curve for new users and makes Kaa open and highly customizable up from its very core.
Services from vendor
The Kaa IoT Platform is commercially supported by the KaaIoT company. As the creator of Kaa and its main contributor, KaaIoT brings its vast expertise to ensure quick delivery of our clients’ IoT solutions, significantly reduce project risk and cost, help their teams learn how to best use Kaa, and provide enterprise-grade production support and maintenance services.
Kaa vendor services include professional and engineering assistance to client teams, as well as production support. For more information, visit KaaIoT website.