SlideShare una empresa de Scribd logo
Desarrollo en la nube
         Javier Nievas Muñoz
      CTO en Pynso | CTO en Hitsbook
                      jnievas@pynso.com
Bienvenidos
Antes de empezar...
                    ...algunos “keywords”

Nube. Web 2.0. Servidor Web. Servidor de
Base de datos. Caché. Aplicaciones Web.
Hosting. Uptime. Amazon AWS.
Bienvenidos
TARGET
Proyectos web con previsión de
crecimiento en contenidos y visitas
Objetivo
MISIÓN
Conseguir que la plataforma web esté
online el 99% del tiempo
Objetivo
MISIÓN
Conseguir que la plataforma web esté
online el 99% del tiempo



             ¿Imposible?
Intro
            El problema
            Para entender el problema debemos considerar todos los
            elementos que intervienen a la hora de servir una página
            dentro de una aplicación web.

 Petición   Consulta(s)    Generar       Servir    Servir Media         Procesos
                                                   (Imgs, CSS, JS...)
GET/POST      BBDD          HTML         HTML                            largos

                                  Módulos           Streaming           Envío de
                                recurrentes                              emails
Intro
El problema
Todo esto consume recursos del servidor:
RAM + CPU + HDD + Red
Hosting
                   Servidor
                   Los recursos de los servidores son finitos y, por tanto, tienen una capacidad limitada.
                   Las opciones habituales que nos hemos encontrado a la hora de contratar un servidor han sido:
                     Servidor compartido

                     Servidor virtual (VPS)

                     Servidor dedicado




Servidor compartido                Servidor virtual VPS                   Servidor dedicado
Desde 10€/mes                       Desde 30€/mes                          Desde 100€/mes
Poca capacidad                      Capacidad configurable                 Capacidad fija
Recursos limitados y compartidos    Recursos compartidos pero con          Recursos 100% disponibles
                                     reserva de unos mínimos
Hosting
                   Servidor
                   Los recursos de los servidores son finitos y, por tanto, tienen una capacidad limitada.
                   Las opciones habituales que nos hemos encontrado a la hora de contratar un servidor han sido:
                     Servidor compartido

                     Servidor virtual (VPS)



                          ¡NO SON ESCALABLES!
                     Servidor dedicado




Servidor compartido                Servidor virtual VPS                   Servidor dedicado
Desde 10€/mes                       Desde 30€/mes                          Desde 100€/mes
Poca capacidad                      Capacidad configurable                 Capacidad fija
Recursos limitados y compartidos    Recursos compartidos pero con          Recursos 100% disponibles
                                     reserva de unos mínimos
Hosting
Escalabilidad
El gran problema...
Soluciones
Hay muchos problemas...
… que hay que resolver individualmente para conseguir
una plataforma realmente preparada.
  Servidor web
  Servidor Base de Datos
  Servir ficheros estáticos
  Procesamiento / Envío de emails
  Generar HTML
  Servidor
Soluciones
                   Servidor Web
                            Típicamente se ha utilizado Apache.
                               Consume mucha memoria
    Servidor web
    Servidor Base de Datos  Muchas opciones de configuración que




                                apenas se utilizan
   Servir ficheros estáticos
   Procesamiento
   Generar HTML
   Servidor

                    NGINX   + FastCGI / uWSGI
Soluciones
                           Servidor Web

   Servidor web
   Servidor Base de Datos
   Servir ficheros estáticos
   Procesamiento
   Generar HTML
   Servidor
Soluciones
                           Servidor Web

   Servidor web
   Servidor Base de Datos
   Servir ficheros estáticos
   Procesamiento
   Generar HTML
   Servidor
Soluciones
                   Servidor BBDD
                            Habitualmente se utiliza MySQL y PostGres. Ambos sistemas de BBDD
                            están diseñados para poder escalar.
                            Solución típica: utilizar varios equipos con versiones de sólo lectura
                            de la base de datos, y que todos escriban en una sola, que se

  Servidor web              encarga de replicarse en la demás.
  Servidor Base de Datos

  Servir ficheros estáticos
                            Otras opciones:


  Procesamiento              ● Cambiar de concepto, y pasarse a otro tipo de BBDD, las no
  Generar HTML

  Servidor                     relacionales / NoSQL. Ejemplos: MongoDB, SimpleDB, CouchDB

Soluciones
                 Servir MEDIA
                            NO utilizar Apache!!!
                               Es matar moscas a cañonazos!


    Servidor web               Podríamos usar nginx, pero tampoco es buena
    Servidor Base de Datos
                                idea...


    Servir ficheros estáticos
    Procesamiento
                               Es una tarea secundaria ¿y si externalizamos


    Generar HTML

    Servidor

                                este “marrón”?
                               Utilizar un CDN (p.e. Amazon S3)
