In the simplest terms the “Edge” is referring to a computing device near the action. It is a physical device located in the field that is then attached to another local device like a server that aggregates data and then reports data for aggregation. Supporting hundreds to thousands of Edge devices that can be distributed across the globe poses unique challenges for organizations.
Many traditional solutions that work at the corporate level fail to translate to Edge computing devices. Network latency and bandwidth constraints cause deployments to fail without notice, multiple configurations are used and must be maintained, and production environments are difficult to mimic in development. Even the smallest variances in standards when multiplied across thousands of devices creates big challenges. These, as well as other obstacles, lead to an unfortunate and all too familiar scenario for many IT operations teams tasked with supporting Edge devices.
Picture this, it’s after hours…
- An application update needs to be rolled out on 10,000 systems.
- Many of the systems have different specs (model number, config, build, OS, application version) and its unknown if the update will work on all the system variations.
- The dev team has spent months testing in the “lab”, but past deployments have shown the current lab is not adequately simulating the constraints and complexities of production.
- The release team is anxious about the update, but they deploy anyway – and wait to hear from the ops team on how it went.
- Tomorrow during standard hours, the ops team reports, 9,000 systems were updated, 500 were missed, 200 are down, and 300 are unknown.
And the business is saying they want they want to do this more frequently striking fear and anxiety in the hearts of supporting operations teams. But solving the challenges presented in Edge environments is no easy task. Unlike applications built to run in traditional data centers, the option to just move infrastructure to the cloud is not an option for the devices running on the Edge. Developer-led efforts to rearchitect apps to run in cloud-native environments can also lead to increased complexity and long-term costs. In a recent presentation, Matt Klein from Lyft warned “As an industry we’re not good at evaluating total cost of ownership” and that “There is no substitute for operational experience." The key takeaway being that any decision to adopt a new technology, like Kubernetes, for Edge computing uses needs to be evaluated from both a developer and operational perspective.
Solution: Align development and operations with technology agnostic tools and processes
Addressing Edge computing challenges requires development and operation teams to work closely together and comply to a common set of best practices. Devices in the field are constantly changing, new vulnerabilities are constantly emerging and new requests are constantly being made by the business. In order to future-proof an Edge computing environment, companies need to start by defining all of pieces of the solution from the applications code, to build and release processes, to ongoing monitoring and management. The more technology agnostic practices and tools that can be used to manage the environment the more dynamic the resulting solution will be.
1 Adopt an “as code” approach
DevOps practices like infrastructure and policy as code enable development, security and operations team to collaborate via a searchable and auditable code base that is easily consumable as part of automated pipelines.
2 Leverage open-source community content
Open-source communities enable crowd sourcing of configuration templates and automation across thousands of technologies. This can enable Dev and Ops teams to utilize already created and tested content.
3 Standardize application configuration, packaging and testing practices
Application packaging remains one of the most adhoc managed areas of IT. Edge applications are complex and include hundreds of dependencies, configurations and components it can take developers hours to create a test environment for an Edge environment. By providing dev teams with technology-agnostic builds, packaging templates and tools both developer and operational efficiency are greatly improved. An example of this can be seen at Walmart where they were able to save months of time configuring and rebuilding OpenCV by using standardized configuration templates.
4 Implement an “Edge-friendly” deployment automation solution
By choosing an automation solution that is designed to be technology agnostic, works in low bandwidth environments and can self-heal and automatically rollback will not only reduce the number of automation tools that need to be maintained, but also the risk of updates disrupting business.
5 Validate delivery status in “near” real-time
The only way to ensure a device on the Edge is running and is compliant is by being able to validate the current state. Using an automation tool that can validate the system in “near” real-time eliminates the need to manually check systems, saving significant time and money.
There is no doubt as companies move to digitize more of their operations the number of Edge use cases will only continue to grow. Scaling business on the Edge requires developers and operations teams to work closely together. No matter what solution is being adopted and deployed for the Edge it needs to be able to deploy and validate automatically and be able to support a broad away of technologies.