jueves, 25 de enero de 2018

Formate en Google cloud en español


Quieres aprender toro potencial de la nube que nos proporciona google Cloud, te presentamos los Study Jams.

Gracias a Google nos presenta Google Cloud utilizando sus herramientas aprendizaje  para todos vosotros el encuentro será el lunes 23 de enero y por supuesto hablaremos en la nube formación para todos con acceso gratuito al laboratorio más potente formación que tiene Google !No te lo pierdas¡.

Para asistir aquí tienes esté enlace.

https://www.meetup.com/es-ES/GDG-La-Rioja/events/245442306/

Lunes 29 de Enero a las 19:00 hora Spain.

martes, 23 de enero de 2018

How to Use Google Cloud Platform, [Otra joya de documentación dentro de google cloud]

Hoy en google cloud español...

Os mostramos otra joya de esas que se encuentran dentro de la web de documentación de google cloud.

Tal y como nos tienen acostumbrados hay mucha información tanta que abruma. Uno de los recursos de la web de google Cloud es usar el enlace que os paso que tiene  cantidad de información sobre ejemplos prácticos del uso de los distintos servicios de google cloud.

Mira que dentro de la web debajo del recuadro azul "Note", ademas tiene un buscados. Os pasamos un ejemplo par localizar ejemplos de despliegues de CI/CD dentro de Google cloud

Enjoy



https://cloud.google.com/docs/tutorials#development_and_test


Imagen de captura de una búsqueda.

sábado, 20 de enero de 2018

Cluster de Servidores para juegos con kubernetes.

Hoy en google cloud español.
Por Joseph Holley



Ejecución de servidores de juegos dedicados en Kubernetes Engine:

Las empaquetar aplicaciones de servidor dcomo imágenes de contenedor están ganando terreno rápidamente en organizaciones tecnológicas, compañías de juegos entre ellas. Quieren utilizar contenedores para mejorar la utilización de VM, así como aprovechar el paradigma de tiempo de ejecución aislado. A pesar de su interés, muchas compañías de juegos no saben por dónde empezar.

Usar el marco de orquestación Kubernetes para desplegar flotas de escala de producción de servidores de juegos dedicados en contenedores es una excelente opción. Recomendamos Google Kubernetes Engine como la forma más fácil de iniciar un clúster de Kubernetes para servidores de juegos en Google Cloud Platform (GCP) sin pasos de configuración manual. Kubernetes ayudará a simplificar la administración de su configuración y seleccionará una máquina virtual con los recursos adecuados para generar automáticamente una coincidencia para sus jugadores.

Recientemente, han creado un tutorial que muestra cómo integrar servidores de juegos dedicados con Kubernetes Engine, y cómo escalar automáticamente el número de VMs según la demanda de los jugadores. También ofrece algunas estrategias de almacenamiento clave, que incluyen cómo administrar los activos de su servidor de juegos sin tener que distribuirlos manualmente con cada imagen de contenedor. Compruébalo y cuéntanos otras herramientas de Google Cloud que te gustaría aprender a usar en tus operaciones de juego. Puedes contactar  con el creador en Twitter en @gcpjoe.

jueves, 18 de enero de 2018

Google Cloud mucho mas que unos datacenter

Hoy en google cloud en español.




Google anuncia que ha instalado un nuevo cable submarino "Curie",

Google Cloud Platform (GCP) está disponible en dos nuevas regiones: Fráncfort y São Paulo. GCP cuenta con 12 regiones, 36 zonas, más de 100 puntos de presencia y una red mundial bien aprovisionada con cientos de miles de kilómetros de cable de fibra óptica.

Puntos de presencia perimetrales (PoP)

Lod puntos de presencia (PoP) extremos son los que conectamos la red de Google con el resto de Internet a través de la interconexión. Estamos presentes en más de 90 intercambios de Internet y en más de 100 instalaciones de interconexión en todo el mundo.


Nodos de borde (Google Global Cache o GGC) [Edge nodes]

