Senior R&D Engineer, Nordic Semiconductor, Trondheim
Software crafter. Code donor. Mentor. Speaker. Conference & Community builder. Camper.
Pronouns: he/him
First full time cloud engineer working on nrfcloud.com building Software-as-a-service (Saas) offering.
Application Group to work on on open-source end-to-end examples of real world IoT products.
Enable new aproaches to conserve and protect resources and make smarter, real-time data-driven decisions.
for medium throughput applications requiring low power, low latency and/or mobility
for static, low throughput applications requiring low power and long range
Typical IoT Data Protocol Configuration
Because the latest state should be immediately visible: buffer data in a Digital Twin.
Cellular IoT devices need to send data about past events: they will be offline most of the time.
{
"v": {
"lng": 10.414394,
"lat": 63.430588,
"acc": 17.127758,
"alt": 221.639832,
"spd": 0.320966,
"hdg": 0
},
"ts": 1566042672382
}
“default” data protocol for IoT (AWS, Azure, Google Cloud)
👍 human readable
👍 schema-less (self-describing)
👎 overhead
GPS location message
02 36 01 37 51 4b 73 2b
d4 24 40 09 68 06 f1 81
1d b7 4f 40 11 68 cd 8f
bf b4 20 31 40 19 e6 5d
f5 80 79 b4 6b 40 21 1a
30 48 fa b4 8a d4 3f 29
00 00 00 00 00 00 00 00
09 00 e0 cf ac f6 c9 76
42
JSON
114 bytes
without newlines
Protocol Buffers
65 bytes (-42%)
source
developers.google.com/protocol-buffers
GPS location message
A2 61 76 A6 63 6C 6E 67
FB 40 24 D4 2B 73 4B 51
37 63 6C 61 74 FB 40 4F
B7 1D 81 F1 06 68 63 61
63 63 FB 40 31 20 B4 BF
8F CD 68 63 61 6C 74 FB
40 6B B4 79 80 F5 5D E6
63 73 70 64 FB 3F D4 8A
B4 FA 48 30 1A 63 68 64
67 00 62 74 73 1B 00 00
01 6C 9F 6A CC FE
JSON
114 bytes
without newlines
CBOR
86 bytes (-24%)
source
Look into denser data protocols!
JSON is for Humans.
common protocol for “ecommerce” cloud vendors
(AWS, Azure, Google Cloud)
Serverless [architectures] are application designs that […] run in managed, ephemeral containers on a “Functions as a Service” (FaaS) platform.
By using these ideas, […] such architectures remove much of the need for a traditional always-on server component.
[They] may benefit from significantly reduced operational cost, complexity, and engineering lead time, at a cost of increased reliance on vendor dependencies and comparatively immature supporting services.
Serverless computing allows me to focus on implementing the solution, and not spend time on maintaining the infrastructure needed to execute it.
Instead of restarting the instance,
I can update an individual function.
With Lambda, you can run code virtually with zero administration of the underlying infrastructure. You are responsible only for the code that you provide Lambda, and the configuration of how Lambda runs that code on your behalf.
Node.js, Python, Ruby, Java, Go, .NET Core
Anything that runs in Amazon Linux 2.
Lambda is best suited for shorter, event-driven workloads, since Lambda functions run for up to 15 minutes per invocation.
/tmp
size: max 512 MBLambda provides function version level isolation:
Execution environments are isolated from one another using several container-like technologies. Amazon open-sourced their virtualization technology, called Firecracker.
Lambda service retains the execution environment for a non-deterministic period of time.
Please share your feedback!
Markus.Tacker@NordicSemi.no
@coderbyheart
Latest version:
bit.ly/awsiotarch
We are hiring!
nordicsemi.com/jobs
Trondheim · Oslo · 20+ more locations