Aprende todo un fin de semana sin pagar una suscripción 🔥

Regístrate

Comienza en:

05D

04H

49M

43S

56

IaaS vs. PaaS: ¿Mi proyecto necesita Infraestructura como Servicio o Plataformas como Servicio?

199038Puntos

hace 3 años

El trabajo del equipo de Developer Operations consiste en facilitar la integración entre los equipos de desarrollo e infraestructura. Nuestro objetivo es mejorar todas las tareas que deben realizar ambos equipos juntos: desplegar actualizaciones, mantener nuestros servicios en línea y con alta velocidad, automatizar todos estos procesos, entre otras.

Existen diferentes herramientas que nos ayudan a cumplir esta misión. Y podemos agruparlas en 2 grandes grupos: IaaS y PaaS. Las herramientas de cada grupo tienen un mayor o menor grado de flexibilidad. Y es nuestra responsabilidad decidir cuál de ellas se adapta mejor a nuestro proyecto.

Infraestructura como Servicio

Plataformas como Servicio

Las aplicaciones web son más complejas que solo Frontend y Backend.

Cuando construimos aplicaciones web no solo debemos encargarnos de construir su frontend y backend, también debemos desplegarla a un servidor y conectarla a un nombre de dominio que, por supuesto, debemos comprar.

Hace mucho tiempo, debíamos comprar nuestros propios servidores para realizar este proceso y que cualquier persona en internet pudiera acceder a nuestra aplicación. Esto significa que, además de construir nuestros proyectos, también debíamos encargarnos del mantenimiento de Hardware.

Esto cambió un poco cuando algunas empresas se dieron cuenta de que no usaban sus servidores todo el tiempo, así que decidieron arrendarlos. De esta forma, nuestros equipos solo deben elegir las especificaciones del servidor y pagar por el tiempo que lo vayan a usar, nada de preocuparse por el mantenimiento del hardware.

Uno de los servicios para arrendar servidores es Microsoft Azure. Incluso han desarrollado inteligencia artificial que identifica cuando un disco está a punto de dañarse. De esta forma pueden prevenir la caída de sus servidores y nuestras aplicaciones.

Esto es lo que llamamos Infraestructura como Servicio. Y estos servicios han evolucionado muchísimo. Aunque algunos no nos permiten tanta flexibilidad. Aún debemos elegir cuál de todos los proveedores se adapta mejor a nuestros requerimientos.

Hosting Compartido vs. Hosting Dedicado

El Hosting Compartido no es más que un servidor que debes compartir con otros usuarios. Esto significa que pagas menos, ya que repartes el costo con otras personas. Pero también significa que no puedes escalar correctamente.

Si la aplicación de tus vecinos de servidor tiene muchísimo tráfico, la tuya también se pondrá lenta. Lo mismo al revés. Si tu servidor no aguanta el tráfico de los domingos vas a necesitar comprar más servidores. El problema es que debes pagar todo el mes del segundo servidor, aunque realmente solo lo uses los domingos.

Afortunadamente, algunos servicios como Azure y AWS nos permiten alquilar un servidor solo para nosotros, lo que también significa cada quien paga todos los gastos de su servidor.

Podemos elegir las especificaciones de las máquinas y configurar alertas de picos de tráfico para aumentar las capacidades del servidor. También podemos usar Balanceadores de Carga para dividir el tráfico de nuestras aplicaciones por diferentes servidores.

Todo esto puedes aprenderlo en el Curso de Azure IaaS.

Plataformas como Servicio

Plataformas como Servicio

Las Plataformas como Servicio son la evolución de la Infraestructura como Servicio.

Además de todos los beneficios de IaaS, ahora tampoco nos encargamos de la infraestructura y todo lo que esto implica: administración de usuarios, procesos, permisos, actualizaciones del sistema operativo, cantidad de máquinas y balanceadores de carga, firewalls, etc.

Solo construimos nuestras aplicaciones, se la damos a nuestros proveedores y ellos se encargan de que funcione. Tal vez nos pregunte si “le damos permiso” de agrandar la infraestructura si tenemos picos de tráfico, así que la idea es decir que sí. 😅

Es debido a estos servicios que pareciera que nuestras aplicaciones son solo Frontend y Backend, ya que servicios como GitHub Pages, Zeit Now o Heroku nos permiten desplegar nuestras aplicaciones sin encargarnos de nada más que nuestro código.

Esto significa que no tenemos control de muchos aspectos en nuestros servidores. Aunque estos servicios pueden permitirnos elegir algunas características, la verdad es que no controlamos el hardware ni los procesos del sistema operativo.

No significa que nuestras aplicaciones no pueden escalar, sino que son nuestros proveedores los que se encargarán de que la infraestructura y procesos sean suficientes para el tráfico de nuestra aplicación.

