En los términos más simples, "Edge" se refiere a un dispositivo informático cerca de la acción. Es un dispositivo físico ubicado sobre el terreno que luego se conecta a otro dispositivo local como un servidor que agrega datos y luego reporta datos para su agregación. La compatibilidad con cientos o miles de dispositivos Edge que se pueden distribuir en todo el mundo plantea desafíos únicos para las organizaciones.
Muchas soluciones tradicionales que funcionan a nivel corporativo no se traducen en dispositivos de computación Edge. La latencia de la red y las limitaciones de ancho de banda hacen que las implementaciones fallen sin previo aviso, se utilizan múltiples configuraciones y deben mantenerse, y los entornos de producción son difíciles de imitar en el desarrollo. Incluso las variaciones más pequeñas en los estándares cuando se multiplican en miles de dispositivos crean grandes desafíos. Estos, así como otros obstáculos, conducen a un escenario desafortunado y demasiado familiar para muchos equipos de operaciones de TI encargados de admitir dispositivos Edge.
Imagínese esto...
- Es necesario implementar una actualización de la aplicación en 10.000 sistemas.
- Muchos de los sistemas tienen especificaciones diferentes (número de modelo, configuración, compilación, sistema operativo, versión de la aplicación) y se desconoce si la actualización funcionará en todas las variaciones del sistema.
- El equipo de desarrollo ha pasado meses probando en el "laboratorio", pero implementaciones pasadas han demostrado que el laboratorio actual no está simulando adecuadamente las limitaciones y complejidades de la producción.
- El equipo de lanzamiento está ansioso por la actualización, pero se implementa de todos modos, y esperan escuchar del equipo de operaciones cómo fue.
- Mañana, durante las horas estándar, informa el equipo de operaciones, se actualizaron 9.000 sistemas, se perdieron 500, se cayeron 200 y se desconocen 300.
Y la empresa dice que quieren hacer esto con más frecuencia, lo que provoca miedo y ansiedad en los corazones de los equipos de operaciones de apoyo. Pero resolver los desafíos que se presentan en los entornos Edge no es una tarea fácil. A diferencia de las aplicaciones creadas para ejecutarse en centros de datos tradicionales, la opción de simplemente mover la infraestructura a la nube no es una opción para los dispositivos que se ejecutan en Edge. Los esfuerzos dirigidos por los desarrolladores para reestructurar las aplicaciones para que se ejecuten en entornos nativos de la nube también pueden generar una mayor complejidad y costos a largo plazo. En una presentación reciente Matt Klein de Lyft advirtió: "Como industria, no somos buenos para evaluar el costo total de propiedad" y que "no hay sustituto para la experiencia operativa". La conclusión clave es que cualquier decisión de adoptar una nueva tecnología, como Kubernetes, para los usos de Edge Computing debe evaluarse tanto desde la perspectiva del desarrollador como desde la perspectiva operativa.
Solución: alinee el desarrollo y las operaciones con herramientas y procesos independientes de la tecnología
Abordar los desafíos de la computación perimetral requiere que los equipos de desarrollo y operación trabajen en estrecha colaboración y cumplan con un conjunto común de mejores prácticas. Los dispositivos sobre el terreno cambian constantemente, constantemente surgen nuevas vulnerabilidades y la empresa realiza constantemente nuevas solicitudes. Para preparar un entorno de computación Edge a prueba de futuro, las empresas deben comenzar por definir todas las piezas de la solución, desde el código de las aplicaciones, los procesos de creación y lanzamiento, hasta el monitoreo y la administración continuos. Cuantas más prácticas y herramientas independientes de la tecnología se puedan utilizar para gestionar el entorno, más dinámica será la solución resultante.
1) Adoptar un enfoque "como código"
Las prácticas de DevOps, como la infraestructura y las políticas como código, permiten que el equipo de desarrollo, seguridad y operaciones colabore a través de una base de código auditable y de búsqueda que se puede consumir fácilmente como parte de las canalizaciones automatizadas.
2) Aprovechar el contenido de la comunidad de código abierto
Las comunidades de código abierto permiten la contratación colectiva de plantillas de configuración y la automatización en miles de tecnologías. Esto puede permitir que los equipos de desarrollo y operaciones utilicen contenido ya creado y probado.
3) Estandarizar la configuración de aplicaciones, el empaquetado y las prácticas de prueba
El empaquetado de aplicaciones sigue siendo una de las áreas de TI administradas más ad hoc. Las aplicaciones perimetrales son complejas e incluyen cientos de dependencias, configuraciones y componentes; los desarrolladores pueden tardar horas en crear un entorno de prueba para un entorno Edge. Al proporcionar a los equipos de desarrollo compilaciones independientes de la tecnología, se mejoran enormemente las plantillas y herramientas de empaquetado, tanto la eficiencia operativa como del desarrollador. Un ejemplo de esto se puede ver en Walmart, donde pudieron ahorrar meses de trabajo configurando y reconstruyendo OpenCV mediante el uso de plantillas de configuración estandarizadas.
4) Implementar una solución de automatización de implementación "compatible con los Edge"
Al elegir una solución de automatización que esté diseñada para ser independiente de la tecnología, que funcione en entornos de bajo ancho de banda y que pueda repararse y deshacerse automáticamente, no solo se reducirá la cantidad de herramientas de automatización que deben mantenerse, sino también el riesgo de que las actualizaciones interrumpan el negocio.
5) Validar el estado de la entrega "casi" en tiempo real
La única forma de garantizar que un dispositivo en Edge se esté ejecutando y sea compatible es poder validar el estado actual. El uso de una herramienta de automatización que puede validar el sistema en tiempo "casi" real elimina la necesidad de verificar los sistemas manualmente, lo que ahorra una cantidad significativa de tiempo y dinero.
No hay duda de que a medida que las empresas avancen para digitalizar más operaciones, el número de casos de uso de Edge seguirá creciendo. Escalar el negocio en el Edge requiere que los desarrolladores y los equipos de operaciones trabajen en estrecha colaboración. Independientemente de la solución que se adopte e implemente para el Edge, debe poder implementarse y validar automáticamente y ser capaz de admitir una amplia variedad de tecnologías.