¿Es mejor ejecutar su aplicación en la nube pública o crear una nube privada?

No diría que ninguno de los dos es mejor, tienen implicaciones diferentes en el negocio y en la aplicación misma.

Al usar un proveedor de nube pública, un equipo de aplicaciones puede implementar la aplicación en la infraestructura que necesitan y nada más. Pueden aprovisionar recursos adicionales a corto plazo para satisfacer la demanda de tráfico temporal o agregar recursos gradualmente a medida que la demanda de la aplicación aumenta con el uso.

Esta flexibilidad y control de costos es exactamente lo que anhelan las nuevas empresas de software: la capacidad de nunca sobreaprovisionar y malgastar dinero.

Comprar infraestructura para una nube privada es una cuestión diferente. Históricamente, cuando compra un único servidor, su CFO aprueba una orden de compra. Ese dinero se paga por adelantado a un proveedor, y el CFO lo deprecia en sus libros durante ~ 36 meses. Usted sabe que debe conservarlo durante 3 años, por lo que compra el servidor más robusto del que puede salirse con la suya para que la aplicación esté subutilizando este servidor para “crecer” según sea necesario. Significado: ha gastado dinero en algo que realmente no necesita en este momento. Y si calculó mal la demanda, es posible que necesite recursos informáticos adicionales que no planeó (y necesita obtener otra aprobación, ordenar / aprovisionar el servidor e implementar su aplicación, ¡un proceso que consume mucho tiempo!).

La moda de consolidación de servidores en TI a mediados de la década de 2000 utilizó la virtualización para superar algunos de estos problemas de recursos y aprovisionamiento. Permitió a las organizaciones gestionar mejor los recursos informáticos (agrupación de recursos), pero aún carecía del rápido aprovisionamiento y autoservicio que proporcionan las nubes públicas.

Hoy, eso se ha convertido en nubes privadas, que proporcionan la misma experiencia de nube pública: autoservicio a pedido, elasticidad rápida, agrupación de recursos, acceso amplio y servicio medido. Al desarrollar un servicio como este, la organización puede admitir una amplia gama de equipos de aplicaciones que con frecuencia pueden consumir los recursos según sea necesario. Aún mejor, los costos se pueden controlar, ya que los desarrolladores / operaciones ya no necesitan sobreespecificar el hardware para satisfacer una necesidad teórica teórica … solo producen un prototipo v1, prueban y cambian según sea necesario.

Ahora, dicho esto, si la organización para la que está desarrollando una aplicación tiene los recursos y la infraestructura para proporcionarle servicios desde una nube privada (incluso mejor si proporcionan pautas reales sobre cuándo usar nubes públicas o privadas para una aplicación), entonces, por supuesto, úsalo!

Pero si usted es un desarrollador de inicio o autofinanciado (o un desarrollador en una organización que no puede obtener la aprobación del presupuesto CAPEX), no tiene sentido atar su dinero en hardware que podría gastarse mejor en desarrolladores para construir un producto. Vaya con la opción de nube pública y desarrolle su propia infraestructura más adelante cuando tenga sentido financiero hacerlo.

La respuesta depende del tipo, la complejidad, las necesidades de escala, los requisitos de seguridad y el presupuesto para ejecutar su aplicación.

