The need to stay competitive in today’s fast-paced world means continual innovation. On a more mundane point, it means getting applications built and deployed as quickly as possible. And of course you want to have a highly reliable way to deliver and monetize those applications. This is the DevOps tension: deliver applications quickly in an IT environment that views change as risky. Both perspectives are correct from their point of view. DevOps philosophy manages this tension in multiple ways.
One way is to co-locate the development and operations teams to improve communication and sensitize each team to the other’s concerns. It allows greater depth in understanding to avoid the “throw it over the wall” story that operations might cite. The development team may find their objectives challenging if “change management means we only deploy new apps every six months”. The business suffers if operations and development can’t create a productive process for both teams. Meaningful changes can come with the discussions that happen face to face and allow both teams to vent their frustrations and co-create solutions.
One common area of concern stems from the difference between the development system environment and the deployment system. This means that before the application can be deployed it must first be modified to run on the deployment system. If the application is developed in the cloud and will be deployed at an edge site, the difference between the systems could be significant, and porting the application to the new platform will add delay. Using the same system for development and deployment can significantly reduce the deployment cycle and improve timeliness and quality. There may be some cultural issues to overcome but it must be remembered the shortest possible development time isn’t the objective, the shortest possible new application deployment is the objective.
Putting the right incentives in place focused on application deployment is a step in the right direction, but re-thinking the system environment is another powerful tool. Edge computing has a unique set of requirements for low power and small size that may not be considered optimal for app development. However, considering the goal is shortest possible new application deployment cycle, it makes sense to consider a different approach.
Consider developing your applications on the platform you will ultimately deploy, and when you are ready to deploy, you can send the same physical system that you developed on to the edge for deployment. Once you’ve developed and tested to your satisfaction you deploy the same hardware and operating system to your edge locations. You don’t need to migrate the application to a new platform. The same system can be used for development and deployment especially in a specialized environment like edge AI.
The winning combination of development and operations objectives means the business can get an edge on the competition and keep a steady stream of new applications that are easy to deploy.