24

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

67638Puntos

hace un mes

Curso de Azure IaaS
Curso de Azure IaaS

Curso de Azure IaaS

Azure es el servicio de cómputo en la nube de Microsoft. Descubre en este curso cómo puedes aprovechar los servicios de infraestructura de máquinas virtuales y redes en tu proyecto u organización.

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

Curso de Azure IaaS
Curso de Azure IaaS

Curso de Azure IaaS

Azure es el servicio de cómputo en la nube de Microsoft. Descubre en este curso cómo puedes aprovechar los servicios de infraestructura de máquinas virtuales y redes en tu proyecto u organización.
Juan David
Juan David
@juandc

67638Puntos

hace un mes

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

¡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
67638Puntos
un mes

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

😉

3
16557Puntos
un mes

¡Gracias por tu recomendación Juan! Espectacular 😉

3
7826Puntos

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

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

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

2
115Puntos
un mes

Gracias! Así lo haré!

2
381Puntos

Excelente explicacion 😄

2
11708Puntos

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

2
2734Puntos

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

1
115Puntos

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?