Guía Rápida de Microsoft - Usar Office 365 en Android
Fast tracktothecloud nestorrequesens-itequia-20110331
1. Recomendaciones para el
desarrollo en Microsoft
Azure
Marzo de 2011
Néstor Requesens | nestor.requesens@itequia.com
Team Leader en Itequia
2.
3. Índice
1. Itequia
2. Mapa tecnológico
3. Escenarios prácticos para ISV
4. 8 Consideraciones de diseño
5. 8 «Best practices» para el desarrollo en Azure
6. Windows Azure Platform AppFabric
7. Conclusiones: Azure – Not to Azure
4. La especialización como garantía de éxito
«Nada se sabe bien
sino por medio de la experiencia» Sir Francis Bacon
5. Índice
1. Itequia
2. Mapa tecnológico
3. Escenarios prácticos para ISV
4. 8 Consideraciones de diseño
5. 8 «Best practices» para el desarrollo en Azure
6. Windows Azure Platform AppFabric
7. Conclusiones: Azure – Not to Azure
7. Índice
1. Itequia
2. Mapa tecnológico
3. Escenarios prácticos para ISV
4. 8 Consideraciones de diseño
5. 8 «Best practices» para el desarrollo en Azure
6. Windows Azure Platform AppFabric
7. Conclusiones: Azure – Not to Azure
8. Escenarios prácticos para ISV
Cloud Storage en aplicaciones internas (1)
Posible primer paso al mundo
del cloud computing
Cloud Storage Windows Azure Storage
Ejemplo: Aplicación que actualmente hace
App Server
backups «on premise» puede hacer
backups «on cloud»
SQL Azure
Ejemplo: Aplicación que necesita compartir
un conjunto de tablas relacionales puede
Users Infraestructura interna Infraestructura cloud hacerlo en la nube
9. Escenarios prácticos para ISV
Combinar aplicaciones Cloud y aplicaciones internas (2)
Windows Azure & SQL Azure
Inicialmente puede no tener sentido
App Server
migrar millones de lineas de codigo a la
Cloud App
nube...
...pero si puede tener sentido
Cloud Storage
Users desarrollar las nuevas
funcionalidades en la nube
Ejemplo: Aplicación que en momentos
Storage Server puntuales puede beneficiarse de mayor
potencia de CPU o mas memoria
Infraestructura interna Infraestructura cloud
10. Escenarios prácticos para ISV
Crear una versión SaaS de nuestro producto (3)
Beneficios para los clientes SaaS:
• No inversión inicial en la compra de servidores o
SaaS Customer licencias (menor riesgo)
• Pago por uso (ejemplo: pago por usuario/mes)
• Reducción en costes de deployment
Cloud App and Storage
• ...
On-pem Customers
Beneficios para los ISV:
• Incremento potencial de ventas ya que el cliente tiene
menos riesgo
• Mayor facilidad en «updates» a los clientes. Se pueden
actualizar todos al mismo tiempo
App Server
Infraestructura interna Infraestructura cloud • Mejor aprovechamiento de capacidades HW
11. Índice
1. Itequia
2. Mapa tecnológico
3. Escenarios prácticos para ISV
4. 8 Consideraciones de diseño
5. 8 «Best practices» para el desarrollo en Azure
6. Windows Azure Platform AppFabric
7. Conclusiones: Azure – Not to Azure
12. Consideraciones de diseño
¿Donde ha de vivir nuestra aplicación?
¿Tendremos que ejecutar nuestra ¿Como accede nuestra aplicación a la
aplicación de forma interna y externa configuración?
simultáneamente? • No podemos acceder al registro en la nube
• web.config, app.config no se pueden
¿Tendremos que condicionar el código cambiar en tiempo de ejecución.
de nuestra aplicación? • Utilizar Service Configuration u otros
gestores dinámicos de configuración.
if (WeAreInTheCloud == true)
{
}
//Do something
¿Utiliza nuestra aplicación el sistema
else
{
//Do something else
de ficheros?
}
13. Consideraciones de diseño
¿Donde ponemos nuestros datos?
(Storage)
SQL Azure es un subconjunto de SQL Blobs: Máx. 1TB por BLOB
Server 2008 Estructura simple para almacenar
datos multimedia
Para migrar un esquema a SQL Azure Tables: Máx. 100TB por Tabla
podemos utilizar herramientas como «Tablas simples» no relacionales
SQL Azure Migration Wizard
Queues: Su uso principal es permitir
Limite Máx. 50 GB por Base de datos comunicación estructurada entre «Web
Role» y «Worker Role»
14. Consideraciones de diseño
¿Cómo monitorizamos nuestra aplicación?
La API de Windows Azure ofrece los
ingredientes necesarios para monitorizar
nuestra aplicación.
Definir que información es necesaria en
¿Qué hacemos cuando algo va mal caso de crisis y que información es
necesaria para monitorear el
en nuestra aplicación? rendimiento normal de la aplicación.
En Azure no tendremos acceso directo a:
• Ficheros de log Desarrollar servicios para poder obtener
• Escritorio remoto estos datos bajo demanda o de
• Diagnósticos del sistema manera planificada.
15. Consideraciones de diseño
¿Dónde ponemos el estado y la cache?
Por norma general pensar en modo ¿Como usamos la sesión?
«stateless» es mejor en el mundo Azure.
Tenemos que ver nuestra aplicación
como distintas instancias y no como
una sola aplicación.
¿Como compartimos el estado y la
cache?
• Utilizar «local storage» no será valido en caso de
tener múltiples roles.
• Tendremos que pensar en usar SQL Azure o Azure
Azure nos ofrece mecanismos para
Storage para cualquier escenario distinto de guardar la sesión en Azure Storage.
«single-instance». Utilizar: TableStorageSessionStateProvider
16. Consideraciones de diseño
¿Cómo hacemos los deployments?
La API de Service Management que nos
ofrece Windows Azure ofrece mas
funcionalidades.
• Deployments Automáticos
• Cambios dinámicos en la configuración
• Automatizar los scale-ups /scale-downs
Consideremos implementar una GUI para
configurar / ejecutar las automatizaciones
que implementemos con la API
Azure Developer Portal ofrece un
subconjunto de las funcionalidades que Podemos guardar nuevo código y
tenemos para hacer «deployments». configuraciones en Azure Storage
17. Consideraciones de diseño
¿Cómo hacemos backup?
Aunque los datos están replicados 3 SQL Azure todavía no ofrece una
veces, podemos perder datos por estrategia para hacer backups.
culpa de fallos en nuestra aplicación o
por error del usuario. Opciones:
• Usar ADO.NET, ODBC u otras APIs para
desarrollar nuestra utilidad de backups.
• Utilizar el Bulk Copy Program (BCP) para
copiar de SQL a ficheros.
• Usar SQL Server Integration Services
• Copiar nuestra BD distinta en Azure.
• SQL Azure Data Sync (Labs)
• SQL Azure Migration Wizard
18. Consideraciones de diseño
¿Cómo escalaremos nuestra aplicación?
Para nuestros servicios deberíamos
desarrollar un mecanismo que nos
alerte cuando debemos escalar.
Podremos utilizar la API de Service
La escalabilidad es una de Management para ejecutar (o quitar)
las razones de ser de Azure instancias.
Azure ofrece soluciones al escalado, El tamaño de maquina virtual
pero solo nosotros podemos escogido jugará un papel importante
determinar como y cuando escalar. en las decisiones de escalado.
19. Consideraciones de diseño
¿Cómo autenticamos / autorizamos?
Normalmente nuestras aplicaciones
internas utilizan AD o ADFS para las
autenticaciones / autorizaciones.
Opciones Azure:
• Forms Authentication contra Azure Storage
o SQL Azure
• Claims-Based Authentication usando
Windows Identity Foundation y
consultando nuestro AD interno
• AppFabric Access Control
20. Índice
1. Itequia
2. Mapa tecnológico
3. Escenarios prácticos para ISV
4. 8 Consideraciones de diseño
5. 8 «Best practices» para el desarrollo en Azure
6. Windows Azure Platform AppFabric
7. Conclusiones: Azure – Not to Azure
21. «Best practices» para el desarrollo en Azure
Validar la Ejecutar como Las buenas Actualizar al
compatibilidad de mínimo 2 practicas de SOA máximo las
nuestro proyecto instancias para se adaptan tecnologias
con Azure des de aplicaciones de perfectamente a Microsoft antes
el principio alta Windows Azure de migrar a Azure
disponibilidad
(Azure SLA)
22. «Best practices» para el desarrollo en Azure
Migrar las Aplicaciones «Data center Código y datos
capas de las «Sateless» affinity» en el mismo
aplicaciónes sitio
de una en una ...y si hemos de Usar «affinity
guardar el estado groups» para Evitar trafico
...y de forma inecesario entre
consolidada hacerlo con hosting, storage,
mecanismos bases de datos,... Azure y nuestra
Azure organización
23. Índice
1. Itequia
2. Mapa tecnológico
3. Escenarios prácticos para ISV
4. 8 Consideraciones de diseño
5. 8 «Best practices» para el desarrollo en Azure
6. Windows Azure Platform AppFabric
7. Conclusiones: Azure – Not to Azure
24. ¿Que es AppFabric: el lio de nombres?
Marketplace DataMarket Applications 2007- Internet Service Bus
Composite
Frameworks Caching
App
July 2008 - Project Zurich
Access
Security Control
Connect
Integration Service Bus Integration
(BizTalk) 2008 Net Services (como parte de
Relational
Azures Services Platform)
Data Database
DataSync Reporting
Compute Web Role Worker Role VM Role
2009 - Windows Server AppFabric
Content Delivery
Storage Table Storage Blob Storage Queue Drive Network
Networking Connect Finally - Windows Azure Platform
Appfabric
25. Para que nos entendamos...
Middleware “en la nube” para desarrollar, desplegar y
gestionar aplicaciones
Solución integrada para extender las capacidades de
los servicios en la nube
Un modelo consistente de programación y una libreria
de herramientas
26. Índice
1. Itequia
2. Mapa tecnológico
3. Escenarios prácticos para ISV
4. 8 Consideraciones de diseño
5. 8 «Best practices» para el desarrollo en Azure
6. Windows Azure Platform AppFabric
7. Conclusiones: Azure – Not to Azure
27. Azure – Not to Azure
Aplicaciones que requieren
proximidad a otras aplicaciones Para todo lo demás…
concretas
Aplicaciones que necesitan
mucha agregación de datos
Aplicaciones en las cuales se usan muchas
herramientas de terceros
Aplicaciones que requieran instalar componentes
en el servidor
28. Recomendaciones para el
desarrollo en Microsoft
Azure
Marzo de 2011
Néstor Requesens | nestor.requesens@itequia.com
Team Leader en Itequia