La nube ya no representa un elemento tecnológico emergente. Ahora que las empresas grandes y pequeñas están descubriendo el potencial de los servicios en la nube, la necesidad de contratar personal que pueda manejar cargas de trabajo en la nube ha crecido exponencialmente. Hoy lanzaremos una nueva certificación de ...



La nube ya no representa un elemento tecnológico emergente. Ahora que las empresas grandes y pequeñas están descubriendo el potencial de los servicios en la nube, la necesidad de contratar personal que pueda manejar cargas de trabajo en la nube ha crecido exponencialmente. Hoy lanzaremos una nueva certificación de Ingeniero asociado de la nube, diseñada para abordar la demanda creciente de personas que cuenten con aptitudes básicas para procesos vinculados a la nube, necesarias para la implementación de aplicaciones y el mantenimiento de proyectos en la nube dentro de Google Cloud Platform (GCP).



La certificación de Ingeniero asociado de la nube se suma a la de Arquitecto profesional de la nube, lanzada en 2016, y la de Ingeniero de datos, que se ofreció muy poco después. Estas certificaciones identifican a personas que cuentan con aptitudes y experiencia para superar desafíos empresariales complejos aprovechando GCP. Desde el inicio del programa, Google Cloud Certified experimentó un crecimiento continuo, en especial en este último año en que la cantidad de postulantes para nuestras certificaciones se multiplicó por 10.

Debido a que la tecnología de la nube influye sobre tantos aspectos de una organización, los profesionales de la TI deben conocer el momento y la forma de utilizar herramientas de la nube en diferentes casos, que van del análisis de datos a la escalabilidad. Por ejemplo, no basta con lanzar una aplicación en la nube. Los ingenieros asociados de la nube también se aseguran de que la aplicación experimente un crecimiento homogéneo, se controle se manera adecuada y se administre a través de personal autorizado.

Los comentarios relacionados con la versión beta de la certificación de Ingeniero asociado de la nube han sido excelentes. Morgan Jones, profesional de TI, expresó su entusiasmo por participar, ya que “el futuro del éxito y de la oferta de valor comercial a través de la nube radica en adoptar una estrategia que contemple varias nubes. Esta certificación me puede servir para alcanzar el éxito en el entorno de GCP”.

Como punto de entrada a nuestras certificaciones de nivel profesional, la certificación de Ingeniero asociado de la nube es garantía de un conocimiento sólido sobre productos y tecnologías de GCP. “Para lograr un buen resultado en el examen, es necesario tener experiencia en la GCP Console. Quien no haya utilizado la plataforma y estudie poco antes del examen no tendrá un buen desempeño. Gracias a los laboratorios prácticos, pude prepararme para rendirlo”, afirmó Jones.

Los socios tuvieron mucho que ver en el desarrollo del examen de la certificación de Ingeniero asociado de la nube, que les permitirá ampliar el conocimientos sobre GCP en sus organizaciones y atender de manera directa la demanda creciente de tecnologías de Google Cloud. El entusiasmo de las respuestas de estos ante la noticia del examen representa un indicio de que la certificación actuará como catalizador de diferentes oportunidades para quienes den sus primeros pasos como profesionales en el ámbito de la nube.

“Nos entusiasma mucho la llegada de la certificación de Ingeniero asociado de la nube al mercado. Nos permite orientarnos hacia varios perfiles de funciones dentro de nuestra empresa, a fin de propiciar la expansión del conocimiento y de la experiencia en materia de tecnologías de Google Cloud dentro de nuestras diferentes ofertas de servicios administrados”.
-Luvlynn McAllister, Rackspace, directora, Estrategia de ventas y Operaciones comerciales

El examen de la certificación de Ingeniero asociado de la nube:
  • Dura dos horas.
  • Se recomienda para profesionales de TI con seis meses de experiencia en GCP.
  • Se encuentra disponible por una tarifa de registro de USD 125.
  • Se ofrece actualmente en inglés.
  • Se encuentra disponible en Next 2018 para asistentes registrados.

El equipo de capacitación de Google Cloud ofrece varias alternativas para ampliar tus conocimientos técnicos sobre Google Cloud. Súmate a nuestro seminario web el 10 de julio a las 10:30 a. m. para conocer, a través de algunos miembros del equipo que desarrollaron el examen, la diferencia entre esta certificación y otras de nuestro programa, y para saber cómo prepararte mejor. Si aún deseas verificar tu nivel de preparación, haz el examen de práctica en línea sin cargo. Para hallar más información sobre la capacitación sugerida y una guía del examen, visita nuestro sitio web. Regístrate hoy para hacer el examen.



Publicado por Larry Yang y Angela Ying, gerentes de Producto, Google Play

Las suscripciones en Google Play continúan experimentando un crecimiento enorme y la cantidad de suscriptores aumenta más de un 80% año tras año. En ...


Publicado por Larry Yang y Angela Ying, gerentes de Producto, Google Play

Las suscripciones en Google Play continúan experimentando un crecimiento enorme y la cantidad de suscriptores aumenta más de un 80% año tras año. En I/O 2018, anunciamos varias mejoras que aplicaremos a la experiencia del usuario a fin de reducir los obstáculos en la suscripción y más herramientas que te permitirán administrar tu negocio como lo desees.

Más control para los suscriptores


Si bien los usuarios obtienen gran valor a través de sus suscripciones, nuestras investigaciones muestran que el temor a quedar “atrapados” en una suscripción sin la posibilidad de cancelarla o la preocupación de perder el control de sus gastos representa un obstáculo para ellos a la hora de registrarse en tus apps con suscripción. Para abordar estas inquietudes, recientemente lanzamos un nuevo centro de suscripciones; una tienda integral para que los usuarios puedan administrar sus suscripciones en Google Play.



A través del centro de suscripciones, los usuarios pueden realizar lo siguiente:
  • Ver todas sus suscripciones para obtener información detallada y conocer su estado
  • Administrar y actualizar los métodos de pago, incluida la configuración de un método de pago de respaldo
  • Renovar una suscripción
  • Restaurar una suscripción cancelada
  • Cancelar una suscripción

