SlideShare una empresa de Scribd logo
Alfresco	
  Enterprise:	
  Escalabilidad	
  y	
  Tuning	
  
                                         Toni	
  de	
  la	
  Fuente	
  
                              Senior	
  Solu/ons	
  Engineer	
  	
  
                                          Spain	
  &	
  Portugal	
  

                         toni.delafuente@alfresco.com	
  
El webinar comenzará en
     unos minutos.


     Las líneas de voz de los
     asistentes estarán
     desactivadas. Use el área de
     chat “Q&A” para hacer las
     preguntas que
     responderemos al finalizar la
     sesión.

2
Contenidos


●  Componentes	
  de	
  la	
  arquitectura	
  
●  Escenarios	
  de	
  soluciones	
  Alfresco	
  
   o  Carga	
  masiva	
  de	
  contenidos	
  
   o  Plataforma	
  combinada:	
  contenidos,	
  acciones,	
  usuarios	
  

●  Pruebas	
  de	
  carga	
  
●  Conclusiones	
  y	
  preguntas	
  



                                                                  3	
  
Componentes	
  de	
  la	
  arquitectura	
  




                                      4	
  
Componentes

1.  Repositorio	
  Alfresco	
  
2.  Alfresco	
  Share	
  
3.  Aplicaciones	
  de	
  terceros	
  
4.  Base	
  de	
  datos	
  
5.  Content	
  Store	
  
6.  Índices	
  




                                               5	
  
Escenarios	
  de	
  la	
  solución	
  




                                         6	
  
Gestión completa de
                                                              contenidos
                                           Ges/ón	
  de	
  
  Ges/ón	
            Colaboración	
                           Ges/ón	
  de	
                 Archivo	
  	
  
                                           Contenidos	
  
Documental	
                                                  Expedientes	
                    Email	
  
                                              Web	
  




   ¿Interfaces?	
                   ¿Número	
  de	
  …?	
         ¿Tipos	
  de	
  contenido?	
  




                                                                         Un	
  repositorio	
  
                                                                    construido	
  con	
  una	
  base	
  
                                  ¿Cuantos	
                           tecnológica	
  sólida	
  
                                componentes?	
  

                                                                                      7	
  
¿Lo mismo para todos?




               8	
  
Soluciones con Alfresco
                                                      según el uso
1.  Plataforma	
  de	
  carga	
  masiva	
  
    •  Alto	
  rendimiento	
  en	
  procesos	
  por	
  lotes,	
  5+	
  millones	
  de	
  
       documentos,	
  asequible	
  
    •  Ej:	
  archivo	
  y	
  digitalización	
  masiva	
  
2.  Plataforma	
  empresarial	
  de	
  colaboración	
  
    ●  Uso	
  intenso	
  de	
  sistema	
  de	
  ficheros,	
  mezcla	
  entre	
  
       contenido	
  e	
  interfaz	
  
    ●  Ej:	
  Colaboración,	
  ges/ón	
  del	
  conocimiento,	
  contenidos	
  
       generados	
  por	
  los	
  usuarios	
  


                                                                                     9	
  
Los 3 procesos más
                       importantes

         Arquitectura
             (1)




Diseño                  Tuning
  (2)                     (3)




                                 10	
  
Carga	
  masiva	
  de	
  contenidos	
  




                                          11	
  
Requerimientos de Carga
                                         masiva de contenidos
●  100-­‐1000	
  usuarios	
  (sólo	
  con	
  acceso	
  de	
  lectura)	
  
●  10.000	
  documentos	
  cargados	
  por	
  día	
  durante	
  horas	
  
    nocturnas	
  
●  20	
  millones	
  de	
  documentos	
  al	
  año	
  
●  Tipos	
  de	
  documentos:	
  PDF,	
  TIFF,	
  JPG	
  
●  Sólo	
  lectura,	
  sin	
  indexado	
  total,	
  modelo	
  de	
  contenido	
  básico	
  
●  Pocas	
  o	
  ninguna	
  reglas	
  o	
  acciones	
  
●  Sin	
  transformación	
  de	
  contenido	
  
●  Ges/ón	
  del	
  contenido	
  centralizado	
  
●  Interfaces:	
  aplicación	
  externa,	
  API	
  na/va,	
  WebScripts,	
  CMIS.	
  
    No	
  CIFS/WebDAV/FTP	
  o	
  Webclient	
                                   12	
  
Consideraciones de
                                                                     arquitectura
●  Uso	
  de	
  CPU	
  y	
  memoria	
  intensivo	
  

      o  Escalar	
  ver/calmente	
  en	
  lugar	
  de	
  horizontalmente	
  

●  Los	
  procesos	
  batch	
  son	
  la	
  CLAVE	
  

      o  Atómicos	
  -­‐>	
  Escalar	
  ver/calmente,	
  +CPU	
  +Memoria	
  
      o  Paralelos	
  -­‐>	
  Escalar	
  horizontalmente	
  con	
  2	
  Repositorios	
  en	
  cluser	
  
         compar/endo	
  un	
  mismo	
  almacenamiento.	
  

●  Escalar	
  (ver/cal	
  y	
  horizontalmente)	
  el	
  almacenamiento	
  

      o  Caringo	
  CAStor	
  
      o  Content	
  Store	
  Selector	
  
      o  Escalar	
  y	
  op/mizar	
  la	
  BBDD	
  (Mysql	
  proxy	
  /	
  Oracle	
  RAC)	
  

●  Evitar	
  Sparc	
  T2000	
  series	
  (y	
  familia	
  similar)	
  
                                                                                                13	
  
      o  Bueno	
  para	
  proceso	
  paralelo	
  pero	
  pobre	
  en	
  operaciones	
  atómicas	
  
Dos capas




   14	
  
Procesos batch paralelos




                  15	
  
Buenas prácticas en diseño