Los nodos de borde (llamados Google Global Cache, o GGC) representan el nivel de la infraestructura de Google más cercano a nuestros usuarios. Con nuestros nodos de borde, los operadores de red y los proveedores de servicios de Internet implementan los servidores suministrados por Google dentro de su red.



El contenido estático que es muy popular entre la base de usuarios del host local, incluidos YouTube y Google Play, se almacena temporalmente en caché en los nodos de borde. Los sistemas de gestión de tráfico de Google dirigen las solicitudes de los usuarios a un nodo de borde que proporcionará la mejor experiencia.

En algunos lugares, también utilizamos nuestros nodos de borde para admitir la entrega de otros servicios de Google, como la Búsqueda de Google, mediante el tráfico de proxys, que ofrecerá un mejor rendimiento de extremo a extremo para el usuario final.

Mira otros mapas de la red global de infraestructura de Google aquí y aquí.

miércoles, 17 de enero de 2018

Aumenta tu seguridad usando contenedores con kubernetes

Seguridad  google cloud español y de contenedores con Kubernetes Engine 1.8


De entrada partimos de la versión 1.7, la UI de Kubernetes ya no tiene acceso de administrador habilitado por defecto. Si no está utilizando Kubernetes Engine, le recomiendo que lea este artículo sobre Control de acceso para el Dashboard. Si es así, recomendamos desactivarlo.

Con la velocidad del desarrollo en Kubernetes, a menudo hay nuevas características y configuraciones de seguridad que puede  que no conozca. Esta publicación le enseñara a través de la implementación de nuestra guía actual para reforzar su clúster de Kubernetes Engine. Si se siente con fuerzas, también analizaremos las nuevas funciones de seguridad que puede probar en clusters alfa (que no se recomiendan para uso de producción).

Las mejores prácticas de seguridad para su clúster de Kubernetes

Cuando se ejecuta un clúster de Kubernetes, existen varias prácticas recomendadas que recomendamos seguir:
  1. Utilice las cuentas de servicio de mínimo privilegio en sus nodos
  2. Deshabilitar la interfaz de usuario web de Kubernetes
  3. Inhabilite la autorización heredada (ahora está deshabilitada de forma predeterminada para los nuevos clústeres en Kubernetes 1.8). Pero antes de poder hacerlo, primero deberá establecer algunas variables de entorno:


#Your project ID
PROJECT_ID=
#Your Zone. E.g. us-west1-c
ZONE=
#New service account we will create. Can be any string that isn't an existing service account. E.g. min-priv-sa
SA_NAME=
#Name for your cluster we will create or modify. E.g. example-secure-cluster
CLUSTER_NAME=
#Name for a node-pool we will create. Can be any string that isn't an existing node-pool. E.g. example-node-pool
NODE_POOL=


1 Utilice las cuentas de servicio de mínimo privilegio en sus nodos

El principio de privilegio mínimo ayuda a reducir el "radio de explosión" de un posible compromiso, otorgando a cada componente solo los permisos mínimos requeridos para realizar su función. Si un componente se pone en peligro, el privilegio mínimo hace que sea mucho más difícil encadenar ataques juntos y escalar permisos.

Cada nodo de Kubernetes Engine tiene una cuenta de servicio asociada. Verá al usuario de la cuenta de servicio enumerado en la sección IAM de la consola de la nube como "cuenta de servicio predeterminada de Compute Engine". Esta cuenta tiene acceso amplio de forma predeterminada, por lo que es útil para una gran variedad de aplicaciones, pero tiene más permisos de los que necesita. para ejecutar su clúster de Kubernetes Engine.

Le recomendamos que cree y use una cuenta de servicio mínimamente privilegiada para ejecutar su Kubernetes Engine Cluster en lugar de la cuenta de servicio predeterminada de Compute Engine.

Kubernetes Engine requiere, como mínimo, que la cuenta de servicio tenga las funciones monitoring.viewer, monitoring.metricWriter y logging.logWriter.