Además, si un usuario cancela una suscripción, ahora activaremos una encuesta de cancelación para que los desarrolladores puedan recibir información sobre el motivo por el cual el usuario realiza la cancelación. Actualmente, puedes ver los datos de la encuesta de cancelación consultando nuestra API del servidor.



El nuevo centro de suscripciones también cuenta con un vínculo de “Primeros pasos” vacío que permite a los usuarios descubrir apps con suscripción a través de colecciones seleccionadas y localizadas.



Con el lanzamiento del centro de suscripciones, también lanzaremos nuevos vínculos directos que puedes usar para dirigir a tus usuarios de modo que administren las suscripciones desde tu app, por correo electrónico o a través de la Web. En la implementación, usa el nombre del paquete y la SKU para construir el vínculo directo, y luego agrega este último como botón o vínculo desde cualquier lugar de tu app. Consulta el sitio web para desarrolladores de Android si deseas más información.


Más control para ti


Además de crear una mejor experiencia para los usuarios, también implementaremos herramientas nuevas que te ofrecerán más flexibilidad en la administración de tu negocio. Una de las características que más se nos solicitaron son los cambios en los precios. Pronto podrás solicitar fácilmente a los usuarios que acepten un cambio de precios a través de la Google Play Console, sin necesidad de configurar una SKU completamente nueva. Google Play notificará el cambio al usuario mediante correo electrónico, notificaciones push y mensajes desde la app. Si al llegar la fecha de renovación este aún no da su aceptación, cancelaremos su suscripción. Regístrate aquí si quieres participar en el programa de acceso anticipado.

Entre otras características que lanzamos en I/O y te ayudarán a administrar mejor tu negocio con suscripciones se incluye la capacidad de:

Esto se suma a las renovaciones de prueba más rápidas y a los precios de presentación flexibles que anunciamos anteriormente este el año.

Para implementar fácilmente todo esto, asegúrate de usar la biblioteca de facturación de Google Play, presentada en su versión 1.1 en I/O. La biblioteca de facturación es una capa de abstracción que se agrega al archivo AIDL, y las actualizaciones de API se aplicarán automáticamente cuando actualices tu archivo de dependencias de compilación la próxima vez que compiles tu app. Los cambios en los precios y las actualizaciones o los pasos a versiones anteriores con la misma fecha de vencimiento solo están disponibles a través de la biblioteca de facturación. Así serán los próximos lanzamientos también.

Mejor para todos


Creemos que al crear una experiencia de usuario excelente creamos una base de suscriptores de alta calidad. Y al proporcionarte las herramientas y la información que necesitas para administrar mejor tu negocio, tendrás la flexibilidad de hacer lo que resulte mejor para tu negocio y tus clientes.

¿Cuán útil te resultó esta entrada de blog?





Dragon Ball Legends, un juego nuevo de Bandai Namco Entertainment (BNE) para dispositivo móviles, se basa en la popular franquicia de ...



Dragon Ball Legends, un juego nuevo de Bandai Namco Entertainment (BNE) para dispositivo móviles, se basa en la popular franquicia de Dragon Ball Z y, en este momento, se está implementando entre jugadores de todo el mundo. Sin embargo, la planificación de la infraestructura de nube para optimizar el juego data de febrero de 2017, cuando BNE alcanzó Google Cloud para abordar los desafíos interesantes que enfrentaban y la manera en que podríamos ayudar.

Según la demanda prevista, BNE tenía tres requisitos ambiciosos para su juego:
  1. Escalabilidad extrema: el juego se lanzaría de manera global, por lo que necesitaba un backend que pudiera escalarse con millones de jugadores y funcionar bien.
  2. Red global: debido a que el juego permite batallas de jugadores contra jugadores en tiempo real, necesitaba una red de latencia baja y confiable en las regiones.
  3. Análisis de datos en tiempo real: el juego está diseñado para evolucionar con los jugadores en tiempo real, de modo que fue fundamental disponer de una canalización de análisis de datos para la transmisión de estos al almacén de datos. Con esto, el equipo de operaciones puede medir y evaluar el modo en que la gente juega y ajusta el juego en el momento.
Tenemos mucha experiencia en las tres áreas. Google tiene varios servicios globales con más de mil millones de usuarios y usamos los datos que esos servicios generan para mejorarlos con el tiempo. Debido a que Google Cloud Platform (GCP) se ejecuta en la misma infraestructura que estos servicios de Google, los clientes de GCP pueden sacar provecho de las mismas tecnologías beneficiosas.

Veamos la manera en que BNE trabajó con Google Cloud a fin de compilar la infraestructura para Dragon Ball Legends.


Desafío n.º 1: Escalabilidad extrema

MySQL se usa ampliamente en empresas de juegos de Japón. Los ingenieros de allí están acostumbrados a trabajar con bases de datos relacionales con esquemas, consultas de SQL y una coherencia sólida. Esto simplifica mucho la tarea del lado de la aplicación; no hay necesidad de lidiar con limitaciones de las base de datos, como la coherencia eventual o la aplicación de esquema. Incluso fuera del ámbito de los juegos, MySQL se usa mucho y la mayoría de los ingenieros de backend tienen mucha experiencia en él.

Si bien MySQL ofrece muchas ventajas, tiene una gran limitación: la escalabilidad. De hecho, como se trata de una base de datos de escalamiento ascendente, si deseas aumentar el rendimiento de MySQL tienes que agregar más CPU, memoria RAM o capacidad de almacenamiento en disco. Cuando una única instancia de MySQL no pueda manejar la carga, podrás dividirla mediante fragmentación, separando usuarios en grupos y asignándoles varias instancias independientes de MySQL. Sin embargo, la fragmentación supone varios inconvenientes. La mayoría de los desarrolladores de juegos calculan el número de fragmentos que necesitarán para la base de datos antes del lanzamiento del juego, ya que volver a aplicar fragmentación es un trabajo intensivo y sujeto a errores. Eso hace que las empresas de videojuegos proporcionen abastecimiento excedente a la base de datos para que, de ser necesario, se puedan manejar más jugadores de los que esperaban. Si el juego es tan popular como se esperaba, todo está bien. Pero ¿qué sucede si el juego es un éxito arrollador y excede la demanda prevista? Y ¿qué sucede ante una larga cola con la que se prevé una reducción gradual de los jugadores activos? ¿Y si es el resultado es un fracaso absoluto? La fragmentación de MySQL no puede escalarse de forma dinámica, y el ajuste de su tamaño requiere mantenimiento y riesgos.

