Date: Thu, 28 Mar 2024 13:08:49 +0000 (UTC)
Message-ID: <17454311.11471.1711631329423@aws-us-west-2-edgex-confluence-1.web.codeaurora.org>
Subject: Exported From Confluence
MIME-Version: 1.0
Content-Type: multipart/related;
boundary="----=_Part_11470_658145912.1711631329423"
------=_Part_11470_658145912.1711631329423
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Content-Location: file:///C:/exported.html
Fuji Release
Fuji Release
Code Freeze: Oct 23, 2019
Release: Nov 15, 2019
The Fuji release is a minor release (EdgeX v1.1) that is intended to "ha=
rdened" the services, improve testing, and provide performance measures tha=
t give the user community even more trust and faith in the EdgeX platform f=
rom which IoT solutions are created.
Release Themes and Object=
ives
- Improve unit, black box and performance testing - increasing the test c=
overage and providing the means to identify breaks, performance problems or=
other issues in the code base sooner.
- Improved security features including use of Vault to store service secr=
ets (ex: database username/password), improved PKI management, isolat=
ing micro service secrets in separate secret stores and ensuring the servic=
es running are those expected/trusted.
- Introduce EdgeX service self-assessment - the first step towards a prog=
ram of EdgeX replacement micro service certification.
- Provide for the initial store and forward functionality; providing Edge=
X the means to handle periods of being disconnected from north side systems=
by holding reading data until the system can re-establish connectivity and=
then forwarding the captured data.
- Improve upon the initial application services (and application function=
s SDK) - the new and more scale-able means of sending data to north side sy=
stems - with expectation of archiving/sun-setting EdgeX export services in =
the next release.
- Provide example application services to get data to Azure IoT Hub and A=
mazon IoT Core.
- Add additional device services to include BACNet, BLE and IP Camera con=
nectors.
- Restart the EdgeX marketing work group.
Application Wor=
king Group Tasks and Notes
- With the Fuji release, the application services should be 100% function=
al replacements for export services (client and distro). This include=
s adding the following functionality to the application functions SDK for F=
uji:
- MQTTS/HTTPS support (and use of Vault for necessary keys, tokens, passw=
ords, etc.)
- Compression function
- Encryption function
- An earlier decision not to support cloud IoT platforms directly was rev=
isited and in the Fuji release, the new application services will now provi=
de example services that get data to some of the large cloud providers such=
as Amazon IoT, Azure IoT Hub. Adding support for Google IoT Core or Chines=
e cloud providers like Tencent or Alibab is a stretch goal.
- Although sticking with the Drools/Rules Engine service for now (see res=
earch goals below), explore OpenJDK support and update the Rules Engine ser=
vice JVM as necessary.
- Research rules engine replacement options.
Core Working Group Tas=
ks and Notes
- Provide watchers and callbacks for all config and metadata changes (str=
etch goal)
- Update Consul to 1.4
- Address some critical refactoring to include
- Making sure infrastructure touching code is decoupled and easier to tes=
t
- Address current typing issues that are not helpful to adding more unit =
testing (more encapsulated types for tests)
- Setting up better transactional boundaries
- Addressing issues around Value descriptor & Device Profiles out of =
sync when changes occur
=
Device Service SDK and Device Services Group Tasks and Notes
- Priority of work for this release in the DS/DS SDK area is in adding bl=
ackbox tests (defined by a test plan) to the SDK (and thus device services)=
.
- Create a generic IP camera device service (using ONVIF protocol where p=
ossible)
- Time permitting, additional goals (as stretch) for this release include=
:
- Allow for the deregistration of devices/device services
- Provide dynamic/automatic discovery scaffolding in the SDKs to allow de=
vice services to automatically discover and provision new devices at the DS=
creators discretion. This may include the need to establish black/wh=
ite lists of devices to explicitly include or exclude from that discovery.<=
/li>
- The SDKs will implement a means to provide a cache of readings. This al=
lows the collection and response for a request of a reading to be decoupled=
(and more asynchronous). https://github.com/=
edgexfoundry/edgex-go/issues/829
Security Group Tasks and =
Notes
- In the Fuji release, PKI infrastructure will be added to generate the t=
okens and keys necessary to use Vault, Kong and other security services.&nb=
sp; Today, EdgeX relies on the keys to be generated elsewhere and then used=
by security apparatus.
- EdgeX micro service secrets will be stored and distributed per service =
in Vault (using namespaces). Today, all services access the secret st=
ore with the same key and therefore have access to all secrets.
- Include technology to ensure services running in EdgeX are thos expecte=
d (and authorized).
- By the Fuji release, the EdgeX community will define/design a hardware =
secure storage abstraction layer that will include a software implementatio=
n and allow platform providers to build hardware root of trust implementati=
ons that can be used by EdgeX to protect the Vault Master Key and other fun=
damental system secrets used at bootstrap time.
- Add documentation defining, a higher level, what security features Edge=
X offers and what is the security feature roadmap of EdgeX. Additiona=
lly, the community will renew/refresh a threat assessment.
System Management=
Group Tasks and Notes
- Refactor the SMA executor to accomplish Start/stop/restart tasks by the=
executor (to include stop/restart of SMA). This requires the executo=
r track completion of the operations and returns results.
- Refactor metrics collection - moving metrics collection to the executor=
so that it can remain platform and even service implementation agnostic.=
li>
- Add the ability of the SMA to set configuration (when the configuration=
is writable). Today the SMA can only get the configuration informati=
on from each service.
- As a stretch goal, add an SMA Translation layer. The SMA will pro=
vide a translation layer (implemented via necessary abstraction) to offer t=
he SMA API (and associated data) via other protocols starting with one prot=
ocol (like LWM2M or SNMP). In effect, SMA will provide access to SMA API an=
d control plane data in a fashion similar to how Application Services makes=
data plane available to 3rd parties in a fashion dictated by those 3rd par=
ty clients. https://github.com/edgexfoundry/e=
dgex-go/issues/835
Certification Group =
Tasks and Notes
- Provide self-assessment of device services by EOD 2019 (with a stretch =
goal of self-assessment of all services).
- This effort requires device service black box tests in the Fuji release=
.
- Create a web page highlighting 3rd party services that have been self c=
ertified
- A certification program - once in place - will allow third parties crea=
ting EdgeX services to verify their services as alternative or enhancing ca=
pability to those provided by the EdgeX open source effort. This will allow=
3rd parties to add value (proprietary or open source) to EdgeX that custom=
ers can rely on to meet the EdgeX APIs and work without additional code cha=
nge (enable a plug-and-play ecosystem). Various levels of certification are=
being considered, from micro service replacement certification (validating=
alternate or commercial implementations of EdgeX micro services satisfy AP=
I requirements along with performance metrics and quality checks) to full E=
dgeX deployments (for commercial versions of EdgeX). Additional certificati=
on processes may be developed around particular cross cutting features such=
as security.
Test/QA/Docu=
mentation Group Tasks and Notes
- Improve and increase performance metric capture from all services. =
; The goal is to, by the Geneva release, be able to answer 3 primary perfor=
mance questions:
Will EdgeX fit on my system? - size of EdgeX services, infrastructur=
e, etc. and hardware/platform requirements
What is the speed of data through the system? - from device service =
sensor data ingestion to the rules engine and back down through command to =
another device service to trigger a put command, how long does this take?=
p>
How many =E2=80=9Cthings=E2=80=9D can be processed at a time? =E2=80=
=93 with caveats on the type of thing, type of data, etc.
Improve blackbox test structure including reorganization of the test=
s and better test case documentation.
Create a new test framework (e.g. Robot or Cucumber) to support addi=
tional types of functional/blackbox and system integration tests (e.g. Devi=
ce Service or system level latency tests).
- Remove documents from the other code repositories to its own repository=
Add performance testing automation. Specifically:
Automate API Load testing (measure response time) and metrics (CPU, =
memory) collection for all EdgeX micro services
Edgex micro service startup times
- Improve the documentation to address some critical and re-occuring need=
s:
- Add a documentation versioning tool (like Sphynix)
DevOps Group Tasks and Note=
s
- Add static artifact analysis into the EdgeX Jenkins Pipeline (analysis =
of Docker /runtime artifacts, not the source code)
- Add code and artifact signing with semantic versioning
- Conduct build performance optimizations by:
- Adding Pipelines for EdgeX Foundry base build images
- Allow basebuild images to be managed locally within Nexus
- Leverage PyPi Proxy for local pip dependencies
- Explore static code analysis like Coverity.
General Tasks and Notes
- Move to Go 1.12 (evaluate and possibly move to Go 1.13 on its arrival)<=
/li>
- EdgeX will move from RAML to Swagger for API documentation
- Use nanoseconds for all Event/Reading timestamps (a change from millise=
conds).
- Update the EdgeX "Offerings" page on the EdgeX Website to highlight 3rd=
parties offering EdgeX products and services.
- Research options for better building/packaging/using alternate infrastr=
ucture elements that would have been accomplished by Go Plugins if not for =
the fact that this Go Lang feature is not supported and apparently dying.=
li>
- Reconstitute the EdgeX marketing working group - lost with the LF Edge =
umbrella project creation. This working group will serve to meet EdgeX mark=
eting needs (event planning, promotional material, etc.) as well as provide=
the LF Edge Marketing Group with EdgeX feedback and insure EdgeX marketing=
needs are satisfied.
- Capture unit, integration, and other testing coverage metrics so that t=
he test coverage can be prepared at each face to face meeting. This w=
ill help address the need to implement a test coverage metric in the future=
.
- Elect a new release manager for Fuji and each subsequent release. =
In order to address pace of change issues, the release manager will attemp=
t to implement release milestones like "no new functionality" dates.
------=_Part_11470_658145912.1711631329423--