●  Optimiza los procesos batch

    o  API nativa
    o  Más de un documento por transacción
    o  Ejemplo: 150 crear, 50 borrar

●  Distribuye el contenido

    o  Balancea el árbol de contenidos
    o  Puede servir multi-tenant? (batch paralelos e independientes)

●  Consideraciones para cargas masivas

    o  Evita envíos a la papelera con cm:temporary

●  Optimización de los índices

    o  DoNotIndex aspect                                     16	
  
Buenas prácticas en
                                                   optimización
●    Optimización de I/O                      Ejemplo de configuración JVM :
      o  Mejor elección: Discos Locales *     -server –Xms6G –Xmx6G
      o  Latencia de red con la RDBMS         -XX:PermSize=256m
                                              -XX:MaxPermSize=256m
●    Configuración a nivel ORM                -XX:NewRatio=2
                                              -XX:+UseParNewGC
      o  Tuning del “connection pool”         -Xloggc:/tmp/gc.log
                                              -verbose:gc
      o  Desabilitar la caché de consultas    -XX:+PrintGCTimeStamps
      durante la importación                  -XX:+PrintGCDetails

●    Evita características innecesarias

      o  Auditoría / Quotas

      o  Check ACL (ejecuta como admin) / Reglas

      o  Subsystems (ej. VFS)

●    Tuning de Lucene
                                                                      17	
  
      o  index.tracking.disableInTransactionIndexing=true

      o  mergeFactor
Plataforma	
  de	
  colaboración	
  




18
                                          18	
  
Plataforma de colaboración

●  100-­‐10.000	
  usuarios	
  (lectura	
  y	
  escritura)	
  
      o  Ges/ón	
  del	
  contenido	
  descentralizado	
  
●  10.000-­‐1	
  millón	
  de	
  documentos	
  (o	
  incluso	
  10	
  millones	
  )	
  

●  1000	
  actualizaciones	
  de	
  documentos	
  por	
  día	
  
●  Múl/ples	
  versiones	
  por	
  documento	
  
      o  Tipos	
  de	
  documentos:	
  Office,	
  dibujo,	
  imágenes,	
  etc.	
  
      o  Gran	
  uso	
  de	
  transformación	
  del	
  contenido	
  (PDF,	
  Flash,	
  thumbnail)	
  
●  Indexación	
  completa	
  de	
  todos	
  los	
  documentos	
  
      o  Múl/ples	
  modelos	
  de	
  contenido	
  
●  Múl/ples	
  (avanzadas)	
  reglas	
  y	
  acciones	
  
●  ACL	
  dinámicas	
  (múl/ples	
  cambios	
  con/nuamente)	
  
●  Interfaces:	
  Todas.	
  Para	
  DM	
  principalmente	
  CIFS/WebDAV.	
  Para	
  
    colaboración	
  Share/Webclient.	
  Webscripts	
  para	
  aplicaciones	
  y/o	
  portlets	
  
                                                                                 19	
  
Consideraciones de
                                                                                                 arquitectura
●    Despliegue	
  total	
  de	
  la	
  plataforma	
  

       o  Plataforma	
  de	
  DM/Colaboración	
  con	
  múl/ples	
  procesos	
  involucrados	
  

       o  Global	
  (sin	
  ventanas	
  de	
  mantenimiento)	
  

●    Escalar	
  Share	
  horizontalmente	
  de	
  forma	
  independiente	
  al	
  repositorio	
  

       o  Balanceo	
  de	
  carga	
  frontal	
  e	
  “intercapa”	
  

       o  Separar	
  lectura	
  de	
  escritura	
  y	
  tareas	
  programadas	
  

●    Separar	
  el	
  servidor	
  de	
  transformaciones	
  

       o  Servidor	
  independiente	
  

       o  Daemon	
  Open	
  Office	
  

●    Escalado	
  horizontal	
  y	
  ver/cal	
  de	
  la	
  infraestructura	
  

       o  Escalar	
  CIFS	
  con	
  DFS	
  

       o  Todos	
  los	
  protocolos	
  basados	
  en	
  HTTP	
  escalan	
  de	
  forma	
  similar	
  (incluido	
  SPP/7070)	
  

●    Balancea	
  mul/-­‐CPU	
  (scale	
  up)	
  y	
  cluster	
  mul/-­‐nodo	
  (scale	
  out)	
  

       o  Ojo	
  con	
  los	
  índices	
                                                                                           20	
  
Plataforma de contenidos
            transparente




                  21	
  
Buenas prácticas en diseño

●  Distribuir	
  y	
  balancear	
  el	
  árbol	
  de	
  contenidos	
  FUNDAMENTAL!	
  

       o  La	
  ges/ón	
  descentralizada	
  es	
  compleja	
  
       o  Usa	
  conceptos	
  comunes	
  (espacios,	
  e/quetas,	
  categorías)	
  

●  Ojo	
  con	
  con	
  las	
  versiones	
  y	
  los	
  índices	
  

       o  No	
  apliques	
  cm:versionable	
  a	
  todo	
  el	
  cm:content	
  
       o  Usa	
  el	
  VersionCleaner	
  

●  Modelado	
  de	
  datos	
  

       o  Mejor	
  aspectos	
  que	
  /pos	
  /	
  reu/lización	
  de	
  metadatos	
  
       o  Opciones	
  de	
  indexado	
  de	
  los	
  contenidos	
  

●  Cuotas	
  y	
  usos	
  

       o  Debemos	
  preveer	
  una	
  “explosión”	
  del	
  repositorio	
               22	
  
Buenas prácticas en
                                                                                optimización
●    RDBMS	
  	
  

      ●  No	
  dejes	
  la	
  configuración	
  por	
  defecto	
  -­‐-­‐>	
  RTFM	
  :)	
  

