¿Cuándo se debe utilizar lo siguiente: Amazon EC2, Google App Engine, Microsoft Azure y Salesforce.com?

88

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?

user32262
fuente
2
Olvidó Rackspace Cloud / Rackspace Cloud Servers
phoebus
2
Es una pregunta interesante, pero tal vez más adecuada para ServerFault, ya que se trata más de cómo distribuir aplicaciones de servidor que simplemente escribir una. Tal vez debería publicar una segunda publicación en SF que se refiera a este y agregar un enlace desde aquí a la Q en SF. De esa manera, obtendrá una mejor vista tanto de los programadores como de los administradores del sistema.
Wim ten Brink
@phoebus también CloudSigma, que es menos conocido pero es muy escalable.
AwesomeUser

Respuestas:

58

¡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í.

Nick Johnson
fuente
hola, actualmente usamos Godaddy y arvixe pero estamos planeando mudarnos a Amazon AWS o Azure, leí desde aquí que para AWS se requieren muchos cambios en el código, pero como un sitio minorista en línea no queremos ningún cambio en el código porque lleva tiempo, así que en esta situación, ¿cuál sería el mejor alojamiento para elegir?
shaijut
13

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 -

  • SQL Azure: cambie la cadena de conexión, cargue la base de datos, ¡listo!
  • Las colas funcionan de forma muy similar a MSMQ.
  • Los blobs son prácticamente blobs de cualquier forma que los sacudas, pero escalan como locos.
  • El componente de almacenamiento de tablas es bueno porque proporciona una escalabilidad increíble para los pares de nombre / valor, pero es necesario acostumbrarse.
  • Service Bus es mi favorito de los servicios porque permite una variedad de paradigmas de comunicación. Dos terminales SB primero intentan conectarse entre sí, si no pueden, luego se enrutan a través de la nube, lo que permite un procesamiento muy seguro y escalable cuando los firewalls tienden a interponerse en el camino.
  • Lista de control de acceso, emparejada normalmente con el bus de servicio para asegurarse de que las personas adecuadas accedan a las cosas correctas, piense en SAML en la nube.

¡Espero que eso ayude!

Derek
fuente
8

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:

  • Seguridad (los administradores pueden controlar el acceso a objetos y campos)
  • Flujo de trabajo y aprobaciones
  • Generación automática de UI
  • Informes y paneles integrados
  • Se puede acceder a todo el sistema (incluidos nuestros cambios personalizados) a través de servicios web
  • Capacidad para hacer que los datos del sistema estén disponibles a través de sitios públicos (por ejemplo, comercio electrónico)
  • Gran biblioteca de aplicaciones de terceros para resolver problemas estándar

La plataforma NO resuelve todos los problemas.

No usaría la plataforma para modelar una central nuclear o construir el próximo twitter.

Craig Harris
fuente
6

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.

Igorek
fuente
3

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.

joemar.ct
fuente
¡Suena interesante @ joemar.ct! ¿Qué tipo de tareas serían esas? ¿Dónde puedo encontrar tutoriales sobre cómo hacer eso?
Andru
2

Esto sigue cambiando, ahora Windows Azure también es compatible con VM, por lo que ahora también es un proveedor de IaaS.

Albert Cheng
fuente