Las pautas generales que utilizamos y recomiendo son:

  • Use Public Cloud para comenzar rápidamente para finalizar PoC y llegar a producción
  • Importante:
  • Si es sensible sobre el bloqueo de proveedor. Asegúrese de crear capas que aíslen de los servicios nativos del proveedor de la nube como RDS, Redis, ElasticBeanStack, etc.
  • También podría tener una nube privada dentro de la nube pública.
  • Si está desarrollando su aplicación aprovechando el principio de DevOps / Container, herramientas como Kubernetes le dan el poder de escalar su aplicación.
  • La pregunta más básica es menos simple de lo que puede aparecer en la superficie. Mis colegas trabajan con empresas para resolver esta pregunta exacta y la respuesta realmente se reduce a responder las preguntas:

    1. ¿Cuál es su caso de uso? Eso es lo que necesitas, exactamente.
    2. ¿Cómo se asigna su caso de uso a servicios en la nube públicos o privados?
    3. Finalmente, habiendo eliminado algunas opciones, que es el mejor valor para usted ahora. *

    * pero no olvidemos pensar hacia dónde espera llevar su sistema en el futuro cuando tenga un gran éxito.

    Creo que Andrew Boring es acertado con su opinión sobre la preocupación más básica de la cuestión de la nube pública frente a la privada. Esa cuestión de los costos básicos de ejecutar un sistema usted mismo en lugar de entregar la administración a otra entidad (pública) y solo centrarse en el desarrollo de la aplicación. Algunas de las preguntas iniciales son; ¿Qué tiene a mano? ¿Qué es fácil y qué puede pagar?

    Hemos tratado de proporcionar un poco más de detalles sobre dónde es el punto de inflexión real donde comprar (y no se olvide de administrar ) su propia infraestructura tiene sentido en esta publicación de blog: ¿Necesita una nube pública o privada? pregunta.

    Al comenzar, lo que está haciendo: los requisitos para la soberanía de los datos, el tiempo de actividad y la recuperación ante desastres para un producto viable mínimo son casi con certeza diferentes de su aplicación final. Esto podría significar que comienzas con la opción ‘fácil’ de un servicio de nube pública y luego haces la transición a una nube privada. Cada vez más, los usuarios se están dando cuenta de que una nube pública y privada tiene diferentes propuestas de valor y, en muchos casos, parece que una combinación de infraestructura de nube pública y privada proporciona el mejor valor: el modelo de nube híbrida. Desafortunadamente, moverse entre modelos en la nube trae su propio conjunto de preguntas.

    Al final, la respuesta se reduce a los detalles de su aplicación. Espero que esto le brinde alguna idea sobre qué elegir, pero al final no hay una respuesta única para esta pregunta.

    PD: Una de las cosas que pueden hacer que una aplicación necesite usar una nube privada son los problemas de seguridad. Aquí hay un video corto (~ 5min.) Sobre algunas de las preocupaciones de seguridad a considerar al elegir su nube: Los fundamentos de la elección de una nube segura

    Casi siempre es mejor ejecutar su aplicación en la nube pública hasta que haya alcanzado una escala significativa. La razón de esto es que, como empresa, debe centrarse principalmente en el ajuste del mercado de productos y el uso de la nube pública o la nube privada no le dará una ventaja significativa.

    La razón principal de la nube privada es el ahorro de costos, sin embargo, la infraestructura a menudo no es su mayor gasto y también el desembolso inicial de capital para la nube privada es bastante grande.

    Por último, ejecutar hardware es un conjunto de habilidades diferente que escribir software, por lo que ahora necesitará tener equipos que se encarguen de eso y desarrollen esa competencia.

    Es mejor construir para la nube pública, ya que una nube privada no es una ventaja significativa para sus clientes, y solo después de haber alcanzado una escala suficiente que tal vez el ahorro de costos se convierta en un factor, o realmente haya alguna implementación técnica que pueda Mejore significativamente la experiencia de sus clientes si luego construye una nube privada.

    Esto es lo que hizo Dropbox después de 10 años de ejecución en AWS.

    Nube pública

    ¿Por qué? Construir una nube privada no es una tarea trivial. La mayoría de las empresas medianas no tienen los recursos técnicos para construir y mantener una nube privada que incluso se pueda comparar con lo que está disponible en la nube pública en términos de costo, seguridad, agilidad y cantidad de servicios útiles disponibles.

    La pregunta debe ser PaaS o nube pública, pero la respuesta depende 100% de la arquitectura de la aplicación, los requisitos y expectativas comerciales y sus recursos disponibles y habilidades técnicas.

    Creo que no hay una respuesta definitiva a esa pregunta.

    Elegir dónde ejecutar las aplicaciones depende de varios factores:

    • Características y requisitos de procesamiento de las aplicaciones. Hablando específicamente: requisitos de rendimiento, requisitos de almacenamiento, requisitos de seguridad, requisitos de disponibilidad y cantidad de datos a manejar.
    • La capacidad de recursos disponible en el centro de datos.
    • Ahorro de costos deseado.

    Sin embargo, a muchas empresas les gusta hacer la transición al método de nube híbrida, ya que tiene una ventaja muy evidente de combinar ambos métodos y disfrutar de costos reducidos. Puedo testificar que también hice esta transición, con la nube basada en Openstack de Stratoscale.

    La forma correcta de abordar esto es ver cuál es la aplicación y si se puede alojar en una nube pública.

    Técnicamente hablando, no hay ninguna diferencia entre la nube pública y privada, pero el marco de cumplimiento y seguridad será diferente. El mandato interno de algunas organizaciones es que las aplicaciones deben permanecer en un DC determinado debido a cumplimiento y seguridad. No podrán alojarlo en la nube pública. Esa es nuevamente una visión a muy corto plazo porque todas y cada una de las organizaciones deberían comenzar a buscar en la nube pública.

    Entonces, en su situación, digamos que no hay mandato o soporte de seguridad que lo obligará a permanecer en la nube privada, entonces 100% mi recomendación es que busque en la nube pública y haga su evaluación si se ajusta a su situación.

    ¿Invertir en una nube privada para ejecutar una aplicación? No estoy seguro de por qué necesitarías una nube privada para ejecutar una aplicación. La nube generalmente consiste en un grupo de recursos creados para alojar más de un sistema.

    Puede ir a AWS y calcular sus costos de alojamiento y compararlos con la inversión en una infraestructura local. Pero como una suposición rápida, diría comenzar con la nube pública.

    Imad