En esta presentación, el director general de SOFTENG, Carlos Colell, explica qué se migró, porqué se optó por la plataformcloud de Microsoft Windows Azure y que dificultades y retos nos fuimos encontrando por el camino. Como principal conclusión, es vital diseñar una arquitectura pensada para cloud.
KELA Presentacion Costa Rica 2024 - evento Protégeles
Como migrar una gran aplicacion a cloud, con Microsoft Windows Azure
1. Migrando una gran aplicación a
proyecto:
Barcelona, 31 de Marzo del 2011
Carlos Colell Sorinas
Director General
ccolell@softeng.es
2. Í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 ?
¿Cómo di li i l d
diseñar una aplicación para Cloud / Azure?
Conclusiones
4. 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 infraestructura
Microsoft y Desarrollo de proyectos Web.
Fabricante de la primera plataforma SaaS para
proyectos Web en Azure.
6. ¿Qué se migró a Azure?
Softeng Portal Builder
Qué es en esencia
Prestaciones destacadas
7. 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
On-premise o en Azure (SaaS Anywhere )
O i A (S S A h TM
Solución calificada como innovadora por el
Ministerio de Ciencia e Innovación
8. Softeng Portal BuilderTM - Visión general
Prestaciones destacadas
MARKETING TI
Edit-in-Place Backoffice Studio
Traducción simultánea Workflow Engine
Optimización SEO Portal Builder Framework
Mapa de calor Modelador de entidades
Analítica de visitas integrada Integrador de aplicaciones
9. Softeng Portal BuilderTM - Visión general
Pantalla de “Edit-in-Place”
Actualice
fácilmente los
contenidos
id
desde el propio
Site
Navegue, haga
clic en el texto o
imagen que
desee cambiar ,
guarde y
publique.
publique
Así de simple !
10. Softeng Portal BuilderTM - Visión general
Pantalla “Mapa de calor”
Mejore la
eXperiencia de
sus usuarios
Analice
visualmente el
comportamiento
de los visitantes y
optimice el site
i i l i
para obtener más
conversiones.
11. Softeng Portal BuilderTM - Visión general
Pantalla de “Analítica de Visitas”
Analice la
efectividad de su
webb
La analíticas
integradas ofrecen
i t d f
información en
contexto acerca de
las visitas y
objetivos
conseguidos
permitiendo tomar
buenas decisiones.
12. Softeng Portal BuilderTM - Visión general
Proyectos destacados
Industria Gobierno Construcción
Salud Interiorismo Media
13. Softeng Portal Builder
& Windows Azure
SaaS “pide” PaaS
pide
¿Por qué se optó por Azure?
Azure complementa a Portal Builder
Beneficios obtenidos con Azure
15. Softeng Portal BuilderTM & Windows Azure
¿Por qué movernos a la nube ?
Maximizar los beneficios de “SaaS”
Aumentar confianza en nuestra solución
Evitar inversión por adelantado
d l d
Reducir costes de mantenimiento
Poder escalar rápido + evitar “estimar”
Por compromiso de innovación
Facilitar el cálculo del pago por uso
16. 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
Eliminar costes de mantenimiento
18. Moviendo una aplicación a Azure
¿Por donde empezar?
1-Microsoft.com/WindowsAzure
2-Abre una cuenta gratuita:
Experimenta con una App sencilla
sencilla.
3-¿No funciona a la primera?
3 N f i l i ?
Buscar en internet…
4-Opción de curso de iniciación
19. 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
Web Application ,
en web.config no soportados y otros por el estilo.
DTC no soportado: Evitar la promoción de las transacciones a una
transacción distribuida usando el DTC.
Imposibilidad de depuración en p
p p producción: Pasar a .NET 4.0 con
Visual Studio 2010 y usar IntelliTrace.
Adaptación de Scripts SQL: Los scripts DDL de SQL Server deben
p p p
adaptarse 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 …
20. 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 Microsoft.
Microsoft
Mejor cuanto más pequeñas: En general, es mejor usar 4
j p q g j
instancias pequeñas que 2 grandes.
El entorno “staging” también consume
staging consume…
Si paramos una instancia, también consume: Eliminarla
El centro de Irlanda, funciona mejor que Amsterdam
Monitoriza … de forma automatizada
22. 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 fragmentos
Servicio Web: Que reciba y recomponga los fragmentos del archivo
Cliente: Ha de tener acceso a archivo para trocear y subirlo
Ej. Silverlight h
Ej Sil li h http://blog.smarx.com/posts/uploading-windows-azure-
//bl / / l di i d
blobs-from-silverlight-part-1-shared-access-signatures
23. Moviendo una aplicación a Azure
¿Buscador en Azure?
Necesidad: Requeríamos continuar teniendo un sistema de búsqueda
Problema: S
P bl Search Server no está soportado en Windows Azure
hS tá t d Wi d A
Solución:
Lucene.NET
Programar escaneos desde Worker Role
Almacenamiento de índices en Blob Storage
24. 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
Solución: Descargar esquema d la BBDD, ejecutar comparación y
S l ió D de l BBDD j t ió
aplicar script diferencial en SQL Azure + Automatizarlo.
28. Moviendo una aplicación a Azure
A ver como va…
-Consumo de Azure excesivo !
-No hay backups !
-La aplicación no escala !
La
-La aplicación va lenta !
p
¡La hemos liado! “Chiesss…”
que no se entere el jefe !!
30. Diseñando para cloud
p
¿Qué optimizar / mejorar ?
Ejemplos concretos
j
Más retos
Conclusiones
31. 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 actualizar ->
act ali ar Mayor
Ma or coste
• Elasticidad no automática - > Mayor coste
32. 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 salida
salida.
Tamaño de la BD en SQL Azure
Transferencia entre regiones Azure
Cantidad de espacio consumido en storage
Transacciones al sistema de ficheros (lectura y escritura)
Conexiones AppFabric
33. Diseñando para Azure: Ejemplos
Reducir consumo en SQL Azure (I)
Situación: Por simplicidad, Softeng Portal Builder
almacenaba 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 Azure 50GB $354 56 € / mes
A $354.56
Blob Storage 50GB 0.10 € / GB x mes x 50 = 5€ / mes
34. 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
BBDD ligera de descargar
35. 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)
Problema 3 C
P bl 3: Conviene t
i tener l b k ’ en l nube.
los backup’s la b
Problema 4: No existe ninguna solución en el mercado.
Problema 5: Un nuevo desarrollo …
36. Diseñando para Azure: Ejemplos
Sistema de backup (II): La solución
Ventajas
Coste de almacenaje reducido: 0.15$ GB/mes
Si costes d t
Sin t de transferencia
f i
Descarga a local, bajo demanda
37. 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”
escalabilidad Azure
Automatización de pruebas de carga en Azure:
p g
Simulamos N usuarios en Azure, levantando N instancias.
Automatizar 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
Azure (mediante worker-roles y colas)
38. Diseñando para Azure
Conclusiones
≠
Funcionar en Azure Funcionar bien: No es igual adaptar una
aplicación p
p para que funcione a diseñarla p
q para que sea óptima. Errores de
q p
arquitectura en el software clásico se magnifican en cloud.
Azure ofrece grandes beneficios: … si diseñamos siguiendo
arquitecturas orientadas a coste y a escalabilidad.
Un beneficio inesperado para SOFTENG: Reconocimiento y Know-How Know How
adquirido 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..
40. 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:
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
41. proyecto:
¡ Gracias por su atención !
Carlos Colell Sorinas
Director general
ccolell@softeng.es
http://es.linkedin.com/in/ccolell
Twitter.com/ccolell
Barcelona: Pau Claris, 162-164 2ª Planta
Claris 162 164 2
Madrid: Avda. Doctor Arce, 14