Share
Embed
Symfony en la gestión de un centro de computación avanzada
@ deSymfony 2010
César Suárez Ortega
July 05, 2010
Transcript
31 slides
-
organizan patrocinan colaboran Jornadas Symfony 5 y 6 de julio
2010 Universitat Jaume I, Castellón http://decharlas.uji.es/symfony -
Caso práctico: Symfony en la gestión de un centro de
computación avanzada César Suárez, www.ceta-ciemat.es Jornadas Symfony 5 y 6 de julio 2010 Universitat Jaume I, Castellón http://decharlas.uji.es/symfony -
¿Quiénes somos? CETA Centro Extremeño de Tecnologías Avanzadas CIEMAT Centro
de Investigaciones Energéticas Medio Ambientales y Tecnológicas Jornadas Symfony http://decharlas.uji.es/symfony -
Algunos datos de nuestro CPD… • Computación tradicional • Cores:
1.750 • Gflops: 13.601 • Computación GPU • Cores GPUs: 11.040 • Tflops (32bits): 47,41 • Gflops (64bits): 3.951 • Almacenamiento • 694,4 TB Jornadas Symfony http://decharlas.uji.es/symfony -
¿Qué queremos? • Ofrecer capacidades y servicios junto con los
centros pertenecientes a las redes GRID en las que participamos. • Investigar el uso de las capacidades GRID en distintos campos científicos, industriales y sociales. • Evaluar, desarrollar e implementar aplicaciones. • Establecerse como un centro de encuentro, intercambio y difusión de conocimiento. Jornadas Symfony http://decharlas.uji.es/symfony -
¿Cómo lo queremos? • Naturaleza pública del centro • Búsqueda
de interés social y el bienestar de los ciudadanos. • TIC como elemento básico de nuestro sociedad. • Difusión de la tecnología a todo el tejido social. • Colaboraciones y sinergias con otras instituciones. • Uso del software libre. Jornadas Symfony http://decharlas.uji.es/symfony -
Unidad Arquitecturas de Aplicaciones • Investigación, diseño y desarrollo de
aplicaciones software: • Principal tecnología usada: Java • Aplicaciones que se beneficien de la potencia de la GRID: • Digital Repositories Infrastructure (DRI): Repositorios digitales en la GRID. Ej.- Imágenes médicas (IMED), Archivo Histórico de Trujillo. • Aplicaciones de uso interno • POWERED BY SYMFONY!!!!! • Otras aplicaciones: BOINC. Jornadas Symfony http://decharlas.uji.es/symfony -
Aplicaciones internas: CMDB • CMDB = Configuration Management Data Base
• Inventariado de máquinas. (783 elementos) • Generación ficheros configuración, copiado de ficheros, reinicio de servicios: • DNS • DHCP • Nagios. • Generación informes y logs. • Inserción automática de algunos datos: IP, MAC, … • Primera experiencia con symfony. Jornadas Symfony http://decharlas.uji.es/symfony -
¿Por qué symfony? • A priori: • Uso de sistema
fácil de desplegar y mantener. • Necesidad de muchas validaciones en formularios.. • Patrón MVC = Código sostenible y extensible • Buena documentación para formación • Integrado con otros frameworks: • Propel • Prototype Jornadas Symfony http://decharlas.uji.es/symfony -
Primeras buenas vibraciones • Fácil de instalar, desplegar y configurar.
• symfony project:freeze • ant + symfony = Despliegue reducido a un comando • databases.yml y app.yml • Documentación excelente: • Abundante: Reference Book, Jobeet, primeros pasos. • Teórica y práctica. • En español e inglés. • Actualizada • Comunidad activa: blog, foros, Google Groups, … • Potentísimo framework de formularios. Validadores personalizables. Jornadas Symfony http://decharlas.uji.es/symfony -
Más primeras buenas vibraciones • «Incita» a generar código de
buena calidad: • Estructura de directorios compleja, pero que obliga a ser organizado. • Facilidades para generar tests unitarios y funcionales. • «Auto-loading» de clases. • Helpers simples y útiles (código más legible). • Vistas: Slots, layouts, partials, … • Barra para «debug». • Toda la potencia de PHP5 aprovechada en el core. Jornadas Symfony http://decharlas.uji.es/symfony -
Primeras malas vibraciones • Curva de aprendizaje costosa • Muchos
conceptos nuevos de golpe (si no se conoce otro framework MVC). • Detalles difíciles de encontrar. • Framework de formularios complejo. • Fácil para empezar, pero difícil de dominar. • Punto flaco en la documentación. • Exigente con las versiones de PHP • Obligados a usar symfony 1.1 L • Sin ningún IDE completo compatible (en ese momento) Jornadas Symfony http://decharlas.uji.es/symfony -
…pero al final… • Código sólido, organizado, … MANTENIBLE •
Código fácil de refactorizar. • Framework de formularios muy flexible. Validadores desacoplados y potentes. Ejemplos: • Comprobar si una IP forma parte de una VLAN. • VLANs que se solapan. • Máscara de una VLAN coherente con su IP. • Estructura de directorios flexible para adaptarlo a nuestros repositorios. • 6 releases y un sistema estable y ampliable. Jornadas Symfony http://decharlas.uji.es/symfony -
Más aplicaciones internas: UAWP • UAWP = User Access Web
Portal. • Gestión de protocolo de acceso a los recursos GRID del centro: • Generación de certificados, y ayuda en su instalación. • Generación de cuentas LDAP. • Ayuda en el envío de trabajos en la GRID. • Automatizar el protocolo lo máximo posible. • Especial control en la autorización. Jornadas Symfony http://decharlas.uji.es/symfony -
Ventajas de no ser el primero. • symfony + experiencia
previa = desarrollo a toda pastilla. • De las desventajas: • Curva de aprendizaje costosa • Muchos conceptos nuevos de golpe (si no se conoce otro framework MVC). • Detalles difíciles de encontrar. • Framework de formularios complejo. • Fácil para empezar, difícil de dominar. • Punto flaco en la documentación. • Código fácil de reutilizar (validadores, formularios). Jornadas Symfony http://decharlas.uji.es/symfony -
…y al final… • Ciclos de desarrollo mucho más cortos
(¡experiencia!). • Las mejoras descubiertas en UAWP, pasadas a CMDB (¡Refactorización!). • Descubrimos la potencia de los plugins: • Añadir ReCaptcha a un formulario como si fuese nativo del framework. • 7 releases. Jornadas Symfony http://decharlas.uji.es/symfony -
Nuestro futuro con symfony • Migrar a symfony 1.4 •
Integración continua (Hudson). • Uso en futuros proyectos similares. • Posible uso en DRI (proyecto principal). • Ahora: • DRI-Engine como EJB • Visor genérico en VJSF. • Futuro: • DRI-Engine vía WebServices. • ¿Visor genérico en symfony? Jornadas Symfony http://decharlas.uji.es/symfony -
Conclusiones • Framework potente y maduro. • Requiere de un
periodo de formación previa. • Excelente documentación. • Con la suficiente formación, desarrollos rápidos. • Induce a tener código sólido y mantenible • Muy satisfechos con symfony J Jornadas Symfony http://decharlas.uji.es/symfony