Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Upcoming SlideShare
Movilidad en Office 365
Next

Share

Diseña tu propio Office 365 - Global Azure Bootcamp 2015

Mi presentación en el Global Azure Bootcamp 2015. Esta charla demuestra cómo es posible diseñar una granja completa de SharePoint utilizando máquinas virtuales de Azure. Vemos cómo se puede integrar AAD y cómo se pueden preparar plantillas de máquina preparadas para agregar servidores a las granjas para poder escalar la infraestructura y los servicios de SharePoint. Gracias a la potencia de Azure websites, web Jobs y otras herramientas de Azure se muestra cómo diseñar un panel de administración que permite hacer operaciones administrativas sobre SharePoint sin necesidad de acceder internamente a la granja, de la misma manera que lo hace Office 365. También nos centraremos en el diseño de APIs de administración y despliegue de PowerShell y cómo crear portales similares a Office Video y Delve usando servicios como Azure Search o Application Insights. En definitiva, todo un conjunto de ideas de cómo podríamos diseñar nuestro propio Office 365.

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

Diseña tu propio Office 365 - Global Azure Bootcamp 2015

  1. 1. #GlobalAzure Diseña tu propio Office 365 gracias a Azure IaaS y PaaS Miguel Tabera Pacheco
  2. 2. www.MadPoint.net
  3. 3. ¿Qué es Office 365?
  4. 4. ■ ¿Qué incluye SharePoint Online? SharePoint Online vs. SharePoint Server
  5. 5. ■ ¿Qué NO incluye SharePoint Online? ■ Algunos servicios de BI ■PerformancePoint ■PowerPivot ■Reporting Services ■Analysys Services ■ Desarrollo de soluciones servidor ■ Word automation services ■ OneDrive para la empresa con funcionalidad ampliada ■ Otras pequeñas características en los distintos servicios ■ Control de la granja y aplicaciones web ■ Control avanzado de infraestructura, servidores, errores, log… ■ Mayor control en servicios y su configuración (por ejemplo las búsquedas) SharePoint Online vs. SharePoint Server
  6. 6. ■ ¿Y si usamos las herramientas de Azure para diseñar un entorno SharePoint con toda la potencia de la versión on-premise? ■ ¿Pero con la sencillez de la versión online? SharePoint “as a service”
  7. 7. Diseño de nuestro propio Office 365 ¡¡¡Pues ahora voy a hacer mi propio Office 365!!! ■ Usaremos Azure IaaS para diseñar la granja. ■ Automatizaremos tareas gracias a PowerShell y web Jobs. ■ Usaremos Azure web apps para diseñar un panel de administración. ■ Idearemos APIs de administración. ■ En la presentación nos centraremos en SharePoint.
  8. 8. ■ Introducción ■ Nuestros objetivos ■ Herramientas con las que contamos ■ Diseño de la granja usando IaaS ■ Diseño de un portal de administración con PaaS ■ Creación de APIs PowerShell para administración y para despliegue ■ NextGen portals ■ Medición de uso y rendimiento ■ Ampliando el servicio: API REST, Exchange, custom portals… Agenda
  9. 9. ■ Conseguir un entorno en la nube similar a SharePoint Online. ■ Podemos utilizar máquinas virtuales para crear servidores de AD y DNS, SQL Server y una granja de SharePoint. ■ Evitar que los administradores tengan que acceder a los servidores para cualquier acción (crear colecciones de sitios, configurar servicios, administrar metadatos, lanzar rastreos de búsqueda…). ■ Podemos diseñar una web de administración en un Azure Web App. ■ Podemos diseñar una API PowerShell de administración. ■ Podemos diseñar una API REST de administración. Nuestros objetivos e ideas para conseguirlos
  10. 10. ■ Automatizar todo lo posible ■ Apoyémonos en la comunidad. ■ Hay muchas galerías de scripts PowerShell que nos ayudan a automatizar. ■ Diseñar nuestro SharePoint “as a service” compatible con Office 365 ■ Intentaremos desarrollar con técnicas modernas y no con código servidor. ■ Nos ayudará si algún día decidimos migrar a la nube. ■ Evitaremos “ensuciar” los servidores. ■ Proporcionar funcionalidades avanzadas. ■ Existen grandes productos como Nintex, Beezy, AvePoint… que pueden ayudarnos a ofrecer una experiencia mejorada de la plataforma. Nuestros objetivos e ideas para conseguirlos
  11. 11. Servicios de Azure
  12. 12. ■ Máquinas virtuales y redes virtuales. ■ Para crear la granja de SharePoint. ■ Azure Storage ■ Almacenaremos copias de servidores para levantar nuevos frontales web. ■ Azure Web Apps ■ Para diseñar un panel de administración y ubicar SharePoint apps. ■ Web Jobs ■ Para realizar procesos periódicos en el entorno. ■ Azure Media Services + CDN ■ Para montar nuestro portal de vídeo. ■ Application Insights ■ Para monitorizar y medir uso y rendimiento. Servicios de Azure
  13. 13. Las tres API cliente de SharePoint Client-side object model (CSOM) Para aplicaciones que usen C#. Para aplicaciones Silverlight y Windows Phone. JavaScript object model (JSOM) Muy sencillo para aplicaciones web y JavaScript de Windows 8. Útil para desarrollar apps de SharePoint para otras plataformas (Android, iOS…) REST API independiente de la plataforma basada en estándares como OAuth y OData.
  14. 14. ■ Reference for SharePoint 2013 APIs (Server, CSOM, JavaScript) ■ http://msdn.microsoft.com/en-us/library/jj193038.aspx ■ How to: Complete basic operations using SharePoint 2013 client library code ■ http://msdn.microsoft.com/en-us/library/fp179912.aspx ■ How to: Complete basic operations using JavaScript library code in SP 2013 ■ http://msdn.microsoft.com/en-us/library/jj163201.aspx ■ How to: Complete basic operations using SharePoint 2013 REST endpoints ■ http://msdn.microsoft.com/en-us/library/jj164022.aspx Las tres API cliente de SharePoint
  15. 15. ■ Herramienta ideal para crear operaciones de administración. ■ Puede usar las API cliente para conectar remotamente a SharePoint. ■ Puede ser muy útil para la creación automática de la granja. ■ Usaremos proyectos de la comunidad como AutoSPInstaller. ■ Lo usaremos también para automatizar despliegues. Windows PowerShell
  16. 16. ■ Plantilla de granja de SharePoint en Azure. ■ Pocos datos de configuración. ■ Creación rápida. En menos de 1 hora. ■ Control de los nombres de servidor, nivel de precio, redes, storage. ■ No se tiene todo el control sobre la configuración, usuarios y servicios. ■ Creación manual de los servidores. ■ Se tiene todo el control sobre el entorno y su configuración. ■ Para IT PRO con conocimientos avanzados de SharePoint. ■ Se pueden usar herramientas de instalación de terceros o de comunidad. ■AutoSPInstaller Opciones de diseño de la granja SharePoint
  17. 17. La plantilla de granja de SharePoint ■ Configuración básica:
  18. 18. La plantilla de granja de SharePoint ■ Configuración con alta disponibilidad:
  19. 19. La plantilla de granja de SharePoint
  20. 20. Creación manual de los servidores VHD VHD VHD VHD VHD VHD VHD VHD VHD VirtualNetwork
  21. 21. Creación manual de los servidores ■ La combinación que queramos
  22. 22. ■ Scripts PowerShell automatizados que permiten instalar y configurar la granja de SharePoint al completo. ■ Se guarda en una carpeta los binarios de SharePoint, Language Packs, Service Packs y Cumulative Updates y se configura un XML con todos los datos de la granja. Los scripts configurarán todos los servidores. ■Algunas características importantes: ■ Desactiva servicios de Windows que no sean necesarios ■ Instala SharePoint, prerrequisitos, actualizaciones esenciales del servidor, Language Packs, CU, Service Packs, Office Web Apps, ForeFront, PDF iFilter… ■ Permite una instalación desatendida de toda la granja, incluso reiniciando las máquinas. ■ Permite configurar Alias SQL, poner nombres a todas las bases de datos. ■ Configura cuentas, permisos, logins, contraseñas, passphrases, servicio de almacenamiento seguro… ■ Crea todas las aplicaciones de servicio ya configuradas. ■ Crea aplicaciones de SharePoint, Mi Sitio, Search Center… ■ Configura los IIS del servidor y ficheros de host ■ Configura los diferentes roles de búsqueda (admin, crawl, index…) ■Proyecto de Codeplex: https://autospinstaller.codeplex.com AutoSPInstaller
  23. 23. ■ Dejar guardado en el storage un VHD con todo instalado (binarios, actualizaciones, language packs…). ■ Si se quiere añadir un frontal web o un servidor de aplicación: ■ Duplicar disco del storage. ■ Crear una máquina en la red virtual a partir de ese disco. ■ Ejecutar el asistente de SharePoint para unir a la granja y configurar roles a mano ■ O ejecutar los script de AutoSPInstaller con los roles prefijados. ■ Podemos integrarlo en el panel de administración que vamos a diseñar. ■ Desde el panel podemos crear una máquina con la API de Azure. ■ Y podemos forzar que se ejecute AutoSPInstaller o el asistente de SharePoint. Ampliar la granja
  24. 24. ■ Nuestro objetivo principal: ■ SharePoint “as a service”. ■ Evitar que los administradores tengan que entrar a los servidores. ■ Proporcionar un panel de administración con las herramientas necesarias para realizar las operaciones más comunes. ■ No permitir acceso a configuración avanzada de la granja. No nos sirve con dar acceso externo a la Administración Central de SharePoint. Portal de administración ■ Debe seguir los principios del Centro de Administración de SharePoint Online
  25. 25. Diseño técnico ■ La aplicación web contiene: ■ Aplicación ASP.NET con el panel de administración ■ Azure Web Jobs para realizar operaciones periódicas desatendidas sin necesidad de hacer SharePoint Timer Jobs dentro de la granja
  26. 26. Ejemplo de panel de administración
  27. 27. ■ SharePoint Server ofrece una completísima API de PowerShell para administración. ■ Pero nuestro objetivo es no hacer operaciones en servidor. ■ Apoyándonos en la API CSOM y, aprovechando que en PowerShell se pueden usar objetos .NET, vamos a construir nuestras funciones de administración. ■ Serán muy re-aprovechables en SharePoint Online. API PowerShell para administración
  28. 28. ■ Administración ■ Creación de sitios, seguridad, configuración… ■ Despliegue de contenido ■ Creación de columnas, tipos de contenido, listas, flujos de trabajo, páginas… Dos principales usos
  29. 29. function Load-SPClientDlls() { Add-Type -Path ".Microsoft.SharePoint.Client.dll" Add-Type -Path ".Microsoft.SharePoint.Client.Runtime.dll" Add-Type -Path ".Microsoft.SharePoint.Client.WorkflowServices.dll" Add-Type -Path ".Microsoft.SharePoint.Client.Publishing.dll" } function Connect-SPClientContext([string]$user, [string]$site) { Load-SPClientDlls $password = Read-Host -Prompt "Enter password: " -AsSecureString # Initialize a new ClientContext object passing $siteUrl $ctx = New-Object Microsoft.SharePoint.Client.ClientContext($site) # We need to add the credentials $credentials = New-Object System.Net.NetworkCredential($user, $password) CheckError(-3) $ctx.Credentials = $credentials # At this point, we can use our ClientContext object to create, delete, and retrieve a list of sites. return $ctx } Login y conexión
  30. 30. function Create-Group([Microsoft.SharePoint.Client.ClientContext]$ctx, [string]$groupName) { $groupCreatioInfo = New-Object Microsoft.SharePoint.Client.GroupCreationInformation $groupCreatioInfo.Title = $groupName $group = $ctx.Web.SiteGroups.Add($groupCreatioInfo) $ctx.Load($group) $ctx.ExecuteQuery() return $group } function Break-ListPermissions([Microsoft.SharePoint.Client.ClientContext]$ctx, [string]$listName, [bool]$copyRoleAssignments, [bool]$clearSubscopes) { $list = Get-List -ctx $ctx -name $listName $list.BreakRoleInheritance($copyRoleAssignments, $clearSubscopes) $ctx.ExecuteQuery() } Algunos ejemplos: seguridad
  31. 31. function Create-SubSite([Microsoft.SharePoint.Client.ClientContext]$ctx, [string]$url, [string]$title, [string]$template) { $webCreationInformation = New-Object Microsoft.SharePoint.Client.WebCreationInformation $webCreationInformation.Url = $url $webCreationInformation.Title = $title $webCreationInformation.WebTemplate = $template $newWeb = $ctx.Web.Webs.Add($webCreationInformation) $ctx.Load($newWeb) $ctx.ExecuteQuery() } function Remove-Site([Microsoft.SharePoint.Client.ClientContext]$ctx) { $web = $ctx.Web $ctx.Load($web) $ctx.ExecuteQuery() $web.DeleteObject() $ctx.ExecuteQuery() } Algunos ejemplos: sitios
  32. 32. function Create-SiteColumn([Microsoft.SharePoint.Client.ClientContext]$ctx, $FieldType, $Name, $Description, $DisplayName, $StaticName, $Group, $Hidden, $Required, $Sealed, $ShowInDisplayForm, $ShowInEditForm, $ShowInListSettings, $ShowInNewForm) { $rootWeb = $ctx.Site.RootWeb $fieldXML = '<Field Type="'+$FieldType+'" Name="'+$Name+'" Description="'+$Description+'" DisplayName="'+$DisplayName+'" StaticName="'+$StaticName+'" Group="'+$Group+'" Hidden="'+$Hidden+'" Required="'+$Required+'" Sealed="'+$Sealed+'" ShowInDisplayForm="'+$ShowInDisplayForm+'" ShowInEditForm="'+$ShowInEditForm+'" ShowInListSettings="'+$ShowInListSettings+'" ShowInNewForm="'+$ShowInNewForm+'" '+ '</Field>' $field = $rootWeb.Fields.AddFieldAsXml($fieldXML, $true, [Microsoft.SharePoint.Client.AddFieldOptions]::AddFieldToDefaultView) $ctx.Web.Update() $ctx.Load($field) $ctx.ExecuteQuery() } Algunos ejemplos: contenido
  33. 33. function Add-FieldColumnToContentType([Microsoft.SharePoint.Client.ClientContext]$ctx, [Microsoft.SharePoint.Client.Field]$Field, [Microsoft.SharePoint.Client.ContentType]$ContentType) { $fieldLinkCreationInformation = New-Object Microsoft.SharePoint.Client.FieldLinkCreationInformation $fieldLinkCreationInformation.Field = $Field $info = $ContentType.FieldLinks.Add($fieldLinkCreationInformation) $ContentType.Update($true) $ctx.ExecuteQuery() } function Get-List([Microsoft.SharePoint.Client.ClientContext]$ctx, [string]$name) { $web = $ctx.Web $ctx.Load($web) $ctx.Load($web.Lists) $ctx.ExecuteQuery() $list = $web.Lists.GetByTitle($name) $ctx.Load($list) $ctx.ExecuteQuery() } Algunos ejemplos: contenido
  34. 34. ■ Portales de nueva generación que Microsoft ha añadido recientemente a Office 365. ■ Los principales ejemplos son Delve y Office Video. ■ No se basan en SharePoint, pero vamos a ver técnicas para integrarlos en nuestro entorno usando SharePoint. ¿Qué son los NextGen Portals?
  35. 35. ■ Aprovecharemos las siguientes tecnologías: ■ Azure Media Services ■ Listas de SharePoint ■ SharePoint apps ■ SharePoint Search Display Templates ■ Azure App Insights (para log de errores) Diseñando nuestro propio Office Video
  36. 36. Azure Media Services
  37. 37. Diseño técnico Upload video app ■ La app se instala en el sitio de SharePoint. Utiliza un website de Azure. ■ El usuario carga el vídeo a través de la app. ■ El website carga el vídeo en Media Services. ■ Un job queda pendiente del estado de la codificación. Cuando termina, avisa a la web app y le da los resultados. ■ El website almacena información del vídeo, codificación y metadatos en una lista de vídeos en SharePoint. ■ El portal tiene funcionalidades para ver y reproducir los vídeos que están en Media Services. Lista vídeos
  38. 38. Ejemplo gráfico
  39. 39. ■ ¿Y si quisiera hacer una api para proporcionar los vídeos a un sistema de reproducción externo? ■ Por ejemplo, un teléfono, una Xbox… Siguiente nivel
  40. 40. Diseño técnico Upload video app ■ Puedo crear una API con ASP.NET Web API dentro del web site de la app. ■ Al estar dentro del web site de la app, ya puedo trabajar con SharePoint sin problemas de seguridad y obtener la url de streaming y metadatos de la lista de vídeos. ■ La API obtendría datos directamente de SharePoint Lista vídeos API
  41. 41. ■ ¿Y si preveo mucha carga y no estoy seguro cómo responderá mi granja de SharePoint? ■ Podemos hacer que la Web API ataque a un sistema externo que sincronice con SharePoint. Siguiente nivel
  42. 42. Diseño técnico Upload video app ■ A través de un web job, podemos sincronizar los datos del sitio de SharePoint con Azure Search. ■ La API obtendrá los datos de Azure Search, pudiéndose aprovechar de las reglas de ordenado, filtrado, etc. Lista vídeos API
  43. 43. ■ Utilizaremos Azure Application Insights ■ Proporciona un código JavaScript que podemos insertar en nuestros portales de SharePoint. ■ Nos permitirá ver información de uso y rendimiento de nuestro SharePoint “as a service”. Medición de uso y rendimiento
  44. 44. Application Insights en SharePoint
  45. 45. ■ Copiamos el código en nuestra página maestra (o lo desplegamos como una solución de granja) Application Insights en SharePoint
  46. 46. ■ Si se desea monitorizar una única página, puede insertarse en una webpart de JavaScript Application Insights en SharePoint
  47. 47. ■ Proporciona de un vistazo información de usuarios, sesiones y visitas a las páginas. Application Insights en SharePoint
  48. 48. ■ Diagnosis Search proporciona muchos datos de las páginas vistas: Application Insights en SharePoint
  49. 49. ■ La presentación pretendía dar visión sobre cómo, jugando con muchas herramientas de Azure, puede conseguirse diseñar un SharePoint como servicio. ■ Siguiendo esta línea, puede ampliarse la funcionalidad o incluso proporcionar más servicios para conseguir un Office 365 completo: ■ Exchange Server ■ Lync Server Skype for Business ■ APIs REST para la plataforma ■ Delve ■ Integración con Yammer ■ … Y más adelante…
  50. 50. Contacto www.madpoint.net www.linkedin.com/groups?gid=4554702 @MadPoint @migueltabera www.sinsharepointnohayparaiso.com miguel.tabera@outlook.com http://blogs.plainconcepts.com/rockyouroffice Miguel Tabera Pacheco
  51. 51. Thanks!
  • vfernandezg

    Jun. 5, 2017
  • raulmirandarios1

    Nov. 29, 2015

Mi presentación en el Global Azure Bootcamp 2015. Esta charla demuestra cómo es posible diseñar una granja completa de SharePoint utilizando máquinas virtuales de Azure. Vemos cómo se puede integrar AAD y cómo se pueden preparar plantillas de máquina preparadas para agregar servidores a las granjas para poder escalar la infraestructura y los servicios de SharePoint. Gracias a la potencia de Azure websites, web Jobs y otras herramientas de Azure se muestra cómo diseñar un panel de administración que permite hacer operaciones administrativas sobre SharePoint sin necesidad de acceder internamente a la granja, de la misma manera que lo hace Office 365. También nos centraremos en el diseño de APIs de administración y despliegue de PowerShell y cómo crear portales similares a Office Video y Delve usando servicios como Azure Search o Application Insights. En definitiva, todo un conjunto de ideas de cómo podríamos diseñar nuestro propio Office 365.

Views

Total views

5,005

On Slideshare

0

From embeds

0

Number of embeds

3,451

Actions

Downloads

0

Shares

0

Comments

0

Likes

2

×