Lo ideal sería que las bases de datos puedan aplicar escalamiento dentro y fuera sin tiempo de inactividad y, a la vez, ofrecer las ventajas de una base de datos relacional. Cuando escuchamos que BNE consideraba aplicar fragmentación de MySQL a fin de manejar el tráfico masivo previsto para Dragon Ball Legends, sugerimos que en lugar de ello tuviera en cuenta Cloud Spanner.


¿Por qué Cloud Spanner?

Cloud Spanner es una base de datos relacional completamente administrada que ofrece escalabilidad horizontal y alta disponibilidad, y al mismo tiempo mantiene una coherencia sólida con un esquema similar al de MySQL. Lo que es mejor aún: como servicio administrado, Google SRE se encarga de su supervisión y lo cual elimina el mantenimiento de la base de datos y minimiza el riesgo de tiempo de inactividad. Creímos que Cloud Spanner ayudaría a BNE a dar alcance global a su juego.

Evaluación para la implementación

Antes de adoptar una tecnología nueva, los ingenieros siempre deben probarla para confirmar su rendimiento esperado en la realidad. Antes de reemplazar MySQL, BNE creó una instancia nueva de Cloud Spanner en GCP, incluidas algunas tablas con un esquema similar al que usaban en MySQL. Debido a que sus desarrolladores de backend usaban Scala para escribir, eligieron la biblioteca cliente Java para Cloud Spanner y escribieron código de ejemplo para cargar y probar Cloud Spanner. De ese modo, verían si podría satisfacer la demanda de consultas por segundo (QPS) para las operaciones de escritura de alrededor de 30 000 QPS como máximo. Trabajando con nuestro ingeniero de Clientes y con los equipos de ingeniería de Cloud Spanner, alcanzaron el objetivo fácilmente. Desarrollaron, incluso, su propio contenedor de DML (idioma de manipulación de datos) para escribir los comandos SQL como INSERT, UPDATE y DELETE.


Lanzamiento del juego

Completada la prueba de concepto, pudieron iniciar la implementación. Según los usuarios diarios activos (DAU) que se esperaban, BNE calculó la cantidad de nodos de Cloud Spanner que necesitaba (suficiente para todos los jugadores previamente registrados que esperaban). Para preparar el lanzamiento, organizaron dos pruebas beta cerradas a fin de validar su backend. ¡No tuvieron ningún problema con la base de datos! Finalmente, más de tres millones de participantes en el mundo se registraron previamente para Dragon Ball Legends e incluso con este gran número el juego se lanzó de manera oficial sin errores.

Para resumir, BNE se puede concentrar en mejorar el juego en lugar de pasar tiempo haciendo funcionar sus bases de datos.

Desafío n.º 2: Red global

Ahora veamos el segundo desafío de BNE: compilar un juego global de jugadores contra jugadores (PvP) en tiempo real. El objetivo de BNE en el caso de Dragon Ball Legends fue permitir que todos los jugadores jugaran unos contra otros en cualquier lugar del mundo. Quien sabe algo sobre redes piensa de inmediato en los desafíos de latencia. El tiempo de ida y vuelta (RTT) entre Tokio y San Francisco, por ejemplo, promedia los 100 ms. Para abordar esto, decidieron dividir cada segundo de juego en intervalos de 250 ms. De esta manera, aunque parezca desarrollarse en tiempo real para los usuarios, el juego es en realidad de turnos rápidos en su esencia (puedes leer más sobre la arquitectura aquí). Si bien algunos pueden decir que 250 ms ofrecen mucho lugar para la latencia, es muy difícil predecir la latencia para la comunicación a través de Internet.


¿Por qué redes de nube?

A continuación, se muestra lo que ve un cliente de juegos para acceder al servidor de un juego en GCP a través de Internet. Debido a que el número de saltos puede variar en cada ocasión, esto significa que la experiencia de juego en la modalidad PvP a veces puede percibirse como rápida o lenta.

Uno de los principales aspectos por los cuales BNE decidió usar GCP para el backend de Dragon Ball Legends fue la red dedicada de Google. Como puedes ver en la siguiente imagen, cuando se usa GCP, una vez que el cliente accede a uno de los cientos de puntos de presencia (POP) de GCP en todo el mundo se encuentra en la red dedicada de Google. Eso significa que no hay saltos impredecibles, lo que garantiza predictibilidad y la menor latencia posible.

Aprovechar la Google Cloud Network

Por lo general, las empresas de videos juegos implementan PvP conectando dos jugadores directamente o a través de un servidor de juegos dedicado. Generalmente, para los juegos de lucha que requieren una baja latencia entre jugadores se prefiere la comunicación P2P. En general, cuando dos jugadores se encuentran en puntos geográficos cercanos, la comunicación P2P funciona muy bien, pero a menudo no es confiable cuando intentas comunicarte en varias regiones (algunos proveedores incluso bloquean los protocolos P2P). Para que dos jugadores de dos continentes diferentes se puedan comunicar a través de la red dedicada de Google, los jugadores primero intentan comunicarse mediante protocolos P2P y, si eso falla, realizan conmutaciones por error a una implementación de código abierto de servidor STUN o TURN llamada coturn, que actúa como una retransmisión entre los dos jugadores. De ese modo, para las batallas entre continentes se aprovechan la baja latencia y la red de Google confiable tanto como sea posible.

Desafío n.º 3: Análisis de datos en tiempo real

El último desafío de BNE tuvo que ver con el análisis de datos en tiempo real. BNE quiso ofrecer la mejor experiencia de usuario a sus fanáticos y una manera de hacerlo fue a través de las operaciones de juegos en vivo, o LiveOps, en las cuales los operadores aplican cambios constantes al juego para que parezca actualizado. Para entender las necesidades de los jugadores, necesitaban datos; por lo general, datos de registro de acciones de los usuarios. De poder obtener estos datos casi en tiempo real, podrían tomar decisiones sobre los cambios que aplicarían al juego para aumentar la satisfacción y el captación de los usuarios.

