e-Valúame

Category Archives: Base de Datos como servicio

La paas Saasgrid en profundidad

Hace unos días anunciarion desde SaasBlogs el lanzamiento de esta nueva platform as a service y ayer tuve la oportunidad de ver una demo guiada y preparada por Abraham Sultan de SaasGrid al que desde aquí le doy las gracias porque fue realmente cercano y puso todo su empeño para que pudiera comprender todo el alcance de la solución. 

Se me hace difícil explicar todo la funcionalidad que ayer puede observar . Creo que lo más fácil es dar un repaso desde el punto del vista de proveedor de las aplicaciones y desde el punto de vista del cliente consumidor de estas. 

Proveedor o Desarrollador de Aplicaciones (ISV)

Al entrar al mundo SaasGrid lo puede hacer como cliente o como proveedor. Si entras como proveedor tienes acceso al portal de cliente y al portal del proveedor. El hecho de que el proveedor tenga tambien acceso al portal de cliente es para que pueda simular el comportamiento de sus clientes y probar sus soluciones.

Antetodo es importante tener claro que si quieres aprovechar todas las caracteristicas de SaasGrid debes pensar en el público que utilizará la aplicación y la forma de uso para que así la puedas modularizar y aplicar los diferentes precios a diferentes tipos de suscripción. Por ejemplo típico nivel de acceso: Básico, Profesional, Enterprise y Premium en los que cada uno te permite realizar un determinada funcionalidad y además el nivel superior engloba las caracteristicas de los anteriores. (ver gráfico)  

Estos son los pasos que debes seguir para poner en marcha tu aplicación:

  • Subes el código compilado y modularizado en los servicios que tendrá la aplicación. Al subir la aplicación SaasGrid hace una revisión de los requisitos que debe tener la aplicación y testea si has usado correctamente su SDK. La versión se queda por defecto en el entorno de desarrollo.
  • Subes los scripts de BBDD. Como vimos una de la caracteristicas de Saasgrid es que convierte aplicaciones single-tenant en multitenancy y para que la BBDD pueda dar esa funcionalidad, lo que hacen es modificar los scripts de las tablas para añadir la información nececesaria de cada cliente y cada usuario.   Hay dos opciones más a las que puedes optar a la hora de subir la BBDD: puedes determinar que quieres tener un esquema diferente por cada cliente o incluso una BBDD diferente por cada cliente, pero lógicamente esto redunda en más gasto para ti como proveedor y redundará en un precio más alto para tu cliente.
  • Determinar los tipos de suscripciones que tendrá la aplicación. Para cada función o servicio de la aplicación y por cada subcripción determinas los limites o las cantidades o el disfrute o no de la funcionalidad. Sería  algo parecido a esta tabla de Zoho de  su aplicación creator.zoho.com para crear aplicaciones donde se determina para cada funcionalidad sus limites en cada suscripción:

  • Determinar el precio de cada tipo de suscripción. El hecho de tener separado la suscripción de los precios es porque el deparmento de marketing no tiene porque conocer el detalle de los limites, cantidades, etc de cada funcionalidad. 
  • Determinar para cada funcionalidad los permisos de acceso. Por ejemplo, establecer roles de Administrador, usuario avanzado y usuario donde se determine para cada funcionalidad lo que sería posible realizar para role.
  • Definir a través de qué compañia deseas recibir el pago.   Puedes utilizar compañias intermediarias como PayPal para recibir los pagos por la suscripciones de tus clientes. 
Una vez que ya tienes la aplicación con toda su definición ya la puedes poner en venta pero para lo cual debes ponerla en producción que no es mucho más que dar a un botón. 
 
Otras características de SaasGrid que entran dentro del proveedor son:
  • Puedes definir con que proveedor de hosting alojarlo. SaasGrid es la solución pero tienen unas serie de proveedores de hosting que son los que cuidarán del correcto funcionamiento del entorno SaaSGrid, de ahí que permitan al desarrollador de aplicaciónes  su elección. Logicamente de la escalabilidad, rendimiento, SLA, backup, etc. se encargará el proveedor de hosting que elijas. 
  • Es posible monitorizar el funcionamiento de tu aplicación a traves de un gestor de logs.
  • Hay una aplicación de gestión de cobro, facturación, gestión de clientes, suscripciónes , etc…para que tengas el control económico de la aplicación.
  • Posibilidad de poner un frame en la página de tu web que conecte directamente con el módulo de suscripción de sus aplicaciones. Esto hace más dinámica la contración de las suscripciones.
