Migrando una gran aplicación a
proyecto:
Barcelona, 31 de Marzo del 2011
Carlos Colell SorinasDirector [email protected]
Índice de la presentación
Perfil de compañía
¿Qué se migró a Azure?
¿Por qué se optó por Azure ?
¿Cómo mover una aplicación hacia Azure ?
di li i l d¿Cómo diseñar una aplicación para Cloud / Azure?
ConclusionesConclusiones
Perfil de compañíaPerfil de compañía
Acerca de SOFTENGAcerca de SOFTENG
Nuestras credenciales
Perfil de compañía
Acerca de SOFTENG
Consultoría e ingeniería de software desde '97
Trabajamos “sólo” con tecnología Microsoft.
Expertos en soluciones en infraestructuraMicrosoft y Desarrollo de proyectos Web.
Fabricante de la primera plataforma SaaS paraproyectos Web en Azure.
Perfil de compañía
Credenciales SOFTENG
¿Qué se migró a Azure?¿Qué se migró a Azure?Softeng Portal Builder
Qué es en esencia
Prestaciones destacadasPrestaciones destacadas
Softeng Portal BuilderTM - Visión general
La esencia de Portal Builder
Plataforma empresarial para proyectos Web
Potencia a las empresas a través de la Web
Productividad, Autonomía, Rentabilidad
O i A (S S A h TM)On-premise o en Azure (SaaS AnywhereTM)
Solución calificada como innovadora por el Solución calificada como innovadora por el Ministerio de Ciencia e Innovación
Softeng Portal BuilderTM - Visión general
Prestaciones destacadas
MARKETING TI
Edit-in-Place Backoffice Studio
Traducción simultánea Workflow Engine
Optimización SEO
Mapa de calor
Portal Builder Framework
Modelador de entidadesMapa de calor
Analítica de visitas integrada
Modelador de entidades
Integrador de aplicaciones
Softeng Portal BuilderTM - Visión general
Pantalla de “Edit-in-Place”
Actualice fácilmente los
idcontenidos desde el propio Site
Navegue, haga clic en el texto o imagen que imagen quedesee cambiar , guarde y publiquepublique.
Así de simple !
Softeng Portal BuilderTM - Visión general
Pantalla “Mapa de calor”
Mejore la eXperiencia de sus usuarios
Analice visualmente el comportamiento de los visitantes y
i i l ioptimice el sitepara obtener más conversiones.
Softeng Portal BuilderTM - Visión general
Pantalla de “Analítica de Visitas”
Analice la efectividad de su
bweb
La analíticas i t d f integradas ofrecen información en contexto acerca de las visitas y las visitas yobjetivos conseguidos permitiendo tomar permitiendo tomarbuenas decisiones.
Softeng Portal BuilderTM - Visión general
Proyectos destacados
Industria Gobierno Construcción
Salud Interiorismo Media
Softeng Portal Builder & Windows Azure
SaaS “pide” PaaSSaaS pide PaaS
¿Por qué se optó por Azure?
Azure complementa a Portal Builder
Beneficios obtenidos con Azure
Softeng Portal BuilderTM & Windows Azure
SaaS “pide” PaaS…
Softeng Portal BuilderTM & Windows Azure
¿Por qué movernos a la nube ?
Maximizar los beneficios de “SaaS”
Aumentar confianza en nuestra solución
d l dEvitar inversión por adelantado
Reducir costes de mantenimientoReducir costes de mantenimiento
Poder escalar rápido + evitar “estimar”
Por compromiso de innovación
Facilitar el cálculo del pago por uso
Softeng Portal BuilderTM & Windows Azure
¿Por qué se optó por Azure? (I)
Azure => PaaS = Valor añadido vs IaaS
Evitar inversión en licencias
Elimina mucha complejidad
Reducir costes de despliegue Reducir costes de despliegue
Eliminar costes de mantenimiento
Moviendo una aplicación a p
¿Cómo empezar?
Sorteando dificultades
Resultado final
Moviendo una aplicación a Azure
¿Por donde empezar?
1-Microsoft.com/WindowsAzure
2-Abre una cuenta gratuita: Experimenta con una App sencillaExperimenta con una App sencilla.
3 N f i l i ? 3-¿No funciona a la primera? Buscar en internet…
4-Opción de curso de iniciación
Moviendo una aplicación a Azure
Sorteando dificultades…
Varios Básicos: Se requiere proyecto VS "Web Application" en lugar de "Web Application", rutas de fichero con límite, algunos atributos de Web Application , rutas de fichero con límite, algunos atributosen web.config no soportados y otros por el estilo.
DTC no soportado: Evitar la promoción de las transacciones a una DTC no soportado: Evitar la promoción de las transacciones a unatransacción distribuida usando el DTC.
Imposibilidad de depuración en producción: Pasar a .NET 4.0 con p p pVisual Studio 2010 y usar IntelliTrace.
Adaptación de Scripts SQL: Los scripts DDL de SQL Server deben p p padaptarse para evitar utilizar cláusulas no soportadas por SQL Azure.
No existe servicio de SMTP en Azure: Usar servicios externos.
“FUNCIONA !!! “ Descubramos que viene luego …
Moviendo una aplicación a Azure
Recomendaciones Básicas
Usar al menos 2 instancias de Azure: Sólo así tenemos verdadera alta disponibilidad y con SLA de Microsoftverdadera alta disponibilidad y con SLA de Microsoft.
Mejor cuanto más pequeñas: En general, es mejor usar 4 j p q g jinstancias pequeñas que 2 grandes.
El entorno “staging” también consumeEl entorno staging también consume…
Si paramos una instancia, también consume: Eliminarla
El centro de Irlanda, funciona mejor que Amsterdam
Monitoriza … de forma automatizada
Moviendo una aplicación a Azure
¿ Algo más habrá, no?
Moviendo una aplicación a Azure
Timeout NLB Azure 1 minuto
Situación: Azure impide que una petición dure > 1 minuto.
Problema: ¿Qué pasa al subir archivos grandes?
Solución: Subir archivo por fragmentosSolución: Subir archivo por fragmentos
Servicio Web: Que reciba y recomponga los fragmentos del archivo
Cliente: Ha de tener acceso a archivo para trocear y subirlo
Ej Sil li h h //bl / / l di i d Ej. Silverlight http://blog.smarx.com/posts/uploading-windows-azure-blobs-from-silverlight-part-1-shared-access-signatures
Moviendo una aplicación a Azure
¿Buscador en Azure?
Necesidad: Requeríamos continuar teniendo un sistema de búsqueda
P bl S h S tá t d Wi d AProblema: Search Server no está soportado en Windows Azure
Solución:
Lucene.NET
Programar escaneos desde Worker Role
Almacenamiento de índices en Blob Storage
Moviendo una aplicación a Azure
Actualizar esquemas de BD
Necesidad: Despliegue de cambios de esquema de BD local a SQL Azure para nuevas versiones de la aplicación o producto.
Problema: VSTS DB Edition con GDR no soporta SQL Azure
S l ió D d l BBDD j t ió Solución: Descargar esquema de la BBDD, ejecutar comparación y aplicar script diferencial en SQL Azure + Automatizarlo.
Moviendo una aplicación a Azure
¡Qué fácil ha sido y que bueno soy !
Moviendo una aplicación a Azure
¡ Azure es un milagro!
Migrando a Azure
¡A producción ! ¡Y a por el ascenso!
Moviendo una aplicación a Azure
A ver como va…
-Consumo de Azure excesivo !
-No hay backups !
La aplicación no escala !-La aplicación no escala !
-La aplicación va lenta !p
¡La hemos liado! “Chiesss…” que no se entere el jefe !!que no se entere el jefe !!
Moviendo una aplicación a Azure
¿Que ha pasado? ¿Azure no va bien?
¿He sido yo ?
Diseñando para cloudp
¿Qué optimizar / mejorar ?
Ejemplos concretosj
Más retos
Conclusiones
Diseñando para Azure
Si sólo “movemos” Apps a Cloud..sin que la arquitectura esté diseñada orientada a cloud, obtendremos una aplicación que:
• Consumirá recursos excesivos-> Mayor coste
• Escalabilidad limitada -> Mayor coste
• Rendimiento mejorable -> Mayor coste
• No tendremos backups -> Mayor coste
Costará más de act ali ar Ma or coste• Costará más de actualizar -> Mayor coste
• Elasticidad no automática - > Mayor coste
Diseñando para Azure
Diseñar orientado a costes significa…
Usar patrones para optimizar el consumo de:
Computación: Número y tamaño de instancias desplegadas
Ancho de banda: En GB/mes de entrada y de salidaAncho de banda: En GB/mes de entrada y de salida.
Tamaño de la BD en SQL Azure
Transferencia entre regiones Azure
Cantidad de espacio consumido en storageCantidad de espacio consumido en storage
Transacciones al sistema de ficheros (lectura y escritura)
Conexiones AppFabric
Diseñando para Azure: Ejemplos
Reducir consumo en SQL Azure (I)
Situación: Por simplicidad, Softeng Portal Builderalmacenaba los recursos de las aplicaciones en SQL Server (videos, imágenes, documentos)
Problema: En Azure, no hay BBDD mayores de 50 GB (de momento) Coste elevado comparado con Storage (71 veces + caro)
SQL A 50GB $354 56 € / SQL Azure 50GB $354.56 € / mes Blob Storage 50GB 0.10 € / GB x mes x 50 = 5€ / mes
Diseñando para Azure: Ejemplos
Reducir consumo en SQL Azure (II)
Solución Modificar capa de persistencia para almacenar archivos en
Blob storage
Ventajas Ahorro en coste Mucho más escalable y mejor rendimiento Mucho más escalable y mejor rendimiento BBDD ligera de descargar
Diseñando para Azure: Ejemplos
Sistema de backup (I)
Situación: Por si hubieran errores humanos, requerimos disponer de un sistema de backup / restore controlado.
Problema 1: SQL Azure no ofrece backup’s
Problema 2: Tenemos datos en Blob Storage (archivos)
P bl 3 C i t l b k ’ l bProblema 3: Conviene tener los backup’s en la nube.
Problema 4: No existe ninguna solución en el mercado.Problema 4: No existe ninguna solución en el mercado.
Problema 5: Un nuevo desarrollo …
Diseñando para Azure: Ejemplos
Sistema de backup (II): La solución
VentajasVentajas Coste de almacenaje reducido: 0.15$ GB/mes
Si t d t f i Sin costes de transferencia Descarga a local, bajo demanda
Diseñando para Azure
Más retos que tuvimos que superar
Mejora en la escalabilidad horizontal: Buscar en internet lo conseguido “escalabilidad lineal en Azure”internet lo conseguido … escalabilidad lineal en Azure
Automatización de pruebas de carga en Azure: p gSimulamos N usuarios en Azure, levantando N instancias.
Automatizar el proceso de actualización y despliegueAutomatizar el proceso de actualización y despliegue
Elasticidad automática: Creamos o destruimos instancias según determinadas condiciones, configurables.
Planificador: Sistema para iniciar tareas diferidas desde Planificador: Sistema para iniciar tareas diferidas desdeAzure (mediante worker-roles y colas)
Diseñando para Azure
Conclusiones
Funcionar en Azure ≠ Funcionar bien: No es igual adaptar una aplicación para que funcione a diseñarla para que sea óptima. Errores de p p q p q parquitectura en el software clásico se magnifican en cloud.
Azure ofrece grandes beneficios: … si diseñamos siguiendo Azure ofrece grandes beneficios: … si diseñamos siguiendoarquitecturas orientadas a coste y a escalabilidad.
Un beneficio inesperado para SOFTENG: Reconocimiento y Know How Un beneficio inesperado para SOFTENG: Reconocimiento y Know-Howadquirido gracias a la gran inversión realizada, nos permite ayudar a otras empresas a reducir drásticamente el coste de migrar a cloud.
Backup y pruebas de carga: Necesidades irrenunciables…
Automatizar despliegues y auto-elasticidad: Muy recomendable..
Diseñando para Azure
Azure es increible !!, pero…
Tecnología y calidad
Recursos y más información
Caso de estudio de Softeng Portal Builder en Azure (Microsoft Corporation) http://www.microsoft.com/casestudies/Case_Study_Detail.aspx?CaseStudyID=4000008180
Caso de estudio de Softeng Portal Builder en Azure (Microsoft Ibérica) http://www.microsoft.com/business/smb/es-es/isv/casosdeexito.mspx
Presentación de Softeng Portal Builder con Steave Ballmer (CEO Microsoft)g http://www.softeng.es/es-es/noticias/webcasts-eventos/presentacion-de-softeng-portal-builder-junto-steve-ballmer.html
Presentación de Softeng Portal Builder con IDC en evento Gestión de contenidos http://www.softeng.es/es-es/empresa/evento-idc-2010.html
Artículo publicado en CMSWire: http://www.cmswire.com/cms/web-cms/softeng-portal-builder-runs-on-windows-azure-007367.php
Artículo publicado en CMScritic: Artículo publicado en CMScritic: http://www.cmscritic.com/softeng-portal-builder%E2%84%A2-the-first-platform-for-web-projects-operating-in-microsoft-azure
Artículo publicado en Microsoft http://blogs.msdn.com/b/juanjocarmena/archive/2011/03/10/probada-la-escalabilidad-lineal-con-softeng-portal-builder.aspx
Videos-demo de Softeng Portal Builder http://www.softeng.es/es-es/productos/portal-builder-cms/showroom-portal-builder.html
proyecto:¡ Gracias por su atención !
Carlos Colell SorinasCarlos Colell SorinasDirector general
[email protected]://es.linkedin.com/in/ccolellhttp://es.linkedin.com/in/ccolellTwitter.com/ccolell
Barcelona: Pau Claris 162-164 2ª PlantaBarcelona: Pau Claris, 162 164 2 Planta
Madrid: Avda. Doctor Arce, 14