Para reunir estos datos, BNE usó una combinación de Cloud Pub/Sub y Cloud Dataflow para transformar los datos de los usuarios en tiempo real e insertarlos en BigQuery.
  • Cloud Pub/Sub ofrece un sistema de mensajería confiable a nivel mundial que carga en búfer los registros hasta que se puedan manejar a través de Cloud Dataflow.
  • Cloud Dataflow es un servicio de procesamiento paralelo completamente administrado que te permite ejecutar ETL en tiempo real y en paralelo.
  • BigQuery es el almacén de datos completamente administrado donde se almacenan todos los registros del juego. Debido a que BigQuery ofrece almacenamiento en petabytes, el escalamiento no fue una preocupación. Gracias al procesamiento pesado en paralelo para la consulta de los registros, BNE puede obtener una respuesta a una consulta al escanear terabytes de datos en unos segundos.
Este sistema permite que un productor de juegos pueda ver el comportamiento de un jugador casi en tiempo real y tomar decisiones sobre características nuevas que se incorporarán al juego o cambios que se le aplicarán para satisfacer a todos los seguidores.

Conclusiones

Mediante Cloud Spanner, BNE se concentró en desarrollar un juego sorprendente en lugar de pasar tiempo planeando y escalando la capacidad de la base de datos.

En cuanto a las operaciones, con el uso de una base de datos escalable completamente administrada, BNE redujo drásticamente los riesgos relacionados con errores humanos con una sobrecarga de operaciones.

Mediante Cloud Networking, BNE aprovechó la red dedicada de Google y ofreció la mejor experiencia de usuario para sus fanáticos, incluso en luchas en diferentes regiones.

Finalmente, el uso de la pila de análisis de Google (Cloud PubSub, Cloud Dataflow y BigQuery) permitió a BNE analizar los comportamientos de los jugadores casi en tiempo real y tomar decisiones sobre la forma de ajustar el juego para hacer que sus fanáticos estuvieran aun más satisfechos.

Si quieres más información sobre la manera en que BNE evaluó y adoptó Cloud Spanner para su juego, únete a ellos en su sesión de Google Cloud NEXT 2018, en San Francisco.





Hicimos que Shadow Reader sea más rápido y simple para los motores de búsqueda!

Creamos Shadow Reader para demostrar la forma en que se pueden usar las páginas AMP dentro de una app web progresiva (AWP) (lee nuestra publicación de anuncios para obtener más información). El sitio convierte los artículos existentes de The Guardian en una experiencia inmersiva de lectura de noticias. Es mucho más que una demostración; está pensado para ser un sitio completamente funcional. Contiene el código integral que se necesita para combinar de manera eficaz AMP y AWP, ¡y está listo para la producción!


SEO para contenido generado con JS


Como en cualquier aplicación respetable de una sola página, la carga útil de HTML inicial de Shadow Reader es pequeña. Es un shell de app delgado que se carga de manera rápida y ofrece al usuario algo para observar mientras JavaScript carga el contenido principal. Este enfoque ofrece una buena experiencia de usuario.

Desafortunadamente, también puede representar un desafío para los motores de búsqueda. Google intentará ejecutar JavaScript para indexar lo que se muestra al usuario en última instancia, no solo el HTML inicial. Sin embargo, muchos motores de búsqueda no lo hacen o lo hacen de manera poco confiable. En otros términos, no es seguro depender de un motor de búsqueda para ejecutar con éxito tu JavaScript. Y si un motor de búsqueda solo detecta un shell de la app, menos la mayoría o todo el contenido, no podrá indexar de modo apropiado la página.

¿No sería positivo que las páginas de artículos de Shadow Reader ofrecieran motores de búsqueda con texto incluido directamente en HTML?  ¿No sería genial si ese proceso no retardara la representación sino más bien nos brindara una alternativa para presentar esas páginas a los usuarios nuevos en menos de un segundo?

Resulta que podemos hacer ambas cosas presentando la versión de AMP de artículos a los usuarios nuevos.  Después de todo, un rastreador web aparece como un usuario nuevo para un servidor. ¿Cómo lo logramos?


AMP⇒AWP


Lo hicimos implementando un patrón AMP⇒AWP. Aquí te mostramos cómo funciona.

Para un usuario nuevo:
  • Cuando un usuario nuevo visita una página de artículos, presentamos la versión AMP del artículo.
  • La AMP usa <amp-install-serviceworker> para cargar e instalar el service worker.
  • El service worker carga y almacena en caché el shell de la app.
  • En la navegación de la página siguiente, el service worker tiene el control y dirige sutilmente al usuario a la AWP de esa página.

Para un usuario existente, simplemente presentamos la AWP.

Esta es la diferencia de tratamiento que nuestro sitio ofrece a los usuarios nuevos y existentes en la misma URL. Para los usuarios existentes, el service worker está instalado. Cuando el service worker detecta la URL de un artículo, presenta su versión almacenada en caché de la AWP.

¿Cómo se ejecuta esto en Shadow Reader?  Digamos que un usuario primero visita esta página de artículos:
https://amp.cards/theguardian/us/amazing_article

Al ver la URL de un artículo, el servidor muestra la versión AMP de este, pero esta instala un service worker cuando el artículo se carga. El service worker, que usa la biblioteca de Workbox, contiene esta línea:
workboxSW.router.registerNavigationRoute('index.html')

Esto significa que, cada vez que el usuario navega hasta una URL nueva en este dominio, el service worker detecta esta solicitud y en lugar de pasarla al servidor simplemente presenta su versión almacenada en caché de index.html. Es nuestra AWP.

Por ello, si el usuario hace clic en un vínculo a
https://amp.cards/theguardian/us/another_article

el service worker presenta el HTML de AWP en caché. ¡Pero la URL no se modifica!  De esta manera, cuando la AWP observa la URL para analizar el artículo que se solicita, detecta el vínculo que solicitó el usuario y puede cargar el artículo correcto en la AWP.

Posteriormente, cada vez que el usuario solicite un vínculo de Shadow Reader, el service worker estará instalado y presentará la AWP almacenada en caché.

