Código de demostración

Código de demostración

Luis Manuel Raya Bernal - IES Gonzalo Nazareno

En el siguiente enlaces tenemos un HelloWorld de pruebas: prueba de funcionamiento en local

En esta demostración del uso de un servidor Serverless voy a usar la nube de IBM, ellos tienen implantado OpenWhisk de forma comercial (BlueMix) pero permiten crearte una cuenta gratuita:

Para esta prueba he necesitado:

  • Una instancia de Apache OpenWhisk (IBM Cloud, BlueMix)
  •  IBM Cloud CLI
  • Crear una instancia de Watson Language Translator

IBM Cloud

  • Nos haremos una cuenta gratuita en la nube de IBM aqui.
  • Ahora instalaremos el IBM Cloud CLI, funciona igual que WSK CLI pero cambian algunas lineas, pero es exactamente lo mismo.

IBM Cloud Functions

IBM Cloud Functions maneja una instancia de Apache OpenWhisk en la nube publica. La cuenta Lite nos permite tener acceso a 400,000 GB/s gratuitos de tiempo de computo por mes.

IBM Cloud Functions esta disponible en las siguientes regiones: us-south, us-east, eu-gb y eu-de.

  • Nos logueamos en IBM Cloud CLI:
ibmcloud login -a <REGION_ENDPOINTS>
ibmcloud target --cf
  • Vamos a instalar el plugin Cloud Functions CLI.
ibmcloud plugin install cloud-functions

Obtener la API Key

Crear una instancia del servicio Language Translator y obtener tus credenciales: Vamos a Language Translator en el Panel de control > Watson > Examinar servicios > Language Translator.

Una vez creado vamos a Panel de control > Lista de recursos > Servicios > Language Translator-XX > Credenciales y la apikey y la url

Nota: Crear la instancia en Dallas para obter una url por defecto.

Instalación

Configurando el proyecto

  • Clonar el repositorio.
git clone https://github.com/watson-developer-cloud/language-translator-nodejs.git
  • Configurar ENV.
cd language-translator-nodejs && cp .env.example .env
  • Abrimos el .env con nuestro editor favorito y añadimos las API's.
LANGUAGE_TRANSLATOR_IAM_APIKEY=X4rbi8vwZmKpXfowaS3GAsA7vdy17Qh7km5D6EzKLHL2
LANGUAGE_TRANSLATOR_URL=https://gateway.watsonplatform.net/language-translator/api

Ejecutar localmente la app (client-side)

  • Instalar las dependencias de node.js
npm install
  • Ejecutar la app
npm start

Como vemos la pagina web es local en nuestro servidor, pero estamos usando el servicio serverless de Watson para traducir la cadena que le demos y nos la devuelve en el idioma que le especifiquemos.

Desplegando la app en IBM Cloud

  • Ejecutamos el comando login .
ibmcloud login
  • Obtenemos la organización y el espacio de nombre.
ibmcloud target --cf
  • Editamos el manifest.yml. Cambiamos nombre - name: my-app-name por el que queramos.
declared-services:
 language-translator-service:
   label: Language Translator-xx
   plan: lite
applications:
- services:
 - Language Translator-xx
 name: language-translator-serverlessow
 command: npm start
 path: .
memory: 256M

Ejecución del servidor web desde la nube

  • Desplegamos la app .
ibmcloud app push
  • Vemos la aplicación desde la URL:
https://language-translator-serverlessow.eu-gb.mybluemix.net

Información del despliegue y control de características

Como veremos en la siguiente imagen:

  • Podemos administrar la alta disponibilidad de nuestra aplicación
  • La cantidad de memoria que usamos
  • Sus conexiones
  • Facturación
  • Habilitar integración continua con servicios Git
  • Un Log

Arquitectura de la app

App usada