These three layers—scaling out, managing where workloads run and deploying services—are key to the success of edge computing. However, we did not just stop at deploying ECDN with IEAM. Instead, we are expanding its use to other workloads as well.
Before IEAM, we had a custom distribution application that effectively did the same thing. However, it was very rudimentary, and when we implemented the content delivery network, we realized it was a good opportunity to jettison anything custom we had written and use the product instead. Using IEAM has proven to be much better than our custom code.
The content delivery network is not just for offline events but also for streaming. For instance, during a live event, streaming can cause an excessive network load to and from the origin site. Having a local cache that the stream is reflected through solves this problem. Therefore, the content delivery network is crucial for both offline and live streaming events.
Our external firewall team developed the project by repurposing existing code. Once IEAM became available, we started to divest from our internal tool. We developed an automated build system for the devices, so when someone plugs them in on the network, they connect to the management device, boot from the network, and install the system. IEAM can then manage these devices as they are deployed.
However, it is not just about efficiency in deploying new workloads. IEAM helps us with updating workloads and deploying patches as well.
IEAM enables us to control the deployment of workload versions across all connected machines. Our process involves detecting vulnerabilities in a particular workload, building new versions with patches from the vendor and pushing them to our IBM container registry. Then, we instruct IEAM to gradually deploy the new version to the fleet of machines running the workload, one at a time, waiting for each one to succeed before moving on to the next. This controlled rollout is facilitated by IEAM's application layer, which we can use to test newer versions on a subset of nodes before rolling out to the rest of the production systems.