●    Configuración	
  de	
  la	
  capa	
  ORM	
  

      ●  L2	
  cache:	
  incremento	
  lineal	
  con	
  la	
  memoria	
  RAM	
  

      ●  Incrementa	
  el	
  connec/on	
  pool	
  y	
  connec/on	
  threads	
  	
  con	
  la	
  RBDMS	
  (db.pool.max)	
  

●    Configuración	
  óp/ma	
  de	
  Alfresco	
  

      ●  VFS	
  thread	
  pool	
  (por	
  defecto:	
  	
  <threadPool init="25" max="50"/>	
  	
  )	
  

      ●  Op/miza	
  el	
  uso	
  de	
  ACLs	
  y	
  precarga	
  de	
  búsquedas	
  más	
  usadas	
  (si	
  es	
  necesario)	
  

           	
  system.acl.maxPermissionCheckTimeMillis=10000
               system.acl.maxPermissionChecks=1000

●    Op/mización	
  de	
  Lucene	
  

      ●  lucene.maxAtomicTransformationTime=20
                                                                                                                    23	
  
      ●  lucene.indexer.mergeFactor
Pruebas	
  de	
  carga	
  




                             24	
  
Alfresco Benchmarks

●  Alfresco	
  Benchmark	
  Tools	
  

      o  alfresco-­‐bm	
  -­‐	
  hup://wiki.alfresco.com/wiki/Server_Benchmarks	
  
      o  SimpleInjector	
  -­‐	
  (disponible	
  en	
  partners.alfresco.com	
  en	
  unos	
  días)	
  

      o  JMeter	
  
      o  CIFS	
  loading	
  

●  Resultados	
  sobre	
  pruebas	
  de	
  carga	
  con	
  Alfresco	
  

      o  Unysis	
  benchmark	
  results	
  
      o  JCR	
  Benchmarks	
  

●  WIP	
  

      o  Documento	
  sobre	
  escalabilidad	
  para	
  partners.	
  

      o  Más	
  información	
  para	
  +3.4	
  	
  
                                                                                                      25	
  
Controla tu solución
                                                                                    Alfresco
●    Usa	
  el	
  modo	
  debug!	
  

●    Análisis	
  de	
  Alfresco	
  

       o  JMX	
  (for	
  Enterprise	
  Only	
  see	
  Admin	
  Guide)	
  
          hup://wiki.alfresco.com/wiki/JMX	
  

       o  Audit	
  Surf	
  
          hup://forge.alfresco.com/projects/auditsurf/	
  

       o  Nagios	
  integra/on	
  
          hup://forge.alfresco.com/projects/nagios4alfresco/	
  

●    Análisis	
  de	
  la	
  Infraestructura	
  

       o  VisualVM	
  (JVM)	
  
          hup://ur.ly/esjZ	
  

       o  YourKit	
  (JVM)	
  
          hup://wiki.alfresco.com/wiki/JMX	
  

       o  WireShark	
  (Network)	
  
          hup://www.wireshark.org/	
  

       o  Mysql	
  Query	
  Profiler	
  (DBMS)	
                                           26	
  
          hup://dev.mysql.com/tech-­‐resources/ar/cles/using-­‐new-­‐query-­‐profiler.html	
  
Conclusiones	
  y	
  preguntas	
  




27
                                        27	
  
Escalar horizontalmente vs.
                                    verticalmente


                                      Pros	
                                    Contras	
  
                      Mejora	
  el	
  rendimiento	
  en	
  
                                                                       Coste	
  de	
  procesadores	
  
                          procesos	
  batch	
  
    Escalar	
  
 Ver/calmente	
       Mejora	
  el	
  rendimiento	
  en	
  las	
     Posible	
  coste	
  adicional	
  en	
  
                           transformaciones	
                              suscripciones	
  

                      Mejora	
  el	
  rendimiento	
  en	
   Tiempo	
  para	
  sincronización	
  
                        procesos	
  paralelos	
                   de	
  los	
  índices	
  
     Escalar	
                                                       Posible	
  coste	
  adicional	
  en	
  
                           Alta	
  Disponibilidad	
  
Horizontalmente	
                                                          suscripciones	
  
                        Separación	
  de	
  Lectura/
                                                                     Necesita	
  balanceo/caching	
  
                              Escritura	
  


                                                                                               28	
  
Las reglas de oro
●  Elige	
  la	
  arquitectura	
  correcta	
  

       ●  Distribuye	
  la	
  carga	
  de	
  la	
  infraestructura	
  
       ●  Aprovecha	
  las	
  capas	
  para	
  caché	
  
       ●  Maximiza	
  el	
  uso	
  de	
  la	
  plataforma	
  

●  Ten	
  en	
  cuenta	
  el	
  rendimiento	
  de	
  tu	
  aplicación	
  durante	
  el	
  diseño	
  

       ●  Elige	
  la	
  API	
  correcta	
  
       ●  Desac/va	
  lo	
  que	
  no	
  u/lices	
  (ACLs,	
  indexado,	
  VFS,	
  etc.)	
  

●  Prueba	
  todo	
  en	
  la	
  fase	
  de	
  test.	
  

       ●  Prueba,	
  prueba,	
  prueba	
  
       ●  Realiza	
  las	
  pruebas	
  y	
  compártelas	
  con	
  Alfresco	
  Support	
  /	
  Solu/on	
  
          Engineering	
  
                                                                                                       29	
  
Preguntas y Feedback

●  ¿Alguna	
  pregunta?	
  

●  Comparte	
  las	
  experiencias	
  con	
  nosotros	
  (buenas	
  y	
  
   malas)	
  
    ●  Arquitecturas	
  escaladas	
  sa/sfactoriamente	
  
    ●  Limitaciones,	
  cuellos	
  de	
  botella	
  
    ●  Configuraciones	
  ú/les	
  =>	
  Implementación	
  =>	
  Resultados	
  
    ●  Qué	
  funciona	
  y	
  qué	
  no	
  funciona.	
  




                                                                                 30	
  
