viernes, 31 de marzo de 2017

La experiencia de Quizlet migrando de MySQL a Spanner.


Los responsables de la migración de MySQL a Spanner ha escrito un post con las conclusiones después de hacer un montón de pruebas para considerar la migración a Spanner. 
Es un trabajo bastante profesional y muy detallado. Os recomendamos que le déis un vistazo por que es bastante interesante.

¿ha hecho alguna prueba con spanner?¿estas usando spanner? 
Tu experiencia nos interesa mucho ;-) 


https://quizlet.com/blog/quizlet-cloud-spanner

Activado en entorno flexible AppEngine en Europa-Oeste

Google App Engine Support in Android Studio - Cloud Tools for Android ...Disponible desde hoy Google App Engine Flex en la región Europa-Oeste.


Jueves, 30 de marzo de 2017

Power by Justin Beckwith, Product Manager

Hace unas semanas compartimos algunas grandes noticias sobre el entorno flexible de Google App Engine. Hoy, nos estan anunciando nuestra primera nueva región desde que ya que esta está disponible:
El entorno flexible de App Engine está ahora disponible en la región Europa-Oeste. Esta versión hace más fácil que nunca que los desarrolladores de App Engine lleguen a clientes de todo el mundo. Para empezar, simplemente abra la Consola de desarrolladores y cree un nuevo proyecto, y seleccione Aplicación. Después de elegir un idioma, ahora puede especificar la ubicación como europe-west. Tenga en cuenta que una vez que se crea un proyecto, no se puede cambiar su región.

 





También puede crear su aplicación desde la línea de comandos utilizando la última versión del SDK de Cloud:

gcloud app create --region europe-west

Para obtener más información sobre los servicios ofrecidos en cada ubicación, así como sobre las prácticas recomendadas para implementar sus aplicaciones y guardar sus datos en diferentes regiones y zonas, consulte las páginas Nube y Geografía y regiones.



jueves, 30 de marzo de 2017

Google Open Source [Power by Google]




Google nos ha presentado la web que presenta mas de 2000 proyectos open source y sumando...  https://opensource.google.com/

Una de las razones por que participar dentro de los GDG Google Developer Group, es que son grupos centrados en el código no el productos perse de Google, todas las personas que he tenido el placer de conocer dentro  de los GDG son gente de "Código" que lo usan ya sea en le fromtend o en backend y trabajan documenta y respiran código.

Google se ha construido sobre el software libre, y dentro el open source forma parte del ADN y de la forma de pensar de sus trabajadores. Ademas se puede participar y colaborar de forma activa en los programas como  "Google Summer of Code" o en el "Google Code-in", que se crearón para animar a los desarrolladores a escribir código open source.

Por su puesto dentro de categorías de los diferentes proyectos tenéis un directorio de proyectos "Cloud" que terminan mostrando el camino hacia los repositorios de Github, par que sirvan de inspiración a futuros y presentes programadores.

Como gente de Cloud, Kubernetes figura como un gran proyecto, pero también esta lleno de ejemplos de código de herramientas y otras perlas.

Después de unos años parece que en Google les ha dado por centralizar todo el aprendizaje para que no este diseminado dentro de la extensa web, bien por Google.

miércoles, 29 de marzo de 2017

Gestionando infraestructura Google y HashiCorp

 


Ejemplo de colaboración en open source: Ingenieros de Google y HashiCorp.
by Eric Johnson,

A principios de enero, se presento el primer episodio de una mini-serie en  videos hablando cómo el equipo de Google Cloud Graphite está haciendo que el software de código abierto funcione bien con Google Cloud Platform (GCP).

Hoy, comenzamos el próximo capítulo de la serie, presentando las herramientas de DevOps de código abierto de HashiCorp y cómo usarlas con GCP.


Las herramientas de código abierto de HashiCorp simplifican la entrega de aplicaciones, ayudan a los usuarios a proporcionar, asegurar y ejecutar infraestructura para cualquier aplicación.

Comenzamos la serie con una visión general de alto nivel, con Kelsey Hightower, Defensor de Desarrolladores de Personal para GCP, y Armon Dadgar, CTO y cofundador de HashiCorp.



Luego, en las próximas entregas, se mostrara a  HashiCorp y GCP en acción. Imagine un pequeño estudio de juego independiente que trabaja en su próximo título - un juego de arcade de estilo retro de los años 80 actualizado para multijugador y jugable en la web. Observe como el equipo participa en el desarrollo colaborativo, demuestra el juego a su CEO y lo despliega para su lanzamiento al público.

