SlideShare una empresa de Scribd logo
1 de 24
Descargar para leer sin conexión
Office.com sobre SharePoint




Ariel Kirsman
Agenda
• Qué es Office.com
• SharePoint como plataforma
• Lecciones aprendidas
• Conclusiones
• Q&A
Qué es Office.com
Soporte para usuarios finales de los productos Office (Word,
Excel, PowerPoint, etc).
Web Site + Web Services
Qué es Office.com
En números
  500 autores de contenido...
  Que administran 6 millones de páginas...
  Que visitan 120 millones de usuarios distintos...
  Que generan >3000 RPS (requests por segundo)...
  Servidos por 48 farms de 4:1 al 60% de CPU
  Distribuidas en 2 data centers (por geo-redundancy)

  37 developers, 24 testers, 11 PM’s
Qué es Office.com
Vista Conceptual
   Content Management System («Authoring») - donde los
   autores crean, administran y localizan el contenido,
   Office.com («Rendering») – al cual los usuarios y las
   aplicaciones de Office se conectan,
   Bulk Operations Framework – que permite procesar
   múltiples objetos de manera unificada,
   Unified Warehouse - repositorio de sólo-lectura de todo tipo
   de metadata (de contenido, social, estadísticas de uso, etc)
   sobre el cual se ejecutan consultas, workflows y análisis.
Qué es Office.com
Vista de Componentes




         ...
Qué es Office.com
                              Legacy
Vista de Datos




                 Migración




                                                 Migración
   Authoring




                             Propagación de Contenido
   Rendering
Qué es Office.com
Publishing
SharePoint como plataforma
Razones de la elección
   Llevar a SharePoint a una escala de Internet.
   «Dogfooding»: si no es bueno para Microsoft, no es bueno
   para los clientes.
   Implementar a un nivel mayor de abstracción
       Deployment
       Workflows
       Queries
       Search
   Pero, ¿hacerlo con la versión 14 en desarrollo?
       Desventaja: «moving target»
       Ventajas
           Colaboración del equipo de SharePoint.
           Círculo virtuoso.
Lecciones Aprendidas
Almacenamiento: Separación Authoring vs. Rendering
   En teoría, esta es la proposición de valor de SharePoint: integrar
   authoring y rendering de manera natural.
   Pero no funciona para altos volúmenes de
       Contenido
       Creadores de contenido
       Visitantes al sitio
   ¿Porqué?
       Writes vs. Reads
       Secure vs. Anonymous
       Transacciones largas (check-in/out) vs. cortas
   Solución: webapps y site collections separadas, y en Rendering
       Denormalización
       No versioning
       Caching
Lecciones Aprendidas
Almacenamiento: Site collection por lenguaje (Authoring)
   Todos los lenguajes ocupan aprox. 2TB.
   Administrar la DB se vuelve más costoso a mayor tamaño
      Backups
      Mantenimiento (rebuild indexes, update statistics)
   Problema: queries sobre múltiples site collections
      Importante para el Localization team: «obtener todos los
      artículos que fueron asignados al vendor X y no fueron
      traducidos en una semana».
      Solución: exportar metadata a SQL («Unified Data
      Warehouse»).
   Dentro de cada site collection, un root web sin subsites
      Sub-sites no ofrecen ventajas de administración de datos.
      Look & Feel es consistente por lenguaje.
Lecciones Aprendidas
Queries de SharePoint
   Potencia de los Queries
       performance.
       expresividad.
       A futuro, ¿SQL Server’s SPARSE columns?
   Máximo de 2 columnas para compound indexes.
   Diagnosibilidad de los Queries
       e.g., bug cuando los CAML OR’s anidados superaban los
       64 niveles 
       CAML erróneos (e.g., en SPSiteDataQuery) resultan en
       «default queries» en lugar de lanzarse una excepción.
Lecciones Aprendidas
Modelo de Datos
   Relaciones (aprox. 3M)
       Todas las aplicaciones las tienen, y tienen atributos.
       SharePoint no soporta nativamente este concepto.
       Sin embargo, pudimos haber resuelto los mismos
       problemas con tagging y folders...
   SharePoint no soporta
       Logueo de cambios a nivel de configuración/sistema.
       Logueo de items borrados en listas y bibliotecas.
       Causa: Coupling - «change tracking» está implementado
       en términos de «version tracking».
   Gran volumen de binarios en la base de datos afecta
       Performance
       Administración
       Deberíamos haber implementado EBS.