Gracias por asistir al webinar




                        Toni de la Fuente!
         toni. delafuente@alfresco.com!
                       twitter: @toniblyx !
                   blog: http://blyx.com!
                              31	
  

Más contenido relacionado

La actualidad más candente

Oracle Day 2013 ~ MySQL Replication
Oracle Day 2013 ~ MySQL Replication Oracle Day 2013 ~ MySQL Replication
Oracle Day 2013 ~ MySQL Replication
Manuel Contreras
 

La actualidad más candente (20)

Alta Disponibilidad con SQL Server 2012
Alta Disponibilidad con SQL Server 2012Alta Disponibilidad con SQL Server 2012
Alta Disponibilidad con SQL Server 2012
 
Datos sin fronteras
Datos sin fronterasDatos sin fronteras
Datos sin fronteras
 
Oracle Day 2013 ~ MySQL Replication
Oracle Day 2013 ~ MySQL Replication Oracle Day 2013 ~ MySQL Replication
Oracle Day 2013 ~ MySQL Replication
 
SQL Server Alta disponibilidad en ambientes empresariales
SQL Server Alta disponibilidad en ambientes empresarialesSQL Server Alta disponibilidad en ambientes empresariales
SQL Server Alta disponibilidad en ambientes empresariales
 
Introduction to Oracle Clusterware 12c
Introduction to Oracle Clusterware 12cIntroduction to Oracle Clusterware 12c
Introduction to Oracle Clusterware 12c
 
Configuracion del servidor vsftpd en linux
Configuracion del servidor vsftpd en linuxConfiguracion del servidor vsftpd en linux
Configuracion del servidor vsftpd en linux
 
Oracle RAC sin sorpresas - v2014
Oracle RAC sin sorpresas - v2014Oracle RAC sin sorpresas - v2014
Oracle RAC sin sorpresas - v2014
 
Introducción a Tomcat
Introducción a TomcatIntroducción a Tomcat
Introducción a Tomcat
 
Oracle Real Application Cluster (RAC)
Oracle Real Application Cluster (RAC)Oracle Real Application Cluster (RAC)
Oracle Real Application Cluster (RAC)
 
FTP en centos 7
FTP en centos 7FTP en centos 7
FTP en centos 7
 
Estableciendo escenarios de Alta Disponibilidad en las empresas de hoy con MS...
Estableciendo escenarios de Alta Disponibilidad en las empresas de hoy con MS...Estableciendo escenarios de Alta Disponibilidad en las empresas de hoy con MS...
Estableciendo escenarios de Alta Disponibilidad en las empresas de hoy con MS...
 
Alta disponiblidad en SQL Server 2012
Alta disponiblidad en SQL Server 2012Alta disponiblidad en SQL Server 2012
Alta disponiblidad en SQL Server 2012
 
Always On y grupos de disponibilidad SQL Server 2012
Always On y grupos de disponibilidad SQL Server 2012Always On y grupos de disponibilidad SQL Server 2012
Always On y grupos de disponibilidad SQL Server 2012
 
SQL Server 2014 infraestructura hibrida y nube
SQL Server 2014 infraestructura hibrida y nubeSQL Server 2014 infraestructura hibrida y nube
SQL Server 2014 infraestructura hibrida y nube
 
Base de dato
Base de  dato Base de  dato
Base de dato
 
Alta Disponibilidad con PgPool-II
Alta Disponibilidad con PgPool-IIAlta Disponibilidad con PgPool-II
Alta Disponibilidad con PgPool-II
 
Windows server 2012 r2
Windows server 2012 r2Windows server 2012 r2
Windows server 2012 r2
 
Alta disponibilidad SQL Server 2012
Alta disponibilidad SQL Server 2012Alta disponibilidad SQL Server 2012
Alta disponibilidad SQL Server 2012
 
Oracle rac
Oracle racOracle rac
Oracle rac
 
The modern perl toolchain
The modern perl toolchainThe modern perl toolchain
The modern perl toolchain
 

Similar a Alfresco Enterprise: Escalabilidad y Tuning

Big Data para desarrolladores utilizando Hadoop y OpenStack
Big Data para desarrolladores utilizando Hadoop y OpenStackBig Data para desarrolladores utilizando Hadoop y OpenStack
Big Data para desarrolladores utilizando Hadoop y OpenStack
Software Guru
 
SG 09 Patrones de Integración Empresarial Apache Camel
SG 09 Patrones de Integración Empresarial Apache CamelSG 09 Patrones de Integración Empresarial Apache Camel
SG 09 Patrones de Integración Empresarial Apache Camel
Domingo Suarez Torres
 

Similar a Alfresco Enterprise: Escalabilidad y Tuning (20)

11 Integracion Alfresco Y Sap Neurowork Why Floss
11   Integracion Alfresco Y Sap   Neurowork   Why Floss11   Integracion Alfresco Y Sap   Neurowork   Why Floss
11 Integracion Alfresco Y Sap Neurowork Why Floss
 
11 Integracion Alfresco Y Sap Neurowork Why Floss
11   Integracion Alfresco Y Sap   Neurowork   Why Floss11   Integracion Alfresco Y Sap   Neurowork   Why Floss
11 Integracion Alfresco Y Sap Neurowork Why Floss
 
Integración y caso de éxito Alfresco y SAP
Integración y caso de éxito Alfresco y SAPIntegración y caso de éxito Alfresco y SAP
Integración y caso de éxito Alfresco y SAP
 
11 Integracion Alfresco Y Sap Neurowork Why Floss
11   Integracion Alfresco Y Sap   Neurowork   Why Floss11   Integracion Alfresco Y Sap   Neurowork   Why Floss
11 Integracion Alfresco Y Sap Neurowork Why Floss
 