Los siguientes comandos crearán una cuenta de servicio GCP para usted con los permisos mínimos necesarios para operar Kubernetes Engine:


gcloud iam service-accounts create "${SA_NAME}" \
  --display-name="${SA_NAME}"

gcloud projects add-iam-policy-binding "${PROJECT_ID}" \
  --member "serviceAccount:${SA_NAME}@${PROJECT_ID}.iam.gserviceaccount.com" \
  --role roles/logging.logWriter

gcloud projects add-iam-policy-binding "${PROJECT_ID}" \
  --member "serviceAccount:${SA_NAME}@${PROJECT_ID}.iam.gserviceaccount.com" \
  --role roles/monitoring.metricWriter

gcloud projects add-iam-policy-binding "${PROJECT_ID}" \
  --member "serviceAccount:${SA_NAME}@${PROJECT_ID}.iam.gserviceaccount.com" \
  --role roles/monitoring.viewer

#if your cluster already exists, you can now create a new node pool with this new service account.
gcloud container node-pools create "${NODE_POOL}" \
  --service-account="${SA_NAME}@${PROJECT_ID}.iam.gserviceaccount.com" \
  --cluster="${CLUSTER_NAME}"


Si necesita que su clúster de Kubernetes Engine tenga acceso a otros servicios de Google Cloud, le recomendamos que cree un rol adicional y lo suministre a las cargas de trabajo a través de los "secrets" de Kubernetes.

Nota: Actualmente se esta  diseñando un sistema para hacer que la obtención de credenciales GCP en su clúster de Kubernetes sea mucho más fácil y se reemplazar por completo este flujo de trabajo. Únase al Grupo de Trabajo de Identidad de Contenedores de Kubernetes para participar.

2. Deshabilitar la interfaz de usuario web de Kubernetes

Le recomendamos que desactive la interfaz de usuario web de Kubernetes cuando se ejecute en Kubernetes Engine. La interfaz de usuario web de Kubernetes (también conocida como Kubernetes Dashboard) está respaldada por una cuenta de servicio de Kubernetes altamente privilegiada. La consola de la nube proporciona muchas de las mismas funciones, por lo que no necesita estos permisos si está ejecutando Kubernetes Engine.

El siguiente comando desactiva la interfaz de usuario web de Kubernetes:

gcloud container clusters update "${CLUSTER_NAME}" \
    --update-addons=KubernetesDashboard=DISABLED


3a Deshabilitar la autorización heredada


A partir de Kubernetes 1.8, el control de acceso basado en atributos (ABAC) está desactivado por defecto en Kubernetes Engine. El control de acceso basado en roles (RBAC) se lanzó como beta en Kubernetes 1.6, y ABAC se mantuvo habilitado hasta 1.8 para dar a los usuarios tiempo para migrar. RBAC tiene importantes ventajas de seguridad y ahora es estable, por lo que es hora de desactivar ABAC. Si aún confía en ABAC, revise los requisitos previos para usar RBAC antes de continuar. Si actualizó su clúster desde una versión anterior y está utilizando ABAC, debe actualizar su configuración de controles de acceso:

gcloud container clusters update "${CLUSTER_NAME}" \
  --no-enable-legacy-authorization

Para crear un nuevo clúster con todas las recomendaciones anteriores, ejecute:

gcloud container clusters create "${CLUSTER_NAME}" \
  --service-account="${SA_NAME}@${PROJECT_ID}.iam.gserviceaccount.com" \
  --no-enable-legacy-authorization \
  --disable-addons=KubernetesDashboard


3b Crear una política de red de clúster

Además de las prácticas recomendadas antes mencionadas, le recomendamos que cree políticas de red para controlar la comunicación entre los Pods y Servicios de su clúster. La aplicación de la política de red de Kubernetes Engine, actualmente en versión beta, hace que sea mucho más difícil para los atacantes propagar dentro de su clúster. También puede usar la API de política de red de Kubernetes para crear reglas de firewall de nivel de Pod en Kubernetes Engine. Estas reglas de firewall determinan qué Pods y Servicios pueden accederse entre sí dentro de su clúster.