Lecciones Aprendidas
Concurrencia y Locking
   Cuando el volumen de updates de metadata es grande,
   pudimos observar problemas de contención
       Excesivos SQL locks
       Excesivas escalaciones de SQL locks
       Lecturas lentas
   SharePoint está optimizado para «long-running transactions»,
   (e.g., check-in, check-out), stream de un item.
   No está optimizado para cambios frecuentes en la metadata
   de los items.
Lecciones Aprendidas
Bulk Operations
   Muchas operaciones no se pueden hacer «de a muchos
   (items)», o los límites son artificialmente bajos (e.g., máximo
   de 100 items a la vez para upload).
        uploads/downloads múltiples.
        cambios de metadata.
   SharePoint no posee «transactional inserts/updates/deletes»
   (i.e., realizarlos completamente o no realizarlos del todo).
        Gran problema para migración de datos.
Lecciones Aprendidas
Programming API
  DB roundtrips
     Cuándo se va a realizar un DB roundtrip, y cuánto cuestan
     (e.g., SPList.Items.Count vs. SPList.ItemCount)
     fetchDocForHttpGet() trae metadata del ContentType.
         RT adicional para fields fuera de él, no 3 RT’s/artículo 
     No SP* objects caching
         Publishing APIs caching es costoso para 1er request.
         Costo de list schema.
  Event Receivers
     La secuencia de eventos debería ser consistente.
         No asumir nunca que otro event handler hizo su tarea.
     Asincrónicos: no thread-safe, no cancelables.
  Reglas complejas de disposing.
  SharePoint loguea determinado «usage data» per request.
     Metadata no es customizable (e.g., Asset ID)
Lecciones Aprendidas
Propagación de Contenido
   Problema: cómo propagar datos de un master DB a múltiples
   bases para lograr scale-out.
       SQL Replication
           Requiere primary keys en todas las tables de la base
           SharePoint no las tiene 
       Export & Import, Content Migration API (PRIME) API: config
       DB data, check-out status, encuestas no completadas, etc.
       Backup & DB Attach: latencia (i.e., tiempo de propagación
       desde authoring a rendering SQL’s).
   Solución elegida: log-shipping.
       Requiere poner DB offline.
       Mayor latencia que SQL Replication.
       Múltiples chequeos adicionales sobre la solución OOB.
       Alto costo operacional – «baby-sitting»
Lecciones Aprendidas
Propagación de Contenido con Log Shipping

                       Log Shipping
                       Manager (scheduled tasks)


                          Switch B->A, así              Master
                          B se pone al día


                                             Instance
                                                 A
                                               SQL

                    SQL Alias -> A           Instance   .TRN’s
                                                 B
Lecciones Aprendidas
Propagación de Contenido con Log Shipping

                       Log Shipping
                       Manager (scheduled tasks)


                          Switch A->B, así              Master
                          A se pone al día


                                             Instance
                                                 A
                                               SQL

                    SQL Alias -> B           Instance   .TRN’s
                                                 B
Lecciones Aprendidas
Deployment
  Se usaron solutions packages y features.
  Errores cometidos
      Listas y content types se aprovisionaron («crearon») en base
      a un formato propio (no CAML)
      Topología y features a instalar/activar se manejó con código +
      configuración custom
           Complejidad => Errores.
           Problemas en la migración de contenido entre versiones.
  Alternativas
      Usar CAML, site templates y restringir código sólo a feature
      activation/deactivation, minimizando external scripts.
      Ausencia de varias VS tools para SP al inicio del proyecto 
Lecciones Aprendidas
Security
   Authoring: built-in authentication/authorization
       Mantener autorización simple es fundamental
           Limitar granularidad, minimizar «break inheritance»
           Usar domain groups en lugar de domain users.
       Problema: acceso de usuarios fuera del dominio.
           Solución: Live ID on Claims.
               Finalmente, no en producción (Claims no nos llegó a
               tiempo)
   Rendering: acceso anónimo, Live ID para identificar usuarios
       Necesita ser «Partner site» para acceder al perfil de usuario.