Cliente consumidor de aplicaciones
 
El cliente debe tambien acceder al mundo Saadgrid para especificar las formás de pago, las aplicaciones a las que quiere tener acceso con el número de suscripciones que tendrá (es decir, el número de usuarios),  y para nominar las suscripciones. Actualmente las suscripciones hay que nominarlas pero en las siguientes versiones de Saasgrid no será necesario.
 
También a partir del portal puede comprar un dominio personalizado para su aplicación ya que la url por defecto es larga y tiene como dominio loquesea.saasgrid.com.
 
Por último de la parte del cliente, decir que el cliente de la aplicación tambien puede hacer las suscripción desde la página web del proveedor de la aplicación si este ha colocado en un frame el modulo que conecta con la suscripciones.
 
Mi impresión general es que Saasgrid da una vuelta de tuerca más a lo que ahora mismo se está ofreciendo.
Ofrecen una paas completa ( ejecución de app + almacenamiento BBDD + escalabilidad + SLA ), ofrecen gestión de cobros, suscripciones, facturación, y para mi algo que es realmente diferente, la conversión de singletenant a multitenancy. Guardo un ligero escepticismo acerca de esta conversión porque aunque lo he visto funcionar me gustaría verlo en otras aplicaciones más complejas. En resumen, es una solución completa para que cualquier empresa de desarrollo o desarrollador independiente pueda poner en funcionamiento su aplicación y detrás de la solución se nota que hay muchas, muchas, muchas horas de curro.
 
A mi modo de ver algo que deberian mejorar es la parte de acceso del cliente porque le obligan a entrar en SaasGrid para la definición de términos que debería tratar con su proveedor de aplicaciones, no con SaasGrid. Es decir, añadir la funcionalidad necesaria al frame para que el cliente desde la página de su proveedor de aplicaciones tenga todo la funcionalidad SaasGrid sin que él se entere.
 
Nada más, dar la gracias de nuevo a Saasgrid y en concreto a Abraham por dejarme ver más en detalle el funcionamiento de SaasGrid.

Los 3 niveles del “Cloud Computing”

Como comentaba en el post anterior, buscando información sobre nuevas plataformas como servicio he encontrado varios post que intentan desgranar los agentes que actuan en este nuevo mundo “as a service”. De todos ellos, me ha llamado la atención especialmente este que a continuación os traduzco con el permiso del autor ( Thanks Markus), que explica gráficamente, como muy poco texto y en definitiva de una manera muy clara y sencilla que hay detrás del mundo del “Cloud Computing”.

Aunque en general me parece un post muy brillante, no estoy muy de acuerdo con algunas definiciones sobretodo con la de “Platform as a service (paas)”, y aunque ya hablé en otro post sobre lo que pienso sobre paas me gustaría exponer mis nuevas ideas acerca de esto en otro post tomando como base éste de Markus. Este es el post traducido:

La Cebolla
En un intento decomprender mejor la naturaleza del “Cloud Computing” he intentado establecer una clasificación de algunas empresas y las aplicaciones que desovan en la nube.

  

Tres niveles diferentes de “cloud computing”

Infraestructura
El corazón de la nube es lo que algunos llaman la infraestructura como de servicios (IAAS). Esto es lo más cercano al metal desnudo: puro almacenamiento y capacidad de cómputo. Con las técnicas de virtualización se envasan pequeñas unidades (machinas con sistemas operativos, o megas de almacenamiento) que se entregan como el agua o la electricidad (concepto de utilidad de computación).

 

 

 

 

 

 

 