¡Quiero aprender DevOps! ¿Por dónde comienzo? ¿Estudio IaaS o PaaS?

DevOps

Si tienes experiencia desarrollando Frontend o Backend, es probable que conozcas y hayas usado muchas plataformas como servicio. Incluso si no, su curva de aprendizaje es relativamente rápida y sencilla. Con unos cuantos clicks tu aplicación ya está lista y funcionando en producción.

A mí por ejemplo me encanta Zeit Now. Es muy pero muy poderoso y sumamente cómodo de usar.

Pero mi recomendación es que estudies IaaS. Todas estas herramientas PaaS son sumamente útiles y te recomiendo aprovecharlas al 100%.

Pero no te quedes ahí. Aprende a usar la terminal y administrar servidores. Esto significa entender cómo funciona el sistema operativo y las diferentes operaciones sumamente poderosas que puedes realizar.

Mejor aún si aprendes a programar para automatizar la mayoría de tus tareas. Esta es la principal meta de la administración de servidores, lo que te convierte en profesional nivel leyenda.

Sabiendo todo esto, aprender cualquier herramienta PaaS será pan comido. Sobre todo, porque entenderás lo que pasa por detrás de tu aplicación y sabrás cuándo vale la pena elegir un servicio u otro.

Referencias

Conclusiones

Te invito a tomar el Curso de Azure IaaS. Aprenderemos cómo funciona Microsoft Azure, usaremos balanceadores de carga, elegiremos máquinas virtuales y arquitecturas para nuestra aplicación, calcularemos costos y muchas cosas más.

👉 Ruta de aprendizaje de Cloud Computing en Azure

Por último, anímate a ver estas clases gratuitas sobre cómo funcionan las aplicaciones web profesionales y cómo entra el equipo de Developer Operations (DevOps) en este flujo de trabajo.

#NuncaParesDeAprender 🤓💚

Juan
Juan
juandc

199038Puntos

hace 3 años

Todas sus entradas
Escribe tu comentario
+ 2
Ordenar por:
4
44721Puntos

¡Excelente post Juan! Estoy pensando en utilizar una PaaS para comenzar a crear proyectos en Django, para más adelante poder profundizar y meterme al mundo de las IaaS. ¿Cual crees que sea la mejor PaaS en relación calidad/precio, y que me permitiría desplegar mi proyecto de la manera más sencilla posible (Sin tener en cuenta a Firebase)?

2
199038Puntos
3 años

👋 ¡Hola, Facundo!

No he usado Django para proyectos en producción. Pero así como explico en la lectura, usaría Zeit Now.

Más que todo porque podemos usar cualquier lenguaje o herramienta y no afecta más que una o dos líneas a las instrucciones de deploy.

Esta parte de la aplicación en PHP… Por qué no esta con un poco de Ruby… Esta otra con Node… Etc.

Beneficios específicos para Python y Django, nidea. Lo mismo que con el resto: la configuración es bien cortita y requetepoderosa.

👉 Django on Zeit Now in 30 minutes
👉 Deploying Serverless Django with Zeit and RDS Postgres

Zeit Now PaaS

😉

4
44721Puntos
3 años

¡Gracias por tu recomendación Juan! Espectacular 😉

3
16996Puntos

Me encanta Heroku, lo uso para desplegar mis aplicaciones en Node.js. ¡Buen aporte, Juan!

2
67169Puntos

Muy buen blog, cada día aprendiendo un poco más de DevOps.

2
3740Puntos

vi tu perfil y me admiró todo el conocimiento que adquiriste… tienes alguna rutina para ese aprendizaje constante?
Saludos

2
3740Puntos
3 años

Gracias! Así lo haré!

2
35249Puntos

Me encantan estos foros porque dan contexto. La gente habla de frameworks, de IaaS, de servidores, de dominio pero pocos se dan el tiempo de explicar y dar una especie de mapa del sitio de todo este universo informático y luego uno oye estas cosas y no sabe ni por donde empezar.
Gracias

2
24962Puntos

Exlenete, estoy siguiendo todos los cursos de Azure a aunque me falta mucho camino que recorrer.

2
508Puntos

Excelente explicacion 😄

2

Excelente, me gustaría empezar a fortalecer mis proyectos y profundizar metiendome en uno de las laaS. gracias por toda esta estrategias que nos brindan.

2
36308Puntos

Muchas gracias por el post, me ayudo mucho.

1
3740Puntos

Hola Juan muy buen post!, yo trabajo en Banca y tenemos un 95 % de lo servicios on premise… por temas regulatorios. alguna vez te topaste con casos asi? que recomiendas en este caso… entiendo que habría que desarrollar todo in house , es correcto?

1
6078Puntos

Muchas gracias por el aporte JuanDC, muy ilustrativo. sabes de alguna plataforma que uno pueda montar y proveer IaaS o PaaS.