Estoy preguntando esto en un sentido muy general. Tanto desde la perspectiva del proveedor de la nube como del consumidor de la nube. Además, la pregunta no es para ningún tipo específico de aplicación (de hecho, la intención es saber qué tipo de aplicaciones / dominios pueden caber en cuál de la losa de nube -SaaS PaaS IaaS).
Mi entendimiento hasta ahora es:
IaaS: Raw Hardware (Procesadores, Redes, Almacenamiento).
PaaS: SO, software del sistema, marco de desarrollo, máquinas virtuales.
SaaS: aplicaciones de software.
Sería genial si Stackoverflower's pudiera compartir su comprensión y experiencias del concepto de computación en la nube.
EDITAR: Ok, lo pondré de una manera más específica:
Amazon EC2: no tiene control sobre la capa de hardware. Pero puede elegir la imagen del sistema operativo, Dev Framework (.NET, J2EE, LAMP) y la aplicación y colocarla en el hardware EC2. ¿Puede implementar aplicaciones creadas con Google App Engine o Azure en EC2?
Google App Engine: no tienes control sobre el hardware y el sistema operativo y obtienes un Dev Framework específico para construir tu aplicación. ¿Puede tomar cualquier aplicación Java o Python existente y portarla a GAE? O viceversa, ¿las aplicaciones que se crearon en GAE pueden sacarse de GAE y trasladarse a cualquier servidor de aplicaciones como Websphere o Weblogic?
Azure: no tiene control sobre el hardware y el sistema operativo y obtiene un Dev Framework específico para construir su aplicación. ¿Puede tomar cualquier aplicación .NET existente y migrarla a Azure? O viceversa, ¿las aplicaciones que se crearon en Azure pueden sacarse de Azure y trasladarse a cualquier servidor de aplicaciones como Biztalk?
fuente
Respuestas:
¡Buena pregunta! Como señala, las diferentes ofertas encajan en diferentes categorías:
EC2 es Infraestructura como servicio; obtienes instancias de VM y haz con ellas lo que desees. Los servidores en la nube de Rackspace son más o menos iguales.
Azure, App Engine y Salesforce son todas una plataforma como servicio; Sin embargo, ofrecen diferentes niveles de integración: Azure prácticamente le permite ejecutar servicios en segundo plano arbitrarios, mientras que App Engine está orientado a tareas de gestión de solicitudes de corta duración (aunque también admite una cola de tareas y tareas programadas). No estoy muy familiarizado con la oferta de Salesforce, pero tengo entendido que es similar a App Engine en algunos aspectos, aunque más especializado para su nicho particular.
Las ofertas en la nube que se incluyen en Software as a Service abarcan desde piezas de infraestructura como Simple Storage Service de Amazon y SimpleDB hasta aplicaciones completas como FogBugz alojado de Fog Creek y, por supuesto, StackExchange.
Una buena regla general es que cuanto más alto sea el nivel de la oferta, menos trabajo tendrá que hacer, pero más específico es. Si quieres un rastreador de errores, usar FogBugz obviamente será lo que menos trabajo requiera; construir uno sobre App Engine o Azure es más trabajo, pero proporciona más versatilidad, mientras que construir uno sobre VM sin procesar como EC2 es aún más trabajo (bastante más, de hecho), pero proporciona aún más versatilidad. Mi consejo general es elegir la plataforma de más alto nivel que aún cumpla con sus requisitos y construir a partir de ahí.
fuente
Esta es una excelente pregunta. Revelación completa ya que soy parcial a Azure pero tengo experiencia con los demás.
En lo que creo que Azure se destaca de los demás es en la rápida transición de un entorno local a la nube. Por ejemplo -
¡Espero que eso ayude!
fuente
Mi experiencia en la nube se limita actualmente a Salesforce.com
Para las operaciones comerciales estándar y la automatización, proporciona una cantidad significativa de funciones que nos permiten poner las aplicaciones en funcionamiento muy rápidamente. Nos beneficiamos especialmente de lo siguiente:
La plataforma NO resuelve todos los problemas.
No usaría la plataforma para modelar una central nuclear o construir el próximo twitter.
fuente
Los puntos principales de la computación en la nube es ahorrar costos pagando por el uso y permitir la implementación inmediata de recursos informáticos.
Los costos no son puramente x cantidad de centavos por instancia por hora. Los costos incluyen mantenimiento, desarrollo, administración, etc. En mi opinión, el gran beneficio de la nube es liberar a los clientes de tener que administrar cualquier cosa que no esté dentro del ámbito de su competencia empresarial principal . Si soy una empresa de seguros, quiero que mis desarrolladores se concentren en mis problemas de seguros que ayuden a resolver las necesidades de mis reclamos, tarifas, etc. Prefiero evitar lidiar con problemas de servidores de correo electrónico, servidores de archivos, repositorios de documentos y administrar parches del sistema operativo , paquetes de servicios, etc.
Por lo tanto, en mi opinión, los mayores beneficios se derivan de las ofertas en la nube de SaaS y PaaS. Uno debe ir a IaaS solo cuando PaaS o SaaS tienen restricciones serias para necesidades específicas (es decir, necesito instalar un conjunto de componentes COM propietarios y Azure no los admite).
SaaS es bueno para aplicaciones de tipo básico que no son la línea de negocio principal para el cliente, pero son más una utilidad. Estos son sus típicos sistemas de mensajería, portales, repositorios de documentos, sistemas de correo electrónico, CRM, ERP, contabilidad, etc., etc. ¿Por qué reinventar la rueda escribiendo la suya propia cuando puede personalizar un producto de terceros bien compatible?
PaaS es ideal para la línea principal de software comercial que respalda la oferta comercial principal de las empresas. Evita que los clientes tengan que lidiar con la gestión del sistema operativo y les permite concentrarse en el desarrollo del sistema empresarial, algo que nadie más puede hacer por el cliente.
fuente
También se pueden aprovechar los beneficios de PaaS (digamos, Google App Engine) y extenderlo, a veces y si es necesario, sacando algunas máquinas virtuales de proveedores de IaaS (por ejemplo, Amazon) para hacer algunos cálculos numéricos y luego enviar la salida a Google App Engine.
De esta manera, obtiene lo mejor de ambos mundos: puede desarrollar rápidamente aplicaciones escalables en GAE, luego siempre puede aumentarlo ejecutando cualquier programa que desee de las máquinas virtuales de Amazon.
fuente
Esto sigue cambiando, ahora Windows Azure también es compatible con VM, por lo que ahora también es un proveedor de IaaS.
fuente
Ahora, ¿qué tal Free Amazon EC2 durante un año para hacer una mejor comparación? Mira esto.
http://www.buzzingup.com/2010/10/amazon-announces-free-cloud-services-for-new-developers/
fuente