Para habilitar la aplicación de políticas de red al crear un nuevo clúster, especifique el indicador ---enable-network-policy usando gcloud beta:


gcloud beta container clusters create "${CLUSTER_NAME}" \
  --project="${PROJECT_ID}" \
  --zone="${ZONE}" \
  --enable-network-policy



Una vez que se haya habilitado la Política de red, deberá definir una política. Dado que esto es específico de su topología exacta, no podemos proporcionarle un tutorial detallado. La documentación de Kubernetes, sin embargo, tiene una excelente descripción y guía para una simple implementación de nginx.

Nota: Las funciones alfa y beta, como la API de políticas de red de Kubernetes Engine, representan mejoras de seguridad significativas en las API de GKE. Tenga en cuenta que las características alfa y beta no están cubiertas por ningún SLA o política de desactivación, y pueden estar sujetas a cambios bruscos en futuras versiones. No recomendamos que use estas funciones para clusters de producción.


Cierre

Muchas de las mismas lecciones que aprendimos de la seguridad de la información tradicional se aplican a Containers, Kubernetes y Kubernetes Engine; solo tenemos nuevas formas de aplicarlos. Adhiera al menor privilegio, minimice su superficie de ataque al deshabilitar la funcionalidad heredada o innecesaria, y la más tradicional de todas: redacte buenas políticas de firewall. Para obtener más información, visite la página web y la documentación de Kubernetes Engine. Si recién está comenzando con contenedores y Google Cloud Platform (GCP), asegúrese de registrarse para una prueba gratuita.

viernes, 12 de enero de 2018

Always Free


Dentro del uso gratuito de google cloud tenemos el ya conocido 300$ de crédito para usar durante un año. Pero de forma mas desconocida tenemos una línea de créditos que incluso es mas importante que es el "Always Free" que son los Límites de uso gratuito  para los clientes de los productos de Google Cloud.

Se pueden usar muchos productos sin coste alguno hasta que lleguemos al límite de uso tengamos o no activado el crédito inicial, (Estos limites están sujetos a cambios).

Algunos ejemplos:

miércoles, 10 de enero de 2018

Tres trucos usando cloud load balancing

Hoy en google cloud español Tres consejos para el máximo rendimiento del un balanceador en google cloud.
Cuando necesitamos escalar nuestras aplicaciones en los servidores no tenemos que basar  en que se permitan que las solicitudes lleguen de una única ubicación a las las  máquinas virtuales. Ademas esta tecnología se puede usar junto con un escalador automático, y un equilibrador de carga también puede ayudar a sus aplicaciones a adaptarse a picos repentinos de peticiones en el tráfico.

Si está creando aplicaciones en Google Cloud Platform (GCP), Cloud Load Balancing le permite escalar sus aplicaciones, distribuir sus recursos en una o varias regiones y se integra con Cloud CDN. Aquí hay algunos consejos para ayudarlo a reducir los gastos generales de mantenimiento, mejorar el rendimiento y minimizar los costos, todo al mismo tiempo.

1. Aproveche el equilibrador de carga HTTP (S) donde pueda

Las principales funciones de un equilibrador de carga son su capacidad para manejar escalas automáticas y distribuir paquetes a las máquinas virtuales en ejecución. Cloud Load Balancing ofrece varias opciones para manejar esas necesidades exactas, pero el equilibrador de carga HTTP ofrece algo más: retira las solicitudes de Internet pública lo más rápido posible, lo que mejora el rendimiento al redirigir el tráfico a la red global de alta velocidad de Google. Visualizado, el resultado es:


El equilibrador de carga HTTP no solo aumenta el rendimiento porque los paquetes pasan menos tiempo en Internet, sino que también utiliza conexiones entre los clientes y los servidores front-end de Google, lo que ayuda a reducir aún más la carga de red de las solicitudes TCP de los usuarios.


