In response to the explosive growth of Internet of Things (IoT) devices, organizations are embracing edge computing systems to better access and understand the enormous amount of data produced by these devices.
As the name suggests, edge computing moves some storage and computing resources out of the central data center and closer to where the data is generated at the edge of the network, whether that’s a factory floor, retail store, or automated car. By having the data processed locally, companies can save money and reduce latency issues that can affect an application’s performance.
Edge computing can be in the form of handheld devices, sensors, point-of sale (POS) systems, appliances, or physical units that are distributed across multiple locations. They are also being used by a wide range of industries and for a variety of use cases. Farmers are using sensors to track water use and nutrient density to determine the optimal harvest time. Healthcare workers are using various sensors and devices to monitor patient vitals in real-time. Cities are using devices for traffic management, public safety, and green energy provisioning.
At the center of these IoT efforts is Kubernetes, which has quickly become the de facto standard for container orchestration within many IT organizations. Kubernetes has a lot to offer as the foundation for edge computing platforms, but it also presents several challenges as the scale of edge applications grows. While managing multiple clusters within a single data center is one thing, trying to manage multiple clusters across hundreds to thousands of edge environments that are distributed across the globe is quite another. And when they’re being managed independently with very little uniformity, it can lead to “cluster sprawl” or “IoT sprawl.” Not only does this increase the complexity of updating and managing Kubernetes, it results in an increase in operational overhead and excessive overall costs.
Limited Network Connection
Although edge computing overcomes some typical network limitations by placing compute resources closer to data sources, most edge deployments require some minimal level of connectivity. There are a number of reasons edge environments might have limited network connection.
Some geographic regions might be at a disadvantage if their edge environments are located in hard-to-access locations. In areas with fewer people, there may not be as many skilled IT professionals to operate and troubleshoot these environments.
This also creates challenges for compliance-minded organizations that use a firewall as a safeguard for applications. Although a firewall protects data from hackers, it complicates the movement of data and the remote management of those applications.
Admins need a way to seamlessly communicate in limited or intermittent connectivity environments. When there is limited network connectivity, it’s hard to monitor and update without a continuous link to the Kubernetes control plane. If you have sensors located in the depths of a mining site and it's designed to alert you when there are hazardous particles, how do you power it? Or if you’re operating ships on the open sea that span multiple destination points, how do you bring connectivity to these far reaches of the network? This not only impacts the operations team that has to keep track and monitor all of these edge environments, but also the customers who are relying on the information that the data is carrying, especially when a large number of edge environments are running software that needs to communicate with central servers or the Kubernetes control plane.
To ensure successful edge deployments at scale across geo-distributed databases, organizations need to find a way for edge environments to work within an unpredictable network landscape when the network is limited or connectivity is lost.
Compute and Power Resource Constraints
While IoT devices benefit from their compactness and small form factors, they often face significant resource constraints in terms of compute and power resources.
Businesses need to be able to run Kubernetes in very resource constrained environments.
There might be situations in which there is no external source of power to fuel your smart devices, and a stand-alone sensor must be able to withstand harsh conditions or operate in hard-to-reach places. When there is limited power and compute capability, it’s hard to monitor and track the performance and reliability of your devices. Airlines or maritime logistics might not have enough granular real-time data to plan and schedule flying or shipping routes. Farmers and crop producers might not be able to incorporate micro conditions to increase production. Companies that rely on data-intensive processes, such as analytics and video streaming, might not be able to run everything because these tasks require a lot of compute and power resources at the edge.
The challenge becomes how to consistently and effectively manage and maintain the health of these disparate resource-constrained devices. Users also need better visibility and centralized control of their edge environments to understand what resources are available and to be able to control access to them and lifecycle manage them.
No Tolerance for Downtime
When you’re managing Kubernetes in the core of the network, keeping everything running and updated is a challenge. But that process becomes much more challenging when you have hundreds of thousands of edge environments that need to be monitored and updated without downtime. This is not only time-consuming and error prone, but next to impossible for machines that are not accessible because of distance, connectivity, and resource constraints. Companies can’t afford to have a dedicated admin to service each payment processing device in every department store or each smart thermostat in every person’s home.
To add to the complexity, the way an edge environment is deployed can vary widely. One team might take a do-it-yourself (DIY) approach to building their edge environment, while another team might be using a cloud vendor to set up theirs. When there are disparate sets of hardware, software, and skill sets at the edge, it can create security problems, cluster or IoT sprawl, unplanned downtime, and other quality issues down the road.
In an edge environment, there is no tolerance for downtime. If a medical device goes down that monitors a patient’s vital signs or administers medication, it can result in high-risk situations, or even life-threatening ones. And when a deployment fails because of a break or an early deployment without all of the requirements met, admins must shift their attention from other work as they try to reverse the damage. This results in slower time-to-value for edge environments and an increase in operational overhead and opportunity costs.
Admins need a declarative approach to automate rollout and production operations. They also need a solution that is infrastructure agnostic and self-healing so it not only reduces the number of tools and environments that need to be maintained, but the risk of updates disrupting the business.
To learn how D2iQ can help you deploy solutions at the edge, contact the D2iQ experts here