Plataformas
La siguiente capa es la Plataforma como servicio (Paas). Aquí nos encontramos con las plataformas más complejas, como Google o App Motor Salesforce.com AppExchange. Marc Andreessen, que acuñó la frase “la web como plataforma”, escribió una vez: “[a] plataforma es un sistema que puede ser programado y, por tanto, personalizado por los desarrolladores – usuarios – y por tanto, adaptarse a un sin número de necesidades y que los desarrolladores de plataformas tradicionales no podrían llevado a cabo, y mucho menos no hubieran tenido tiempo para adaptarla. […] Si se puede programar, entonces se trata de una plataforma. Si no puede, entonces no lo es. “(Fuente)

 

 

 

 

 

 

 

Aunque no considero Amazon EC2 o S3 como una paas, sino más bien un Iaas, la elasticidad proporcionada por la infraestructura del Amazon ha permitido a desarrolladores de terceros construir plataformas sobre Amazon. Me preguntaba donde puedo poner en mi diagrama  los otros servicios Web de Amazon (FPS, DevPay, etc) pero no he encontrado un lugar plausible, aún. Probablemente debería estar en algún lugar entre Iaas y Paas.

Apps y Servicios
La capa exterior de mi cebolla está formado por todas las aplicaciones y servicios que se construyen en la parte superior de cualquiera de IAAS o FCA. No estoy satisfecho con la capa exterior. Creo que necesita más la categorización, como la agrupación de tipos de aplicaciones, por ejemplo, aplicaciones de  Redes Sociales, Servicios de copia de seguridad, y así sucesivamente.

 

 

 

 

 

 

 

 API
Cada capa tiene un conjunto diferente de APIs. Cercano al núcleo, los desarrolladores han estandarizado tecnologías Web y protocolos para el acceso y uso de la nube. Más alejadas del núcleo, se añaden niveles de abstracción  haciendo cada proveedor APIs más específicas . En cuanto a la aplicación y servicio de capa, encontramos una mezcla de APIs menos normalizada y estandarizada .

Nuevo Directorio Paas

Con la ayuda de mi mujer, he creado una nuevo directorio un poco más decente y lo he alojado en una web de alojamiento y dominio gratis. En primer lugar nos hemos ayudado de db.zoho.com para almacenar las Paas pero los filtradores de contenidos suelen parar el acceso al almacenamiento personal y hemos tenido que utilizar el Paas de dabbledb.com que aunque es más lento, nos da la funcionalidad que queremos y en principio no lo paran los filtradores de contenidos.

Al igual que antes se accederá al directorio desde el menú de la derecha del blog  y se irá modificando a medida que vayan apareciendo nuevas plataformas.

 

De nuevo si alguien conoce de más plataformas no dudeis en comunicármelo a través de los comentarios de este post.

Explicación del Directorio de Paas

Debido a la cantidad de plataformas como servicio (platform as a service) que van apareciendo, he creado un post que pretende ser un directorio casero de plataformas como servicio (espero que sea provisional hasta que pensemos en algo más funcional) y las he dividido en función del servicio que ofrecen y/o a quien se lo ofrecen.

El directorio se podrá acceder desde el menú de la derecha del blog  y se irá modificando a medida que vayan apareciendo nuevas plataformas, y cuando sea posible se añadirá información sobre las características de la plataforma.

Por supuesto, si alguien conoce de más plataformas no dudeis en comunicármelo a través de los comentarios de este post.

Directorio Paas (Platform as a service)

ACTUALIZACION: Accede al directorio cloud-computing ya que encontrarás referencias más actualizadas.

 

 

 

Plataformas de Computación como servicio (On-demand Computing, Computing as a service)

Amazon Web Services

Flexiscale

Joyent Accelators

 

Plataforma de Almacenamiento como servicio (On-demand storage, storage as a service, database as a service)

Elastra .- Aplicación para poder utilizar y administrar EntrepriseDB y/o MySql. Hosting en Amazon

Amazón S3.- Ofrece almacenamiento no estructurado, no es una BBDD.

Amazon Simple DB .- BD estructurada, fácil de manejar , de apoyo a las aplicaciones sin capacidad para albergar gran cantidad de datos.

Blist.- Base de Datos para usuarios no expertos con entorno visual y muy fácil de usar.

 