Debido a que un rastreador web no nos permite instalar un service worker, siempre recibe el artículo AMP.



A continuación, se muestra ese flujo en un bonito diagrama:



Para un usuario nuevo:
  1. El navegador solicita la URL de un artículo desde el servidor. El servidor muestra una versión de AMP del artículo que incluye <amp-install-serviceworker>.
  2. JS del serviceworker de AMP hace que el navegador solicite el service worker. El servidor envía JS del service worker al navegador. El navegador instala el service worker y lo inicia.
  3. El service worker envía al servidor una solicitud para el shell de la app AWP. El servidor envía esos recursos al service worker, que los almacena en caché.

Para un usuario existente:
  1. El navegador envía una solicitud de una URL de artículo. Esta solicitud es interceptada por el service worker. El service worker muestra la AWP almacenada en caché al navegador.
  2. La AWP solicita el artículo de AMP. Esta solicitud alcanza el servidor, que muestra el artículo de AMP a la AWP. La AWP procesa y muestra ese artículo.

Recuerda que un rastreador web siempre es un usuario nuevo.


Lo que viene


Ahora que Shadow Reader tiene su propio servidor, tenemos algunas COSAS POR HACER:
  • En el futuro, podríamos renunciar a YQL usando simplemente el feed de RSS de Guardian de forma directa.
  • También debemos reemplazar los principales vínculos de navegación de Guardian por los vínculos de Shadow Reader.
  • Solicitamos al caché de AMP que descargue y ejecute por completo Shadow Reader en un iframe: <amp-install-serviceworker data-iframe-src=”https://amp.cards/index.html“>. Puede ser mejor para el usuario ocasional especificar una página más pequeña como alternativa.
  • Backend.js ahora se usa en el servidor al igual que el front end, y el modo en el que lo hacemos es un poco rústico. ¿Tal vez debamos refactorizar nuestro código para usar los módulos ECMAScript?

Prueba esto, consulta el código en github y trasmítenos tu opinión.  Queremos saber cómo estás probando los patrones AMP y AWP en tu propio sitio y nos encantaría conocer tus ideas para mejorar Shadow Reader.



Publicado por Ben Morss, representante de desarrolladores, Google

Shadow Reader mejorado




¿Ejecutas y administras aplicaciones en Google Cloud Platform (GCP)? ¿Tienes que agrupar o clasificar tus recursos de GCP para satisfacer demandas vinculadas al cumplimiento? ¿Tienes que manejar el tráfico desde y hacia una VM, controlar recursos específicos o ver esos recursos por cuenta de facturación? Si tu respuesta a cualquiera de estas preguntas es afirmativa, te pondrá contento saber que el GCP ofrece varias maneras de anotar tus recursos para poder realizar un seguimiento más sencillo de ellos: marcas de seguridad, etiquetas y etiquetas de red.



¿Ejecutas y administras aplicaciones en Google Cloud Platform (GCP)? ¿Tienes que agrupar o clasificar tus recursos de GCP para satisfacer demandas vinculadas al cumplimiento? ¿Tienes que manejar el tráfico desde y hacia una VM, controlar recursos específicos o ver esos recursos por cuenta de facturación? Si tu respuesta a cualquiera de estas preguntas es afirmativa, te pondrá contento saber que el GCP ofrece varias maneras de anotar tus recursos para poder realizar un seguimiento más sencillo de ellos: marcas de seguridad, etiquetas y etiquetas de red.

Aunque cada anotación tiene una funcionalidad y un alcance diferentes, no son mutuamente exclusivos y, a menudo, los usarás combinados para cumplir con requisitos. Usa este diagrama de flujo como ayuda para elegir la anotación que corresponda.

Observemos en mayor detalle cada tipo de anotación.

Tipo de anotación: Marcas de seguridad

Las marcas de seguridad, o marcas, te ofrecen una manera de anotar recursos y luego realizar búsquedas e implementar selecciones o filtros usando la marca a través del Cloud Security Command Center (Cloud SCC)

Casos de uso:
A continuación, te mostramos los principales casos de usos para marcas de seguridad:
  • Clasificación y organización de recursos y resultados independientes de mecanismos de etiquetas de niveles de recursos, incluidas agrupaciones con varios elementos superiores
  • Habilitación del seguimiento de severidad y prioridad de infracciones
  • Integración con sistemas de flujo de trabajo para la asignación y la resolución de incidentes
  • Habilitación del cumplimiento de políticas diferenciadas en recursos, proyectos o grupos de proyectos
  • Mejoramiento de estadísticas centradas en la seguridad para tus recursos; p. ej., aclarar los depósitos de acceso público que cumplen con la política y los que no lo hacen
Ten en cuenta que las etiquetas de Cloud para los recursos compatibles asociados también aparecen y se indexan a través de Cloud SCC, a fin de que puedas usar la lógica de automatización para crear o modificar marcas en base a los valores de las etiquetas y las marcas de los recursos existentes.

Uso:
Las marcas son pares clave-valor clave que son compatibles con varios recursos. Proporcionan una vista de los recursos compatibles centrada en la seguridad y solo se pueden ver desde Cloud SCC. Para el acceso al inventario orientado a la edición o la vista de recursos en Cloud SCC y las marcas asociadas se requiere una función de IAM de securityCenter.editor, independientemente de las funciones y los permisos del recurso subyacente. Puedes establecer marcas en el nivel de la organización o el nivel de proyectos o para recursos individuales que admitan marcas. Para trabajar con marcas, puedes usar cURL, REST API, la biblioteca de Python de Cloud SCC o la página de inventario de recursos de Cloud SCC seleccionando los recursos a los que desees aplicar una marca, y luego agregando los elementos de pares clave-valor.

Qué puedes anotar:
Una marca válida que cumpla con los siguientes criterios:
  • En la versión alpha, las claves tienen una extensión mínima de 1 carácter y una máxima de 63 caracteres, y no pueden estar vacías. En las versiones beta y GA, las claves se extenderán para admitir hasta 256 caracteres y el valor puede tener un máximo de 4096 caracteres.
  • Los valores y las claves pueden contener solo minúscula, caracteres numéricos, guiones bajos y guiones. Todos los caracteres deben usar codificación UTF-8 y pueden incluir caracteres internacionales.