11 Integracion Alfresco Y S A P Neurowork Why F L O S S
11    Integracion  Alfresco Y  S A P    Neurowork    Why F L O S S11    Integracion  Alfresco Y  S A P    Neurowork    Why F L O S S
11 Integracion Alfresco Y S A P Neurowork Why F L O S S
 
Entonamiento y perfilado de Drupal
Entonamiento y perfilado de DrupalEntonamiento y perfilado de Drupal
Entonamiento y perfilado de Drupal
 
Drupal 7 para sitios de alto rendimiento y alta disponibilidad
Drupal 7 para sitios de alto rendimiento y alta disponibilidadDrupal 7 para sitios de alto rendimiento y alta disponibilidad
Drupal 7 para sitios de alto rendimiento y alta disponibilidad
 
Performance en Drupal 7
Performance en Drupal 7Performance en Drupal 7
Performance en Drupal 7
 
Sistemas de publicación de noticias y contenidos multimedia Web para Medios d...
Sistemas de publicación de noticias y contenidos multimedia Web para Medios d...Sistemas de publicación de noticias y contenidos multimedia Web para Medios d...
Sistemas de publicación de noticias y contenidos multimedia Web para Medios d...
 
Dev ops with Data
Dev ops with DataDev ops with Data
Dev ops with Data
 
Sitios web de alto rendimiento y alta disponibilidad
Sitios web de alto rendimiento y alta disponibilidadSitios web de alto rendimiento y alta disponibilidad
Sitios web de alto rendimiento y alta disponibilidad
 
Big data para desarrolladores utilizando hadoop y openstack
Big data para desarrolladores utilizando hadoop y openstack Big data para desarrolladores utilizando hadoop y openstack
Big data para desarrolladores utilizando hadoop y openstack
 
Big Data para desarrolladores utilizando Hadoop y OpenStack
Big Data para desarrolladores utilizando Hadoop y OpenStackBig Data para desarrolladores utilizando Hadoop y OpenStack
Big Data para desarrolladores utilizando Hadoop y OpenStack
 
Importar materiales de WebCT a Moodle (SCORM)
Importar materiales de WebCT a Moodle (SCORM)Importar materiales de WebCT a Moodle (SCORM)
Importar materiales de WebCT a Moodle (SCORM)
 
Características de 10 lenguajes de programación
Características de 10 lenguajes de programaciónCaracterísticas de 10 lenguajes de programación
Características de 10 lenguajes de programación
 
Asp
AspAsp
Asp
 
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...
 
Desarrollo en Android: Conceptos Básicos
Desarrollo en Android: Conceptos BásicosDesarrollo en Android: Conceptos Básicos
Desarrollo en Android: Conceptos Básicos
 
SG 09 Patrones de Integración Empresarial Apache Camel
SG 09 Patrones de Integración Empresarial Apache CamelSG 09 Patrones de Integración Empresarial Apache Camel
SG 09 Patrones de Integración Empresarial Apache Camel
 
herramientas tecnológicas
herramientas tecnológicasherramientas tecnológicas
herramientas tecnológicas
 

Más de Toni de la Fuente

Monitoring Alfresco with Nagios/Icinga
Monitoring Alfresco with Nagios/IcingaMonitoring Alfresco with Nagios/Icinga
Monitoring Alfresco with Nagios/Icinga
Toni de la Fuente
 

Más de Toni de la Fuente (20)

SANS Cloud Security Summit 2018: Forensics as a Service
SANS Cloud Security Summit 2018: Forensics as a ServiceSANS Cloud Security Summit 2018: Forensics as a Service
SANS Cloud Security Summit 2018: Forensics as a Service
 
OWASP Atlanta 2018: Forensics as a Service
OWASP Atlanta 2018: Forensics as a ServiceOWASP Atlanta 2018: Forensics as a Service
OWASP Atlanta 2018: Forensics as a Service
 
Alfresco DevCon 2018: From Zero to Hero Backing up Alfresco
Alfresco DevCon 2018: From Zero to Hero Backing up AlfrescoAlfresco DevCon 2018: From Zero to Hero Backing up Alfresco
Alfresco DevCon 2018: From Zero to Hero Backing up Alfresco
 
Alabama CyberNow 2018: Cloud Hardening and Digital Forensics Readiness
Alabama CyberNow 2018: Cloud Hardening and Digital Forensics ReadinessAlabama CyberNow 2018: Cloud Hardening and Digital Forensics Readiness
Alabama CyberNow 2018: Cloud Hardening and Digital Forensics Readiness
 
Prowler: BlackHat Europe Arsenal 2018
Prowler: BlackHat Europe Arsenal 2018Prowler: BlackHat Europe Arsenal 2018
Prowler: BlackHat Europe Arsenal 2018
 
Alfresco DevCon 2019: Encryption at-rest and in-transit
Alfresco DevCon 2019: Encryption at-rest and in-transitAlfresco DevCon 2019: Encryption at-rest and in-transit
Alfresco DevCon 2019: Encryption at-rest and in-transit
 
From zero to hero Backing up alfresco
From zero to hero Backing up alfrescoFrom zero to hero Backing up alfresco
From zero to hero Backing up alfresco
 
TTL Alfresco Product Security and Best Practices 2017
TTL Alfresco Product Security and Best Practices 2017TTL Alfresco Product Security and Best Practices 2017
TTL Alfresco Product Security and Best Practices 2017
 
Automate or die! Rootedcon 2017
Automate or die! Rootedcon 2017Automate or die! Rootedcon 2017
Automate or die! Rootedcon 2017
 
Seguridad en Internet para todos los públicos
Seguridad en Internet para todos los públicosSeguridad en Internet para todos los públicos
Seguridad en Internet para todos los públicos
 
