Microsoft PowerShell DSC

Artículo

Microsoft PowerShell DSC

Voy a presentaros esta herramienta de Microsoft que desde el punto de vista de DevOps, creo que os puede resultar muy interesante y práctica. Este es el primero de una serie de artículos en los que explicaré y demostraré cómo se trabaja con PowerShell DSC.

¿Qué es PowerShell DSC?

Desde la aparición de Windows server 2012 R2, Microsoft nos propone el uso de PowerShell DSC. En las primeras versiones de la herramienta, las posibilidades eran bastante limitadas: instalar y borrar roles de servidor, administración de archivos, carpetas, el registro, y arrancar y parar servicios entre otras. A estas alturas del producto (Versión actual 3.6.0.0), las posibilidades son mucho más amplias, podemos encontrar y crear scripts que nos permiten desde una instalación desatendida de software, realizando un análisis previo de los prerrequisitos necesarios para dicho software, e incluso en el mismo script podremos realizar la configuración completa de una granja compleja de múltiples servidores.

Pero ¿qué es PowerShell DSC? Microsoft lo define como:

DSC = Configuración de estado deseado (Desired Status Configuration), una plataforma de administración de PowerShell que nos permite administrar nuestra infraestructura de desarrollo y TI con configuración como código.

En otras palabras, PowerShell DSC es un lenguaje de programación declarativo que nos lleva al paradigma de la infraestructura como código (IaC), lo cual nos permite no sólo crear scripts para realizar tareas cotidianas que nos liberan de operaciones repetitivas, si no también nos permitirá configurar características del sistema operativo, aspectos y configuraciones propias del servidor, así como de nuestras soluciones, y además nos permite mantenerlas en el tiempo.

¿Por qué PowerShell DSC?

Desde el punto de vista de DevOps es una herramienta muy útil ya que podemos tener un fichero con la configuración de nuestro entorno y en caso de desastre tendríamos otro punto más sobre el que apoyarnos a la hora de recuperar y restaurar los servicios, o simplemente un punto ágil de restauración en caso de que algo en nuestras aplicaciones dejen de funcionar. Es una idea similar a la de los puntos de restauración de Windows, pero en un fichero que nosotros podemos mantener y configurar de manera fácil y rápida.

También nos ayuda en las tareas de Integración Continua y Desarrollo Continuo (CI/CD), de manera que nos permite incluir cambios a gran escala dentro de nuestra infraestructura de una manera más ágil y fiable, y asegurarnos de que propagamos el mismo cambio a todos los nodos. Además, podemos revisar estos cambios de un solo vistazo sin tener que acceder a cada nodo por separado para confirmarlo.

¿Qué novedades ofrece PowerShell DSC?

Las principales novedades que este sistema ofrece son:

• Nos ayuda a disminuir la complejidad de los scripts que solíamos crear en PowerShell. Ahora nuestros scripts tendrán muchas menos líneas de código y serán mucho más claras y ágiles de revisar en busca de algo que queramos añadir o cambiar.

Aumenta la velocidad de las iteraciones, lo cual nos permite tener una integración continua mucho más ágil y fluida de la manera más fiable posible.

• Debido a su diseño basado en plantillas declarativas también nos permite una escalabilidad de la infraestructura mucho más rápida y fiable, siempre que necesitemos añadir un nuevo nodo su configuración será como la del resto.

• Esto también facilita las migraciones a la nube, ya que los principales proveedores de cloud usan este tipo de plantillas declarativas y una vez adaptados nuestros sistemas on-premise a esta forma de trabajar es mucho más fácil migrar nuestros sistemas.

Espero que este primer artículo de toma de contacto con PowerShell DSC les haya sido de utilidad como introducción y en breve continuaremos profundizando y mostrándoles sus beneficios y adentrándonos en su uso.

Conoce al autor del artículo

David Martínez

David Martínez es un jefe de equipo con un amplio conocimiento en los siguientes campos:

  • Consultor de SharePoint: administración de las tecnologías de SharePoint Server 2010 y 2013, diseño de la arquitectura de acuerdo con la topología, edición de webparts, webparts, incidencias de correlación de ids, implantación de la arquitectura en las granjas, administración y análisis de pruebas de rendimiento, optimización de Entornos, resolución de fallos de seguridad.
  • Administración del sistema Wintel: administración de los sistemas operativos, resolución de incidentes y optimización de los entornos como técnico de nivel 3. Además del análisis, documentación del entorno y el desarrollo de una arquitectura en HA y DR de las soluciones. La capacitación técnica que tiene es Ingeniería Técnica en Informática de Sistemas por la Universidad de San Antonio de Murcia.