Soluciones
                  Procesamiento
                              Las tareas que requieran un tiempo de
                              procesamiento elevado no pueden ejecutarse
   Servidor web              en “tiempo de petición”, deben delegarse y
    Servir ficheros estáticos ejecutarse en background.
   Servidor Base de Datos


                                Utilizar un gestor de colas de tareas puede
   Procesamiento
   Generar HTML
   Servidor
                                 ser una idea excelente
                                Por ejemplo: Celery + Redis
Soluciones
                  Generar HTML
                              Más del 90% del HTML que se genera visita
                              tras visita es igual al que se ha generado la
   Servidor web              última vez. ¿Por qué regenerar toda esa
    Servidor Base de Datos
    Servir ficheros estáticos información cuando podemos evitarnos esos




    Procesamiento
    Generar HTML              cálculos simplemente guardando el HTML
   Servidor
                              resultado?
                                Utiliza la caché! → memcached
Soluciones
                  Servidor
                              Si el servidor se te queda pequeño... amplíalo.
                              Si se te vuelve a quedar pequeño... vuelve a
   Servidor web              ampliarlo.
    Servidor Base de Datos
    Servir ficheros estáticos Si vuelve a quedarse pequeño... vuelve a




    Procesamiento
    Generar HTML              ampliarlo.
    Servidor

                              Y si se queda pequeño otra vez.. amplíalo más
Soluciones
                   Servidor
                              ¿y si ya no puedes ampliarlo más? → Contrata otro
                              servidor y reparte las tareas entre ambos.
                              ¿y si se queda pequeño con ese otro? → Contrata
    Servidor web
    Servidor Base de Datos otro más!


    Servir ficheros estáticos

   Procesamiento             ¿y si resulta que ahora ya me sobran 2 porque hoy
   Generar HTML
    Servidor
                              no hay apenas visitas? Erm... ¿me fastidio?

Soluciones
La nube al rescate!
La nube/cloud es el lugar ideal donde alojar este tipo de proyectos.
Nos proporciona una plataforma ideal donde servir nuestros
proyectos con capacidad para escalarlos “ilimitadamente”.
  Podemos disponer de tantas máquinas como necesitemos, en el
   momento en el que las necesitemos.
  Pagaremos realmente por el uso real que tenga nuestra plataforma
  Y lo mejor, es que podemos conseguir que se regule y ajuste de
   forma automágica.

   Por ejemplo: Amazon EC2
Soluciones
La nube al rescate!
En la “nube” podremos disponer de equipos que podemos arrancar bajo
demanda montando sobre ellos imágenes de disco previamente
preparadas. ¿Qué nos permite esto?
Si tenemos poca carga:
  1 servidor con el Nginx frontal y algunos procesos FastCGI/uWSGI
Si tenemos más carga:
  1 servidor con el nginx frontal
  X servidores con procesos FastCGI/uWSGI sirviendo la plataforma
Soluciones
La nube al rescate!
Arquitectura hiperflexible:
  Servidores frontales con un autobalanceador
  Servidores de aplicaciones (FastCGI/uWSGI)
  Servidores de tareas (Celery Workers)
  Granja de BBDD (Amazon RDS)
  Servidores de caché de contenidos (memcached o Amazon
   Elasticache)
Se supervisa gracias a Amazon CloudWatch
Se “autoescala” gracias a Amazon Auto Scaling en base a parámetros
de carga de los equipos configurables
Soluciones
La nube al rescate!
Arquitectura hiperflexible:
  Servidores frontales con un autobalanceador e IP elástica
  Servidores de aplicaciones (FastCGI/uWSGI)
  Servidores de tareas (Celery Workers)
  Granja de BBDD (Amazon RDS)
  Servidores de caché de contenidos (memcached)
Se supervisa gracias a Amazon CloudWatch
Se “autoescala” gracias a Amazon Auto Scaling en base a
parámetros de carga de los equipos configurables
La receta
Ingredientes
   Amazon EC2: Todos los servidores que necesites
   Amazon S3 + Cloudfront: Servir los Media
   Amazon RDS: Granja de BBDD
   Amazon SES: Envio de emails
   Amazon Elasticache: Caché de contenidos (memcached)
   Amazon CloudWatch + Amazon Auto Scaling: Para la magia

   ¿Todo con Amazon? En realidad hay más alternativas, pero Amazon
    ha sido pionero y por ello tienen más experiencia y mejor abanico
    de herramientas
Referencias
Mira qué hacen los demás...
                                     ...que lo mismo aprendes algo ;-)

 Muchos portales de los “grandes” tienen blogs en los que cuentan sus
  “batallas” contra los picos de visitas. Leelos. Empápate.
    ● Por ejempo, el proyecto Disqus o Tuenti


    ● http://www.kitchensoap.com/ (trabajó en Flickr)


 Hay muchos libros interesantes al respecto:
    ● Building Scalable Web Sites (by Cal Henderson)


    ● Scalable Internet Architectures (by Theo Schlossnagle)


    ● The Art of Scalability (by Martin L.Abbott)
Dudas
Aprovecha la ocasión...
                 ...y no te quedes con la duda



