Me imagino que has escuchado hablar de AWS alguna vez, o incluso términos en inglés como Cloud Development, SaaS (Software as a Service) o IaaS (Infrastructure as a Service).
Si no es el caso, me atrevería ha suponer que apenas te estás adentrando en el mundo de T.I. ya que son temas bastante populares y qué no han hecho más que adquirir fuerza y popularidad en los últimos años. Pero no te preocupes, si sigues leyendo tendrás una mejor idea de lo qué estamos hablando.
¿Qué es AWS?
Amazon Web Services, abreviado comúnmente como AWS salió en el año 2006 y fue creado por Amazon (Si lo sé. ¿Quién se lo hubiera imaginado?). Es un servicio hecho con el objetivo de ayudar a las compañias a crear y manejar su infraestructura tecnológica en la nube. Cuenta con varios servicios para diferentes fines que son categorizados como com SaaS (Software como Servicio) o IaaS (Infraestructura como Servicio) y todo lo que se refiera a desarrollar programas en estos entornos se le aglomera bajo el término de desarrollo en la nube o cloud development.
El atractivo radica en que AWS permite pagar solo por lo que en verdad se esta ocupando durante el tiempo que en realidad se utiliza. Y esto lo ofrece a su vez acompañado de un alto grado de disponibilidad, fiabilidad y con la capacidad de realizar cambios y configuraciónes sin mayor dificultad.
¿Pero qué significa realmente todo esto? Si no tienes el conocimiento de como funciona una infraestructura normalmente, esto suena a pura palabrería de ventas. Dice mucho sin decir nada. ¿Para que sirve AWS? ¿Por qué te interesaría como empresa utilizarlo? ¿Por qué te interesaría como desarrollador aprenderlo?
Es más fácil explicarlo con un ejemplo.
Imaginemos qué tienes una aplicación, el nuevo Uber pero para helicópteros… Huber. Es una app que al igual que Uber provee servicios de taxi pero con helicópteros. Para qué esto funcione tenemos que poner en práctica nuestro sentido de incredulidad.
Primero, hagamos de cuenta que vivimos en una sociedad dónde es normal viajar en helicóptero, hay estacionamientos, y drive-throughs y valet-parkings de helicópteros. Toda la cosa.
Segundo, hagamos de cuenta que ya tienes la parte más difícil; una base de código sólida y funcional. Ya haz hecho pruebas y todas salen tan espectacularmente qué cada vez que haces un pedido aparece una arcoiris en el cielo.
Tercero, hagamos de cuenta qué tienes muchísimo dinero, así que te alcanza para lo que sea. Ojo, no tienes dinero infinito, sí se te acaba, pero te alcanza para la opción que quieras
¿Ahora qué necesitas? Bueno tienes la app ya terminada y corre bien cuando haces pruebas con algunos usuarios, pero… ¿Cuántos clientes realmente van a estar pidiendo servicio y qué tan seguido lo van a estar haciendo? ¿Cuántos pilotos realmente van a estar realizando servicio y qué tan seguido lo van a estar haciendo? Tu computadora personal no sirve para esto, no solo porque no va a tener la capacidad necesaria sino porque la vas a querer estar usando para otras cosas. Programar, contestar correos o ver Netflix yo que sé.
Lo que necesitas es un servidor qué este dedicado 100% a esta funcionalidad y necesitas que sea capaz de atender a todos, tanto pilotos como pasajeros. A su vez dependiendo de tu clientela estimada, tal vez no necesitas solo uno, tal vez necesitas un grupo de servidores. Un centro de datos en donde poner montar tu infraestructura en pocas palabras.
Aquí es donde tienes 2 caminos a elegir:
- Infraestructura en sitio
- Infraestructura como servicio
Infraestructura en sitio
Para empezar necesitas un centro de datos. Probablemente ya hayas visto uno en alguna película o serie. Se ven como lugares futuristas dignos de guardar todos los secretos e información que pareciera pudieran comprobar todas las teorías consiprativas del mundo.
Algo así:
Pero en tu caso no es eso. Tú solo vas a guardar y procesar información aburrida de viajes de pilotos y pasajeros (Bueno, eso espero).
Dicho esto, los centros de datos más robustos normalmente sólo los necesitan empresas más grandes e internacionales. Esto es porqué solo esas empresas tienen un flujo tan grande de usuarios. Una empresa qué esta empezando no necesita tanto.
Obvio, el hecho de que tu aplicación tenga el mismo potencial que Uber no garantiza su éxito. Aquí entra tu habilidad para hacer marketing y atraer tanto a pilotos como a pasajeros. Por lo que al principio tal vez no necesites el centro de datos futurista de películas. Tal vez sólo necesites esto:
O incluso esto:
“¿Cuánto necesito entonces?” te preguntarás. Es difícil de saber, depende enteramente de tu base de usuarios estimada. Necesitas un experto en el tema, alguien que te pueda ayudar a conseguir servidores con las específicaciones técnicas que se ajusten a las estimaciones que tengas. Tiene que ser alguien de confianza y bueno en su trabajo ya que cometer un error en el proceso de adquisición te puede salir muy caro, literalmente.
Si esto suena complicado, la cosa no acaba ahí. Una vez que tienes claras las específicaciones, ahora debes:
- Encontrar un espacio dónde colocarlos
- Comprar/rentar el espacio
- Adquirir los servidores
- Esperar el plazo de entrega
- Instalar los servidores
- Hacer la configuración de software necesaria
¡Listo! Ya puedes usar tu centro de datos. Lo que sí es que una vez hecho esto no olvides establecer un proceso de seguimiento para ver si tu centro de datos está en verdad atendiendo a todos los usuarios de tu aplicación.
Si tu sistema es capaz de atender a 1,000,000 de usuarios pero solo hay 100,00 ve asegúrandote que tu crecimiento sea lo suficientemente rápido para justificar el costo de mantener esos servidores.
Si por otro lado no te sobra capacidad de uso si no al contrario, te hace falta. Más te vale estar corrigiendo eso lo más pronto posible, porque eso limita el crecimiento de tu negocio.
Obvio si haces todo bien, qué no te extrañe que aún así buena parte del tiempo tus servidores no estén aprovechando toda su capacidad. Si lo configuras para poder atender los picos de máximo de uso de tus usuarios, por definición habrá momentos en los que no llega a utiilizarse a su máximo potencial. Pero es mejor que sobre a que falte.
Ojalá cuando sea el momento solo baste con reemplazar los servidores qué ya tienes. Si necesitas mas espacio, entonces tendrás que mudar todo tu equipo. Ojalá también que tengas el tiempo de hacerlo, porqué cómo te imaginarás hacer el cambio físico de un servidor no es un proceso que pase de la noche a la mañana.
¿Que pasaría si te hubieras ido por la otra opción?
Infraestructura como servicio
Las cosas no han cambiado, sigues necesitando un centro de datos y sigues necesitando averiguar que especificaciones son las ideales para ti.
La gran diferencia es qué AWS ya consiguió los centros de datos y el lugar donde ponerlos por ti. Así que adios al proceso de compra de los servidores, de compra del espacio, de espera de entrega y al tiempo de instalación.
Adicionalmente AWS te da unos límites de uso gratuito para que experimentes con el sistema. Es una gran ayuda ya que reduce el riesgo de cometer algún error. Y la verdad incluso si superas el límite de uso gratuito es mas barato cometer un error en AWS que con tus propios servidores.
Por si no fuera poco otro problema qué te soluciona es el problema de uso. Con tus servidores físicos estas pagando el precio completo aún cuando no están siendo usados a su máxima capacidad. Sin embargo AWS ajusta los precios, haciendo que sólo pagues la capacidad extra cuando de verdad la necesitas. Esto ayuda a mantener tus costos bajos y más alineados con el uso promedio de tus servidores en vez de con los picos de uso.
Y todo esto al alcance de unos clicks. Los beneficios son evidentes. No por nada se ha hablado en los últimos años de qué usar la tecnología de la nube es el futuro.
Conclusión
Si eres desarrollador espero que esto sea suficiente para que entiendas el potencial de usar la nube para una empresa y por ende para ti como profesional. Incluso dentro de empresas ya consolidadas
Si eres empresa o estás planeando empezar una, aguanta. No te emociones de más. No vayas a saltar a utilizar AWS sólo porque sí. Si tu proyecto no va a tener mucho alcance tal vez puedas encontrar alternativas más baratas. Como siempre necesitarás de un experto en T.I. que te orienté al respecto.
Por último debo mencionarte que AWS no es el único servicio que ofrece esto y hay otros como MIcrosoft Azure Cloud y Google Cloud Computing que tienen sus contrapartes. Esto que acabo de explicar no sólo aplica a AWS sino también a estas otras plataformas.
Si todo esto te parece muy complicado y vas a adentrarte en este mundo de servicios en la nube lamentó decirte que no hay un atajo para esto. Sin embargo al ser altamente popular hay muchas fuentes en donde encontrar información acerca de cualquiera de las 3 plataformas.