... y ser indestructible
Alberto Silva | github.com/asilgag
+
+ 20 años en gestión de contenidos
Ahora enfocado en:
Arquitectura moderna de desarrollo web basada en:
Rotado de logs, control de espacio en disco, control de carga, actualizaciones de seguridad, balanceadores, puertos, configuración NFS, configuración de vhosts, configuración de módulos apache, Varnish, memcached, servidores Mysql maestro/esclavo, backups, snapshots de BD...
/root/script.sh controla, internamente, si la petición llega por el puerto abierto, o es un usuario de unix, o es root.
1991
Fechas de lanzamiento de
Linux Apache Mysql PHP
1995
1995
1995
Cliente internacional
9 sites: Latam, BR, PT, ES, FR, IT, DE, NL, UK
Mercado: ~1.000 millones
Drupal tradicional desarrollado por
agencia top de Atlanta, USA
Costes enormes: ~20.000 € mes infraestructura
Múltiples regiones y entornos en AWS
Akamai + Varnish + Memcached + 7 EC2 m5.2xlarge (8 cores / 32 Gb RAM) sólo para frontend + 5 Solr + ...
+ 30 servidores en total
Aún así, pésimo rendimiento
Servidores siempre sobrecargados
Deploys complejísimos y largos (más de 1 hora)
Inestabilidad general
Exportamos a JSON
<?php
namespace Drupal\static_export\Event;
/**
* Contains all events dispatched by Static Export.
*/
final class StaticExportEvents {
const PREFLIGHT = 'static_export.preflight';
const STARTS = 'static_export.starts';
const CHECK_PARAMS_STARTS = 'static_export.check_params_starts';
const CHECK_PARAMS_ENDS = 'static_export.check_params_ends';
const CONFIG_STARTS = 'static_export.config_starts';
const CONFIG_ENDS = 'static_export.config_ends';
const RESOLVER_STARTS = 'static_export.resolver_starts';
const RESOLVER_ENDS = 'static_export.resolver_ends';
const FORMATTER_STARTS = 'static_export.formatter_starts';
const FORMATTER_ENDS = 'static_export.formatter_ends';
const OUTPUT_STARTS = 'static_export.output_starts';
const WRITE_STARTS = 'static_export.write_starts';
const WRITE_QUEUE_PROCESSING_STARTS = 'static_export.write_queue_processing_starts';
const WRITE_QUEUE_PROCESSING_ENDS = 'static_export.write_queue_processing_ends';
const WRITE_ENDS = 'static_export.write_ends';
const OUTPUT_ENDS = 'static_export.output_ends';
const ENDS = 'static_export.ends';
}
No servidores. Sólo backoffice
Reducción de costes: ~90%
Escalado a cualquier pico de tráfico. Cualquiera.
Seguridad absoluta
Inteligencia en el Edge + Lambdas
Assets de nuevos contenidos
HTML de nuevos contenidos
Resto de assets
Resto de HTML (sin home)
HTML home