Puedes encontrar una lista de recursos actualizada que se puede anotar mediante marcas aquí.

Tipo de anotación: Etiquetas

Las etiquetas son pares clave-valor compatibles con varios recursos de GCP. Puedes usar etiquetas para realizar un seguimiento de tu gasto en datos de facturación exportados. También puedes usar etiquetas para filtrar y agrupar recursos para otros casos de usos; por ejemplo, para identificar todos esos recursos que se encuentran en un entorno de prueba, en contraposición a los que se encuentran en producción.

Aquí te proporcionamos una lista de todo lo que puedes hacer con las etiquetas:
  • Identificar recursos empleados por los equipos separados o los centros de costos
  • Distinguir entornos de implementación (prueba, control de calidad, etapa y producción)
  • Identificar propietarios y etiquetas del estado
  • Dar uso para fallas en asignaciones de costos e intervalos de facturación
  • Controlar grupos de recursos a través de Stackdriver, que pueden usar etiquetas accesibles en los metadatos de recursos
Uso:
Una etiqueta válida cumple con los siguientes criterios:
  • Cada etiqueta debe tener un par clave-valor.
  • Las claves tienen una extensión mínima de 1 carácter y una máxima de 63 caracteres, y no pueden estar vacías. Los valores no pueden estar vacíos y deben tener una extensión máxima de 63 caracteres.
  • Los valores y las claves pueden contener solo minúscula, caracteres numéricos, guiones bajos y guiones. Todos los caracteres deben usar codificación UTF-8 y pueden incluir caracteres internacionales.
  • La parte que corresponde a la clave en una etiqueta debe ser única. Sin embargo, puedes usar la misma clave con varios recursos. Las claves deben empezar con una letra minúscula o un carácter internacional.
Consulta los recursos compatibles para obtener información sobre cómo aplicar etiquetas y a qué las puedes aplicar. Por ejemplo, BigQuery te permite agregar etiquetas a tus tablas, vistas y conjuntos de datos mientras que Cloud Storage te permite agregar etiquetas a los depósitos. Puedes agregar etiquetas a tus proyectos pero no a tus carpetas.

Los permisos que necesitas para agregar etiquetas a los recursos se determinan producto por producto. Por ejemplo, BigQuery requiere el permiso bigquery.datasets.update para modificar etiquetas en los conjuntos de datos. El propietario del conjunto de datos tiene este permiso de forma predeterminada, pero también puedes asignar en el nivel del proyecto las funciones de IAM predefinidas bigquery.dataOwner y bigquery.admin, que incluyen este permiso. También puedes agregar etiquetas a las tablas y vistas. Para esta acción se requiere el permiso bigquery.tables.update. La asignación de los roles de IAM predefinidos en el nivel de proyecto bigquery.dataOwner, bigquery.dataEditor o bigquery.admin otorga este permiso. El propietario del conjunto de datos tiene permisos completos respecto de las tablas y las vistas que contiene el conjunto de datos.

Qué puedes etiquetar:
Aquí podrás encontrar una lista actualizada de productos de GCP que admiten etiquetas. Luego, puedes inspeccionar la documentación de cada producto para obtener más información.

Ten en cuenta que puedes etiquetar instancias, pero si las anotas para administrar el tráfico de red debes usar etiquetas (consulta a continuación) como alternativa.

Tipo de anotación: Etiquetas de red

Las etiquetas de red se aplican a instancias y representan el medio para controlar el tráfico de red desde y hacia una instancia de VM. En las redes de GCP, las etiquetas identifican las instancias de VM que se encuentran sujetas a reglas de firewalls y rutas de redes. Puedes usar las etiquetas como valores de origen y destino en las reglas de firewall. Para las rutas, se usan etiquetas a fin de identificar qué instancias aplica una ruta determinada.

Uso:
Usar etiquetas significa crear una aislamiento adicional entre subredes permitiendo, de modo selectivo, que solo ciertas instancias se comuniquen. Si permites que todas las instancias en una subred compartan la misma etiqueta, puedes especificar esa etiqueta en las reglas de firewall para simular un firewall por subred. Por ejemplo, si tienes una subred llamada “subred-a”, puedes etiquetar a todas las instancias de una subred-a con la etiqueta “mi subred-a” y usar esa etiqueta en las reglas de firewall como una fuente o destino.

Las etiquetas se pueden agregar o quitar desde una instancia usando comandos de gcloud, Cloud Console o llamadas de API. El siguiente comando gcloud agregará las etiquetas de “producción” y “web” a una instancia
gcloud compute instances add-tags [INSTANCE_NAME] --tags production,web
Puedes establecer reglas de firewall usando comandos de gcloud y la Console. El siguiente comando de gcloud establece una regla de firewall usando etiquetas en el origen y el destino. Permite el tráfico de la producción web con etiquetas de instancias a datos de registro con etiquetas de instancias a través del puerto TCP 443.
gcloud compute firewall-rules create web-logdata \
    --network logging-network \
    --allow TCP:443 \
    --source-tags web-production \
    --target-tags log-data
En el caso de las rutas, se usan etiquetas para identificar las instancias a las que se aplica una ruta determinada. Por ejemplo, puedes crear una ruta que se aplique a todas las instancias de VM etiquetadas con la VPN de strings. Puedes fijar rutas usando comandos de gcloud o la Console. El siguiente comando de gcloud crea una ruta llamada my-route en una red llamada my-network que restringe la ruta de modo que se aplique únicamente a instancias con las etiquetas “web-prod” o “api-gate-prod”.

gcloud compute routes create my-route --destination-range 10.0.0.0/16 \
--network my-network [--tags=web-prod,api-gate-prod]
Sin embargo, la modificación de las etiquetas de red está disponible para cualquier persona de tu organización que tenga la función Compute InstanceAdmin dentro del proyecto en el cual se creó la red. Puedes crear un rol personalizado con permisos más restringidos que inhabilitan la capacidad de configurar las etiquetas en instancias eliminando el permiso compute.instances.setTag desde la función Compute InstanceAdmin. En lugar de usar las etiquetas y las funciones personalizadas para evitar que los desarrolladores ajusten etiquetas (y, por lo tanto, habiliten una regla de firewall en sus instancias), usa cuentas de servicio. A menos que tengan acceso a las cuentas de servicio administradas de manera central correspondientes, no podrán modificar la regla. Consulta cuentas de servicio vs. etiquetas para determinar si las restricciones en el uso de las cuentas de servicio para las reglas de firewall son aceptables.

