The EdgeX Foundry was launched to tackle complexity, providing an open-source, vendor-neutral community devoted to creating cross-platform middleware for IoT edge computing applications. For a production-scale IoT project to be successful often requires not just ensuring that a diverse set of technological pieces work together seamlessly, but requires rethinking core technologies that have existed for decades, whether that is hardware, communication protocols or security. As Jim White, distinguished engineer from Dell Technologies IoT solutions division and member of the EdgeX Foundry technical steering committee, has said: “IoT is a post-doctorate in all we know and have done in computing for the last 30 to 40 years.”
The EdgeX Foundry’s first code release was known as Barcelona, which it describes on its Wiki as “a minimum viable product (MVP) for further accelerating community contributions.” Revealed in October of last year, Barcelona offered broad support for communication protocols, offering an array of microservices deployed via Docker and Docker Compose. Barcelona featured contributions from across the EdgeX membership, which at that point consisted of 60 companies and grew to include more than 75. While the EdgeX project officially commenced in April 2017, the Barcelona code had its roots in a Dell interoperability and connectivity project known as Project Fuse that began in July 2015.
The Linux Foundation–affiliated EdgeX Foundry recently debuted its second major code release, dubbed “California,” that takes that same philosophy toward simplifying complexity, but turns it inward.
Most notably, the new software is much leaner and runs faster. The Barcelona prior release occupied 267 MB worth of space, or 519 MB with a container. By contrast, the California version has a footprint of 42 MB or 68 MB, respectively. In a test simulating 100 devices, the total memory use for Barcelona was 1,302 MB. For California, the corresponding figure was 27 MB, nearly 98 percent less. In the tests, the startup time per service with Barcelona was less than one second per service — a considerable decrease from the approximately 35 second-per-service startup time for Barcelona. One central factor enabling those improvements was a switch from Java to Go, which also frees companies deploying EdgeX commercially from having to pay Oracle licensing fees.
The California platform’s small footprint allows it to run on a Raspberry Pi 3 board, which offers 1 GB RAM, a 64-bit CPU and flexible storage options. The EdgeX target for California was 32 GB worth of storage space. The California release also adds support for ARM64 processors.
The new release also offers security capabilities that its predecessor Barcelona lacked, including a reverse proxy to protect REST API communications and secrets store. An open source product known as Kong enables the reverse proxy, requiring any external client of an EdgeX micro service to first authenticate before accessing the API.
Before the California release, EdgeX software users incorporated their own security, resulting in a variety of diverging approaches — and again, an appreciable amount of complexity that does little to create a consensus on best security practices. By contrast, the new release features input from a variety of security-focused companies including RSA, Thales, Analog Devices, Mocana and ForgeRock.
The next release for EdgeX, dubbed Delhi, is due in October. Delhi will offer new security and management capabilities.