Storage and Alfresco
Storage and AlfrescoStorage and Alfresco
Storage and Alfresco
 
Alfresco security best practices CHECK LIST ONLY
Alfresco security best practices CHECK LIST ONLYAlfresco security best practices CHECK LIST ONLY
Alfresco security best practices CHECK LIST ONLY
 
Alfresco Security Best Practices Guide
Alfresco Security Best Practices GuideAlfresco Security Best Practices Guide
Alfresco Security Best Practices Guide
 
Alfresco Security Best Practices 2014
Alfresco Security Best Practices 2014Alfresco Security Best Practices 2014
Alfresco Security Best Practices 2014
 
Alfresco Backup and Disaster Recovery White Paper
Alfresco Backup and Disaster Recovery White PaperAlfresco Backup and Disaster Recovery White Paper
Alfresco Backup and Disaster Recovery White Paper
 
Alfresco One (Enterprise) vs Alfresco Community 2014
Alfresco One (Enterprise) vs Alfresco Community 2014Alfresco One (Enterprise) vs Alfresco Community 2014
Alfresco One (Enterprise) vs Alfresco Community 2014
 
Alfresco Backup and Recovery Tool: a real world backup solution for Alfresco
Alfresco Backup and Recovery Tool: a real world backup solution for AlfrescoAlfresco Backup and Recovery Tool: a real world backup solution for Alfresco
Alfresco Backup and Recovery Tool: a real world backup solution for Alfresco
 
Comparativa entre Alfresco Enterprise vs Community
Comparativa entre Alfresco Enterprise vs Community Comparativa entre Alfresco Enterprise vs Community
Comparativa entre Alfresco Enterprise vs Community
 
Alfresco Security Best Practices 2012
Alfresco Security Best Practices 2012Alfresco Security Best Practices 2012
Alfresco Security Best Practices 2012
 
Monitoring Alfresco with Nagios/Icinga
Monitoring Alfresco with Nagios/IcingaMonitoring Alfresco with Nagios/Icinga
Monitoring Alfresco with Nagios/Icinga
 

Último

PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docxPRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
encinasm992
 
editorial de informática de los sueños.docx
editorial de informática de los sueños.docxeditorial de informática de los sueños.docx
editorial de informática de los sueños.docx
ssusere34b451
 

Último (20)

Herramientas informáticas. Sara Torres R.
Herramientas informáticas. Sara Torres R.Herramientas informáticas. Sara Torres R.
Herramientas informáticas. Sara Torres R.
 
JORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUAL
JORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUALJORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUAL
JORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUAL
 
¡Mira mi nuevo diseño hecho en Canva!.pdf
¡Mira mi nuevo diseño hecho en Canva!.pdf¡Mira mi nuevo diseño hecho en Canva!.pdf
¡Mira mi nuevo diseño hecho en Canva!.pdf
 
Introducción a la robótica con arduino..pptx
Introducción a la robótica con arduino..pptxIntroducción a la robótica con arduino..pptx
Introducción a la robótica con arduino..pptx
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestre
 
manual-de-oleohidraulica-industrial-vickers.pdf
manual-de-oleohidraulica-industrial-vickers.pdfmanual-de-oleohidraulica-industrial-vickers.pdf
manual-de-oleohidraulica-industrial-vickers.pdf
 
Diagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdfDiagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdf
 
taller de tablas en word para estudiantes de secundaria
taller de tablas en word para estudiantes de secundariataller de tablas en word para estudiantes de secundaria
taller de tablas en word para estudiantes de secundaria
 
Pons, A. - El desorden digital - guia para historiadores y humanistas [2013].pdf
Pons, A. - El desorden digital - guia para historiadores y humanistas [2013].pdfPons, A. - El desorden digital - guia para historiadores y humanistas [2013].pdf
Pons, A. - El desorden digital - guia para historiadores y humanistas [2013].pdf
 
Inteligencia Artificial para usuarios nivel inicial
Inteligencia Artificial para usuarios nivel inicialInteligencia Artificial para usuarios nivel inicial
Inteligencia Artificial para usuarios nivel inicial
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
 
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
lenguaje algebraico.pptx álgebra, trigonometria
lenguaje algebraico.pptx álgebra, trigonometrialenguaje algebraico.pptx álgebra, trigonometria
lenguaje algebraico.pptx álgebra, trigonometria
 
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docxPRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
 
Unidad 1- Historia y Evolucion de las computadoras.pdf
Unidad 1- Historia y Evolucion de las computadoras.pdfUnidad 1- Historia y Evolucion de las computadoras.pdf
Unidad 1- Historia y Evolucion de las computadoras.pdf
 
Presentacion y Extension de tema para Blogger.pptx
Presentacion y Extension de tema para Blogger.pptxPresentacion y Extension de tema para Blogger.pptx
Presentacion y Extension de tema para Blogger.pptx
 
Diagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestreDiagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestre
 
editorial de informática de los sueños.docx
editorial de informática de los sueños.docxeditorial de informática de los sueños.docx
editorial de informática de los sueños.docx
 