2. Habilite Cloud CDN en solicitudes de caché

El almacenamiento en caché de las respuestas salientes de sus aplicaciones es fundamental para reducir los costos repetidos de obtención y entrega de recursos. Resulta que el equilibrador de carga de GCP hace que este proceso sea muy fácil gracias a la integración con Cloud CDN. Si habilita Cloud CDN para su equilibrador de carga, puede almacenar en caché automáticamente las solicitudes comunes para reducir la latencia, así como la cantidad de solicitudes que la instancia debe atender.

Siempre que la solicitud se guarde en caché, se servirá directamente en la red de Google.
Configurar esta función con Cloud Load Balancing es muy sencillo. Todo lo que necesita hacer es marcar el botón "Habilitar Cloud CDN" al crear la definición de back-end para sus HTTPs LB y GCP se ocupa del resto.


Este gráfico muestra la diferencia en el rendimiento de ir a buscar un activo con y sin Cloud CDN habilitado para el equilibrador de carga.


Puede ver que una vez que los recursos se almacena en caché, el tiempo de respuesta disminuye significativamente. No se necesitan instancias adicionales de almacenamiento en caché, ¡todo lo que tiene que hacer es marcar una casilla!



3. Combine Cloud CDN y Cloud Storage para activos estáticos

Las aplicaciones web tienden a tener una variedad de recursos estáticos y dinámicos. Los recursos que cambian muy raramente, por ejemplo, una imagen de banner o un logotipo de la empresa, se pueden separar, desde el punto de vista de los recursos, y se pueden servir de manera más eficiente mediante el almacenamiento en caché. Cloud Load Balancing hace que este proceso sea un poco más fácil.

Con Cloud Load Balancing, puede crear una ruta de enrutamiento de host a la que enrute su URL de activos estáticos designada para recuperar activos de un repositorio público de Cloud Storage que también se almacena en caché en Cloud CDN. Esto ayuda a reducir la complejidad y los gastos generales en el alojamiento y la administración de sus recursos estáticos. El almacenamiento en caché de estas solicitudes a través de Cloud CDN también produce un gráfico de aspecto muy similar al anterior:





Cada milisegundo cuenta

Al construir su aplicación nativa de la nube, siempre vale la pena considerar las tecnologías que pueden ayudar a optimizar sus diseños. Con estos tres consejos, los servicios de Cloud Load Balancing pueden ayudar a minimizar el mantenimiento a largo plazo, mejorar el rendimiento y reducir los costos. No está mal para unos pocos clics extra del mouse;)


Si desea obtener más información sobre cómo optimizar sus aplicaciones de Google Cloud, consulte el resto de las publicaciones y videos del blog de Google Cloud Performance. Porque, cuando se trata de rendimiento, cada milisegundo cuenta.

jueves, 4 de enero de 2018

Usa GPU Preemptible y cuenta con un 50% de descuento.



Ahora se puede conectar las GPU NVIDIA K80 y NVIDIA P100 a las máquinas virtuales preventivas por $ 0.22 y $ 0.73 por hora de GPU, respectivamente. Esto es un 50% más económico que las GPU conectadas a instancias bajo demanda, que también bajan recientemente. Las GPU prioritarias serán especialmente adecuadas para el aprendizaje automático a gran escala y otras cargas de trabajo por lotes computacionales, ya que los clientes pueden aprovechar el poder de las GPU para ejecutar cargas de trabajo por lotes distribuidas a precios predeciblemente asequibles.

Como beneficio adicional, también se  anunciar que nuestras GPU ya están disponibles en la región central de los Estados Unidos. Consulte nuestra documentación de GPU para obtener una lista completa de las ubicaciones disponibles.