En esta aventura se usa:

  •     Vagrant, que permite a los desarrolladores crear entornos de desarrollo repetibles para ser utilizados por cualquier miembro de un equipo sin consultar a los operadores. Vagrant puede fácilmente crear máquinas virtuales remotas en Google Compute Engine y permite a los desarrolladores compartir el acceso a la misma VM, ideal para el desarrollo colaborativo.
  •     Packer, que con un solo archivo de configuración, produce imágenes de máquina para muchos entornos de destino, incluyendo Compute Engine. La facilidad con la que las imágenes de Packer pueden ser fácilmente descritas y construidas lo convierten en un ajuste ideal con los conceptos de DevOps, como la infraestructura inmutable y la entrega continua.
  •     Terraform, que ayuda a los operadores de manera segura y previsible a crear, modificar y destruir la infraestructura de producción. Codifica APIs en archivos de configuración declarativa que pueden ser compartidos entre miembros del equipo, tratados como código, editados, revisados ​​y versionados. Los operadores pueden así gestionar los recursos de GCP que abarcan muchos productos, clave al aprovisionar una infraestructura de producción escalable.

Únase a nosotros en YouTube para ver otros episodios que cubrirán temas como el uso de imágenes de máquina para implementar o utilizar la infraestructura como código para administrar recursos. Siga Google Cloud en YouTube o @GoogleCloud en Twitter para saber cuándo se publican nuevos vídeos. Y mantente atento a más publicaciones y videos sobre el trabajo que estamos haciendo con proveedores de código abierto como Puppet, Chef, Cloud Foundry, Red Hat, SaltStack y otros.

lunes, 27 de marzo de 2017

PHP 7.1 en APPEngine en profundidad


 PHP 7.1 en app Engine

Resultado de imagen de php app engine



Hay muchas web que se crean en PHP  y API con PHP, y nos han  anunciado la la Google Cloud Next '17 que PHP 7.1 está disponible en Google App Engine. App Engine es nuestra plataforma donde es más fácil de usar para crear, implementar, administrar y escalar automáticamente los servicios en la infraestructura de Google. El runtime  de PHP 7.1 está disponible en el entorno flexible de App Engine y se encuentra actualmente en versión beta.


Empezando:


Para ayudarle a empezar  a utilizar PHP en App Engine, se han  creado una colección de guías de introducción, ejemplos, codelabs y tutoriales interactivos que permiten crear su código, utilizar las API y servicios y desplegarlo en producción.

Al ejecutar PHP en App Engine, puede utilizar las herramientas y bases de datos que ya conoce y ama, como Laravel, Symfony, Wordpress o cualquier otro marco web. También puede utilizar MongoDB, MySQL o Cloud Datastore para almacenar sus datos.
Y aunque el tiempo de ejecución es lo suficientemente flexible como para administrar la mayoría de las aplicaciones y servicios, si desea más control sobre la infraestructura subyacente, puede migrar fácilmente a Google Container Engine o Google Compute Engine.


Implementación en App Engine en PHP 7.1


Para implementar una aplicación sencilla en App Engine en PHP 7.1, descargue e instale Google Cloud SDK. Una vez hecho esto, ejecute los siguientes comandos:

echo "<?php echo 'Hello, World';"> index.php
gcloud app deploy

Esto genera un fichero app.yaml con los siguientes valores:

env: flex
runtime: php
runtime_config:
document_root: .

Una vez implementada la aplicación, puede verla en el navegador o ir a la consola de la nube para ver las instancias en ejecución.


Instalación de dependencias


Para la gestión de dependencias, se recomienda utilizar Composer. Con él, las dependencias declaradas en composer.json se instalan automáticamente cuando se implementan en App Engine Flexible Environment.Además, utiliza la versión de PHP especificada en composer.json en su implementación.


composer require "php:7.1.*" --ignore-platform-reqs
 

Uso de las API y los servicios de Google

 
Utilizando la biblioteca de clientes de Google Cloud, puede aprovechar las API y los servicios avanzados, como la base de datos escalable NoSQL Google Cloud Datastore, Google Cloud Pub / Sub y Google BigQuery. 

