SlideShare ist ein Scribd-Unternehmen logo
1 von 48
Downloaden Sie, um offline zu lesen
Nil Portugués Calderó
Senior PHP Developer @ Atrapalo.com
OpenDay La Salle Campus Barcelona | Sábado 18 de Abril 2015
1
Alto Rendimiento
en la web
¿Quién soy yo?
- Ingeniero Técnico en Informática de Sistemas
- Más de 15 años haciendo desarrollo web
- Empecé con Perl, SSI y PHP3 en 1999
- Me muevo entre el Backend y sistemas.
- Proyecto más duradero que he llevado: 14 años.
- Contribuyo en proyectos open source y libero propios
- Charlas: como asistente y ponente o colaborador
¡EMPEZAMOS!
Alto rendimiento
4
¿respecto a qué o quién?
1. Red
2. Hardware
3. Infraestructura
4. Código Fuente
5. Económico
5
Alto rendimiento según:
6
Actores
ProgramadorUsuarios SysAdmin
Empresa /
Empresario
7
La RedPor dónde circulan la información
Programador
1. Red
Beneficiarios del alto rendimiento:
8
Usuarios SysAdmin
Empresa /
Empresario
1. Red
A tener en cuenta...
● Routing.
● Latencia según punto de acceso (CDNs)
● Optimización de saltos entre servidores.
● Bandwidth (ancho de banda)
9
10
El HardwareDonde viven la información
2. Hardware
Beneficiarios del alto rendimiento:
11
ProgramadorUsuarios SysAdmin
Empresa /
Empresario
2. Hardware
A tener en cuenta
Hardware
○ RAM
○ Procesador
○ HDD SDD
Throughput de la tarjeta de red.
Sistemas operativo y su configuración.
12
13
La InfraestructuraCómo gestionamos la información
Programador
3. Infraestructura
Beneficiarios del alto rendimiento:
14
Usuarios SysAdmin
Empresa /
Empresario
3. Infraestructura
Protocolo web
○ HTTP 1.1
○ Spdy / HTTP 2.0
15
3. Infraestructura
Servidor web
○ Apache 2
○ Nginx
○ ReactPHP
16
3. Infraestructura
Versión del lenguaje de programación
○ PHP 5.3
○ PHP 5.4
○ PHP 5.5
○ PHP 5.6
17
○ PHP 7.0
○ Hack (fork de Facebook)
3. Infraestructura
Bases de datos
○ SQLite
○ MySQL
○ Postgresql
○ Sphinx
18
○ MongoDB
○ CouchDB
○ Riak
○ Hadoop
3. Infraestructura
Motores de búsqueda
○ Sphinx
○ Elasticsearch / Solr
19
3. Infraestructura
Sistemas de cache
○ Redis
○ Memcached
20
3. Infraestructura
Procesado de datos en background
○ Sistema de colas
○ Back-ups
21
22
Código FuenteModelado de la información
Programador
4. Código Fuente: Lado servidor
Beneficiarios del alto rendimiento:
23
Usuarios SysAdmin
Empresa /
Empresario
24
4. Código Fuente: Lado servidor
Lenguaje de programación
○ Documentación + Grado de madurez
○ Throughput/velocidad first byte.
○ Frameworks maduros disponibles.
○ Librerías disponibles.
4. Código Fuente: Lado servidor
25
Patrones de diseño
○ Cómo aplicarlos en el lenguaje de programación.
○ Conocer sus ventajas y limitaciones.
○ Estándares de estilo: PSR-2, Symfony…
○ Escribir “Clean Code” y eliminar los “Code Smells”.
26
4. Código Fuente: Lado servidor
27
¿Clean code?
Robert Cecil Martin (Uncle Bob)
28
¿Clean code?
Ejemplos de “code smells”:
○ Hay código que nadie sabe como modificar o entiende.
○ Código que al modificarlo, rompe otras funcionalidades
(...y no lo sabes hasta que lo reporta un cliente)
○ Errores que “a veces pasan”. Desconocimiento del problema.
○ Añadir una funcionalidad simple requiere muchas horas.
Reusabilidad de tu código.
○ DRY: Don’t repeat yourself.
○ Bug fixing en paquetes open source (a ser posible).
29
4. Código Fuente: Lado servidor
30
DRY: Don’t repeat yourself
Mantenibilidad de tu código
○ TDD / Unit testing a nivel de clase.
○ BDD / Unit testing a nivel de integración.
31
4. Código Fuente: Lado servidor
4. Código Fuente: Lado cliente
32
Programador
4. Código Fuente: Lado cliente
Beneficiarios del alto rendimiento:
33
Usuarios SysAdmin
Empresa /
Empresario
Multimedia
○ PNG, JPG ,GIF, WEBP, MP4, SVG
○ Optimización de imágenes
○ Domain Sharding
34
4. Código Fuente: Lado cliente
CSS
○ Critical Rendering Path Performance
○ Responsive Web
○ Frameworks CSS
35
4. Código Fuente: Lado cliente
Javascript
○ Sync, Async, Deferred
○ Librerias Javascript
36
4. Código Fuente: Lado cliente
HTML
○ W3C Compliant
○ Semantic HTML
○ Schema.org
○ SEO
37
4. Código Fuente: Lado cliente
38
EconómicoCuán rentable es nuestra información
Programador
5. Económico
Beneficiarios del alto rendimiento:
39
Usuarios SysAdmin
Empresa /
Empresario
Time to market
○ Cada día que pasa en subir una funcionalidad resulta más
cara, aporte o no beneficios.
○ Cada día que pasa y no se ha subido una funcionalidad
el departamento de marketing pierde competitividad.
5. Económico
40
Tolerancia a los fallos humanos
○ ¿Cuánto tardamos en detectar un fallo de código?
○ ¿Cuánto tardamos en resolver un fallo de código?
41
5. Económico
Integración contínua: detectar un fallo de código
○ Detección inmediata de errores.
○ No se sube a producción si hay errores.
43
5. Económico
Tolerancia a lo inesperado
○ ¿Cómo reaccionamos a una avalancha de usuarios
inesperada?
○ Mejor aún, ¿sabemos predecir si se avecina una avalancha
de usuarios?
44
5. Económico
Métricas
○ Justificar el tiempo invertido o razones de una decisión.
○ ¿Mejora de rendimiento respecto a que indicadores?
45
5. Económico
Métricas día a día y contra el año anterior
46
5. Económico
47
Nil Portugués Calderó
contact@nilportugues.com
@niluspc
48
Gracias