Los recursos adjuntos a máquinas virtuales preventivas son los mismos que los recursos equivalentes a pedido con dos diferencias clave: Compute Engine puede cerrarlos después de proporcionarle una advertencia de 30 segundos, y puede usarlos durante un máximo de 24 horas. Esto los convierte en una excelente opción para cargas de trabajo distribuidas y tolerantes a fallas que no requieren continuamente una sola instancia, y permite ofrecerlas con un descuento sustancial.

Pero al igual que sus equivalentes según demanda, los precios preemptibles son fijos. Siempre obtendrá un bajo costo, previsibilidad financiera y facturaremos por segundo. Cualquier GPU conectada a una instancia de VM preemptibles se considerará Preventiva y se facturará a la tarifa más baja. Para comenzar, simplemente añada  --preemptible a su instancia crear comando en gcloud, especifique scheduling.preemptible en true

append --preemptible to your instance create command

la API REST o establezca Preemptibility en "On" en Google Cloud Platform Console y luego adjunte una GPU como de costumbre. Puede usar su cuota regular de GPU para iniciar GPU prioritarias o, alternativamente, puede solicitar una cuota especial de GPU prioritarias que solo se aplica a GPU adjuntas a VM preemptibas.


Para los usuarios que buscan crear grupos dinámicos de poder de GPU asequible, los grupos de instancias administradas de Compute Engine se pueden usar para volver a crear automáticamente sus instancias prioritarias cuando se reemplazan (si la capacidad está disponible). Las máquinas virtuales preemptible también se integran en productos en la nube integrados en Compute Engine, como Kubernetes Engine (el soporte de la GPU de GKE se encuentra actualmente en la vista previa. El formulario de suscripción se puede encontrar aquí).

Si desea compartir historias y demos de las cosas geniales que ha creado con las máquinas virtuales preventivas, comuníquese con Twitter, Facebook o G +.

Usando tareas App engine schedule cloud functions

En google cloud español publicado en 2018 Jan 04 por Guillaume Laforge

Aproveche las capacidades de cron de App Engine para "schedule" de Cloud Functions

Cloud Functions ofrece a los desarrolladores un entorno sin servidores, para permitirles crear y conectar servicios la cloud, una función a la vez. A día de hoy, todavía falta un aspecto: es la capacidad de programar invocaciones de función.

Digamos que desea obtener una función invocada en un intervalo regular: cada hora, se debe ejecutar alguna función de informe para informarle sobre el estado de sus pedidos. ¿Cómo puedes lograr esto? Nuestra solución en este artículo: aprovecharemos las capacidades cron de App Engine para enviar solicitudes a Cloud Functions.

Exponer una función de nube activada por HTTP

En primer lugar, creé un proyecto de Google Cloud con Cloud Functions habilitado, donde implementé una sencilla función de hello world:

exports.helloWorld = function helloWorld(req, res) {
  // Example input: {"message": "Hello!"}
  if (req.body.message === undefined) {
    // This is an error case, as "message" is required.
    console.log("No message received");
    res.status(400).send('No message defined!');
  } else {
    // Everything is okay.
    console.log(req.body.message);
    res.status(200).send('Success: ' + req.body.message);
  }
};
Esta función helloWorld es una función síncrona que responde a los triggers HTTP.

Para invocarlo (con fines de prueba), se pueden emitir llamadas CURL de la siguiente manera:

curl -X POST https://<REGION>-<PROJECT_ID>.cloudfunctions.net/helloWorld \
     -H "Content-Type: application/json" \
     --data '{"message": "Happy New Year!"}'
Y la función responderá con:

Success: Happy New Year!
Ahora veamos cómo aprovechar las colas de tareas y las capacidades cron de App Engine.

Configurar una pequeña aplicación de App Engine con una definición de cron

A los fines de esta demostración, estoy usando App Engine Standard con Java 8 runtime.