Lecciones Aprendidas
Proceso
  Curva de aprendizaje de SharePoint
   1. Aprender
   2. Aprender a hacerlo bien 
  Perf Testing fue clave para el avance del proyecto
      Regresiones (# de DB RT’s)
      Plan de capacidad
      Topología de farm.
Conclusiones

 SharePoint soporta Internet scenarios con grandes volúmenes de
 datos 
 El modelo de datos es fundamental para la performance (e.g., #
 de fields por content type).
 Para grandes volúmenes de datos y transacciones, el modelo de
 lectura/escritura en una base de datos única no funciona.
 Desarrollar un framework para operar sobre múltiples datos a la
 vez fue una decisión muy acertada.
 Planeamiento de capacidad y perf testing desde el inicio fue muy
 acertado.
 Migrar contenido es siempre complicado... no se debe dejar nunca
 para el final.
 Invertir en logging (más allá del OOTB) es beneficioso.
 Este proyecto significó un gran aprendizaje para SharePoint
 mismo... veamos estas experiencias como oportunidades.
¿Preguntas,
 comentarios?
Muchas gracias.

Más contenido relacionado

La actualidad más candente

Diplomado Técnico SQL Server 2012 - Sesión 7/8
Diplomado Técnico SQL Server 2012 - Sesión 7/8Diplomado Técnico SQL Server 2012 - Sesión 7/8
Diplomado Técnico SQL Server 2012 - Sesión 7/8John Bulla
 
Experiencias Usando la Tecnología ADF
Experiencias Usando la Tecnología ADF Experiencias Usando la Tecnología ADF
Experiencias Usando la Tecnología ADF Refundation
 
Charla Web Services
Charla Web ServicesCharla Web Services
Charla Web ServicesJose Selman
 
DBA para SharePoint
DBA para SharePointDBA para SharePoint
DBA para SharePointJoseph Lopez
 
Primeros pasos con Talent Open Studio TOS : Importando datos
Primeros pasos con Talent Open Studio TOS : Importando datosPrimeros pasos con Talent Open Studio TOS : Importando datos
Primeros pasos con Talent Open Studio TOS : Importando datosHeliberto Arias
 
SQL Server Query Processor
SQL Server Query ProcessorSQL Server Query Processor
SQL Server Query ProcessorEduardo Castro
 
Share point 2010 office 2010 y owa
Share point 2010 office 2010 y owaShare point 2010 office 2010 y owa
Share point 2010 office 2010 y owaEva Ordoñez Perez
 
Tipos de Sitios en SharePoint 2010
Tipos de Sitios en SharePoint 2010Tipos de Sitios en SharePoint 2010
Tipos de Sitios en SharePoint 2010SolidQ
 

La actualidad más candente (10)

Diplomado Técnico SQL Server 2012 - Sesión 7/8
Diplomado Técnico SQL Server 2012 - Sesión 7/8Diplomado Técnico SQL Server 2012 - Sesión 7/8
Diplomado Técnico SQL Server 2012 - Sesión 7/8
 
Experiencias Usando la Tecnología ADF
Experiencias Usando la Tecnología ADF Experiencias Usando la Tecnología ADF
Experiencias Usando la Tecnología ADF
 
Charla Web Services
Charla Web ServicesCharla Web Services
Charla Web Services
 
DBA para SharePoint
DBA para SharePointDBA para SharePoint
DBA para SharePoint
 
Taller 2
Taller 2Taller 2
Taller 2
 
Primeros pasos con Talent Open Studio TOS : Importando datos
Primeros pasos con Talent Open Studio TOS : Importando datosPrimeros pasos con Talent Open Studio TOS : Importando datos
Primeros pasos con Talent Open Studio TOS : Importando datos
 
SQL Server Query Processor
SQL Server Query ProcessorSQL Server Query Processor
SQL Server Query Processor
 
Share point 2010 office 2010 y owa
Share point 2010 office 2010 y owaShare point 2010 office 2010 y owa
Share point 2010 office 2010 y owa
 
Sql
SqlSql
Sql
 
Tipos de Sitios en SharePoint 2010
Tipos de Sitios en SharePoint 2010Tipos de Sitios en SharePoint 2010
Tipos de Sitios en SharePoint 2010
 

Destacado

Productivity improvements in sharepoint 2013
Productivity improvements in sharepoint 2013Productivity improvements in sharepoint 2013
Productivity improvements in sharepoint 2013Jose Manuel Bermejo Costa
 
SharePoint 2013 Document Management Features
SharePoint 2013 Document Management FeaturesSharePoint 2013 Document Management Features
SharePoint 2013 Document Management FeaturesThuan Ng
 
Office 365 presentation
Office 365 presentationOffice 365 presentation
Office 365 presentationSaed Shela
 

Destacado (6)

Productivity improvements in sharepoint 2013
Productivity improvements in sharepoint 2013Productivity improvements in sharepoint 2013
Productivity improvements in sharepoint 2013
 
SharePoint 2013 Document Management Features
SharePoint 2013 Document Management FeaturesSharePoint 2013 Document Management Features
SharePoint 2013 Document Management Features
 
Microsoft Office 365 Presentation
Microsoft Office 365 PresentationMicrosoft Office 365 Presentation
Microsoft Office 365 Presentation
 
Office 365 presentation
Office 365 presentationOffice 365 presentation
Office 365 presentation
 
SharePoint Online IT Camps
SharePoint Online IT CampsSharePoint Online IT Camps
SharePoint Online IT Camps
 
SharePoint para Usuarios
SharePoint para UsuariosSharePoint para Usuarios
SharePoint para Usuarios
 

Similar a CSA - Office.com sobre SharePoint

Escalando para sus primeros 10 millones de usuarios
Escalando para sus primeros 10 millones de usuariosEscalando para sus primeros 10 millones de usuarios
Escalando para sus primeros 10 millones de usuariosAmazon Web Services LATAM
 
AWS Presentacion Universidad de los Andes "Escalando para sus primeros 10 Mil...
AWS Presentacion Universidad de los Andes "Escalando para sus primeros 10 Mil...AWS Presentacion Universidad de los Andes "Escalando para sus primeros 10 Mil...
AWS Presentacion Universidad de los Andes "Escalando para sus primeros 10 Mil...Amazon Web Services
 
¿Por que cambiar de Apache Hadoop a Apache Spark?
¿Por que cambiar de Apache Hadoop a Apache Spark?¿Por que cambiar de Apache Hadoop a Apache Spark?
¿Por que cambiar de Apache Hadoop a Apache Spark?Socialmetrix
 
Integración de Datos sin límites con Pentaho
Integración de Datos sin límites con PentahoIntegración de Datos sin límites con Pentaho
Integración de Datos sin límites con PentahoDatalytics
 
Buenas prácticas de codificación para capas de acceso a datos de aplicaciones...
Buenas prácticas de codificación para capas de acceso a datos de aplicaciones...Buenas prácticas de codificación para capas de acceso a datos de aplicaciones...
Buenas prácticas de codificación para capas de acceso a datos de aplicaciones...SolidQ
 
Accediendo a una base de datos de MySQL con Entity Framework Core desde ASP ....
Accediendo a una base de datos de MySQL con Entity Framework Core desde ASP ....Accediendo a una base de datos de MySQL con Entity Framework Core desde ASP ....
Accediendo a una base de datos de MySQL con Entity Framework Core desde ASP ....Luis Beltran
 
SQL Azure Administración, Desempeño y Mantenimiento
SQL Azure Administración, Desempeño y MantenimientoSQL Azure Administración, Desempeño y Mantenimiento
SQL Azure Administración, Desempeño y MantenimientoEduardo Castro
 
Desarrollo modermo de aplicaciones web
Desarrollo modermo de aplicaciones webDesarrollo modermo de aplicaciones web
Desarrollo modermo de aplicaciones webRoberto Sanz Ciriano
 
Raona - Migracion a SharePoint 2010
Raona - Migracion a SharePoint 2010Raona - Migracion a SharePoint 2010
Raona - Migracion a SharePoint 2010Raona
 
Servicios de datos en la nube
Servicios de datos en la nubeServicios de datos en la nube
Servicios de datos en la nubeJuan Pablo
 
Desarrollo con control de código contra SQL Server | SolidQ Summit 2012
Desarrollo con control de código contra SQL Server | SolidQ Summit 2012Desarrollo con control de código contra SQL Server | SolidQ Summit 2012
Desarrollo con control de código contra SQL Server | SolidQ Summit 2012SolidQ
 
Tutorial en Apache Spark - Clasificando tweets en realtime
Tutorial en Apache Spark - Clasificando tweets en realtimeTutorial en Apache Spark - Clasificando tweets en realtime
Tutorial en Apache Spark - Clasificando tweets en realtimeSocialmetrix
 
Pinceladas SQL 2012, Alta Disponibilidad
 Pinceladas SQL 2012, Alta Disponibilidad Pinceladas SQL 2012, Alta Disponibilidad
Pinceladas SQL 2012, Alta DisponibilidadSolidQ
 
CursoPHP Nivel 1: Basic - Programa
CursoPHP Nivel 1: Basic - ProgramaCursoPHP Nivel 1: Basic - Programa
CursoPHP Nivel 1: Basic - Programasantiagobasulto
 
Comparativa herramientas ETL
Comparativa herramientas ETLComparativa herramientas ETL
Comparativa herramientas ETLJorge Bustillos
 
MySQL de 1995 a 5.5
MySQL de 1995 a 5.5MySQL de 1995 a 5.5
MySQL de 1995 a 5.5juliomacr
 
Base de datos ventajas y desventajas
Base de datos ventajas y desventajasBase de datos ventajas y desventajas
Base de datos ventajas y desventajasMartin Macario
 

Similar a CSA - Office.com sobre SharePoint (20)

Escalando para sus primeros 10 millones de usuarios
Escalando para sus primeros 10 millones de usuariosEscalando para sus primeros 10 millones de usuarios
Escalando para sus primeros 10 millones de usuarios
 
AWS Presentacion Universidad de los Andes "Escalando para sus primeros 10 Mil...
AWS Presentacion Universidad de los Andes "Escalando para sus primeros 10 Mil...AWS Presentacion Universidad de los Andes "Escalando para sus primeros 10 Mil...
AWS Presentacion Universidad de los Andes "Escalando para sus primeros 10 Mil...
 
¿Por que cambiar de Apache Hadoop a Apache Spark?
¿Por que cambiar de Apache Hadoop a Apache Spark?¿Por que cambiar de Apache Hadoop a Apache Spark?
¿Por que cambiar de Apache Hadoop a Apache Spark?
 
Integración de Datos sin límites con Pentaho
Integración de Datos sin límites con PentahoIntegración de Datos sin límites con Pentaho
Integración de Datos sin límites con Pentaho
 
Buenas prácticas de codificación para capas de acceso a datos de aplicaciones...
Buenas prácticas de codificación para capas de acceso a datos de aplicaciones...Buenas prácticas de codificación para capas de acceso a datos de aplicaciones...
Buenas prácticas de codificación para capas de acceso a datos de aplicaciones...
 
Accediendo a una base de datos de MySQL con Entity Framework Core desde ASP ....
Accediendo a una base de datos de MySQL con Entity Framework Core desde ASP ....Accediendo a una base de datos de MySQL con Entity Framework Core desde ASP ....
Accediendo a una base de datos de MySQL con Entity Framework Core desde ASP ....
 
SQL Azure Administración, Desempeño y Mantenimiento
SQL Azure Administración, Desempeño y MantenimientoSQL Azure Administración, Desempeño y Mantenimiento
SQL Azure Administración, Desempeño y Mantenimiento
 
Desarrollo modermo de aplicaciones web
Desarrollo modermo de aplicaciones webDesarrollo modermo de aplicaciones web
Desarrollo modermo de aplicaciones web
 
Raona - Migracion a SharePoint 2010
Raona - Migracion a SharePoint 2010Raona - Migracion a SharePoint 2010
Raona - Migracion a SharePoint 2010
 
Servicios de datos en la nube
Servicios de datos en la nubeServicios de datos en la nube
Servicios de datos en la nube
 
Desarrollo con control de código contra SQL Server | SolidQ Summit 2012
Desarrollo con control de código contra SQL Server | SolidQ Summit 2012Desarrollo con control de código contra SQL Server | SolidQ Summit 2012
Desarrollo con control de código contra SQL Server | SolidQ Summit 2012
 
Tutorial en Apache Spark - Clasificando tweets en realtime
Tutorial en Apache Spark - Clasificando tweets en realtimeTutorial en Apache Spark - Clasificando tweets en realtime
Tutorial en Apache Spark - Clasificando tweets en realtime
 
Pinceladas SQL 2012, Alta Disponibilidad
 Pinceladas SQL 2012, Alta Disponibilidad Pinceladas SQL 2012, Alta Disponibilidad
Pinceladas SQL 2012, Alta Disponibilidad
 
CursoPHP Nivel 1: Basic - Programa
CursoPHP Nivel 1: Basic - ProgramaCursoPHP Nivel 1: Basic - Programa
CursoPHP Nivel 1: Basic - Programa
 
Comparativa herramientas ETL
Comparativa herramientas ETLComparativa herramientas ETL
Comparativa herramientas ETL
 
MySQL de 1995 a 5.5
MySQL de 1995 a 5.5MySQL de 1995 a 5.5
MySQL de 1995 a 5.5
 
Propuesta devops pasesv1
Propuesta devops pasesv1Propuesta devops pasesv1
Propuesta devops pasesv1
 
Bases de datos
Bases de datosBases de datos
Bases de datos
 
Oracle Application Express
Oracle Application ExpressOracle Application Express
Oracle Application Express
 
Base de datos ventajas y desventajas
Base de datos ventajas y desventajasBase de datos ventajas y desventajas
Base de datos ventajas y desventajas
 

Más de Comunidad SharePoint

SharePoint 2010 - Introdución Backup y Restore
SharePoint 2010 - Introdución Backup y RestoreSharePoint 2010 - Introdución Backup y Restore
SharePoint 2010 - Introdución Backup y RestoreComunidad SharePoint
 
CSA - Creando Visual Studio Templates
CSA - Creando Visual Studio TemplatesCSA - Creando Visual Studio Templates
CSA - Creando Visual Studio TemplatesComunidad SharePoint
 
CSA - Gestión e Implementación de Proyectos SharePoint
CSA - Gestión e Implementación de Proyectos SharePointCSA - Gestión e Implementación de Proyectos SharePoint
CSA - Gestión e Implementación de Proyectos SharePointComunidad SharePoint
 
CSA - SharePoint 2010 - Instalación y Configuración
CSA - SharePoint 2010 - Instalación y ConfiguraciónCSA - SharePoint 2010 - Instalación y Configuración
CSA - SharePoint 2010 - Instalación y ConfiguraciónComunidad SharePoint
 
CSA - Web Parts en SharePoint 2010
CSA - Web Parts en SharePoint 2010CSA - Web Parts en SharePoint 2010
CSA - Web Parts en SharePoint 2010Comunidad SharePoint
 
CSA - Administración general y Aplicaciones de Servicio
CSA - Administración general y Aplicaciones de ServicioCSA - Administración general y Aplicaciones de Servicio
CSA - Administración general y Aplicaciones de ServicioComunidad SharePoint
 

Más de Comunidad SharePoint (8)

SharePoint 2010 - Introdución Backup y Restore
SharePoint 2010 - Introdución Backup y RestoreSharePoint 2010 - Introdución Backup y Restore
SharePoint 2010 - Introdución Backup y Restore
 
CSA - Creando Visual Studio Templates
CSA - Creando Visual Studio TemplatesCSA - Creando Visual Studio Templates
CSA - Creando Visual Studio Templates
 
CSA - Gestión e Implementación de Proyectos SharePoint
CSA - Gestión e Implementación de Proyectos SharePointCSA - Gestión e Implementación de Proyectos SharePoint
CSA - Gestión e Implementación de Proyectos SharePoint
 
CSA - SharePoint 2010 - Instalación y Configuración
CSA - SharePoint 2010 - Instalación y ConfiguraciónCSA - SharePoint 2010 - Instalación y Configuración
CSA - SharePoint 2010 - Instalación y Configuración
 
CSA - MOSS Disaster Recovery
CSA - MOSS Disaster RecoveryCSA - MOSS Disaster Recovery
CSA - MOSS Disaster Recovery
 
CSA - Intro SharePoint 2010
CSA -  Intro SharePoint 2010CSA -  Intro SharePoint 2010
CSA - Intro SharePoint 2010
 
CSA - Web Parts en SharePoint 2010
CSA - Web Parts en SharePoint 2010CSA - Web Parts en SharePoint 2010
CSA - Web Parts en SharePoint 2010
 
CSA - Administración general y Aplicaciones de Servicio
CSA - Administración general y Aplicaciones de ServicioCSA - Administración general y Aplicaciones de Servicio
CSA - Administración general y Aplicaciones de Servicio
 

Último

Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 

Último (13)

Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 

CSA - Office.com sobre SharePoint

  • 2. Agenda • Qué es Office.com • SharePoint como plataforma • Lecciones aprendidas • Conclusiones • Q&A
  • 3. Qué es Office.com Soporte para usuarios finales de los productos Office (Word, Excel, PowerPoint, etc). Web Site + Web Services
  • 4. Qué es Office.com En números 500 autores de contenido... Que administran 6 millones de páginas... Que visitan 120 millones de usuarios distintos... Que generan >3000 RPS (requests por segundo)... Servidos por 48 farms de 4:1 al 60% de CPU Distribuidas en 2 data centers (por geo-redundancy) 37 developers, 24 testers, 11 PM’s
  • 5. Qué es Office.com Vista Conceptual Content Management System («Authoring») - donde los autores crean, administran y localizan el contenido, Office.com («Rendering») – al cual los usuarios y las aplicaciones de Office se conectan, Bulk Operations Framework – que permite procesar múltiples objetos de manera unificada, Unified Warehouse - repositorio de sólo-lectura de todo tipo de metadata (de contenido, social, estadísticas de uso, etc) sobre el cual se ejecutan consultas, workflows y análisis.
  • 6. Qué es Office.com Vista de Componentes ...
  • 7. Qué es Office.com Legacy Vista de Datos Migración Migración Authoring Propagación de Contenido Rendering
  • 9. SharePoint como plataforma Razones de la elección Llevar a SharePoint a una escala de Internet. «Dogfooding»: si no es bueno para Microsoft, no es bueno para los clientes. Implementar a un nivel mayor de abstracción Deployment Workflows Queries Search Pero, ¿hacerlo con la versión 14 en desarrollo? Desventaja: «moving target» Ventajas Colaboración del equipo de SharePoint. Círculo virtuoso.
  • 10. Lecciones Aprendidas Almacenamiento: Separación Authoring vs. Rendering En teoría, esta es la proposición de valor de SharePoint: integrar authoring y rendering de manera natural. Pero no funciona para altos volúmenes de Contenido Creadores de contenido Visitantes al sitio ¿Porqué? Writes vs. Reads Secure vs. Anonymous Transacciones largas (check-in/out) vs. cortas Solución: webapps y site collections separadas, y en Rendering Denormalización No versioning Caching
  • 11. Lecciones Aprendidas Almacenamiento: Site collection por lenguaje (Authoring) Todos los lenguajes ocupan aprox. 2TB. Administrar la DB se vuelve más costoso a mayor tamaño Backups Mantenimiento (rebuild indexes, update statistics) Problema: queries sobre múltiples site collections Importante para el Localization team: «obtener todos los artículos que fueron asignados al vendor X y no fueron traducidos en una semana». Solución: exportar metadata a SQL («Unified Data Warehouse»). Dentro de cada site collection, un root web sin subsites Sub-sites no ofrecen ventajas de administración de datos. Look & Feel es consistente por lenguaje.
  • 12. Lecciones Aprendidas Queries de SharePoint Potencia de los Queries performance. expresividad. A futuro, ¿SQL Server’s SPARSE columns? Máximo de 2 columnas para compound indexes. Diagnosibilidad de los Queries e.g., bug cuando los CAML OR’s anidados superaban los 64 niveles  CAML erróneos (e.g., en SPSiteDataQuery) resultan en «default queries» en lugar de lanzarse una excepción.
  • 13. Lecciones Aprendidas Modelo de Datos Relaciones (aprox. 3M) Todas las aplicaciones las tienen, y tienen atributos. SharePoint no soporta nativamente este concepto. Sin embargo, pudimos haber resuelto los mismos problemas con tagging y folders... SharePoint no soporta Logueo de cambios a nivel de configuración/sistema. Logueo de items borrados en listas y bibliotecas. Causa: Coupling - «change tracking» está implementado en términos de «version tracking». Gran volumen de binarios en la base de datos afecta Performance Administración Deberíamos haber implementado EBS.
  • 14. Lecciones Aprendidas Concurrencia y Locking Cuando el volumen de updates de metadata es grande, pudimos observar problemas de contención Excesivos SQL locks Excesivas escalaciones de SQL locks Lecturas lentas SharePoint está optimizado para «long-running transactions», (e.g., check-in, check-out), stream de un item. No está optimizado para cambios frecuentes en la metadata de los items.
  • 15. Lecciones Aprendidas Bulk Operations Muchas operaciones no se pueden hacer «de a muchos (items)», o los límites son artificialmente bajos (e.g., máximo de 100 items a la vez para upload). uploads/downloads múltiples. cambios de metadata. SharePoint no posee «transactional inserts/updates/deletes» (i.e., realizarlos completamente o no realizarlos del todo). Gran problema para migración de datos.
  • 16. Lecciones Aprendidas Programming API DB roundtrips Cuándo se va a realizar un DB roundtrip, y cuánto cuestan (e.g., SPList.Items.Count vs. SPList.ItemCount) fetchDocForHttpGet() trae metadata del ContentType. RT adicional para fields fuera de él, no 3 RT’s/artículo  No SP* objects caching Publishing APIs caching es costoso para 1er request. Costo de list schema. Event Receivers La secuencia de eventos debería ser consistente. No asumir nunca que otro event handler hizo su tarea. Asincrónicos: no thread-safe, no cancelables. Reglas complejas de disposing. SharePoint loguea determinado «usage data» per request. Metadata no es customizable (e.g., Asset ID)
  • 17. Lecciones Aprendidas Propagación de Contenido Problema: cómo propagar datos de un master DB a múltiples bases para lograr scale-out. SQL Replication Requiere primary keys en todas las tables de la base SharePoint no las tiene  Export & Import, Content Migration API (PRIME) API: config DB data, check-out status, encuestas no completadas, etc. Backup & DB Attach: latencia (i.e., tiempo de propagación desde authoring a rendering SQL’s). Solución elegida: log-shipping. Requiere poner DB offline. Mayor latencia que SQL Replication. Múltiples chequeos adicionales sobre la solución OOB. Alto costo operacional – «baby-sitting»
  • 18. Lecciones Aprendidas Propagación de Contenido con Log Shipping Log Shipping Manager (scheduled tasks) Switch B->A, así Master B se pone al día Instance A SQL SQL Alias -> A Instance .TRN’s B
  • 19. Lecciones Aprendidas Propagación de Contenido con Log Shipping Log Shipping Manager (scheduled tasks) Switch A->B, así Master A se pone al día Instance A SQL SQL Alias -> B Instance .TRN’s B
  • 20. Lecciones Aprendidas Deployment Se usaron solutions packages y features. Errores cometidos Listas y content types se aprovisionaron («crearon») en base a un formato propio (no CAML) Topología y features a instalar/activar se manejó con código + configuración custom Complejidad => Errores. Problemas en la migración de contenido entre versiones. Alternativas Usar CAML, site templates y restringir código sólo a feature activation/deactivation, minimizando external scripts. Ausencia de varias VS tools para SP al inicio del proyecto 
  • 21. Lecciones Aprendidas Security Authoring: built-in authentication/authorization Mantener autorización simple es fundamental Limitar granularidad, minimizar «break inheritance» Usar domain groups en lugar de domain users. Problema: acceso de usuarios fuera del dominio. Solución: Live ID on Claims. Finalmente, no en producción (Claims no nos llegó a tiempo) Rendering: acceso anónimo, Live ID para identificar usuarios Necesita ser «Partner site» para acceder al perfil de usuario.
  • 22. Lecciones Aprendidas Proceso Curva de aprendizaje de SharePoint 1. Aprender 2. Aprender a hacerlo bien  Perf Testing fue clave para el avance del proyecto Regresiones (# de DB RT’s) Plan de capacidad Topología de farm.
  • 23. Conclusiones SharePoint soporta Internet scenarios con grandes volúmenes de datos  El modelo de datos es fundamental para la performance (e.g., # de fields por content type). Para grandes volúmenes de datos y transacciones, el modelo de lectura/escritura en una base de datos única no funciona. Desarrollar un framework para operar sobre múltiples datos a la vez fue una decisión muy acertada. Planeamiento de capacidad y perf testing desde el inicio fue muy acertado. Migrar contenido es siempre complicado... no se debe dejar nunca para el final. Invertir en logging (más allá del OOTB) es beneficioso. Este proyecto significó un gran aprendizaje para SharePoint mismo... veamos estas experiencias como oportunidades.