Plataformas para el Desarrollo y/o Ejecución de Aplicaciones como servicio dirigido al usuario NO necesariamente programador ( Development as a service, Runtime as a service)

Todas ellas permiten la creación de formularios online y permiten almacenar datos. Por lo general no disponen de lenguaje de programación y si existe es de un muy alto nivel para NO programadores.

Longjump

Rollbase

Coghead

Caspio

BasePortal

Quickbase

Zoho

Dabbledb 

 

Plataforma para el Ejecución y/o Desarrollo de Aplicaciones como servicio dirigido al usuario con conocimientos de programación. ( Development as a service, Runtime as a service)

 

 

Creación Forms as a service

Programación

as a service

LL.PP *

BB.DD **

Hosting

Aplicaciones Empresariales

Force

SI

No

Apex (seudo-java)

Propietaria

Propio

Aplicaciones propósito general

Facebook

No

No

FBML, php

 

Cualquiera

 

Joyent,

Amazon

Ning

No

No

Php, js

Cualquiera

—–

Aplicaciones Web

Etelos

No

Si

Php, js EASE

Mysql, Postgre,

Cualquiera

—-

Morph Labs

Si

Ruby on rails

Mysql, Postgre

Cualquiera

Amazon

Heroku

No

Si

Ruby on rails

Mysql, Postgre

Cualquiera

Amazon

Google app engine

No

No

Phyton

Cualquiera

Propio

Morph labs y Webtide

Si

Java

Mysql, Postgre

Cualquiera

Amazon

QuickBase

No

Si

—-

——

——

Bungee Connect

Si

Si

Bungee Logic

Mysql, Postgre, Entreprise DB

Amazon

 

Aclaraciones:

 

 

* LL.PP Lenguaje de programación

** Cuando se indica “cualquiera” es el lenguaje permite acceso a cualquier BBDD

— No se dispone del dato.

Las paas en rojo están todavía en beta

Plataforma como servicio – ¿Que es Paas?

Como he comentado en varios post, es realmente complicado encontrar una buena definición de “plataforma” y más cuando nos adentramos en este mundo del “como servicio”. El acrónimo Paas lo están utilizando las empresas para situar en la mente del potencial consumidor de la solución, qué tipo de servicio pueden llegar a ofrecer, y digo pueden porque mismos productos paas ofrecen soluciones diferentes y al público en general le crea confusión. Así, por ejemplo, Force.com es su página inicial dice:

“Force.com es la primera plataforma como servicio del mundo, lo cual permite que los desarrolladores creen y ofrezcan cualquier tipo de aplicación empresarial, totalmente On-Demand y sin software. ”

Cuando vi la definición pensé que Force.com permitiría desarrollar online, desplegar online, ejecutar online, todo online. Pero como sabemos no es así ,  y no es que Force.com no sea una plataforma solo digo que le falta por decir que la plataforma es para la ejecución de aplicaciones como servicio ( saas)  con una BBDD relacional de apoyo y apis de integración para conectar con los sistemas de cada empresa.

Veamos otro ejemplo, Bungee Labs dice que su Paas es:

“The Bungee Connect Platform-as-a-Service is a single environment for the development, testing, deployment and hosting of amazing web applications”

en español más o menos:

” La plataforma como servicio Bungee Connect es un entorno único para el desarrollo, pruebas, despliegue y ejecución de increíbles aplicaciones web”

y aunque su definición es mucho más concisa que la de Force.com tambien da a entender que vas a tener todo lo necesario para el desarrollo y ejecución de aplicaciones web y es cierto salvo que necesites de una BBDD ( que el 90% de las aplicaciones web lo necesitan) y te encuentres con que te ofrecen la posibilidad de conectarte a MySql y Postgre y en desarrollo dispones de un entorno de testeo de MySql pero no tiene una BBDD propietaria como Force.com.