Nota: Mi aplicación utiliza el marco web de Gaelyk para App Engine, con el lenguaje de programación Apache Groovy. Pero la elección del marco web o del lenguaje no es crítica en este consejo, y puedes usar cualquier framework o lenguaje web compatible con App Engine. Sin embargo, en mi caso, mi proyecto se ejecuta en App Engine Standard y su reciente Java 8 runtime. Este aspecto es importante, ya que la forma de configurar las capacidades de cron varía según el tiempo de ejecución que elija. En el tiempo de ejecución de Java, las definiciones de cron utilizarán un formato XML (en lugar de YAML para otros tiempos de ejecución como Go).

Necesitamos hacer dos cosas para programar una invocación de función de nube:


  • Primero, creamos un archivo cron.xml en WEB-INF que define una URL local para nuestra aplicación App Engine, que reenviará las solicitudes entrantes a nuestra función. El archivo cron.xml especifica la programación (es decir, cada 10 minutos), así como una política de reintento opcional.
  • Luego, configuramos nuestra aplicación de App Engine para reenviar las solicitudes a la URL de cron.xml a la función.


Aquí está mi archivo cron.xml:

<cronentries>
  <cron>
    <url>/redirect-hello</url>
    <description>Redirect to the helloWorld function</description>
    <schedule>every 10 minutes</schedule>
  </cron>
</cronentries>
Mi función se invocará cada 10 minutos. Pero puede obtener más información sobre las posibles opciones de programación en la documentación.

Ahora, defino una nueva regla de enrutamiento para mi marco de trabajo web preferido para hacer el reenvío. Las definiciones de ruta se configuran en WEB-INF/routes.groovy en el marco de Gaelyk:

all "/call-hello", forward: "/callHello.groovy"
Definimos el path call-hello que llamará al controlador callHello.groovy, que se encuentra en WEB-INF/groovy. Echemos un vistazo a este controlador (también llamado groovlet) y veamos cómo llama a la función de nube:

out <<
    new URL('https://us-central1-fn-gae-cron.cloudfunctions.net/helloWorld')
        .post(payload: request.inputStream.bytes, 
              headers: ['Content-type': 'application/json'])
        .text
El controlador realiza una solicitud POST a nuestra función en la nube, pasando cualquier carga útil que se haya enviado a App Engine (aunque en nuestro caso, las llamadas cron no pasan ninguna carga útil) y devolvemos el resultado de texto de la llamada a función.

Cuando miro los registros de mi función en el registro de Stackdriver, veré cada 10 minutos que se ha llamado a la función, y aparece un mensaje que dice ¡No hay ningún mensaje definido! (Porque mi llamada cron de App Engine no envía ningún mensaje) .)

Más información

Para esta articulo, se inspiro en esta publicación de Valerii Iatsko, que muestra cómo usar App Engine para Python para programar llamadas a Cloud Functions.

Puede obtener más información sobre la configuración cron de App Engine Java en la documentación.

Si también está interesado en Apache Groovy y Gaelyk, puede consultar:
  • La documentación de Apache Groovy
  • La documentación del framework Gaelyk (y en particular todos los buenos accesos directos ofrecidos para simplificar el uso de App Engine)

miércoles, 3 de enero de 2018

Etiquetando con etiquetas DataProc Clusters

En google cloud español publicamos el 2018 Jan 03 por James Malone

Actualice sin paradas Spark & ​​Hadoop, ejecute pruebas A / B, divida el trabajo entre clústeres gracias a las etiquetas de usuario de Cloud Dataproc


Es posible que sea necesario intercambiar los clústeres Apache Spark y Apache Hadoop sin interrumpir los flujos de trabajo y las aplicaciones existentes. Por ejemplo, hay algunos casos en los que es posible que desee intercambiar un clúster ejecutando Spark o Hadoop para:
  • Pruebas o actualizaciones a nuevas versiones de Spark y Hadoop
  • Ejecute pruebas A / B entre clústeres para probar el rendimiento u otros cambios
  • Dividir el trabajo entre los clusters