Para usar la biblioteca de cliente de Google Cloud, instale el código con Composer (este ejemplo supone que el compositor está instalado globalmente):



composer require google/cloud

Esto crea un archivo composer.json con la versión más reciente de Google Cloud PHP (actualmente 0.24.0).


{
"require": {
"google/cloud": "^0.24.0"
}
}
 

App Engine detecta el ID de proyecto de la instancia y se autentica mediante la cuenta de servicio de App Engine. Eso significa que puede ejecutar, digamos, una consulta de BigQuery con unas pocas líneas de código, sin autenticación adicional! Por ejemplo, agregue el código siguiente a index.php para llamar a BigQuery:


<?php
require_once __DIR__ . '/vendor/autoload.php';
$client = new Google\Cloud\BigQuery\BigQueryClient();
$query = 'SELECT TOP(corpus, 10) as title, COUNT(*) as unique_words ' .
'FROM [publicdata:samples.shakespeare]';
$queryResults = $client->runQuery($query);
foreach ($queryResults->rows() as $result) {
print($result['title'] . ': ' . $result['unique_words'] . PHP_EOL);
}


 Añada esto a un directorio con el archivo composer.json anterior y despliegelo en el entorno flexible de App Engine:


gcloud app deploy 
gcloud app browse


El segundo comando abrirá la ventana del navegador a su proyecto que se esta desplegando  y verá una lista impresa de resultados de BigQuery.

 

Utilice su Framwork favorito

En  comunidad de PHP  se utilizan muchos Framework diferente. Hay ejemplos de código para configurar aplicaciones en Laravel, Symfony, Drupal, Wordpress y Silex, así como un plugin de Wordpress que se integra con Google Cloud Storage.
Pasate por la web de tutoriales ya que agregamos más Frameworks y bibliotecas, y asegúrese de añadir publicaciones para cualquier tutorial que desee ver.

 

Compromiso con PHP y código abierto
 
En Google hay un compromiso con el código abierto y en que se ejecute de forma eficiente en las plataformas, tango google-cloud composer com al APi de Google son todos de código abierto.

Esperamos con las manos abiertas  dar la bienvenida a los desarrolladores de PHP a Google Cloud Platform y estamos comprometidos a hacer más inversiones para ayudarlo a ser lo más productivo posible.

Esto es sólo el comienzo - estad atentos al blog y nuestros repositorios GitHub para ver y usar la próxima códigos de soporte de PHP en GCP. 

Siéntase libre de comunicarse con nosotros en Twitter @googlecloud, o solicite una invitación a la comunidad de Google Cloud Slack y únase al canal #PHP.

viernes, 24 de marzo de 2017

Calendario de Formación Homologado Google Cloud

Formación en GCP





Para saber y tener a mano el calendario de las jornadas de formación homologados por Google para poder prepararse para las certificaciones de Google Cloud.

La solución la tenéis en esta dirección, están los curso presenciales como los que son online, y por supuesto son en Ingles.

Esta el calendario con los centros que dan esta formacion.

Para mas información mira aqui.

jueves, 23 de marzo de 2017

Vídeo: Como se usa Machine learning en Google - Rob Craft

Me ha llegado este vídeo de como se usa Machine Learning en Google que me parece super interesante y me gustaría compartir con vosotros.

Si tenéis un rato os lo recomiendo.



Por cierto ¿te has apuntado al meetup de GDG Cloud Madrid?
En otras cosas, veremos las novedades que se anunciaron el Google Next'17 y que te permiten implementar algunas de las cosas que hace Google con las herramientas de Google Cloud ;-)

miércoles, 22 de marzo de 2017

Campus Presents: Como usar Kubernetes con David Aronchick

Ya está anunciado el evento de kubernetes en Campus Madrid.

Os copiamos la descripción del evento:

Are you getting started using Kubernetes? Would you like to learn more about the next features and services in Kubernetes? In the next Campus Presents session we will host David Aronchick, to talk about Kubernetes.



David Aronchick is the Senior Product Manager for Google Container Engine, and product manager on behalf of Google for the Kubernetes Project. After the last releases of Kubernetes, he will be in town talking to users, customers and partners. If you'd like to hear about:





* How adoption of Kubernetes has lead to an industry revolution in shipping distributed software quickly, reliably and at scale

* New features in Kubernetes including cross cluster federation improvements, sophisticated scheduling, and cloud storage options (and many many more)

* What's coming in Kubernetes 1.7 (and beyond)

