Robustez y flexibilidad
Su arquitectura técnica ha priorizado su mejor robustez y flexibilidad, de forma de garantizar la estabilidad y adaptación del sistema a nuevas necesidades en el cambiante mundo de Internet. Su modularidad permite crecer ordenadamente de una forma flexible y adaptable. Todo ello gracias al uso de patrones de diseño de demostrada solvencia, como MVC, separando los datos, la lógica y la interfaz de usuario, asegurando las mejores garantías de solidez, extensibilidad, mantenibilidad y por lo tanto una larga vida sin obsolescencia.
Arquitectura Software
Al tratarse de un desarrollo web, con un gran componente de red social en su núcleo, el lenguaje de programación utilizado es PHP. El mismo que se emplea en proyectos de la envergadura de: Facebook, Wordpress, Twitter, etc.
El uso de PHP permite aprovechar su riqueza y diversidad en módulos, frameworks y herramientas. Todos ellos avalados por centenares de miles de profesionales y utilizados diariamente por millones de usuarios. Del mismo modo, en la capa visual de usuario, se ha pretendido la máxima robustez y estabilidad, sin renunciar a la flexibilidad aportada por las últimas tecnologías.
En la base se utiliza la última versión modificada del Avanced Core Framework yii2, que permite configurar una arquitectura por capas débilmente acoplada:
- Common: componentes necesarios transversalmente.
- Social/Catolia/hub/Streams: componentes necesarios para la gestión de la red social.
- Frontend: componentes necesarios para la web (buscador, noticias, contenidos estáticos, etc.).
- Backoffice: componentes necesarios para la gestión de la web
- Acceso a datos: componentes de interacción con la BBDD, utilizando Yii Active Record como ORM
La flexibilidad y bajo acoplamiento se potencia más aún mediante la incorporación de otros frameowrks como Zend Framework, por su estructura para importar, inicializar, y actualizar módulos y componentes de terceros, así como sus capacidades de cache; o Yii Extensions, haciendo uso de su modelo de extensiones o módulos como base del proyecto Catolia.
Complementariamente el empleo de otras herramientas y módulos de contrastada utilidad, como: bower y composer para la automatización y gestión de dependencias; cebe y zendsearch, como motores de búsqueda; yii2-i18n, para la internacionalización; swiftmailer y yii-Mail, para el envío de correos electrónicos, etc. le otorgan las más altas perfomances actualmente operables.
En la capa de presentación se emplean las tecnologías HTML5 y JavaScript, bootstrap, para el diseño adaptativo; font Awesome, para la gestión tipográfica; y decenas de librerías y APIs, destacando jquery, modernizr, lightbox, Google maps u Openstreenmap entre otras.
Seguridad
Para Catolia, la seguridad es uno de los aspectos críticos que requiere una atención primordial. Para asegurarla, la incorporación de un equipo especialista en la salvaguarda de sus activos informáticos, ha sido estratégico en su desarrollo.
La gestión de la seguridad implementada es conforme con las mejores prácticas internacionales, en particular la familia de normas ISO 27000 de gestión de la seguridad, ISO 31000 de gestión de riesgos e ISO 22301 de continuidad de operaciones. Todo ello de conformidad con los requisitos exigidos por la normativa legal vigente: Ley Orgánica 15/1999 de Protección de datos Personales y Ley 34/2002 de Servicios de la Sociedad de la Información
Su arquitectura incorpora también herramientas de primera línea de seguridad y encriptación, utilizando las más altas soluciones de seguridad perimetral y de aplicación. En línea con los estándares de las convenciones de seguridad actuales más exigentes, como 2048-bit SSL Secure Sockets Layer with TLS Encryption/256 signatures.
La arquitectura de desarrollo, incluye una amplia gama de soluciones de seguridad preventiva y reactiva, tales como Code Igniter, dada su estructura y medidas para gestionar la seguridad (SQL injections, XSS, session hijack, etc).
Adicionalmente, gracias a la arquitectura PHP se han podido implementar otros módulos como: htmlpurifier, zend-validator, zend-http, zend-escaper, urlify, y zend-uri para la protección ante peticiones maliciosas; o yii2-authclient, para el control de accesos, XSS y CSRF.
Rendimiento e infraestructura
Una equilibrada combinación de servidores web, de aplicación y de sistemas de bases de datos, tanto propietarios como open source, permitirán lograr una alta capacidad de respuesta a altas cargas de trabajo, así como una garantía total en fiabilidad y seguridad.
Contando con una infraestructura hardware de alto rendimiento y tolerancia a fallos. La disponibilidad de instancias redundadas en 2 CPD en ciudades diferentes, con una configuración de clúster balanceados y en failover, garantizan la capacidad y la disponibilidad. Cada CPD cuenta con infraestructura SAN de alto rendimiento, DNS externos distribuidos, servidores web, servidores de aplicaciones y de base de datos balanceados con la información replicada. Una línea dedicada de 10gbps entre CPDs permite la sincronización de datos en tiempo real.
La conectividad a internet se realiza a través de sistema AS con conexión directa a la red de los 3 proveedores mayoritarios en España y acuerdo de peering directo a través de punto neutro con 17 proveedores de primera línea, y con conexiones adicionales de respaldo.
La solvencia de la infraestructura está complementada mediante rigurosos compromisos de nivel de servicio en los protocolos de operaciones, soporte y mantenimiento de los sistemas, con tiempos de respuesta inferiores a 4 horas con turnos de trabajo rotatorios, para garantizar la monitorización 24x7 y la planificación de las tareas de mantenimiento en horas de bajo tráfico, minimizando así el impacto en disponibilidad y rendimiento del sistema.
Con todo ello, la base tecnológica creada permitirá soportar con solvencia un crecimiento continuo hasta alcanzar los 6 millones de usuarios, en un primer escalón.
Los centros de datos se ubican en territorio español, por motivos legales así como de accesibilidad. En particular, el centro de Proceso de Datos (CPD) principal, se emplaza a menos de 20 minutos del centro de Madrid, facilitando el rápido desplazamiento de técnicos y personal ante incidencias críticas. La infraestructura de los CPD aportan a Catolia todas las garantías de funcionamiento y soporte necesarias, al estar operados por compañías líderes en la provisión de servicios con requisitos estrictos a banca y seguros.
La seguridad se implementa a nivel interno, mediante cortafuegos redundantes multiproveedor, sistemas avanzados de escaneo de vulnerabilidades y medias adicionales a nivel de configuración, auditoría y mantenimiento.