Intentar hacer esto puede requerir lógica de opquestración complicada o frágil y puede implicar tiempo de inactividad. Sin embargo, con las etiquetas de usuario de Cloud Dataproc, puede ser fácil intercambiar clústeres o compartir trabajo entre clústeres.

Como ejemplo, digamos que quiere denotar sus clústeres de producción y solo enviar trabajo a esos clústeres. Esto es fácil de hacer. En primer lugar, debe crear un clúster con una etiqueta para indicar que se trata de un clúster de producción:

gcloud dataproc clusters create <cluster_name> \
    --labels environment=production
Ahora puede enumerar los clusters que tienen esta etiqueta activa:

gcloud dataproc clusters list \
 --filter "status.state=ACTIVE AND labels.environment=production"
Si tiene múltiples clústeres con esta etiqueta, puede implementar cualquier lógica que desee seleccionar. Cuando desee eliminar este clúster de la flota de producción, solo necesita eliminar o modificar la etiqueta:

gcloud dataproc jobs clusters update <cluster_name> \
 --labels environment=offline
Usemos el caso donde desee que A / B pruebe una nueva versión de Apache Spark con trabajos existentes. En ese caso, podría tener dos clústeres con el entorno = etiqueta de producción y distribuir el 5% del trabajo al nuevo clúster Spark en su herramienta de envío (script personalizado, Apache Airflow, etc.)

Esto también le permite drenar con gracia un grupo de todos los trabajos pendientes antes de eliminarlo simplemente quitando la etiqueta.

¡Esto significa que no necesita cambiar su lógica de envío de trabajos cada vez que quiera cambiar clusters!
________

martes, 2 de enero de 2018

Lectura en múltiples archivos con Google Cloud DataFlow

En google cloud español publicado el 2018 Ene 02 por Matthias Baetens

Cada vez que necesite leer archivos de varias carpetas de Google Cloud Storage en una interconexión de Dataflow (como me ocurre a mi), podría encontrarse con un pequeño problema (como se describe en esta pregunta de Stackoverflow). En este consejo, describiré cómo resolví el problema anteriormente y proporcionaré algún código que pueda usar cuando tenga una lista separada por comas de los archivos que desea ejecutar.

Pasos

Lo que puede hacer en este caso se lee en los archivos de la forma habitual utilizando TextIO y PCollection, y luego se crea una PCollectionList, que consiste en estas PCollections y luego se une todo en una PCollection.


Código

Cuando tiene una lista separada por comas como entrada, con todas las rutas que desea leer (que se pueden pasar fácilmente como un argumento de línea de comandos) debe poder usar el siguiente código de Java:


String input = "gs://xxx/*,gs://yyy/zzz/*" // (or options.getInput())
ArrayList<PCollection<String>> pcollectionlist = new ArrayList<>();

String[] input = inputs.split(",");
for(String i : input) {
 PCollection<String> extra = p.apply(TextIO.read().from(i));
 pcollectionlist.add(extra);
}
  
PCollectionList<String> tempRes = PCollectionList.of(pcollectionlist); 
PCollection<String> res = tempRes.apply(Flatten.pCollections());

Resultado

Y así es como podría verse tu gráfico de entrada para 7 archivos de entrada, por ejemplo:



Saber más:


________

lunes, 1 de enero de 2018

Soluciones ejemplo en google cloud, no pares de aprender

En google Cloud Español Publicado el 2018 Jan 01 por Guillaume Laforge.

Estudie soluciones completas basadas en Google Cloud Platform a lo largo de diferentes temas o busque ejemplos de soluciones verticales


En artículos anteriores, mencionamos varios recursos para aprender sobre Google Cloud Platform, tales como: cómo buscar a través de la documentación, mantenerse actualizado con la plataforma, ver videos en la nube, experimentar con los codelabs, describir la plataforma en 4 palabras o menos, o leyendo a través de tutoriales.

Hoy, para comenzar el nuevo año con grandes resoluciones, echemos un vistazo a la página de soluciones verticales.

Las soluciones se agrupan por temas:


¡Enjoy!
________