PREGUNTAD!                        :-)
Desarrollo en la nube

Más contenido relacionado

La actualidad más candente

Cloud Hosting: la nueva generación del hosting
Cloud Hosting: la nueva generación del hostingCloud Hosting: la nueva generación del hosting
Cloud Hosting: la nueva generación del hosting
Arsys
 
Plataformas de alta disponibilidad para agencias: Hosting Inteligente
Plataformas de alta disponibilidad para agencias: Hosting InteligentePlataformas de alta disponibilidad para agencias: Hosting Inteligente
Plataformas de alta disponibilidad para agencias: Hosting Inteligente
Arsys
 
Curso ofimática en la nube
Curso ofimática en la nubeCurso ofimática en la nube
Curso ofimática en la nube
pcland
 
Hostening
HosteningHostening
Hostening
JhoselynAvila
 
Brandon
BrandonBrandon
High performance Web Sites
High performance Web SitesHigh performance Web Sites
High performance Web Sites
openfinanceDev
 
Digital server 5
Digital server 5Digital server 5
Digital server 5
MelodiSiebert50
 

La actualidad más candente (7)

Cloud Hosting: la nueva generación del hosting
Cloud Hosting: la nueva generación del hostingCloud Hosting: la nueva generación del hosting
Cloud Hosting: la nueva generación del hosting
 
Plataformas de alta disponibilidad para agencias: Hosting Inteligente
Plataformas de alta disponibilidad para agencias: Hosting InteligentePlataformas de alta disponibilidad para agencias: Hosting Inteligente
Plataformas de alta disponibilidad para agencias: Hosting Inteligente
 
Curso ofimática en la nube
Curso ofimática en la nubeCurso ofimática en la nube
Curso ofimática en la nube
 
Hostening
HosteningHostening
Hostening
 
Brandon
BrandonBrandon
Brandon
 
High performance Web Sites
High performance Web SitesHigh performance Web Sites
High performance Web Sites
 
Digital server 5
Digital server 5Digital server 5
Digital server 5
 

Destacado

La oración
La oraciónLa oración
La oracióngrego234
 
Grupo#3 gestalt
Grupo#3 gestaltGrupo#3 gestalt
Grupo#3 gestalt
Ar Kroly
 
Cuestionario chamo guaman 4 to ´´d´´
Cuestionario chamo guaman 4 to ´´d´´Cuestionario chamo guaman 4 to ´´d´´
Cuestionario chamo guaman 4 to ´´d´´jaffersonjaneta
 