Alfresco Enterprise: Escalabilidad y Tuning

  • 1. Alfresco  Enterprise:  Escalabilidad  y  Tuning   Toni  de  la  Fuente   Senior  Solu/ons  Engineer     Spain  &  Portugal   toni.delafuente@alfresco.com  
  • 2. El webinar comenzará en unos minutos. Las líneas de voz de los asistentes estarán desactivadas. Use el área de chat “Q&A” para hacer las preguntas que responderemos al finalizar la sesión. 2
  • 3. Contenidos ●  Componentes  de  la  arquitectura   ●  Escenarios  de  soluciones  Alfresco   o  Carga  masiva  de  contenidos   o  Plataforma  combinada:  contenidos,  acciones,  usuarios   ●  Pruebas  de  carga   ●  Conclusiones  y  preguntas   3  
  • 4. Componentes  de  la  arquitectura   4  
  • 5. Componentes 1.  Repositorio  Alfresco   2.  Alfresco  Share   3.  Aplicaciones  de  terceros   4.  Base  de  datos   5.  Content  Store   6.  Índices   5  
  • 6. Escenarios  de  la  solución   6  
  • 7. Gestión completa de contenidos Ges/ón  de   Ges/ón   Colaboración   Ges/ón  de   Archivo     Contenidos   Documental   Expedientes   Email   Web   ¿Interfaces?   ¿Número  de  …?   ¿Tipos  de  contenido?   Un  repositorio   construido  con  una  base   ¿Cuantos   tecnológica  sólida   componentes?   7  
  • 8. ¿Lo mismo para todos? 8  
  • 9. Soluciones con Alfresco según el uso 1.  Plataforma  de  carga  masiva   •  Alto  rendimiento  en  procesos  por  lotes,  5+  millones  de   documentos,  asequible   •  Ej:  archivo  y  digitalización  masiva   2.  Plataforma  empresarial  de  colaboración   ●  Uso  intenso  de  sistema  de  ficheros,  mezcla  entre   contenido  e  interfaz   ●  Ej:  Colaboración,  ges/ón  del  conocimiento,  contenidos   generados  por  los  usuarios   9  
  • 10. Los 3 procesos más importantes Arquitectura (1) Diseño Tuning (2) (3) 10  
  • 11. Carga  masiva  de  contenidos   11  
  • 12. Requerimientos de Carga masiva de contenidos ●  100-­‐1000  usuarios  (sólo  con  acceso  de  lectura)   ●  10.000  documentos  cargados  por  día  durante  horas   nocturnas   ●  20  millones  de  documentos  al  año   ●  Tipos  de  documentos:  PDF,  TIFF,  JPG   ●  Sólo  lectura,  sin  indexado  total,  modelo  de  contenido  básico   ●  Pocas  o  ninguna  reglas  o  acciones   ●  Sin  transformación  de  contenido   ●  Ges/ón  del  contenido  centralizado   ●  Interfaces:  aplicación  externa,  API  na/va,  WebScripts,  CMIS.   No  CIFS/WebDAV/FTP  o  Webclient   12  
  • 13. Consideraciones de arquitectura ●  Uso  de  CPU  y  memoria  intensivo   o  Escalar  ver/calmente  en  lugar  de  horizontalmente   ●  Los  procesos  batch  son  la  CLAVE   o  Atómicos  -­‐>  Escalar  ver/calmente,  +CPU  +Memoria   o  Paralelos  -­‐>  Escalar  horizontalmente  con  2  Repositorios  en  cluser   compar/endo  un  mismo  almacenamiento.   ●  Escalar  (ver/cal  y  horizontalmente)  el  almacenamiento   o  Caringo  CAStor   o  Content  Store  Selector   o  Escalar  y  op/mizar  la  BBDD  (Mysql  proxy  /  Oracle  RAC)   ●  Evitar  Sparc  T2000  series  (y  familia  similar)   13   o  Bueno  para  proceso  paralelo  pero  pobre  en  operaciones  atómicas  
  • 14. Dos capas 14  
  • 16. Buenas prácticas en diseño ●  Optimiza los procesos batch o  API nativa o  Más de un documento por transacción o  Ejemplo: 150 crear, 50 borrar ●  Distribuye el contenido o  Balancea el árbol de contenidos o  Puede servir multi-tenant? (batch paralelos e independientes) ●  Consideraciones para cargas masivas o  Evita envíos a la papelera con cm:temporary ●  Optimización de los índices o  DoNotIndex aspect 16  
  • 17. Buenas prácticas en optimización ●  Optimización de I/O Ejemplo de configuración JVM : o  Mejor elección: Discos Locales * -server –Xms6G –Xmx6G o  Latencia de red con la RDBMS -XX:PermSize=256m -XX:MaxPermSize=256m ●  Configuración a nivel ORM -XX:NewRatio=2 -XX:+UseParNewGC o  Tuning del “connection pool” -Xloggc:/tmp/gc.log -verbose:gc o  Desabilitar la caché de consultas -XX:+PrintGCTimeStamps durante la importación -XX:+PrintGCDetails ●  Evita características innecesarias o  Auditoría / Quotas o  Check ACL (ejecuta como admin) / Reglas o  Subsystems (ej. VFS) ●  Tuning de Lucene 17   o  index.tracking.disableInTransactionIndexing=true o  mergeFactor
  • 19. Plataforma de colaboración ●  100-­‐10.000  usuarios  (lectura  y  escritura)   o  Ges/ón  del  contenido  descentralizado   ●  10.000-­‐1  millón  de  documentos  (o  incluso  10  millones  )   ●  1000  actualizaciones  de  documentos  por  día   ●  Múl/ples  versiones  por  documento   o  Tipos  de  documentos:  Office,  dibujo,  imágenes,  etc.   o  Gran  uso  de  transformación  del  contenido  (PDF,  Flash,  thumbnail)   ●  Indexación  completa  de  todos  los  documentos   o  Múl/ples  modelos  de  contenido   ●  Múl/ples  (avanzadas)  reglas  y  acciones   ●  ACL  dinámicas  (múl/ples  cambios  con/nuamente)   ●  Interfaces:  Todas.  Para  DM  principalmente  CIFS/WebDAV.  Para   colaboración  Share/Webclient.  Webscripts  para  aplicaciones  y/o  portlets   19  
  • 20. Consideraciones de arquitectura ●  Despliegue  total  de  la  plataforma   o  Plataforma  de  DM/Colaboración  con  múl/ples  procesos  involucrados   o  Global  (sin  ventanas  de  mantenimiento)   ●  Escalar  Share  horizontalmente  de  forma  independiente  al  repositorio   o  Balanceo  de  carga  frontal  e  “intercapa”   o  Separar  lectura  de  escritura  y  tareas  programadas   ●  Separar  el  servidor  de  transformaciones   o  Servidor  independiente   o  Daemon  Open  Office   ●  Escalado  horizontal  y  ver/cal  de  la  infraestructura   o  Escalar  CIFS  con  DFS   o  Todos  los  protocolos  basados  en  HTTP  escalan  de  forma  similar  (incluido  SPP/7070)   ●  Balancea  mul/-­‐CPU  (scale  up)  y  cluster  mul/-­‐nodo  (scale  out)   o  Ojo  con  los  índices   20  
  • 21. Plataforma de contenidos transparente 21  
  • 22. Buenas prácticas en diseño ●  Distribuir  y  balancear  el  árbol  de  contenidos  FUNDAMENTAL!   o  La  ges/ón  descentralizada  es  compleja   o  Usa  conceptos  comunes  (espacios,  e/quetas,  categorías)   ●  Ojo  con  con  las  versiones  y  los  índices   o  No  apliques  cm:versionable  a  todo  el  cm:content   o  Usa  el  VersionCleaner   ●  Modelado  de  datos   o  Mejor  aspectos  que  /pos  /  reu/lización  de  metadatos   o  Opciones  de  indexado  de  los  contenidos   ●  Cuotas  y  usos   o  Debemos  preveer  una  “explosión”  del  repositorio   22  
  • 23. Buenas prácticas en optimización ●  RDBMS     ●  No  dejes  la  configuración  por  defecto  -­‐-­‐>  RTFM  :)   ●  Configuración  de  la  capa  ORM   ●  L2  cache:  incremento  lineal  con  la  memoria  RAM   ●  Incrementa  el  connec/on  pool  y  connec/on  threads    con  la  RBDMS  (db.pool.max)   ●  Configuración  óp/ma  de  Alfresco   ●  VFS  thread  pool  (por  defecto:    <threadPool init="25" max="50"/>    )   ●  Op/miza  el  uso  de  ACLs  y  precarga  de  búsquedas  más  usadas  (si  es  necesario)    system.acl.maxPermissionCheckTimeMillis=10000 system.acl.maxPermissionChecks=1000 ●  Op/mización  de  Lucene   ●  lucene.maxAtomicTransformationTime=20 23   ●  lucene.indexer.mergeFactor
  • 25. Alfresco Benchmarks ●  Alfresco  Benchmark  Tools   o  alfresco-­‐bm  -­‐  hup://wiki.alfresco.com/wiki/Server_Benchmarks   o  SimpleInjector  -­‐  (disponible  en  partners.alfresco.com  en  unos  días)   o  JMeter   o  CIFS  loading   ●  Resultados  sobre  pruebas  de  carga  con  Alfresco   o  Unysis  benchmark  results   o  JCR  Benchmarks   ●  WIP   o  Documento  sobre  escalabilidad  para  partners.   o  Más  información  para  +3.4     25  
  • 26. Controla tu solución Alfresco ●  Usa  el  modo  debug!   ●  Análisis  de  Alfresco   o  JMX  (for  Enterprise  Only  see  Admin  Guide)   hup://wiki.alfresco.com/wiki/JMX   o  Audit  Surf   hup://forge.alfresco.com/projects/auditsurf/   o  Nagios  integra/on   hup://forge.alfresco.com/projects/nagios4alfresco/   ●  Análisis  de  la  Infraestructura   o  VisualVM  (JVM)   hup://ur.ly/esjZ   o  YourKit  (JVM)   hup://wiki.alfresco.com/wiki/JMX   o  WireShark  (Network)   hup://www.wireshark.org/   o  Mysql  Query  Profiler  (DBMS)   26   hup://dev.mysql.com/tech-­‐resources/ar/cles/using-­‐new-­‐query-­‐profiler.html  
  • 28. Escalar horizontalmente vs. verticalmente Pros   Contras   Mejora  el  rendimiento  en   Coste  de  procesadores   procesos  batch   Escalar   Ver/calmente   Mejora  el  rendimiento  en  las   Posible  coste  adicional  en   transformaciones   suscripciones   Mejora  el  rendimiento  en   Tiempo  para  sincronización   procesos  paralelos   de  los  índices   Escalar   Posible  coste  adicional  en   Alta  Disponibilidad   Horizontalmente   suscripciones   Separación  de  Lectura/ Necesita  balanceo/caching   Escritura   28  
  • 29. Las reglas de oro ●  Elige  la  arquitectura  correcta   ●  Distribuye  la  carga  de  la  infraestructura   ●  Aprovecha  las  capas  para  caché   ●  Maximiza  el  uso  de  la  plataforma   ●  Ten  en  cuenta  el  rendimiento  de  tu  aplicación  durante  el  diseño   ●  Elige  la  API  correcta   ●  Desac/va  lo  que  no  u/lices  (ACLs,  indexado,  VFS,  etc.)   ●  Prueba  todo  en  la  fase  de  test.   ●  Prueba,  prueba,  prueba   ●  Realiza  las  pruebas  y  compártelas  con  Alfresco  Support  /  Solu/on   Engineering   29  
  • 30. Preguntas y Feedback ●  ¿Alguna  pregunta?   ●  Comparte  las  experiencias  con  nosotros  (buenas  y   malas)   ●  Arquitecturas  escaladas  sa/sfactoriamente   ●  Limitaciones,  cuellos  de  botella   ●  Configuraciones  ú/les  =>  Implementación  =>  Resultados   ●  Qué  funciona  y  qué  no  funciona.   30  
  • 31. Gracias por asistir al webinar Toni de la Fuente! toni. delafuente@alfresco.com! twitter: @toniblyx ! blog: http://blyx.com! 31