Weitere ähnliche Inhalte

Ähnlich wie Alto rendimiento en la web

Ähnlich wie Alto rendimiento en la web (20)

Refactorizando Pccomponentes.com con Symfony
Refactorizando Pccomponentes.com con SymfonyRefactorizando Pccomponentes.com con Symfony
Refactorizando Pccomponentes.com con Symfony
 
Presentación de TYPO3 por ICTI Internet Passion
Presentación de TYPO3 por ICTI Internet PassionPresentación de TYPO3 por ICTI Internet Passion
Presentación de TYPO3 por ICTI Internet Passion
 
Tienda Virtual.- Gygacom
Tienda Virtual.- GygacomTienda Virtual.- Gygacom
Tienda Virtual.- Gygacom
 
¿Se puede vivir del open source? T3chfest
¿Se puede vivir del open source? T3chfest¿Se puede vivir del open source? T3chfest
¿Se puede vivir del open source? T3chfest
 
APCSIS - Escuela de Código.pptx
APCSIS - Escuela de Código.pptxAPCSIS - Escuela de Código.pptx
APCSIS - Escuela de Código.pptx
 
Modelo entidad realción
Modelo entidad realciónModelo entidad realción
Modelo entidad realción
 
Demostración: ¿Cómo acelera la plataforma Denodo su tiempo para obtener infor...
Demostración: ¿Cómo acelera la plataforma Denodo su tiempo para obtener infor...Demostración: ¿Cómo acelera la plataforma Denodo su tiempo para obtener infor...
Demostración: ¿Cómo acelera la plataforma Denodo su tiempo para obtener infor...
 
Presentacion pb y dl rev b
Presentacion pb y dl rev bPresentacion pb y dl rev b
Presentacion pb y dl rev b
 
Alternativas de hosting para WordPress
Alternativas de hosting para WordPressAlternativas de hosting para WordPress
Alternativas de hosting para WordPress
 
Commit 2018 - Integrando Microservicios y Machine Learning
Commit 2018 - Integrando Microservicios y Machine LearningCommit 2018 - Integrando Microservicios y Machine Learning
Commit 2018 - Integrando Microservicios y Machine Learning
 
Presentación 1 AESS.pptx
Presentación 1 AESS.pptxPresentación 1 AESS.pptx
Presentación 1 AESS.pptx
 
Drupal vs Wordpress
Drupal vs WordpressDrupal vs Wordpress
Drupal vs Wordpress
 
TIC en el Entorno Laboral
TIC en el Entorno LaboralTIC en el Entorno Laboral
TIC en el Entorno Laboral
 
Saregune Técnica
Saregune TécnicaSaregune Técnica
Saregune Técnica
 
MuleSoft Madrid Meetup #2 slides 29th January 2020
MuleSoft Madrid Meetup #2 slides 29th January 2020MuleSoft Madrid Meetup #2 slides 29th January 2020
MuleSoft Madrid Meetup #2 slides 29th January 2020
 
Iswmovil
IswmovilIswmovil
Iswmovil
 
Creación de proyectos web con Drupal
Creación de proyectos web con DrupalCreación de proyectos web con Drupal
Creación de proyectos web con Drupal
 
Pract campo
Pract campoPract campo
Pract campo
 
como realmente_trabaja_internet
 como realmente_trabaja_internet como realmente_trabaja_internet
como realmente_trabaja_internet
 
18º Betabeers Granada: Cómo hacer un BOT para Facebook y Battever
18º Betabeers Granada:  Cómo hacer un BOT para Facebook y Battever18º Betabeers Granada:  Cómo hacer un BOT para Facebook y Battever
18º Betabeers Granada: Cómo hacer un BOT para Facebook y Battever
 

Kürzlich hochgeladen

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
 
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
241521559
 
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
FagnerLisboa3
 

Kürzlich hochgeladen (10)

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
 
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
 
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
 
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
 
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
 
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
 
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
 
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
 

Alto rendimiento en la web