La principal diferencia implicará diferentes niveles de abstracción. Cuando use un almacén basado en la nube, pasará la mayor parte de su tiempo en un nivel de abstracción más alto y se centrará en el nivel de la aplicación, mientras que cuando comience con un RDBMS típico alojado localmente comenzará en un nivel de abstracción más bajo, particularmente si Su aplicación está muy orientada a objetos.
El objetivo principal de la nube es abstraer muchos de los detalles reales de implementación del almacén de datos para permitir a los desarrolladores centrarse en la lógica de su aplicación. La nube proporciona una interfaz de fácil acceso para activar los objetos de datos persistentes requeridos por la aplicación. Sin embargo, para utilizar correctamente las interfaces en la nube disponibles, el entorno en el que se ejecuta su aplicación debe ser compatible con la nube (por ejemplo, si está utilizando Amazon RedShift, debe admitir el entorno de su aplicación o su aplicación debe tener acceso a bibliotecas que interfaz con RedShift. Lo mismo ocurre con Google App Engine).
Por otro lado, cuando comience con el RDBMS básico, deberá implementar más de su propia capa de modelado y abstracción de datos, como seleccionar un ORM para que su aplicación lo use. Sin embargo, puede tener mucha flexibilidad para elegir cómo desea implementar las cosas (como si pudiera pegar un ORM de “hacer todo” como LINQ / Hibernate / SQLAlchemy / RedBean que admite su entorno de aplicación frente a la base de datos y escriba su aplicación alrededor de eso o simplemente omita la mayor parte y haga que su aplicación ejecute SQL directamente a través de un tipo de interfaz ODBC / JDBC / DB-API 2.0 / PDO). Por supuesto, RedShift se basa en PostgreSQL, por lo que incluso si lo hace con la nube, aún es posible obtener un modelado de datos más profundo y experiencia SQL mientras lo hace.
(En caso de que se lo pregunte, basaré los ejemplos en entornos .NET / Java / Python / PHP, respectivamente).
- ¿Cuáles son los mitos de la computación en la nube?
- ¿A qué subdivisión de la informática pertenece la computación en la nube?
- ¿Qué se puede considerar como middleware en un sistema distribuido?
- ¿Cuál es el alboroto sobre todas las nuevas empresas / servicios de computación en la nube? (Servicios web de Amazon, etc.)
- ¿La computación en la nube (IAAS) tiene efectos de "ganador se lleva todo" y economías de escala? ¿AWS continuará liderando y dominando el mercado en 5 años?
Conclusión: a partir de la base de datos Oracle, puede obtener un poco más de experiencia práctica total debido a las opciones disponibles para usted en la selección de componentes y el trabajo involucrado en la integración de componentes. Sin embargo, las soluciones basadas en la nube pueden ser un poco más prácticas de inmediato (en lugar de tratar de reunir todos los componentes “desde cero”, simplemente aprenda el ecosistema que admite la nube y luego trabaje en la construcción de su aplicación). Ambos tienen valor en la vida real y tendrá que decidir qué conjunto de oportunidades quiere renunciar.
En última instancia, podría elegir personalmente la ruta de la nube primero porque:
- SaaS / PaaS / IaaS siguen siendo el “nuevo calor”. Los backends RDBMS modernos son tecnología de la era .com, y son utilizados con mayor frecuencia por empresas más grandes y antiguas, mientras que las nuevas empresas se benefician del costo escalado y la eficiencia de la abstracción que proporciona la nube.
- Las pruebas gratuitas en la nube no duran para siempre o alguien les paga durante su curso. Siempre puede descargar algo como Oracle XE o SQL Server Express para explorar soluciones alojadas localmente más adelante.