I have done various posts on complementary topics such as Edge computing, 5G and the IoT landscape. The last architecture post I did (reproduced below) was around Dec 2017. Since then every major cloud provider, technology provider, and enterprise has begun investing quite heavily in platforms that serve this space. So it’s in the fitness of things to revisit how that vision translates into software architecture in 2020.
An Enterprise Wide Framework for Digital Cybersecurity..(4/4)
The key challenge in IoT platform architecture is to ensure that the implementation can scale & grow across multiple geographic locations or Edges. This is where the ability of a complete stack comes in to play. Before stack and reference architecture decisions are made, let us consider 10 key questions IoT platform architects and developers need to ask of themselves with a view to driving the ‘best fit’ architecture.
The Ten Questions
- What are the scale characteristics that consumers of the platform need supported? . How many edge devices per location on an average scenario? How much data is expected in a given interval of time? And how will this data be collected from the endpoints? And what protocols will be supported? Ex. REST, UDP, MQTT,COAP, WebSockets, AMQP etc
- Does the platform need to scale dynamically to accommodate user and device growth? If so what are the scale requirements in a given site, at the regional datacenter and at the central datacenter?
- Is Autoscaling a requirement and if so what metrics from a monitoring standpoint will trigger this? And also in reverse, is scale down a requirement and How will the workloads scale up or scale down by themselves? How does the provisioning lifecycle work in such a scenario.
- Is Air-gapping i.e loss of connectivity with outside world a requirement? If it is, what are the performance characteristics from an Air-gap standpoint? How will the cloud manage and provision edge devices? decisions on edge middleware and fog components, and security services.
- How will the platform support multi-tenancy? What architecture guardrails need to be put into place to ensure that both performance and security are guaranteed without the noisy neighbor problem in a multi-tenant environment? Again, quantify the number of tenants and what kind – developers, business users, end customers etc?
- How will Day 2 and Day 2+ operations be handled and what are the SLAs around those? This includes everything post-install such as upgrades, patches, bug-fixes etc.
- What are the latency and performance guarantees needed from the application for various consumer categories? For example this can include mobile app users, service technicians, remote users logging in via a website etc.
- What data will be useful to tracking and improving system performance? This will affect decisions on what analytics tools to use, where to analyze the data, how data will be secured and denatured, and edge/cloud partitioning.
- Security requirements end to end. This includes device to device communication, gateway to cloud communication and user transactions.
- What are the long term storage requirements for data? For reporting and analytics, will time series data be needed for x number of months/years for use cases such as trend analysis etc? This will drive storage and monitoring costs.
Conclusion
Each of the above questions needs to be answered from a pure metrics standpoint. It is meaningless to quantify the impact of architectural decisions without numbers. Note that the list above does not include ROI tracking from an operational standpoint. It does not include operational metrics (e.g. net profit margin, revenue per device/edge), efficiency metrics and forecasts based on those. These will be largely vertical specific and I hope to cover them in subsequent posts as appropriate.