15 minutes at the end of the talk will be reserved just for Q&A. Hope to see you there!

IMPORTANT: the venue has limited space, so please come on time. Open entrance until filled to capacity.
Please, think twice before registering if you are not sure that you'll be able to attend the event.
Other people would be happy to use that space.

De Cero a Integración continua con Google Cloud Platform

Integración continua en k8s en GCP

 Resultado de imagen de jenkins docker

Power by James Heggs
 
El tutorial proporcionará detalles para crear un clúster en GKE, utilizando Kubernetes (k8s) y Docker para levantar un contenedor de Jenkins, usando k8s y  para arrancar un docker  de  Jenkins, definiendoque gestionara el GKE , creando una aplicación de arranque  como un contenedor y finalmente desplegar la aplicación con k8s.

Pero hay mucho que hacer antes de llegar al final...  Para ayudar con la formación  y enseñar mejor la plataforma GCP, el tutorial también describe la creación de proyectos GCP y la creación de usuarios. La única suposición que se ha  hecho es que te has registrado en GCP y puedes acceder a la consola GCP.

Todo el código para este tutorial es  de código abierto y se puede encontrar en su cuenta github y la presentación se puede encontrar en slideshare.



Creación de Proyectos GCP


Después de registrarse en Google Cloud Platform (en el momento de redactar el artículo, están ofreciendo una prueba gratuita de $ 300/365 dias), use  la consola.


    1. Navegue hasta la pantalla de gestión de proyectos
    2. Haga clic en el botón 'Crear proyecto' (figura 1)
    3. Introduzca el nombre del proyecto y anote el ID del proyecto. Esto es importante para más tarde. La Figura 1 muestra un proyecto de ejemplo que tiene el ID de proyecto de 'docker-meetup-1381'
    4. Haga clic en "Crear" para crear su proyecto GCP
       
      figura(1)

      Ya tenemos el proyecto Creado . Ahora podemos configurar una cuenta de servicio GCP para administrar el proyecto.


      Creación de cuentas de servicio de GCP


      Con el fin de gestionar los recursos que estamos a punto de crear GCP tiene un concepto de cuentas de servicio. Los siguientes pasos mostraran como se hace creación de la cuenta de servicio y la descarga del archivo de clave asociado.
       

      Asegúrese de que su proyecto esté seleccionado en la esquina superior derecha de la consola GCP (mostrada en la figura 2)

          Haga clic en el menú de la esquina superior izquierda y elija 'IAM&Admin'
       
          Haga clic en "Cuentas de servicio" en el menú de la izquierda
       
          Haga clic en el botón "Crear cuenta de servicio"
       
          Proporcione su nombre de cuenta de servicio deseado y marque la opción "Proporcionar una nueva clave privada" (Ejemplo mostrado en la figura 3)
       
          Una vez que haga clic en "Crear", también activará la descarga del navegador de su nuevo archivo de clave de cuenta de servicio.
       
          Anote la ubicación y el nombre de archivo de su archivo clave, ya que se utiliza más adelante.
       
          De vuelta en la pantalla "Cuentas de servicio" asegúrese de que su nueva cuenta de servicio está marcada y haga clic en el botón "Permisos" en la parte superior de la pantalla.
       
          Para mantener las cosas mas sencillas, pero a expensas de la seguridad, le daremos acceso a la cuenta de servicio 'Editor' a nuestros recursos de GCP. 
       
      Sin embargo, aconsejaría revisar los permisos para proyectos a largo plazo. En el panel de permisos de la derecha, escriba el nombre de su cuenta de servicio en el campo "Agregar miembros" y haga clic en la cuenta de servicio correspondiente cuando se le sugiera. Elija "Editor" en el menú desplegable de funciones y haga clic en "Añadir". (Ejemplo mostrado en la figura 4)

      Ahora tenemos nuestro proyecto GCP y credenciales listos para comenzar.

      Nota

      En Safari la clave se descarga a veces como un archivo llamado "Unknown" por alguna razón. Aunque no es necesario, recomendaría mover el archivo fuera del directorio de descargas y renombrarlo para dejar claro que es un archivo JSON. Por ejemplo:



      mkdir ~/keys
      mv ~/Downloads/Unknown ~/keys/gcp-service-account.json







       
      Figura 2


       
      Figura 3
       
        
      Figura4

       

      Creación de clústeres de GKE


      Es hora de crear nuestro cluster GKE (K8S).

       
      1.En primer lugar, instale el SDK de Google Cloud para que funcione en su línea de comandos.
       
      2.Una vez que haya instalado el GCLoud SDK puede seguir adelante e instalar las extensiones kubernetes
       
      # gcloud components install kubectl
       
      3. clonar el repositorio bootstrap
       
      # mkdir ~/gcp-continuous-delivery
      # cd ~/gcp-continuous-delivery
      # git clone https://github.com/eggsy84/gcp-bootstrap-infrastructure.git 
       
      4. Cambiar al repositorio bootstrap

      # cd ~/gcp-continuous-delivery/gcp-bootstrap-infrastructure/bootstrap/

      5. El script bootstrap se ejecuta pero se cecesitan 5 parametros ID que son  proyecto tipicos del Cloud de de Google
      El proyecto que contendrá su clúster GKE. (Tomado de la identificación ID que registro antes)

      Zona GCP
      De la lista de "Zonas Disponibles" proporcionada por GCP

      Tipo de máquina GCP
      De los 'tipos de máquina' proporcionados por GCP. Cada nodo en su clúster GKE se aprovisionará según este tipo.

      Número de nodos del clúster k8s
      Entrada numérica para la cantidad de nodos a crear.

      Ruta de acceso a su archivo de cuenta de servicio
      Ruta de acceso al archivo JSON de la cuenta de servicio que descargó anteriormente en el tutorial.

      # sh deploy.sh \
      docker-meetup-1381 \
      europe-west1-b \
      n1-standard-2 \
      1 \
      ~/keys/gcp-service-account.json
        
      6. El script abrirá su navegador y le pedirá que se autentique. Indique su nombre de usuario y contraseña y haga clic en 'Permitir'. Vuelva al terminal de la línea de comandos y verá una salida similar a:

      About to create a Container Cluster in the ‘docker-meetup-1381’ GCP project located in ‘europe-west1-b’ with 1 x ‘n1-standard-2’ node(s)
      Press any key to continue…or Ctrl+C to exit

      Nos muestra la selección de datos y todo empezara con la confirmación de  la acción.

      Nota importante: El script ahora creara infraestructura en GCP que que lleva asociado gastos, controle los para no encontrarse con un consumo no previstos y de recursos y de dinero..

      7. Extraiga la dirección IP de Jenkins

      La secuencia de comandos mostrará su progreso y hacia la salida final una dirección IP a la que puede acceder Jenkins. Tales como: a:

      Jenkins service up and running on 104.155.36.72 

      Ahora debería ser capaz de abrir un navegador, navegar a esa URL y ver su servidor Jenkins!

      Esencialmente thats it - usted ha crado  un grupo dentro de  GKE, usando Kubernetes y utilizado para desplegar un contenedor  de Jenkins maestro preconfigurado y dio a ese servicio una dirección IP externa para hacerlo accesible.
      La instancia de Jenkins ha sido preconfigurada con un solo trabajo de Jenkins que produce un workflow de construcción de una aplicación de inicio de muestreo de muestreo utilizando los agentes Jenkins JNLP y el complemento Jenkins Pipeline.

      Nota importante: Haga ejercicio para que el lector se ocupe de la seguridad de la instancia, no tiene usuario no esta configurada, es necesario configurar usuario y contraseña en ningún caso  deje su jekins desprotegido.

      ...
       

      Implementación de aplicaciones


      Después de unos 10 minutos (puede que tenga que actualizar su pantalla) su instancia jenkins habrá creado un trabajo llamado 'spring-boot-pipeline' y ejecutado una compilación.

           Navegue hasta el trabajo de jenkins. Desde aquí deberías construir tu pipeline completado sin problemas. (Ejemplo mostrado en la figura 5)

       
      Figura 5

      2. Haga clic en el número del "build 1"

      3. Haga clic en Salida de consola para ver la salida del trabajo.

      4. Desplácese hacia abajo hasta la parte inferior de la salida y debería ver un mensaje similar a:


      [spring-boot-pipeline] Running shell script
      + echo Application up and running on 130.211.78.33
      Application up and running on 130.211.78.33
      [Pipeline] }
      [Pipeline] // node
      [Pipeline] End of Pipeline
      Finished: SUCCESS

      5. Esto indica que las demostraciones que la aplicación definida en jekins se ha construido con éxito y se ha desplegado adentro a nuestro Kubernetes. Puede navegar hasta la dirección IP proporcionada para ver la aplicación en ejecución.

      ...

      ¿Lo que acaba de suceder?


      • Creó un clúster GCP kubernetes
      • Utilizó k8s y docker para desplegar un contenedor maestro Jenkins preconfigurado en ese clúster
      • Tenemos Jenkins para ejecutar una compilación de nuestra aplicación de inicio de ejemplo
      • La construcción de Jenkins hizo desplegar un contenedor Docker que contenía un esclavo Jenkins de JNLP para ejecutar la compilación
      • La compilación compiló el código utilizando Maven
      • A continuación, se produjo una imagen Docker de la aplicación
      • Realice un push pare que aparezca  en el Registro de contenedores de Google
      • Utilice despliegues de k8s para desplegar la imagen proxy en el  clúster k8s
      • Utilice los servicios de k8s para registrar un servicio de proxy y defina su tipo en LoadBalancer para asegurarse de que la aplicación es accesible a través de Internet.

      martes, 21 de marzo de 2017

      Curso de AppEngine en La Rioja

      Curso de Google AppEngine

      Resultado de imagen de google cloud


      Las arquitecturas en la nube autoadministradas permiten al profesional centrar sus esfuerzos en desarrollar su aplicación, que es lo que realmente hará crecer su negocio, automatizando y simplificando a la mínima expresión las necesidades de administración del sistema. Para aprender sobre estas arquitecturas utilizaremos como ejemplo el servicio Google App Engine.

      En este curso, impartido por el organizador del Grupo de Desarrolladores de Google Almería, con 5 años de experiencia en el desarrollo de aplicaciones en la nube en GAE, se impartirán de forma práctica, siguiendo un proyecto real central, conocimientos y habilidades que permitirán al alumno desarrollar aplicaciones siguiendo uno de los últimos paradigmas de desarrollo en la nube.

      Google App Engine es un servicio de alojamiento de aplicaciones utilizado tanto por curiosos como profesionales, pequeños estudios de desarrollo o grandes empresas para alojar aplicaciones web, backends de aplicaciones móvil o multiplataforma, backends web de sistemas de internet de las cosas, servicios web de software como servicio, APIs web, etc. Además, puede ser utilizado fácilmente en conjunción con el resto de servicios de la nube Google Cloud Platform.

      Este tipo de servicios permiten centrarse en el desarrollo de la aplicación sin necesidad de administrar los servidores, ofreciéndonos una alta disponibilidad y escalabilidad desde 0 instancias pagando únicamente por el uso real de la plataforma. Además, en el caso de GAE nos ofrece unas generosas cuotas de uso gratuitas, lo que lo hace ideal para el aprendizaje y realización de pruebas por profesionales, estudiantes e interesados en general.

      Perfil del alumno
      El curso va dirigido a:
        • Desarrolladores web, backend, de aplicaciones móviles o multiplataforma y de software en general.
        • Administradores de sistemas informáticos que quieran ampliar sus conocimientos sobre "devOps".
        • Profesionales, estudiantes e interesados en general en el mundo TIC.
      Se valorará tener conocimientos de:
        • Programación general y programación orientada a objetos de nivel básico.
        • Desarrollo web.
        • Programación utilizando Python 2.7 de nivel básico.
      Objetivos del curso
      El objetivo de este curso es formar al alumno sobre el paradigma de las arquitecturas en la nube autoadministradas, el desarrollo y alojamiento de aplicaciones web utilizando Google App Engine con Python 2.7 y las múltiples posibilidades de aplicación de dicha arquitectura y servicio en diferentes aplicaciones.

      La metodología será principalmente práctica, estructurada alrededor de un proyecto principal para poder aplicar inmediatamente los conocimientos a un ejemplo real: el desarrollo de un blog propio.

      Al finalizar la parte presencial del curso, el alumno podrá realizar un ejercicio práctico sobre otro ejemplo real, sencillo y de corta duración, que podrá corregir mediante una aplicación web de autoevaluación: el desarrollo de un portal de "wiki" (similar a Wikipedia).

      Tras ello tendrá lugar una tutoría online donde los alumnos podrán poner en común dudas, problemas e impresiones y se discutirán las mejores formas de aplicar dicha arquitectura y servicios similares a sus intereses y necesidades reales.