Los valores de las etiquetas deben cumplir con los siguientes criterios:
  • No puede contener más de 63 caracteres cada uno.
  • Solo puede tener letras en minúscula, caracteres numéricos y guiones.
  • Debe comenzar y terminar con un número o un carácter en minúscula.

Marcas, etiquetas y etiquetas de red a simple vista

A modo de repaso, aquí te mostramos una tabla en la que se resumen los casos de uso común y las anotaciones asociadas.

Caso de uso
Anotaciones obligatorias
Notas
Hacer inventario de los recursos GCP
Marcas de seguridad
Etiquetas
Las etiquetas actualmente son compatibles con un rango más amplio de recursos que las marcas de seguridad. La vista de Cloud SCC de tus recursos incluye, como propiedades de estos, las etiquetas y las marcas que has aplicado. Puedes aplicar más marcas de seguridad ACL’d para controlar la organización y la filtración del amplio conjunto de recursos, marcas y etiquetas.
Clasificación o agrupación de datos y recursos de GCP en grupos lógicos, como entornos de producción o desarrollo para casos de uso sin ACL’d
Etiquetas

Clasificación o agrupación de datos y recursos de GCP en grupos, como entornos de producción o desarrollo para casos de uso de seguridad
Marcas de seguridad
Úsalas cuando quieras que el control de los grupos esté en un nivel de organización o no esté específicamente bajo el control del propietario de los recursos.
Agrupación y clasificación de recursos confidenciales u organización de recursos para la atribución en casos de uso de seguridad
Marcas de seguridad
Las marcas de lectura y configuración se restringen a las funciones específicas de Cloud SCC
Desglose de facturación y asignación de costos
Etiquetas

Administración del tráfico de red desde y hacia las instancias
Etiquetas
Cualquier persona de tu organización que tenga la función Compute InstanceAdmin puede modificar las etiquetas de redes.
Supervisión de agrupaciones de recursos relacionados para tareas operativas
Etiquetas

Usadas con grupos de recursos de Stackdriver
Supervisión de agrupaciones de recursos relacionados o descubrimientos para evaluaciones de riesgo de seguridad, administración de vulnerabilidad y detección de amenazas
Marcas de seguridad
Se usa en Cloud SCC

En sus marcas, preparados, ya

Si administras un entorno grande y complejo, sabes lo difícil que puede ser dar seguimiento a todos tus recursos de GCP. Esperamos que las marcas de seguridad, las etiquetas convencionales y las etiquetas de red puedan facilitar esa tarea un poco más. Para obtener más información sobre los recursos de seguimiento en GCP, consulta esta guía práctica sobre la creación y administración de etiquetas. Visita también este espacio para obtener más trucos secretos que te permitirán administrar recursos de GCP como un profesional.




Google tiene el compromiso de brindar asistencia a organizaciones con programas públicos que proporcionan acceso a nuestros productos, personas y recursos. Nos enorgullece asistir a organizaciones como ...
 


Google tiene el compromiso de brindar asistencia a organizaciones con programas públicos que proporcionan acceso a nuestros productos, personas y recursos. Nos enorgullece asistir a organizaciones como Code.org, Charity:water y Hostelling International, entre otras, para conectar a personas y recursos, y ayudar a visualizar el impacto que sus organizaciones tienen en las comunidades a las que brindan servicios.
Charity:water creó una nueva alternativa para que los donantes vean con exactitud el destino final de su dinero.
Con el lanzamiento de Google Maps Platform, ahora podemos ofrecer Google Maps Platform a las startups, los servicios de respuesta ante crisis y las nuevas organizaciones, además de las organizaciones sin ánimo de lucro, a precio reducido o sin costo. También aumentaremos nuestra disponibilidad de 7 a 50 países para poder brindar asistencia a más comunidades y programas en el mundo.
Falling Fruit ayuda a recolectores urbanos a encontrar productos estacionales en sus vecindarios.
Las organizaciones que reúnen las condiciones pueden solicitar créditos de Google Maps Platform para contribuir a los esfuerzos de sus organizaciones. Podrás hallar más información sobre la elegibilidad y la forma de realizar solicitudes en nuestra página Información sobre programas públicos. Si formas parte de una organización sin ánimo de lucro, un servicio de respuesta ante crisis o una organización de medios de comunicación, esperamos que aproveches estos programas y solicites créditos de Google Maps Platform hoy.




Recientemente, anunciamos que App Maker se encontraba disponible a nivel general. App Maker es un nuevo entorno de desarrollo de código reducido orientado a G Suite que te permite compilar una amplia variedad de apps para tu negocio y personalizar procesos a fin de lograr una mayor eficiencia.



Recientemente, anunciamos que App Maker se encontraba disponible a nivel general. App Maker es un nuevo entorno de desarrollo de código reducido orientado a G Suite que te permite compilar una amplia variedad de apps para tu negocio y personalizar procesos a fin de lograr una mayor eficiencia.

Compilar apps en App Maker es sencillo. Puedes definir de forma declarativa los datos de backend de tu app, diseñar visualmente una IU, agregar comportamientos personalizados con Code (opcional) y publicar tu app rápidamente.

Para familiarizarte, aquí te mostramos una explicación de las características de desarrollo de la app principal de App Maker.

Compilar tu backend de datos 

Con App Maker, se crean modelos de datos de backend de manera declarativa, para que no debas preocuparte por escribir mucho código de base de datos. Dentro de los modelos de datos de App Maker compatibles se incluye lo siguiente:
  • De Cloud SQL: se conecta a Google Cloud SQL (se necesita una cuenta de GCP). 
  • Calculado: modelo virtual computado a través de secuencias de comandos o SQL. También se puede conectar a datos externos (JDBC o REST). 
  • De directorios: obtiene tus datos organizativos.