Hay  una diferencia clara de Bungee Labs con respecto Force.com, y es que Bungee Labs a mi modo de ver ofrece dos servicios claros y destacables que son el desarrollo como servicio y el de ejecución de aplicaciones y es que apuntan a distintos públicos objetivo, el desarrollo como servicio engancha con la comunidad de programadores y la ejecución como servicio con el usuario o cliente final. Por el contrario, Force.com aunque podría ofrecer la Base de Datos y la ejecución de aplicaciones como servicio, en realidad solo ofrecen la ejecución como servicio ya que el servicio de la BBDD esta integrado en la ejecución de la aplicación.

Releyendo las definiciones parece que lo que esta empresas intentan trasmitir es que la plataforma tenga todo lo necesario para poder desarrollar y ejecutar aplicaciones online, dejando en un segundo término la base de datos aunque integrada en la solución y con la posibilidad de elegir en qué servidor ( con plan de recuperacion de desastres) localizo mis aplicaciones .  Esta solución me gusta y me parece una plataforma como servicio completa para  el desarrollo y ejecucion de aplicaciones.

En resumen, creo que nos seguirán mareando con este término, siempre y cuando no decidan explicar que hace y que no hace la plataforma (cosa que veo harto difícil al menos esto último por razones obvias) y nos obligará a adentrarnos en la solución para que saber que servicio o servicios nos ofrecen. Además sigo manteniendo lo que decía en el primer post y es que no hay una única definición que encierre el significado de plataforma como servicio porque existen varios tipos de plataforma y por tanto me sigue gustando la idea de definir cuales son los servicio o servicios que ofrecen las plataformas.

 

Software, Hardware, Ejecucion, Desarrollo……como servicio

Definidos los terminos aplicacion y plataforma, este grafico de David Chappel nos deja más claro cual es el paronama actual en el mundo como servicio y el mundo de las instalaciones en empresa o lo que él llama on-premise

Pero como dije en el post anterior, lo que me parece realmente importante es definir qué es lo que se ofrece como servicio y las posibilidades que tiene la plataforma o el software en la nube. Por tanto me gustaría establecer clasificaciones en funciones de los servicios a los que podemos o podremos acceder:

Software como servicio ( Saas ).- Aplicaciones de acceso a traves de internet donde el usuario final paga por el uso de la misma. Disponemos de bastante ejemplos de aplicaciones disponibles como servicio longjump, zoho, google docs, salesforce etc..

Computacion como servicio .- Maquinas y S.O de acceso a traves de internet donde el usuario puede utilizar para ejecutar una aplicacion de usuario final , software para el manejo de BBDD, servidores de aplicaciones, etc….El usuario paga por el tiempo de utilización de la maquina. Ejemplo: EC2 de Amazon

Almacenamiento como servicio .- Disco duro de acceso a traves de internet que el usuario puede utilizar para almacenar cualqsuier tipo de información que no este relacionada. El usuario paga por el consumo de GB, MB, etc…Ejemplo:S3 de Amazon

Base de datos como servicio .- Software para manejo y almacenamiento de base de datos estructurados. El usuario paga por consumo de MB,GB o por numero de usuarios que acceden a la BBDD. Ejemplo: SimpleDB de Amazon

Ejecucion como servicio.- Servidor de aplicaciones de acceso a traves de internet donde el usuario puede localizar sus aplicaciones. El usuario desarrollador de las aplicaciones o el usuario final podria pagar por varios conceptos, uso de la plataforma para localizar aplicaciones, uso de las aplicaciones, consumo de DB, venta de dominios de las aplicaciones, etc….Ejemplo: Force

Desarrollo como servicio.- Software para el desarrollo de aplicaciones a través de internet donde el usuario puede construir sus aplicaciones sin necesidad deninguna instalacion en la máquina del desarrollador. Solo conozco heroku que ofrece desarrollar con Ruby on Rails en la nube pero no dispongo datos sobre su modelo de ingresos.

De momento esto es lo que he visto que se esta ofreciendo por la red y creo que está cubierto todo lo que usualmente utilizamos en nuestras empresas, aunque no descarto que aparezcan nuevas e interesantes clasificaciones.

A medida que vayan apareciendo nuevas aplicaciones y plataformas, intentaremos clasificarlas en alguno de estos cajones para que nos hagamos una idea de las posibilidades de cada herramienta y podamos compararlas con productos de su misma categoría.