CFEngine es un sistema de gestión de configuración , escrito por Mark Burgess . Su función principal es proporcionar configuración y mantenimiento automatizados de sistemas informáticos a gran escala, incluyendo la gestión unificada de servidores , ordenadores de sobremesa , dispositivos de consumo e industriales, dispositivos de red integrados, teléfonos inteligentes y tabletas .
CFEngine, publicado bajo los términos de la Licencia Pública General de GNU , es software libre .
Historia
El proyecto CFEngine comenzó en 1993 como una forma para que su autor, Mark Burgess (entonces becario postdoctoral de la Royal Society en la Universidad de Oslo , Noruega ), pudiera llevar a cabo su trabajo automatizando la gestión de un pequeño grupo de estaciones de trabajo en el Departamento de Física Teórica. Burgess gestionaba estaciones de trabajo Unix, escribiendo scripts y solucionando problemas para los usuarios manualmente. La escritura de scripts consumía demasiado tiempo, las variantes de Unix eran significativamente diferentes y los scripts debían mantenerse para múltiples plataformas, lo que generaba una gran cantidad de lógica de excepciones. Tras discutir los problemas con un colega, Burgess escribió la primera versión de CFEngine ( el motor de configuración ), que se publicó como informe interno [ 3 ] y se presentó en la conferencia de computación del CERN. Obtuvo una atención significativa de una comunidad más amplia porque ocultaba las diferencias entre plataformas mediante un lenguaje específico de dominio.
Un año después, Burgess finalizó su posdoctorado, pero decidió quedarse en Oslo y aceptó un puesto de profesor en el Oslo University College . Allí se percató de que se investigaba poco o nada sobre la gestión de la configuración , y se propuso aplicar los principios del modelado científico para comprender los sistemas informáticos. Desarrolló el concepto de operadores convergentes , que sigue siendo un pilar fundamental de CFEngine.
En 1998, Burgess escribió "Computer Immunology", un artículo presentado en la conferencia USENIX/LISA98. [ 4 ] En él se exponía un manifiesto para la creación de sistemas autorreparables, reiterado unos años más tarde por IBM en su concepto de Computación Autónoma . Esto dio inicio a una labor de investigación que culminó en una importante reescritura, CFEngine 2 , que incorporó funciones para el aprendizaje automático, la detección de anomalías y las comunicaciones seguras.
Entre 1998 y 2004, CFEngine creció en adopción junto con la popularidad de Linux como plataforma informática. Durante este tiempo, Mark Burgess desarrolló la teoría de la promesa , un modelo de cooperación distribuida para la automatización autorreparable. [ 5 ] [ 6 ] En 2008, después de más de cinco años de investigación, se presentó CFEngine 3 , que incorporó la teoría de la promesa como "una forma de hacer que CFEngine sea a la vez más simple y más potente", según Burgess. La reescritura más significativa del proyecto hasta la fecha, CFEngine 3 también integró mecanismos de gestión del conocimiento y descubrimiento, lo que permite que la gestión de la configuración se escale para automatizar la infraestructura de clase empresarial.
En junio de 2008, se fundó la empresa CFEngine AS, fruto de la colaboración entre el autor Mark Burgess, el Oslo University College y el Oslo Innovation Centre, con el objetivo de brindar soporte a los usuarios de CFEngine. En abril de 2009, la empresa lanzó la primera versión comercial de CFEngine: CFEngine Enterprise. Esta versión se puede descargar gratuitamente para hasta 25 agentes (clientes). En febrero de 2011, la empresa recibió su primera ronda de financiación de FERD Capital. [ 7 ] La empresa cuenta con oficinas en Oslo, Noruega y Mountain View, California, EE. UU.
En 2017, la empresa cambió su nombre a Northern.tech , para reflejar que está trabajando en múltiples productos de software, no solo en CFEngine. [ 8 ]
Diseño
Una de las ideas principales de CFEngine es que los cambios en la configuración del ordenador deben realizarse de forma convergente . [ 9 ] [ 10 ] Esto significa que cada operación de cambio realizada por el agente debe tener el carácter de un punto fijo . En lugar de describir los pasos necesarios para realizar un cambio, el lenguaje de CFEngine describe el estado final al que se desea llegar. El agente se asegura entonces de que se realicen los pasos necesarios para llegar a este "estado conforme a la política". Por lo tanto, CFEngine puede ejecutarse repetidamente, independientemente del estado inicial del sistema, y siempre obtendrá un resultado predecible. CFEngine admite el cumplimiento estadístico de la política, lo que significa que un sistema nunca puede garantizar estar exactamente en un estado ideal o deseado, sino que se aproxima (converge) hacia el estado deseado mediante el mejor esfuerzo posible, a una velocidad determinada por la relación entre la frecuencia del cambio ambiental y la velocidad de ejecución de CFEngine. [ 11 ]
CFEngine proporciona una interfaz independiente del sistema operativo para la configuración de hosts tipo Unix . Requiere ciertos conocimientos especializados para lidiar con las particularidades de los distintos sistemas operativos, pero tiene la capacidad de realizar tareas de mantenimiento en múltiples hosts. CFEngine también se puede usar en hosts Windows y se utiliza ampliamente para administrar un gran número de hosts Unix que ejecutan sistemas operativos heterogéneos , como Solaris , Linux , AIX , Tru64 y HP-UX .
Usuarios
CFEngine se utiliza tanto en grandes como en pequeñas empresas, así como en numerosas universidades e instituciones gubernamentales. El mayor centro de datos gestionado por CFEngine del que se tiene constancia supera el millón de servidores, y se han publicado informes sobre centros con hasta 40 000 máquinas ( LinkedIn [ 12 ] ), mientras que son habituales los centros con varios miles de hosts que utilizan CFEngine. Según las estadísticas de CFEngine AS, probablemente varios millones de ordenadores ejecutan CFEngine en todo el mundo, y se han registrado usuarios de más de 100 países.
Investigación
Poco después de su creación, CFEngine impulsó un campo de investigación sobre la gestión automatizada de la configuración. El proyecto CFEngine pretende abordar el problema de la gestión de la configuración desde una perspectiva científica. Su autor, Mark Burgess, ha desarrollado diversas herramientas teóricas y obtenido resultados para analizar el problema, y ha escrito varios libros de texto y monografías que los explican.
Véase también
Referencias
- ↑ Equipo y comunidad de CFEngine. "CFEngine 3.27.1 lanzado" . Northern.tech AS . Consultado el 8 de mayo de 2026 .
- ↑ Equipo y comunidad de CFEngine. "CFEngine 3.24.4 lanzado" . Northern.tech AS . Consultado el 8 de mayo de 2026 .
- ↑ Burgess, Mark . "Universidad de Oslo : Cfengine V2.0 : Una herramienta de configuración de red" (PDF) . Iu.hio.no. Archivado del original (PDF) el 23 de julio de 2013. Consultado el 8 de septiembre de 2013 .
- ↑ Burgess, Mark (diciembre de 1998). "Inmunología computacional" (PDF) . Usenix.org . Consultado el 8 de septiembre de 2013 .
- ↑ Burgess, Mark ; Couch, Alva (28 de noviembre de 2006). "Computación autónoma aproximada mediante promesas de punto fijo, Actas del Primer Taller Internacional IEEE sobre Modelado de Entornos de Comunicación Autónoma (MACE2006)" (PDF) . págs. 197–222 . Archivado del original (PDF) el 25 de abril de 2012.
- ↑ Hogg, Scott (1 de julio de 2014). "Teoría de la promesa" . Network World . Consultado el 1 de septiembre de 2023 .
- ↑ "Cfengine completa la inversión de Serie A" (Comunicado de prensa). Oslo, Noruega: PRNewswire . 4 de abril de 2011. Consultado el 22 de agosto de 2014 .
- ↑ Ryd, Thomas (1 de julio de 2017). "Bienvenido a Northern.tech" . Blog. Northern.tech . Consultado el 28 de julio de 2024 .
- ↑ Burgess, Mark (verano de 1995). "Cfengine: un motor de configuración de sitios" (PDF) . USENIX Computing Systems . 8 (3). Berkeley, CA, EE. UU.: USENIX . Recuperado el 22 de agosto de 2014 .
- ↑ Burgess, Mark (2003-11-29). "Inmunidad configurable para sistemas humano-computadora en evolución" . Science of Computer Programming . 51 (3): 197– 213. doi : 10.1016/j.scico.2003.12.004 .
- ↑ Burgess, Mark (2003). "Sobre la teoría de la administración de sistemas" . Science of Computer Programming . 49 ( 1–3 ): 1–46 . doi : 10.1016/j.scico.2003.08.001 .
- ↑ "Estudio de caso de CFEngine: Automatización de la infraestructura y las operaciones de LinkedIn en WebScale" (PDF) . CFEngine AS. Noviembre de 2014.
Enlaces externos
- Sitio web oficial
- núcleo en GitHub
- Gestión de la configuración
- Software de orquestación
- Software gratuito de gestión de redes
- Software libre programado en C
- Software de gestión de redes multiagente
- Software que utiliza la Licencia Pública General de GNU.
- Administración del sistema
- Software relacionado con la gestión de paquetes de Unix
- Software del Proyecto GNU