Para compilar campos de modelos de datos, puedes hacerlo desde cero, o bien usar un CSV existente o una hoja de cálculo de Google.
Después de definir la estructura de tu modelo de datos, puedes insertar reglas de validación para limitar los datos que se pueden guardar.
Compilar relaciones (uno a varios y varios a varios, entre otras) entre modelos de datos es sencillo en el editor de relaciones de App Maker.
El editor del modelos de App Maker también proporciona otras características diferentes, entre las que se incluyen la configuración de consultas y filtros personalizados, la protección del acceso de datos conforme a funciones y la activación de ejecución basada en eventos de datos. Para obtener más información, consulta la documentación sobre modelos de datos.

Diseñar tu IU 

App Maker te ayuda a optimizar el desarrollo de la IU proporcionando un entorno de diseño visual en el que puedes arrastrar elementos de IU (Widgets) y soltarlos en un lienzo, y configurar propiedades de widgets usando un editor de propiedades. Si lo deseas, también hay asistentes útiles de generación de IU que pueden crear estructuras de IU listas para usar, entre las que se incluyen formularios para edición o inserción, tablas y diferentes cuadros para acelerar el desarrollo de la IU.
La apariencia de la IU se rige mediante CSS, en cuyo ámbito el valor predeterminado es el estándar de material design de Google. En el editor hay disponibles distintas variantes de estilo, para que el autor pueda alternar fácilmente la representación de un widget a través de un menú desplegable o de la edición con CSS.

La IU se conecta con los datos de backend a través de la característica de vinculación de datos de App Maker, que permite a un autor conectar propiedades de widgets con campos de modelos de datos.

La combinación del diseño visual, la vinculación de datos y los ajustes de estilo de IU de CSS, con Google Material como opción predeterminada, contribuyen a una experiencia productiva de creación de IU. Para acceder a una cobertura completa de los conceptos de IU de App Maker, consulta la documentación de IU.

Mejorar tus apps con código 

Aunque App Maker hace el trabajo pesado cuando se trata de comunicaciones de bases de datos y diseño de IU, a veces es necesario personalizar los comportamientos de las aplicaciones. Aquí entra en acción la característica de secuencias de comandos de App Maker.

El lenguaje de programación usado por App Maker es JavaScript, que se usa en el navegador (cliente) o el servidor. El entorno de tiempo de ejecución del servidor es Apps Script, que proporciona acceso a una vasta biblioteca de servicios de G Suite para operaciones comunes con Gmail, Documentos, Hojas de cálculo, Calendario y otros servicios.

App Maker optimiza el proceso de escritura de código al proporcionar un editor de código intuitivo equipado con una práctica característica de compleción de código.
Además, App Maker proporciona resalte de errores con una característica interactiva que indica errores y advertencias. Para obtener más información sobre temas de codificación de App Maker, consulta estos documentos de programación.

Obtener una vista previa de tu app y publicarla 

Por último, App Maker proporciona una característica de vista previa fácil de usar con la que puedes probar tu app por tu cuenta. Para el momento en que estés listo y puedas compartir tu app con los usuarios, App Maker proporciona una característica abarcadora de publicación (o implementación). Para obtener más información sobre la vista previa y publicación de apps, consulta la guía de publicación.

Prueba App Maker hoy 

Ahora que tienes una idea general de las características de App Maker, dirígete al codelab de App Maker. Nota: Necesitarás tener el App Maker habilitado en tu dominio a través de G Suite Business o Enterprise, o G Suite for Education.
Para obtener más información sobre App Maker, visita developers.google.com/appmaker o mantente al tanto para obtener más información.

Google Launchpad Haití
Google Launchpad Haití
Google Launchpad Haití
Google Launchpad Haití

El devastador terremoto de 2010, y el huracán Matthew, en 2016, son solo los últimos de una enorme lista de desastres naturales por los que ha pasado Haití. Sin embargo, un grupo de emprendedores del país está metiendo todo su empeño en crear productos digitales en el país que ayuden a su población y le den un impulso a su economía.

Por eso, en abril pasado, Google realizó su primer Launchpad Start en Haití, donde 27 emprendedores de 10 startups de sectores como retail, banca o servicios médicos participaron de 10 sesiones de capacitación, en la que recibieron ideas y formación por parte de 35 mentores y emprendedores de talla global, que les permitirán impulsar sus empresas y generar un impacto positivo en su país.

Google Launchpad Haití
Google Launchpad Haití

“Los emprendedores haitianos enfrentan muchos retos para hacer crecer sus negocios,” explica Naïsha Silva, una googler haitiano-estadounidense que fue mentora de una de las sesiones.
“El primero es que no tienen un acceso económico a internet. El segundo, que no pueden formar o entrenar mandos medios, como supervisores o administradores. El tercero es que les es difícil acceder a prácticas de product management y branding que les permitan crear productos atractivos internacionalmente.”

Por eso, los talleres se concentraron en las áreas más críticas para los emprendedores digitales: UI/UX,  producto, finanzas, marketing y por supuesto tecnología. Además de las sesiones 1 a 1 y de las conferencias, en las que los emprendedores tuvieron la oportunidad de recibir asesoría personalizada sobre sus productos, al final pudieron hacer una ronda de pitches con inversionistas.

Google Launchpad Haití
Google Launchpad Haití


Además de eso, Google puede ofrecerles a los emprendedores “acceso a herramientas, recursos e información que les permitirá aprender más por sí mismos” —explica Silva— por medio de recursos propios o traducciones al francés o al creolé de contenidos que no se pueden conseguir de otra manera.

Para los mentores, la experiencia fue muy particular. “Poder platicar, colaborar y apoyar como mentor a emprendedores en un país con tantas carencias es un reto muy diferente comparado con eventos similares de Google Launchpad o startups de otros países, pero no por eso les falta entusiasmo y ganas de crear productos y servicios,” dijo Mauricio Angulo, un Google Expert Developer que dirigió una sesión de mentoría.

En el lanzamiento, además, participaron unas 300 personas, entre emprendedores, periodistas e interesados. El evento fue hecho en colaboración con BANJ, la comunidad de emprendedores más importante del país.