I fattori determinanti per raggiungere i tuoi obiettivi (infografica + Bonus...
I fattori determinanti per raggiungere  i tuoi obiettivi (infografica + Bonus...I fattori determinanti per raggiungere  i tuoi obiettivi (infografica + Bonus...
I fattori determinanti per raggiungere i tuoi obiettivi (infografica + Bonus...
Salvatore Castro
 
Trastornos específicos del lenguaje
Trastornos específicos del lenguajeTrastornos específicos del lenguaje
Trastornos específicos del lenguajeTami.Marimar
 
Th s31 041_nghiên cứu cập nhật hệ thống chỉ tiêu phát triển dân cư xã hội the...
Th s31 041_nghiên cứu cập nhật hệ thống chỉ tiêu phát triển dân cư xã hội the...Th s31 041_nghiên cứu cập nhật hệ thống chỉ tiêu phát triển dân cư xã hội the...
Th s31 041_nghiên cứu cập nhật hệ thống chỉ tiêu phát triển dân cư xã hội the...
https://www.facebook.com/garmentspace
 
Say a little prayer
Say a little prayerSay a little prayer
Say a little prayer
Ivor Jones
 
Producto final.
Producto final.Producto final.
Producto final.
emiliatellez
 
La Gente Que Me Gusta
La Gente Que Me GustaLa Gente Que Me Gusta
La Gente Que Me Gusta
Miryana P.
 
Agenda Visita de Coordinadores Regionales EUS
Agenda Visita de Coordinadores Regionales EUSAgenda Visita de Coordinadores Regionales EUS
Agenda Visita de Coordinadores Regionales EUS
Coordinación Académica Escuela de Educación
 
Perspectivas del pensamiento educativo de mariátegui en el
Perspectivas del pensamiento educativo de mariátegui en elPerspectivas del pensamiento educativo de mariátegui en el
Perspectivas del pensamiento educativo de mariátegui en elErneztho Javiier
 
Electronica y circuitos tecnologia
Electronica y circuitos tecnologiaElectronica y circuitos tecnologia
Electronica y circuitos tecnologiacristiarcilacsj
 
Come Togliere i Freni Uscendo Dalla Zona di Comfort
Come Togliere i Freni Uscendo Dalla Zona di ComfortCome Togliere i Freni Uscendo Dalla Zona di Comfort
Come Togliere i Freni Uscendo Dalla Zona di Comfort
Salvatore Castro
 
Ficha de trabajo situaciones con decimales
Ficha  de trabajo   situaciones con decimalesFicha  de trabajo   situaciones con decimales
Ficha de trabajo situaciones con decimalesLuis Chambi
 

Destacado (20)

La oración
La oraciónLa oración
La oración
 
Grupo#3 gestalt
Grupo#3 gestaltGrupo#3 gestalt
Grupo#3 gestalt
 
Proyecto
ProyectoProyecto
Proyecto
 
Cuestionario chamo guaman 4 to ´´d´´
Cuestionario chamo guaman 4 to ´´d´´Cuestionario chamo guaman 4 to ´´d´´
Cuestionario chamo guaman 4 to ´´d´´
 
I fattori determinanti per raggiungere i tuoi obiettivi (infografica + Bonus...
I fattori determinanti per raggiungere  i tuoi obiettivi (infografica + Bonus...I fattori determinanti per raggiungere  i tuoi obiettivi (infografica + Bonus...
I fattori determinanti per raggiungere i tuoi obiettivi (infografica + Bonus...
 
Brain drain
Brain drainBrain drain
Brain drain
 
Trastornos específicos del lenguaje
Trastornos específicos del lenguajeTrastornos específicos del lenguaje
Trastornos específicos del lenguaje
 
2008 2 53
2008 2 532008 2 53
2008 2 53
 
Th s31 041_nghiên cứu cập nhật hệ thống chỉ tiêu phát triển dân cư xã hội the...
Th s31 041_nghiên cứu cập nhật hệ thống chỉ tiêu phát triển dân cư xã hội the...Th s31 041_nghiên cứu cập nhật hệ thống chỉ tiêu phát triển dân cư xã hội the...
Th s31 041_nghiên cứu cập nhật hệ thống chỉ tiêu phát triển dân cư xã hội the...
 
Say a little prayer
Say a little prayerSay a little prayer
Say a little prayer
 
Producto final.
Producto final.Producto final.
Producto final.
 
Trabajo rn
Trabajo rnTrabajo rn
Trabajo rn
 
La Gente Que Me Gusta
La Gente Que Me GustaLa Gente Que Me Gusta
La Gente Que Me Gusta
 
Tarea nro. 14
Tarea nro. 14Tarea nro. 14
Tarea nro. 14
 
Agenda Visita de Coordinadores Regionales EUS
Agenda Visita de Coordinadores Regionales EUSAgenda Visita de Coordinadores Regionales EUS
Agenda Visita de Coordinadores Regionales EUS
 
Perspectivas del pensamiento educativo de mariátegui en el
Perspectivas del pensamiento educativo de mariátegui en elPerspectivas del pensamiento educativo de mariátegui en el
Perspectivas del pensamiento educativo de mariátegui en el
 
Electronica y circuitos tecnologia
Electronica y circuitos tecnologiaElectronica y circuitos tecnologia
Electronica y circuitos tecnologia
 
Come Togliere i Freni Uscendo Dalla Zona di Comfort
Come Togliere i Freni Uscendo Dalla Zona di ComfortCome Togliere i Freni Uscendo Dalla Zona di Comfort
Come Togliere i Freni Uscendo Dalla Zona di Comfort
 
Presentación2
Presentación2Presentación2
Presentación2
 
Ficha de trabajo situaciones con decimales
Ficha  de trabajo   situaciones con decimalesFicha  de trabajo   situaciones con decimales
Ficha de trabajo situaciones con decimales
 

Similar a Desarrollo en la nube

Servidores web 6ciclo
Servidores web 6cicloServidores web 6ciclo
Servidores web 6ciclojdavilac1959
 
Aws PHPVigo
Aws PHPVigoAws PHPVigo
Comercio electronico
Comercio electronicoComercio electronico
Comercio electronico
yimloushiant
 
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
Amazon Web Services LATAM
 
Tecnologias y hosting gratuitos
Tecnologias y hosting gratuitosTecnologias y hosting gratuitos
Tecnologias y hosting gratuitos
Instituto Puruhá
 
2. Revision de Tecnologias Web.pdf
2. Revision de Tecnologias Web.pdf2. Revision de Tecnologias Web.pdf
2. Revision de Tecnologias Web.pdf
CarlosDavidMontellan
 
Webinar –Qué servidor elegir para tu proyecto, Cloud, Dedicados o VPS
Webinar –Qué servidor elegir para tu proyecto, Cloud, Dedicados o VPSWebinar –Qué servidor elegir para tu proyecto, Cloud, Dedicados o VPS
Webinar –Qué servidor elegir para tu proyecto, Cloud, Dedicados o VPS
Arsys
 
Presentación Clase 2
Presentación Clase 2Presentación Clase 2
Presentación Clase 2Eric Menjivar
 
Hosting Para Novatos
Hosting Para Novatos
Hosting Para Novatos
Hosting Para Novatos
dillonbyaalcqzsi
 
Tarea4
Tarea4Tarea4
Tarea4
mfmejiab
 
Whitepaper - Elige el servicio de hosting más indicado para tu proyecto
Whitepaper - Elige el servicio de hosting más indicado para tu proyectoWhitepaper - Elige el servicio de hosting más indicado para tu proyecto
Whitepaper - Elige el servicio de hosting más indicado para tu proyecto
Arsys
 
Hosting presentacion
Hosting presentacionHosting presentacion
Hosting presentacion
Mario Adolfo Suarez
 
Alojamiento web(hosting)
Alojamiento web(hosting)Alojamiento web(hosting)
Alojamiento web(hosting)
EFJJavier
 
Presentación Ariel Schvartzapel | Allytech - eCommerce IT Camp 2017
Presentación Ariel Schvartzapel | Allytech - eCommerce IT Camp 2017Presentación Ariel Schvartzapel | Allytech - eCommerce IT Camp 2017
Presentación Ariel Schvartzapel | Allytech - eCommerce IT Camp 2017
eCommerce Institute
 
Hosting presentacion
Hosting presentacionHosting presentacion
Hosting presentacion
daniel_skate8
 
Hosting presentacion
Hosting presentacionHosting presentacion
Hosting presentacionwaltergo
 

Similar a Desarrollo en la nube (20)

servidores web
servidores webservidores web
servidores web
 
Servidores web 6ciclo
Servidores web 6cicloServidores web 6ciclo
Servidores web 6ciclo
 
Servidores web 6ciclo
Servidores web 6cicloServidores web 6ciclo
Servidores web 6ciclo
 
Aws PHPVigo
Aws PHPVigoAws PHPVigo
Aws PHPVigo
 
Servidores web
Servidores webServidores web
Servidores web
 
Comercio electronico
Comercio electronicoComercio electronico
Comercio electronico
 
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
 
Tecnologias y hosting gratuitos
Tecnologias y hosting gratuitosTecnologias y hosting gratuitos
Tecnologias y hosting gratuitos
 
2. Revision de Tecnologias Web.pdf
2. Revision de Tecnologias Web.pdf2. Revision de Tecnologias Web.pdf
2. Revision de Tecnologias Web.pdf
 
Servidor web
Servidor webServidor web
Servidor web
 
Webinar –Qué servidor elegir para tu proyecto, Cloud, Dedicados o VPS
Webinar –Qué servidor elegir para tu proyecto, Cloud, Dedicados o VPSWebinar –Qué servidor elegir para tu proyecto, Cloud, Dedicados o VPS
Webinar –Qué servidor elegir para tu proyecto, Cloud, Dedicados o VPS
 
Presentación Clase 2
Presentación Clase 2Presentación Clase 2
Presentación Clase 2
 
Hosting Para Novatos
Hosting Para Novatos
Hosting Para Novatos
Hosting Para Novatos
 
Tarea4
Tarea4Tarea4
Tarea4
 
Whitepaper - Elige el servicio de hosting más indicado para tu proyecto
Whitepaper - Elige el servicio de hosting más indicado para tu proyectoWhitepaper - Elige el servicio de hosting más indicado para tu proyecto
Whitepaper - Elige el servicio de hosting más indicado para tu proyecto
 
Hosting presentacion
Hosting presentacionHosting presentacion
Hosting presentacion
 
Alojamiento web(hosting)
Alojamiento web(hosting)Alojamiento web(hosting)
Alojamiento web(hosting)
 
Presentación Ariel Schvartzapel | Allytech - eCommerce IT Camp 2017
Presentación Ariel Schvartzapel | Allytech - eCommerce IT Camp 2017Presentación Ariel Schvartzapel | Allytech - eCommerce IT Camp 2017
Presentación Ariel Schvartzapel | Allytech - eCommerce IT Camp 2017
 
Hosting presentacion
Hosting presentacionHosting presentacion
Hosting presentacion
 
Hosting presentacion
Hosting presentacionHosting presentacion
Hosting presentacion
 

Más de PideCurso

Facilitando el desarrollo web móvil, frameworks
Facilitando el desarrollo web móvil, frameworksFacilitando el desarrollo web móvil, frameworks
Facilitando el desarrollo web móvil, frameworksPideCurso
 
Dossier de Micropatrocinios de Nuevos Retos Sevilla
Dossier de Micropatrocinios de Nuevos Retos SevillaDossier de Micropatrocinios de Nuevos Retos Sevilla
Dossier de Micropatrocinios de Nuevos Retos Sevilla
PideCurso
 
Charla sobre experiencia de usuario
Charla sobre experiencia de usuarioCharla sobre experiencia de usuario
Charla sobre experiencia de usuario
PideCurso
 
HTML5, CSS3 y móviles
HTML5, CSS3 y móvilesHTML5, CSS3 y móviles
HTML5, CSS3 y móviles
PideCurso
 
Curso de creación web para Dummies
Curso de creación web para DummiesCurso de creación web para Dummies
Curso de creación web para Dummies
PideCurso
 
Advice For Selling WordPress Themes
Advice For Selling WordPress ThemesAdvice For Selling WordPress Themes
Advice For Selling WordPress Themes
PideCurso
 
Campaign targeting changes
Campaign targeting changesCampaign targeting changes
Campaign targeting changes
PideCurso
 
Dossier de servicios de PideCurso
Dossier de servicios de PideCursoDossier de servicios de PideCurso
Dossier de servicios de PideCurso
PideCurso
 

Más de PideCurso (8)

Facilitando el desarrollo web móvil, frameworks
Facilitando el desarrollo web móvil, frameworksFacilitando el desarrollo web móvil, frameworks
Facilitando el desarrollo web móvil, frameworks
 
Dossier de Micropatrocinios de Nuevos Retos Sevilla
Dossier de Micropatrocinios de Nuevos Retos SevillaDossier de Micropatrocinios de Nuevos Retos Sevilla
Dossier de Micropatrocinios de Nuevos Retos Sevilla
 
Charla sobre experiencia de usuario
Charla sobre experiencia de usuarioCharla sobre experiencia de usuario
Charla sobre experiencia de usuario
 
HTML5, CSS3 y móviles
HTML5, CSS3 y móvilesHTML5, CSS3 y móviles
HTML5, CSS3 y móviles
 
Curso de creación web para Dummies
Curso de creación web para DummiesCurso de creación web para Dummies
Curso de creación web para Dummies
 
Advice For Selling WordPress Themes
Advice For Selling WordPress ThemesAdvice For Selling WordPress Themes
Advice For Selling WordPress Themes
 
Campaign targeting changes
Campaign targeting changesCampaign targeting changes
Campaign targeting changes
 
Dossier de servicios de PideCurso
Dossier de servicios de PideCursoDossier de servicios de PideCurso
Dossier de servicios de PideCurso
 

Último

Estructuras básicas_ conceptos básicos de programación.pdf
Estructuras básicas_  conceptos básicos de programación.pdfEstructuras básicas_  conceptos básicos de programación.pdf
Estructuras básicas_ conceptos básicos de programación.pdf
ItsSofi
 
Actividad Conceptos básicos de programación.pdf
Actividad Conceptos básicos de programación.pdfActividad Conceptos básicos de programación.pdf
Actividad Conceptos básicos de programación.pdf
NajwaNimri1
 
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVATECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
LilibethEstupian
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
marianabz2403
 
TAREA #6 - RECURSOS INCLUSIVOS POR ANGGIE ARRIAGA
TAREA #6 - RECURSOS INCLUSIVOS POR ANGGIE ARRIAGATAREA #6 - RECURSOS INCLUSIVOS POR ANGGIE ARRIAGA
TAREA #6 - RECURSOS INCLUSIVOS POR ANGGIE ARRIAGA
arriagaanggie50
 
Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5
JulyMuoz18
 
Conceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación ProyectoConceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación Proyecto
cofferub
 
Ventajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloroVentajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloro
durangense277
 
ACTIVIDAD 2P de Tecnología, 10-7, 2024..
ACTIVIDAD 2P de Tecnología, 10-7, 2024..ACTIVIDAD 2P de Tecnología, 10-7, 2024..
ACTIVIDAD 2P de Tecnología, 10-7, 2024..
IsabelQuintero36
 
Inteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdfInteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdf
Emilio Casbas
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Telefónica
 
Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
AlejandraCasallas7
 
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
sarasofiamontezuma
 
modelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptxmodelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptx
evelinglilibethpeafi
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
cristianrb0324
 
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
CesarPazosQuispe
 
Trabajo tecnología sobre Conceptos Básicos De Programación
Trabajo tecnología sobre Conceptos Básicos De ProgramaciónTrabajo tecnología sobre Conceptos Básicos De Programación
Trabajo tecnología sobre Conceptos Básicos De Programación
SofiaCollazos
 
maestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdfmaestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdf
JimmyTejadaSalizar
 
Conceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdfConceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdf
ValeriaAyala48
 
trabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6ftrabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6f
zoecaicedosalazar
 

Último (20)

Estructuras básicas_ conceptos básicos de programación.pdf
Estructuras básicas_  conceptos básicos de programación.pdfEstructuras básicas_  conceptos básicos de programación.pdf
Estructuras básicas_ conceptos básicos de programación.pdf
 
Actividad Conceptos básicos de programación.pdf
Actividad Conceptos básicos de programación.pdfActividad Conceptos básicos de programación.pdf
Actividad Conceptos básicos de programación.pdf
 
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVATECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
 
TAREA #6 - RECURSOS INCLUSIVOS POR ANGGIE ARRIAGA
TAREA #6 - RECURSOS INCLUSIVOS POR ANGGIE ARRIAGATAREA #6 - RECURSOS INCLUSIVOS POR ANGGIE ARRIAGA
TAREA #6 - RECURSOS INCLUSIVOS POR ANGGIE ARRIAGA
 
Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5
 
Conceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación ProyectoConceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación Proyecto
 
Ventajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloroVentajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloro
 
ACTIVIDAD 2P de Tecnología, 10-7, 2024..
ACTIVIDAD 2P de Tecnología, 10-7, 2024..ACTIVIDAD 2P de Tecnología, 10-7, 2024..
ACTIVIDAD 2P de Tecnología, 10-7, 2024..
 
Inteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdfInteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdf
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
 
Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
 
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
 
modelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptxmodelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptx
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
 
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
 
Trabajo tecnología sobre Conceptos Básicos De Programación
Trabajo tecnología sobre Conceptos Básicos De ProgramaciónTrabajo tecnología sobre Conceptos Básicos De Programación
Trabajo tecnología sobre Conceptos Básicos De Programación
 
maestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdfmaestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdf
 
Conceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdfConceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdf
 
trabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6ftrabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6f
 

Desarrollo en la nube

  • 1. Desarrollo en la nube Javier Nievas Muñoz CTO en Pynso | CTO en Hitsbook jnievas@pynso.com
  • 2. Bienvenidos Antes de empezar... ...algunos “keywords” Nube. Web 2.0. Servidor Web. Servidor de Base de datos. Caché. Aplicaciones Web. Hosting. Uptime. Amazon AWS.
  • 3. Bienvenidos TARGET Proyectos web con previsión de crecimiento en contenidos y visitas
  • 4. Objetivo MISIÓN Conseguir que la plataforma web esté online el 99% del tiempo
  • 5. Objetivo MISIÓN Conseguir que la plataforma web esté online el 99% del tiempo ¿Imposible?
  • 6. Intro El problema Para entender el problema debemos considerar todos los elementos que intervienen a la hora de servir una página dentro de una aplicación web. Petición Consulta(s) Generar Servir Servir Media Procesos (Imgs, CSS, JS...) GET/POST BBDD HTML HTML largos Módulos Streaming Envío de recurrentes emails
  • 7. Intro El problema Todo esto consume recursos del servidor: RAM + CPU + HDD + Red
  • 8. Hosting Servidor Los recursos de los servidores son finitos y, por tanto, tienen una capacidad limitada. Las opciones habituales que nos hemos encontrado a la hora de contratar un servidor han sido:  Servidor compartido  Servidor virtual (VPS)  Servidor dedicado Servidor compartido Servidor virtual VPS Servidor dedicado Desde 10€/mes Desde 30€/mes Desde 100€/mes Poca capacidad Capacidad configurable Capacidad fija Recursos limitados y compartidos Recursos compartidos pero con Recursos 100% disponibles reserva de unos mínimos
  • 9. Hosting Servidor Los recursos de los servidores son finitos y, por tanto, tienen una capacidad limitada. Las opciones habituales que nos hemos encontrado a la hora de contratar un servidor han sido:  Servidor compartido  Servidor virtual (VPS) ¡NO SON ESCALABLES!  Servidor dedicado Servidor compartido Servidor virtual VPS Servidor dedicado Desde 10€/mes Desde 30€/mes Desde 100€/mes Poca capacidad Capacidad configurable Capacidad fija Recursos limitados y compartidos Recursos compartidos pero con Recursos 100% disponibles reserva de unos mínimos
  • 11. Soluciones Hay muchos problemas... … que hay que resolver individualmente para conseguir una plataforma realmente preparada.  Servidor web  Servidor Base de Datos  Servir ficheros estáticos  Procesamiento / Envío de emails  Generar HTML  Servidor
  • 12. Soluciones Servidor Web Típicamente se ha utilizado Apache.  Consume mucha memoria Servidor web Servidor Base de Datos  Muchas opciones de configuración que   apenas se utilizan  Servir ficheros estáticos  Procesamiento  Generar HTML  Servidor  NGINX + FastCGI / uWSGI
  • 13. Soluciones Servidor Web  Servidor web  Servidor Base de Datos  Servir ficheros estáticos  Procesamiento  Generar HTML  Servidor
  • 14. Soluciones Servidor Web  Servidor web  Servidor Base de Datos  Servir ficheros estáticos  Procesamiento  Generar HTML  Servidor
  • 15. Soluciones Servidor BBDD Habitualmente se utiliza MySQL y PostGres. Ambos sistemas de BBDD están diseñados para poder escalar. Solución típica: utilizar varios equipos con versiones de sólo lectura de la base de datos, y que todos escriban en una sola, que se  Servidor web encarga de replicarse en la demás. Servidor Base de Datos  Servir ficheros estáticos Otras opciones:   Procesamiento ● Cambiar de concepto, y pasarse a otro tipo de BBDD, las no Generar HTML  Servidor relacionales / NoSQL. Ejemplos: MongoDB, SimpleDB, CouchDB 
  • 16. Soluciones Servir MEDIA NO utilizar Apache!!!  Es matar moscas a cañonazos!  Servidor web  Podríamos usar nginx, pero tampoco es buena Servidor Base de Datos idea...   Servir ficheros estáticos Procesamiento  Es una tarea secundaria ¿y si externalizamos   Generar HTML  Servidor este “marrón”?  Utilizar un CDN (p.e. Amazon S3)
  • 17. Soluciones Procesamiento Las tareas que requieran un tiempo de procesamiento elevado no pueden ejecutarse  Servidor web en “tiempo de petición”, deben delegarse y Servir ficheros estáticos ejecutarse en background.  Servidor Base de Datos   Utilizar un gestor de colas de tareas puede  Procesamiento  Generar HTML  Servidor ser una idea excelente  Por ejemplo: Celery + Redis
  • 18. Soluciones Generar HTML Más del 90% del HTML que se genera visita tras visita es igual al que se ha generado la  Servidor web última vez. ¿Por qué regenerar toda esa Servidor Base de Datos Servir ficheros estáticos información cuando podemos evitarnos esos     Procesamiento Generar HTML cálculos simplemente guardando el HTML  Servidor resultado?  Utiliza la caché! → memcached
  • 19. Soluciones Servidor Si el servidor se te queda pequeño... amplíalo. Si se te vuelve a quedar pequeño... vuelve a  Servidor web ampliarlo. Servidor Base de Datos Servir ficheros estáticos Si vuelve a quedarse pequeño... vuelve a     Procesamiento Generar HTML ampliarlo. Servidor  Y si se queda pequeño otra vez.. amplíalo más
  • 20. Soluciones Servidor ¿y si ya no puedes ampliarlo más? → Contrata otro servidor y reparte las tareas entre ambos. ¿y si se queda pequeño con ese otro? → Contrata Servidor web Servidor Base de Datos otro más!   Servir ficheros estáticos   Procesamiento ¿y si resulta que ahora ya me sobran 2 porque hoy  Generar HTML Servidor no hay apenas visitas? Erm... ¿me fastidio? 
  • 21. Soluciones La nube al rescate! La nube/cloud es el lugar ideal donde alojar este tipo de proyectos. Nos proporciona una plataforma ideal donde servir nuestros proyectos con capacidad para escalarlos “ilimitadamente”.  Podemos disponer de tantas máquinas como necesitemos, en el momento en el que las necesitemos.  Pagaremos realmente por el uso real que tenga nuestra plataforma  Y lo mejor, es que podemos conseguir que se regule y ajuste de forma automágica.  Por ejemplo: Amazon EC2
  • 22. Soluciones La nube al rescate! En la “nube” podremos disponer de equipos que podemos arrancar bajo demanda montando sobre ellos imágenes de disco previamente preparadas. ¿Qué nos permite esto? Si tenemos poca carga:  1 servidor con el Nginx frontal y algunos procesos FastCGI/uWSGI Si tenemos más carga:  1 servidor con el nginx frontal  X servidores con procesos FastCGI/uWSGI sirviendo la plataforma
  • 23. Soluciones La nube al rescate! Arquitectura hiperflexible:  Servidores frontales con un autobalanceador  Servidores de aplicaciones (FastCGI/uWSGI)  Servidores de tareas (Celery Workers)  Granja de BBDD (Amazon RDS)  Servidores de caché de contenidos (memcached o Amazon Elasticache) Se supervisa gracias a Amazon CloudWatch Se “autoescala” gracias a Amazon Auto Scaling en base a parámetros de carga de los equipos configurables
  • 24. Soluciones La nube al rescate! Arquitectura hiperflexible:  Servidores frontales con un autobalanceador e IP elástica  Servidores de aplicaciones (FastCGI/uWSGI)  Servidores de tareas (Celery Workers)  Granja de BBDD (Amazon RDS)  Servidores de caché de contenidos (memcached) Se supervisa gracias a Amazon CloudWatch Se “autoescala” gracias a Amazon Auto Scaling en base a parámetros de carga de los equipos configurables
  • 25. La receta Ingredientes  Amazon EC2: Todos los servidores que necesites  Amazon S3 + Cloudfront: Servir los Media  Amazon RDS: Granja de BBDD  Amazon SES: Envio de emails  Amazon Elasticache: Caché de contenidos (memcached)  Amazon CloudWatch + Amazon Auto Scaling: Para la magia  ¿Todo con Amazon? En realidad hay más alternativas, pero Amazon ha sido pionero y por ello tienen más experiencia y mejor abanico de herramientas
  • 26. Referencias Mira qué hacen los demás... ...que lo mismo aprendes algo ;-)  Muchos portales de los “grandes” tienen blogs en los que cuentan sus “batallas” contra los picos de visitas. Leelos. Empápate. ● Por ejempo, el proyecto Disqus o Tuenti ● http://www.kitchensoap.com/ (trabajó en Flickr)  Hay muchos libros interesantes al respecto: ● Building Scalable Web Sites (by Cal Henderson) ● Scalable Internet Architectures (by Theo Schlossnagle) ● The Art of Scalability (by Martin L.Abbott)
  • 27. Dudas Aprovecha la ocasión... ...y no te quedes con la duda PREGUNTAD! :-)