La computación en la nube está avanzando a una escala y velocidad tan impactantes que es difícil mantenerse al día con todas las novedades. De hecho, pareciera que cada semana un proveedor de la nube pública anuncia una nueva función que permitirá ejecutar tus aplicaciones y almacenar tus datos de forma más amplia, confiable o segura. Y no siempre es fácil saber por dónde empezar.
El equipo de servicios profesionales de Google Cloud fue creado para ayudar a nuestros clientes a llegar a los servicios de la nube con éxito. En el proceso, hemos visto el tipo de errores que pueden poner a organizaciones en peligro, así como los patrones que se desarrollan cuando otras empresas tienen éxito. Más recientemente, hemos notado un cambio en los resultados con respecto a lo que nuestros clientes desean lograr con la nube. Durante la primera década, llegar a la nube consistía en iniciativas de reducción de costos tácticos: crear un "desastre por menos dinero". En los últimos años, nuestros clientes han comenzado a hacernos preguntas mucho más específicas, estratégicas y visionarias: "¿cómo puedo usar el aprendizaje automático para brindar un mejor servicio?", "¿cómo implemento la planificación de inventario predictivo?"  o "¿cómo habilito los precios dinámicos?".
Estos son los tipos de preguntas que nos encanta recibir en Google, y queremos ayudarte a responderlas. Sin embargo, llegar al punto en que tu organización pueda prosperar en la nube suele requerir de una transformación profunda e integral, lo que podría ser algo difícil de asimilar. Y si eres tú quien lidera esa transformación, ser capaz de comunicar tu plan de una manera simple y lógica es fundamental para inspirar confianza en tu visión.
Por todas estas razones y más, decidimos desarrollar el marco de trabajo para adoptar Google Cloud. Basado en nuestra experiencia de trabajo con clientes empresariales, este marco puede ayudarte a determinar en qué tramo de la migración a la nube te encuentras, así como también dónde te gustaría estar.
Aunque compartimos una amplia gama de ideas en nuestro marco de trabajo, una de las más importantes es la siguiente: empezar a trabajar en la nube se trata de encontrar el equilibrio adecuado.
En nuestra base de clientes, hemos detectado dos tipos de culturas empresariales recurrentes. Por ejemplo, muchos de nuestros usuarios nativos de la nube tienen un sesgo de acción. Realizan muchas tareas de forma eficiente: autosuficiencia para llevar las cargas de trabajo a la producción, equipos altamente colaborativos, y aprendizaje y experimentación continuos, por solo nombrar algunas. Sin embargo, en su deseo de avanzar rápido, hemos visto que algunos subestiman el valor de hacer las cosas bien desde el principio para contener la inevitable expansión de datos y recursos de cómputo. Esta omisión no solo aumenta los costos mensuales de hosting en la nube, sino que también puede generar desafíos de seguridad y privacidad de datos a largo plazo. En este caso, han priorizado la velocidad a corto plazo por sobre la sostenibilidad a largo plazo.
También ocurre lo opuesto en muchas empresas nuevas que migran a la nube. Estas compañías suelen inclinarse por replicar su eficiente y conocido modelo operativo en la nube, además de dedicar mucho tiempo a diseñar procesos y políticas (que son importantes), pero no se enfocan en mover las cargas de trabajo reales a la nube. Sin las cargas de trabajo de producción, no desarrollan la experiencia necesaria para administrar casos prácticos críticos y empresariales cada vez más complejos. Y, sin éxito desde el principio, pueden ser reacios a aumentar la inversión y, en última instancia, su estrategia pierde impulso.
Lo ideal es equilibrar el ritmo del cambio en el personal, los procesos y la tecnología. De esa manera, podrás aprender constantemente, liderar con eficacia, escalar de manera eficaz y proteger tu entorno de manera integral: las cuatro capacidades que impulsan el éxito en la nube.
Estas son solo algunas de las ideas y recomendaciones que podemos compartir para ayudarte a comenzar en la nube. Si quieres obtener más información, descarga este artículo técnico.



[Nota del editor: Esta entrada se publicó originalmente en el blog de Velostrata. Desde entonces, Velostrata se ha unido al grupo de Google Cloud, y nos complace ofrecerte su perspectiva experimentada sobre por qué migrar a la nube. Obtén más información aquí sobre cómo funciona la tecnología de migración acelerada de Velostrata.]
En Velostrata, pasamos mucho tiempo hablando sobre cómo optimizar el proceso de migración a la nube. Sin embargo, una de las preguntas que también recibimos es qué impulsa la migración a la nube de una empresa en primer lugar. Para crear esta entrada, conversamos con clientes y buscamos en nuestros propios datos, junto con información de mercado de organizaciones como RightScale y otras empresas, para descubrir las razones más comunes por las que las empresas migran a la nube. Si crees que podrías implementar este plan en el futuro, es posible que esta publicación te ayude a determinar qué tipo de eventos pueden desencadenar un plan de migración.
1. Renovaciones de los contratos de los centros de datos
Muchas empresas tienen contratos con centros de datos privados que deben renovarse periódicamente. Cuando llega el momento de la renegociación de estos acuerdos, a menudo surgen algunas consideraciones, como los ajustes de costos u otros factores limitantes. En consecuencia, es durante estos períodos que muchas empresas comienzan a considerar migrar a la nube.
2. Adquisiciones
Cuando las empresas se fusionan, suele ser un desafío hacer coincidir los entornos de datos y aplicaciones. Asimismo, lograr esto en varios centros de datos locales puede ser aún más difícil. Muchas empresas que se están fusionando descubren que transferir aplicaciones y datos clave a la nube facilita el proceso. El uso de la nube también hace que sea más fácil integrar nuevas regiones geográficas y empleados, lo que en última instancia da como resultado un transición más suave.
3. Mayores requisitos de capacidad
Ya sea durante la progresión normal de un negocio en crecimiento o la necesidad de aumentar la capacidad durante cambios estacionales, tu empresa puede beneficiarse de la posibilidad de aumentar o disminuir rápidamente las capacidades. En lugar de tener que pagar más por capacidad local, puedes cambiar a modalidades a pedido con la nube y pago por uso.
4. Ciclos de actualización de software y hardware
Cuando administras un centro de datos local, depende de uno mantener todo actualizado. Esto puede implicar costosas licencias de software locales y actualizaciones de hardware para manejar los requisitos del software recientemente actualizado. Hemos visto que al evaluar un próximo ciclo de actualización, varias empresas consideran que es mucho menos costoso retirar el software y el hardware local y considerar una suscripción SaaS o una implementación lift-and-shift de esa aplicación en la nube pública. El proceso que elijas dependerá en gran medida de la app (y de las opciones de SaaS disponibles), pero en cualquier caso, es el comienzo de un proyecto de migración a la nube.
5. Amenazas de seguridad
Dado que las amenazas de seguridad solo aumentan en escala y gravedad, conocemos muchas empresas que migran a la nube para mitigar riesgos de este tipo. Los proveedores de la nube pública ofrecen vastos recursos para protegerse contra amenazas, más de lo que casi cualquier empresa podría invertir.
6. Necesidades de cumplimiento
Si trabajas en industrias como servicios financieros y el cuidado de la salud, garantizar el cumplimiento de los datos es esencial para las operaciones comerciales. Migrar a la nube implica que las empresas utilicen herramientas y servicios basados en la nube ya compatibles, lo que permite eliminar parte de la carga del cumplimiento de los equipos corporativos de TI.
7. Beneficios del desarrollo de productos
Al aprovechar ventajas como el modelo de costos de pago por uso y el aprovisionamiento dinámico para el desarrollo y pruebas de productos, muchas empresas descubren que la nube los ayuda a comercializar productos con mayor rapidez. Algunas compañías que migran a la nube no lo hacen solo para ahorrar tiempo y dinero, sino también para obtener ingresos más rápido.
8. Eventos de final de la vida útil
Todo lo bueno llega a su fin, incluido el software. Con cada vez más frecuencia, cuando se anuncia el final de la vida útil del software de un centro de datos crítico, puede ser un momento ideal para que los equipos de TI de las empresas busquen formas de replicar esos servicios en la nube en lugar de tratar de prolongar el ciclo de vida in situ. Esto significa que las empresas pueden retirar viejas licencias y hardware junto con obtener los otros beneficios de la nube.
Como puedes ver, hay muchas razones por las que las organizaciones deciden iniciar sus trayectos en la nube. En algunos casos, ya están atravesando el proceso de migración cuando encuentran aún más formas de usar los servicios en la nube de la mejor manera. Comprender los tipos de eventos que con frecuencia resultan en una migración a la nube puede ayudarte a determinar la arquitectura y la estrategia de migración adecuadas para llevar tus flujos de trabajo a la nube.
Obtén más información aquí sobre la migración a la nube con Velostrata.





Publicado por Patricia Correa (Plataformas y Ecosistemas)

A principios de este año, destacamos algunos de los hitos de Google Play y los compromisos de apoyar a los desarrolladores que tienen más de un millón de descargas en Play Store, así como a aquellos que trabajan en apps y juegos de Android, y buscan lanzar e impulsar su negocio en nuestras plataformas. Estamos agradecidos por los logros de los desarrolladores de apps y juegos, que diseñan experiencias que deleitan y ayudan a usuarios de todo el mundo, como mostramos en algunas historias de ...




Publicado por Patricia Correa (Plataformas y Ecosistemas)

A principios de este año, destacamos algunos de los hitos de Google Play y los compromisos de apoyar a los desarrolladores que tienen más de un millón de descargas en Play Store, así como a aquellos que trabajan en apps y juegos de Android, y buscan lanzar e impulsar su negocio en nuestras plataformas. Estamos agradecidos por los logros de los desarrolladores de apps y juegos, que diseñan experiencias que deleitan y ayudan a usuarios de todo el mundo, como mostramos en algunas historias de #IMakeApps.

Continuamos enfocándonos en ayudarte a impulsar negocios prósperos y en crear herramientas y recursos que te permitan llegar a más usuarios y atraerlos por más tiempo, mientras garantizamos que nuestro ecosistema siga siendo seguro. De cara a 2019, nos entusiasma lo que está por venir y esperamos que más desarrolladores adopten nuevas funciones y actualicen su contenido a Android P.
Mientras tanto, compartamos algunos de los aspectos más destacados de 2018 en Google Play y Android:
Compilar para el futuro
Junto con Android P, hemos seguido ayudando al ecosistema de desarrolladores de Android, lanzando Android Jetpack, la versión más reciente de Android Studio y compatibilidad con Kotlin. Los desarrolladores ahora también pueden agregar plantillas de UI dinámicas y enriquecidas mediante Slices en productos como la Búsqueda de Google y el Asistente, compatibilidad con API para nuevas pantallas y mucho más. Descubre lo último de Android 9 y la API de nivel 28.

Las apps más livianas tienen mayores tasas de conversión y, según lo que investigamos, los usuarios son más proclives a desinstalar las apps pesadas. En I/O, lanzamos un nuevo formato de publicación (Android App Bundle) que permite a los desarrolladores crear apps más pequeñas y eficientes con un proceso de lanzamiento simplificado y funciones on demand, lo que reduce, en promedio, un 35% el tamaño de descarga. En los dispositivos que utilizan Android M y versiones posteriores, los paquetes de apps pueden reducir aún más el tamaño del contenido mediante compatibilidad automática con bibliotecas nativas sin comprimir, lo que elimina la duplicación en los dispositivos.
Puedes crear paquetes de apps en la versión estable de Android Studio 3.2 o en Unity 2018.3 Beta, y subir paquetes más grandes con tamaños de APK instalados de hasta 500 MB sin usar archivos de expansión mediante una función de acceso anticipado que pronto estará disponible para todos los desarrolladores.
Experiencias y descubrimientos enriquecidos
Es muy importante que los usuarios descubran tus apps y juegos. Por eso, lanzamos Google Play Instant, aumentamos el límite de tamaño a 10 MB para la función TRY NOW en Play Store y quitamos el requisito de URL en Apps instantáneas. La versión Beta de Android Studio 3.3 permite publicar un único paquete de apps y clasificarlo, o bien utilizar un módulo específico para habilitarlo instantáneamente (sin mantener un código separado).
Para los desarrolladores de juegos, Unity introdujo un complemento de Google Play Instant, y la nueva versión de Cocos Creator incluye compatibilidad con apps instantáneas. Nuestro programa de pre-registro de apps ha recibido cerca de 250 millones de solicitudes, lo que ayuda a impulsar las descargas de apps mediante un descubrimiento más completo.
Optimización de calidad y rendimiento

Las métricas de Android vitals ahora son más prácticas, ya que se incluye un panel que resalta las estadísticas principales, comparativas de apps similares, tiempos de inicio y permisos de denegación, detección de anomalías y alertas, y vinculación de informes previos al lanzamiento para que puedas optimizar y priorizar mejor los problemas a fin de obtener una mejor calidad y rendimiento.
Hay más oportunidades para obtener comentarios y solucionar problemas antes del lanzamiento. Google Play Console amplió la funcionalidad de pruebas automatizadas de dispositivos con un informe previo al lanzamiento para juegos, y el lanzamiento de los segmentos de pruebas internas y cerradas te permite distribuir tu app a un máximo de 100 verificadores internos antes de lanzarla a producción.
Estadísticas actuales y futuras de tu negocio
Las métricas son fundamentales para optimizar tu negocio. Por eso, agregamos nuevas herramientas personalizables en Play Console, que incluyen informes descargables que te permitirán evaluar las métricas principales. Asimismo, se incluyen datos acumulativos, promedios de 30 días y acumulaciones en diferentes períodos que se adaptarán a la perfección a la cadencia de tu negocio.
Ahora puedes configurar el informe de estadísticas para mostrar el rendimiento de tus apps instantáneas, analizar diferentes dimensiones e identificar cuántos usuarios instalan las apps en su dispositivo. El informe de adquisición muestra el proceso de descubrimiento de los usuarios hasta la conversión, con ingresos promedio por usuario y comparativas de retención cotejadas con apps similares. También puedes encontrar los términos de búsqueda con mejor desempeño para tu ficha con un desglose orgánico, lo que te permitirá optimizar los esfuerzos a fin de expandir tu público y lograr retenerlo.
Cada vez más desarrolladores están adoptando suscripciones como modelo de monetización principal. Con el nuevo centro de suscripciones exclusivo, podrás cambiar fácilmente los precios de las suscripciones, ofrecer reembolsos parciales por productos y suscripciones integradas, así como también implementar cambios en los planes usando Play Billing Library (versión 1.2). Obtén más información sobre cómo mantener entretenidos a tus suscriptores. Los usuarios pueden pausar sus planes, lo que te da más control sobre la administración de pedidos y la encuesta de cancelación.

Descubre cómo usar todas las nuevas funciones y recomendaciones en Academy for App Success, nuestra plataforma gratuita de aprendizaje, que ofrece cursos breves para que puedas aprovechar Play Console al máximo y mejorar la calidad de tu app.
Asegúrate de seguir a @googleplaydev y suscríbete a nuestro boletín informativo para enterarte de todas las novedades de 2019. Esperamos que estas funciones y herramientas nos permitan seguir trabajando juntos durante este Año Nuevo. Sigue nuestra cuenta regresiva para ver contenido destacado a diario. El equipo de Google Play te desea unas felices fiestas.
¿Qué tan útil te resultó esta entrada de blog?


Ilustración de Virginia Poltrack




Hay dispositivos Android de diferentes tamaños, formas y densidades de pantalla. Por ese motivo, me encanta usar recursos vectoriales de resolución independiente. ¿Pero qué son exactamente? ¿Cuáles son sus ventajas? ¿Cuáles son los costos? ¿Cuándo debo usarlos?

Ilustración de Virginia Poltrack




Hay dispositivos Android de diferentes tamaños, formas y densidades de pantalla. Por ese motivo, me encanta usar recursos vectoriales de resolución independiente. ¿Pero qué son exactamente? ¿Cuáles son sus ventajas? ¿Cuáles son los costos? ¿Cuándo debo usarlos? ¿Cómo se crean y se utilizan? En esta serie de publicaciones, intentaré explorar estas preguntas y explicar no solo por qué creo que la gran mayoría de los recursos de tus apps deberían ser vectoriales, sino también cómo aprovecharlos al máximo.

Tramas contra vectores

La mayoría de los formatos de imagen (png, jpeg, bmp, gif, webp, etc.) son recursos de trama; es decir, describen la imagen como una cuadrícula fija de píxeles. Por ello, se establecen en una resolución específica y no están relacionados con su contenido, sino con el color de cada píxel. Sin embargo, los gráficos vectoriales describen la imagen como una serie de formas definidas sobre un tamaño de lienzo abstracto.

¿Por qué debería usar vectores?

Los recursos vectoriales tienen 3 ventajas principales:
  • Son nítidos.
  • Son pequeños.
  • Son dinámicos.

Nitidez

Las imágenes vectoriales pueden redimensionarse sin problemas: como describen la imagen en un tamaño de lienzo abstracto, es posible achicar o agrandar el lienzo, y luego volver a dibujar la imagen en ese tamaño. Sin embargo, los recursos de trama pueden deteriorarse cuando se les cambia el tamaño. Si bien no suele haber problemas al achicar los recursos de trama (dado que se descarta información), agrandarlos puede generar artefactos borrosos o con bandas de colores, ya que es necesario interpolar los píxeles faltantes.

Cómo se ve un artefacto (extremo) al agrandar una imagen de trama (izquierda) en comparación con una vectorial (derecha)

Esta es la razón por la que en Android necesitamos proporcionar varias versiones de cada recurso de trama para diferentes densidades de pantalla:
  • res/drawable-mdpi/foo.png
  • res/drawable-hdpi/foo.png
  • res/drawable-xhdpi/foo.png
Android elige la densidad similar más grande y la reduce (si es necesario). Debido a que la densidad de pantalla de los dispositivos es cada vez mayor, los fabricantes de apps deben seguir creando, incluyendo y enviando versiones más grandes de los mismos recursos. Cabe destacar que como muchos dispositivos modernos no pertenecen a grupos de densidad exacta (p. ej., la del Pixel 3 XL es de 552 ppp, entre xxhdpi y xxxhdpi), en ocasiones, los recursos deben ajustarse a escala.
Dado que los recursos vectoriales se redimensionan sin problema, puedes incluir un solo elemento sabiendo que funcionará en cualquier densidad de pantalla.

Tamaño reducido

Por lo general*, los recursos vectoriales son más compactos que los de trama debido a que solo incluyen una única versión y se comprimen sin problema.
Por ejemplo, aquí podemos observar un cambio de la app de Google I/O: modificamos varios íconos de trama en formato PNG a vectores y nos ahorramos 482 KB. Si bien es una cifra insignificante, esto fue solo en un elemento pequeño. En las imágenes más grandes (como ilustraciones), se podrá ahorra muchísimo más espacio.
Veamos la siguiente ilustración del flujo de integración de la app de Google I/O del año pasado:

Las ilustraciones pueden beneficiarse en gran medida de los recursos vectoriales

Como no pudimos reemplazar esto con un elemento VectorDrawable, ya que las gradientes no eran compatibles en ese momento (¡pero ahora sí lo son!), tuvimos que usar una versión de trama 😔. Si hubiésemos podido utilizar un vector, nos hubiéramos ahorrado un 30% del tamaño con una calidad mucho mejor :
  • Trama: tamaño de descarga = 53.9 KB (tamaño del archivo sin procesar = 54.8 KB)
  • Vector: tamaño de descarga = 3.7 KB (tamaño del archivo sin procesar = 15.8 KB)
Cabe destacar que si bien las divisiones de configuración de densidad de Android App Bundle ofrecen beneficios similares publicando solo los recursos de densidad que requiere un dispositivo, los elementos VectorDrawable suelen ser más pequeños y no requieren que se sigan creando recursos de trama cada vez más grandes.

Dinamicidad

Como las imágenes vectoriales describen su contenido en lugar de "apisonarlos" en píxeles, abren las puertas a nuevas e interesantes posibilidades, como la animación, la interactividad o la temática dinámica. Abordaremos este tema con más detalles en publicaciones futuras.

Los vectores mantienen la estructura de la imagen para que los elementos individuales puedan ser temáticos o animados

Desventajas

Asimismo, los vectores tienen algunos puntos en contra que también es necesario tener en cuenta:

Descodificación

Como se indicó anteriormente, los recursos vectoriales describen su contenido, por lo que deben ampliarse y dibujarse antes de su uso.

Los pasos que deben seguirse en la decodificación de un vector antes de que pueda renderizarse

Ese proceso implica dos pasos:
  1. Ampliación: Se debe leer y analizar archivo vectorial en un elemento VectorDrawable que modele las rutas, los grupos, etc. que declares.
  2. Dibujo: Estos objetos de modelo deben dibujarse ejecutando los comandos de dibujo de Canvas.
Ambos pasos son proporcionales a la complejidad del vector y al tipo de operaciones que quieras realizar. Si usas formas muy complejas, llevará más tiempo analizar esto en un elemento Path. Asimismo, más operaciones de dibujo demorarán más tiempo (y algunas son más costosas, como las de recorte). Volveremos a ahondar en este tema en una publicación futura de esta serie sobre cómo determinar estos costos.
En el caso de los vectores estáticos, la etapa de dibujo solo debe realizarse una vez y luego puede almacenarse en caché en un Bitmap. Los vectores animados no pueden realizar esta optimización, ya que sus propiedades cambian y deben volver a dibujarse.
Compara esto con recursos de trama (como PNG), que solo necesitan decodificar el contenido del archivo, un proceso que se ha ido optimizando con el paso del tiempo.
Esta es la mayor desventaja de los recursos de trama contra los vectoriales. Estos últimos brindan los beneficios que mencioné en primer lugar, pero teniendo en cuenta que su renderizado es más costoso. Cuando recién salió Android, los dispositivos eran menos potentes y las densidades de pantalla diferían muy poco. Hoy en día, son más potentes y están disponibles en una gran variedad de densidades de pantalla. Por eso, creo que es hora de que todas las apps comiencen usar recursos vectoriales.

Idoneidad



Debido a la naturaleza del formato, los vectores son una gran herramienta para describir algunos recursos, como íconos simples, etc. No son buenos codificando imágenes de tipo fotográfico, donde es más difícil describir su contenido como una serie de formas, y probablemente sería mucho más conveniente usar un formato de trama (como webp). Esto es, por supuesto, un espectro, ya que depende de la complejidad de tus recursos.

Conversión

Ninguna herramienta de diseño (que conozca) crea VectorDrawables de forma directa, lo que significa que hay un paso de conversión desde otros formatos, lo que podría complicar el flujo de trabajo entre diseñadores y desarrolladores. Ahondaremos en este tema en una publicación futura.

¿Por qué no se deben usar archivos SVG?

Si alguna vez trabajaste con formatos de imágenes vectoriales, es probable que te hayas encontrado con el formato SVG (gráficos vectoriales escalables), el estándar de la industria en la Web. Si bien este formato es ideal para usar con herramientas establecidas, también es un estándar vasto . Incluye muchas funciones complejas, como ejecutar código JavaScript arbitrario, efectos de desenfoque y filtro, o incorporar otras imágenes, incluidos GIF animados. Como Android se ejecuta en dispositivos móviles restringidos, admitir la totalidad de la especificación de SVG no es un objetivo realista.
Sin embargo, este formato incluye una especificación de ruta que define cómo describir y dibujar formas. Con esta API, puedes expresar la mayoría de las formas vectoriales. Básicamente, esto es lo que admite Android: la especificación de ruta del archivo SVG (además de algunas funciones).
Asimismo, al definir su propio formato, VectorDrawable puede integrarse con las funciones de la plataforma Android (por ejemplo, a fin de trabajar con el sistema de recursos de Android para hacer referencia a @colors, @dimens o @strings, o bien con atributos de tema o AnimatedVectorDrawable usando Animators estándar).

Funciones de VectorDrawable

Como ya expliqué, VectorDrawable admite la especificación de ruta de SVG, lo que permite especificar una o varias formas para dibujar. Se crea como un documento XML que se ve así:

Cabe destacar que es necesario especificar el tamaño intrínseco del recurso, que es el que tendría si lo configuraras en un wrap_content ImageView. Los tamaños de la segunda ventana gráfica definen el lienzo virtual o el espacio de coordenadas en el que se establecen todos los comandos de dibujo posteriores. Las dimensiones intrínsecas y de la ventana gráfica pueden diferir (aunque deberían estar en la misma proporción). Si quieres, puedes definir tus vectores en un lienzo de 1*1.
El elemento <vector> contiene uno o varios elementos <path>. Si bien puedes asignarles un nombre (a modo de referencia, como "animación"), deben especificar un elemento pathData que describa la forma. Esta string de aspecto críptico puede considerarse como una serie de comandos que controlan una pluma en un lienzo virtual:

Visualización de operaciones de ruta

Los comandos anteriores mueven la pluma virtual, luego dibujan una línea hacia otro punto, levantan y mueven la pluma y, por último, dibujan otra línea. Usando solo los 4 comandos más comunes podemos describir casi cualquier forma (hay más comandos; consulta las especificaciones):
  • M mover a
  • L trazar una línea a
  • C (Bézier cúbica) trazar una curva a
  • Z cerrar (línea al primer punto)
(Los comandos en mayúsculas usan coordenadas absolutas y los que están en minúsculas utilizan relativas)
Posiblemente te preguntes si debes preocuparte por este nivel de detalle. ¿Los archivos SVG no aportan los mismos beneficios? Si bien no es imprescindible saber leer una ruta y comprender lo que dibujará, tener una comprensión básica de lo que hace VectorDrawable es extremadamente útil y necesario para comprender algunas de las funciones avanzadas que veremos más adelante.
Por sí solos, las ruta no dibujan nada. Se las debe trazar o rellenar.

La parte 2 de esta serie explica más detalladamente las diferentes formas de rellenar o trazar rutas.
También puedes establecer grupos de rutas, lo que te permite definir transformaciones que se aplicarán a todas las rutas del conjunto.

Ten en cuenta que no es posible rotar, ajustar a escala ni traducir rutas individuales. Si quieres realizar algunas de esas acciones, deberás colocarlas en un grupo. Esta transformación no tiene mucho sentido para las imágenes estáticas que podrían "procesarse" directamente en sus rutas, pero son muy útiles para la animación.
También puedes definir rutas de recorte; es decir, enmascarar el área a la que pueden dibujar otras rutas del mismo grupo . Se definen de la misma manera que las rutas convencionales.

Una de las limitaciones que las rutas de recorte no pueden suavizarse.

Demostración de una ruta de recorte sin suavizar

Este ejemplo (que tuve que ampliar a fin de que se vea el efecto) muestra dos enfoques para dibujar el ícono de obturador de una cámara. El primero dibuja las trayectorias, mientras que el segundo traza un cuadrado sólido, enmascarado a la forma del obturador. El enmascaramiento puede ayudar a crear efectos interesantes (especialmente cuando están animados), pero es un proceso costoso, por lo que si puedes evitarlo dibujando una forma de otra manera, hazlo.
Las rutas se pueden recortar; es decir, dibujar solamente un subconjunto de la ruta completa. Puedes recortar rutas rellenas, aunque los resultados podrían ser inesperados. Es más común recortar rutas trazadas.

Recorte de rutas

Puedes recortar desde el inicio o el final de una ruta, o bien aplicar un desplazamiento a cualquier recorte. Se definen como una fracción de la trayectoria [0,1]. Mira cómo configurar diferentes valores de recorte cambia la parte de la línea que se dibuja. También ten en cuenta que las compensaciones pueden hacer que se "envuelvan" los valores de recorte. Una vez más, esta propiedad no tiene mucho sentido para las imágenes estáticas, pero es útil para las animadas.
El elemento vector raíz admite una propiedad Alfa [0, 1]. Los grupos no tienen una propiedad de este tipo, pero las rutas individuales admiten fillAlpha/strokeAlpha.

Declaración de la independencia

Espero que esta publicación te dé una idea de qué son los recursos vectoriales, junto con sus aspectos positivos y negativos. El formato vectorial de Android es muy funcional y tiene un campo de compatibilidad amplísimo. Dada la variedad de dispositivos en el mercado, el uso de recursos vectoriales debería ser tu opción predeterminada, y solo recurrir a tramas en casos especiales. Únete a nosotros en las siguientes publicaciones para obtener más información:
Próximamente: Cómo dibujar elementos Path
Próximamente: Cómo crear recursos vectoriales para Android
Próximamente: Cómo usar recursos vectoriales en apps de Android
Próximamente: Cómo utilizar
VectorDrawables en Android





David East
Representante de desarrolladores











Si bien Firebase se lanzó hace más de seis años y medio como una base de datos, desde entonces nos hemos convertido en una plataforma que ofrece dieciocho (¡¡18!!) productos. Y, durante el último año, anunciamos una serie de nuevas funciones que te permitirán crear mejores apps y hacer crecer tu negocio. También le brindamos a Firebase una mayor potencia de aprendizaje automático para que tus apps sean más inteligentes, e implementamos optimizaciones en la plataforma, por lo que ahora funciona mejor para desarrolladores de grandes empresas sofisticadas.




David East
Representante de desarrolladores











Si bien Firebase se lanzó hace más de seis años y medio como una base de datos, desde entonces nos hemos convertido en una plataforma que ofrece dieciocho (¡¡18!!) productos. Y, durante el último año, anunciamos una serie de nuevas funciones que te permitirán crear mejores apps y hacer crecer tu negocio. También le brindamos a Firebase una mayor potencia de aprendizaje automático para que tus apps sean más inteligentes, e implementamos optimizaciones en la plataforma, por lo que ahora funciona mejor para desarrolladores de grandes empresas sofisticadas.
Dado que este es el momento ideal para las listas de fin de año, íbamos a culminar este 2018 con nuestra propia "Lista de los mejores diez lanzamientos de Firebase". Sin embargo, nos dimos cuenta de que teníamos más de diez lanzamientos de los que queríamos hablar y no nos gusta elegir favoritos. Así que en lugar de eso, aquí está nuestra lista de 2018 llamada "Trece lanzamientos de Firebase sin orden particular porque todos son geniales". ¡Disfrútala!

13. ML Kit democratiza el aprendizaje automático

En Google I/O, lanzamos una de nuestras funciones más interesantes de 2018: ML Kit para Firebase, un SDK de aprendizaje automático para iOS y Android que permite agregar la potencia de esta tecnología a tus apps sin necesidad de ser experto en redes neuronales. Proporciona una serie de soluciones listas para usar que permiten realizar tareas como reconocer texto en imágenes, etiquetar objetos en fotos o detectar rostros. Y, por último, también permite usar modelos personalizados para aquellos que trabajan en la construcción de uno propio (en la actualidad, están de moda las redes neuronales artesanales personalizadas entre los científicos de datos hipsters).

12. In-App Messaging ayuda con la participación de los clientes

Las notificaciones son una excelente forma de hacer que los usuarios latentes vuelvan a ingresar a tu app, pero ¿cómo te comunicas con los que la usan de forma activa? En 2018, lanzamos Firebase In-App Messaging para ayudarte a enviar mensajes específicos y contextuales a usuarios activos de tu app. Los mensajes en la app son una excelente manera de fomentar la exploración y el descubrimiento de tu contenido, y de guiar a los usuarios con nuevas funciones o hacia eventos de conversión importantes.

11. Las nuevas API de REST facilitan la automatización de tareas

En Firebase, somos fanáticos de crear secuencias de comandos que nos faciliten la vida; ya sea para automatizar tareas comunes o realizar procesos lógicos personalizados. Para ayudar a lograr ese objetivo, lanzamos tres nuevas API de REST que puedes utilizar para automatizar tu vida (al menos desde la perspectiva de Firebase). La API de Firebase Management es ideal para automatizar tareas como la creación de nuevos proyectos. La API de REST de Remote Config puede ser útil para personalizar la forma en que se actualizan los valores de configuración remota. Y, por último, la API de Firebase Hosting puede usarse para cargar automáticamente ciertos archivos a tu sitio.
Recientemente, StackBlitz y Glitch usaron la API de Management para crear integraciones que les permitan implementar proyectos directamente en Firebase Hosting. Inicia un proyecto, escribe código, haz algunos clics y listo. ¡Implementaste tu proyecto de Firebase en la Web!

10. Performance Monitoring está disponible para todo el público

El buen rendimiento es uno de los factores clave para crear una excelente experiencia del usuario. Firebase Performance Monitoring recopila automáticamente las métricas de rendimiento de la fuente más importante: el mundo real.
Este año, Performance Monitoring pasó de Beta a disponibilidad general. A lo largo del camino, agregamos nuevas funciones útiles, como un feed de problemas en el panel para resaltar los errores de rendimiento importantes que detectan los usuarios. También agregamos compatibilidad con la vista de sesión relacionada con la clase de red y la traza, que te permite profundizar en una sesión individual de una traza para que puedas ver los atributos y eventos que ocurrieron antes de un problema de rendimiento.

9. Predictions también está disponible públicamente

También lanzamos Firebase Predictions al público general. Predictions utiliza el aprendizaje automático para segmentar los usuarios de forma inteligente en función de su comportamiento futuro previsto. Durante el proceso, agregamos indicadores de estado y criterios de evaluación a cada predicción para que puedas comprender mejor qué tan confiables son, así como los datos que se utilizan para crearlas. También integramos Predictions con BigQuery para que tengas más control sobre tus datos.
Comenzar a usar Predictions es tan fácil como presionar un interruptor. Podemos predecir que te encantará (perdón por el chiste).

8. Cloud Functions está disponible públicamente Ahora todos pueden probarla.

Seguimos con los productos que dejan las etapas de prueba. Cloud Functions pasó a estar disponible públicamente y lanzamos una nueva versión del SDK, que incluye funciones "llamables" que facilitan el proceso de llamada a las funciones del servidor desde el cliente, especialmente si se requiere autenticación.
Cloud Functions también lanzó una nueva biblioteca, firebase-functions-test, que simplifica las funciones de pruebas de unidades. Esta se encarga de la configuración y el desmontaje necesarios, lo que permite imitar datos de prueba. Por lo tanto, además de las pruebas independientes simples, ahora puedes escribir otras que interactúen con un proyecto de Firebase en desarrollo y ver el éxito de acciones como escrituras de bases de datos.

7. Ahora es posible hacer muchas más pruebas en Test Lab (lo que es muy bueno)

Firebase Test Lab pasó a ser multiplataforma en 2018 cuando se agregó compatibilidad con iOS. Ahora puedes escribir y ejecutar pruebas en dispositivos iOS reales de nuestros centros de datos. Este producto admite diez modelos de iPhones y iPads que ejecutan siete versiones diferentes de iOS, incluida la versión 12.
Test Lab también lanzó una serie de mejoras a Robo, una herramienta que ejecuta pruebas totalmente automatizadas en dispositivos Android. Ahora es más fácil probar juegos, gracias a las "acciones de mono" (que pueden hacer clic aleatoriamente en la pantalla) y los bucles de juego (que realizan acciones pre-guiadas). También puedes personalizar Robo con más opciones, en caso de que necesites acceder a tu cuenta cuando se inicie tu app o agregar texto inteligente en un campo de búsqueda.

6. Nuevos emuladores para Firestore y Realtime Database que facilitan la ejecución de pruebas

Continuando con el tema de las pruebas, en 2018, lanzamos emuladores para Firestore y Realtime Database a fin de que puedas probar tus reglas de seguridad con mayor facilidad e incorporarlas en un entorno de integración continua. Estos emuladores se ejecutan localmente y te permiten probar tus reglas sin conexión para que puedas estar seguro antes de implementarlas en producción. También creamos una biblioteca que simplifica tu código de prueba.

5. Las integraciones de Stackdriver permiten un mejor registro y supervisión

Desde el principio, Cloud Functions ha integrado estrechamente importantes métricas de uso con Stackdriver, el potente servicio de supervisión de Google Cloud. Para profundizar aún más nuestra integración, vinculamos Realtime Database con Stackdriver. Ahora puedes ver incluso más métricas que las que proporciona Firebase console, como carga desglosada por tipo de operación e información sobre los bytes descargados.
El verdadero poder de esta integración es configurar alertas de métricas o errores para que puedas detectar y responder a los problemas antes de que los noten tus clientes.

4. Las integraciones de BigQuery te dan más control sobre tus datos

En ocasiones, los paneles de informes en Firebase console no te proporcionan el nivel de detalle o segmento de datos específico que necesitas. Ahí es donde BigQuery (el almacén de datos de Google Cloud) y Data Studio (la herramienta de visualización de datos de Google Cloud) entran en juego.
Desde hace un tiempo, te hemos dado la posibilidad de exportar tus datos de Analytics a BigQuery. Este año, agregamos integraciones con Predictions y Crashlytics para que puedas exportar aún más datos de Firebase a un almacén central. Obtén más información sobre cómo usar Firebase y BigQuery de forma conjunta.

3. Cloud Firestore funciona mejor para empresas sofisticadas

Cloud Firestore es nuestra base de datos de última generación que incluye muchas de las funciones de Realtime Database que te encantan, combinadas con la escalabilidad y sofisticación de Google Cloud Platform. A lo largo de 2018, hemos lanzado una serie de optimizaciones a Firestore para que se adapte mejor a empresas complejas.
También incluimos algunas funciones interesantes en el camino: expandimos la compatibilidad sin conexión para el SDK web de una sola pestaña del navegador a muchas otras. Hemos agregado mejor compatibilidad en la búsqueda de documentos por el contenido de sus matrices. Y, por último, agregamos varias ubicaciones nuevas donde puedes almacenar tus datos de Firestore: Frankfurt, Alemania y Carolina del Sur, EE.UU. Incorporaremos aún más ubicaciones en 2019.

2. Firebase console es aún más fácil de usar

Firebase console es una parte crucial del flujo de trabajo de Firebase para casi cualquier equipo. Pasamos mucho tiempo en 2018 haciendo que la consola sea mejor que nunca. Estos son algunas de las cosas que agregamos:
  • Simulador de reglas de seguridad para Cloud Firestore
  • Panel de notificaciones rediseñado
  • Historial de versiones de las reglas de seguridad
  • Historial de cambios de Remote Config
  • Filtrado y clasificación de documentos de Firestore
  • Completado de código en el editor de reglas de seguridad
  • Estadísticas de rendimiento sobre los problemas que surgen en tu app
Con estas funciones, podrás trabajar mejor en la seguridad y el rendimiento de tu contenido. Queremos agregar muchas más funciones en 2019.

1. Google Cloud ahora es compatible con Firebase

Desde hace un tiempo, hemos escuchado que a algunos de ustedes les gustaría tener una opción para obtener asistencia de Firebase a nivel empresarial. Para abordar esa solicitud, agregamos compatibilidad con Firebase a nuestros paquetes de Google Cloud Platform (GCP), disponibles en versión Beta.
Si ya pagaste un paquete de asistencia de GCP, nuestra versión Beta te permitirá obtener respuestas a tus preguntas de Firebase a través del canal de asistencia de GCP sin costo adicional. Cuando el nuevo formato de asistencia pase a estar disponible de manera general, incluiremos tiempos de respuesta objetivo, administración de cuenta técnica (para el nivel empresarial) y mucho más. Puedes obtener más información sobre la compatibilidad con GCP aquí.
Si deseas seguir usando la asistencia gratuita de Firebase, no te preocupes: no haremos ningún cambio en el modelo de asistencia actual. No dejes de contactar a nuestro equipo de asistencia si necesitas ayuda.

¡Feliz Año Nuevo!

Ha sido un gran año, por lo que pasaremos algunos días con amigos y familiares antes de comenzar a trabajar en enero. Sin importar la forma en que celebres este fin de año, esperamos que tu diciembre haya estado lleno de felicidad y relajación. Y, si está cargado de compilaciones de apps web o móviles, esperamos que uses Firebase. ¡Suerte en el proceso de compilación!


Google Cloud Next 2019 se llevará a cabo próximamente. Reserva la fecha: del 9 al 11 de abril de 2019 en Moscone Center, San Francisco.

En Google Cloud Next, clientes, socios, desarrolladores, influencers y una enorme comunidad global de usuarios de la nube obtienen inspiración y aprenden sobre Google Cloud Platform, G Suite, Maps, dispositivos y muchas más tecnología y soluciones de Google. Aprende de clientes y socios, y profundiza tus conocimientos en cientos de sesiones de trabajo, codelabs, demostraciones y capacitaciones prácticas.

Descubre nuevas oportunidades para tu negocio al interactuar con todo el equipo de Google Cloud, incluidos nuestros ingenieros, líderes de productos, desarrolladores y más. Asimismo, conocerás a muchos otros usuarios y profesionales de la nube con los que podrás compartir historias e ideas.
En la versión de 2018, participaron más de 23,000 personas. Echa un vistazo al resumen del año pasado para ver qué esperar en abril de 2019.

Next 2019 ofrecerá más de 500 sesiones individuales, lideradas por más de 1,000 oradores, clientes y socios. Este año, tendremos aún más contenido técnico y oportunidades de aprendizaje. La conferencia incluirá todos los aspectos de la cartera de Google Cloud: desarrollo de aplicaciones, arquitectura, colaboración y productividad, administración de costos, análisis de datos, bases de datos, nube híbrida, AA e IA, movilidad y dispositivos, seguridad, uso sin servidores y mucho más.
También compartiremos noticias y anuncios de productos emocionantes, por lo que serás el primero en saber qué se lanzará en esos días y más adelante. Consulta los más de 100 anuncios que hicimos en Next 2018.
Si te interesa patrocinar Next 2019, envíanos un correo electrónico.
Nos entusiasma poder crear un espacio de inclusión y aprendizaje, fomentar la innovación e inspirar a personas de todos los orígenes a reunirse en Next 2019. Nos encantaría que te unas a nosotros: el registro se abre hoy.


Supongamos que creaste una acción que les ofrece a los usuarios una experiencia increíble. El único problema es que solo está disponible para aquellos que hablan el idioma en el que se escribió. Te estás perdiendo de tantos otros usuarios que también podrían disfrutar de lo que creaste… ¿Cómo puedes hacer que tu acción llegue a todo el mundo? ¡Pues localizándola ...

Supongamos que creaste una acción que les ofrece a los usuarios una experiencia increíble. El único problema es que solo está disponible para aquellos que hablan el idioma en el que se escribió. Te estás perdiendo de tantos otros usuarios que también podrían disfrutar de lo que creaste… ¿Cómo puedes hacer que tu acción llegue a todo el mundo? ¡Pues localizándola!

¿Qué es la localización?

Es el proceso mediante el que se personalizan experiencias para diferentes idiomas y configuraciones regionales. A continuación, se muestran en diferentes idiomas algunos ejemplos de un saludo perteneciente a una acción de GDG:
"Welcome to GDG San Francisco. I can tell you about…"
"Benvenuto a GDG San Francisco. Posso darti informazioni…"
"Bienvenidos a GDG San Francisco. Puedo contarte sobre…"
"Willkommen bei der GDG San Francisco. Ich kann dir mehr über unsere…"
Consulta qué idiomas y configuraciones regionales admite Actions on Google.

Motivos para localizar tu contenido
  • Tu acción estará disponible para más usuarios.
  • Cambiará la experiencia del usuario en función del idioma utilizado.


Cómo localizar tu acción
Puedes obtener más información sobre cómo localizar tu acción en estos documentos, aunque los he organizado a continuación a modo de guía para las acciones que utilizan Dialogflow y un webhook (consulta este código de muestra sobre el tipo de proyecto al que me refiero).
  1. Comienza con una acción robusta y activa que estés listo para localizar. Elige una que ya hayas implementado a fin de asegurarte de que supere el proceso de revisión.
  2. Traduce todo el texto de la acción a diferentes idiomas:
  • Respuestas de la acción
  • Frases de entrenamiento para cada intent
  • Entidades personalizadas
  • Información del directorio de la acción
  • Sección de descripción (breve y completa)
  • Invocaciones de muestra
  • Política de privacidad
  • Condiciones de servicio (opcional)
Si bien esta es la parte que más tiempo consume, también es la más importante. Lo ideal es que hablantes nativos traduzcan el texto y prueben la acción para poder evaluar la personalidad del Asistente.
3. Actualiza tu código de cumplimiento para brindar compatibilidad con varios idiomas. Usa una biblioteca cliente que admita i18n (internacionalización). Hay muchas bibliotecas compatibles con diferentes marcos de trabajo, así que elige la que se adapte a tus necesidades.
4. Agrega nuevos idiomas a tu agente Dialogflow mediante la consola correspondiente.
  • Agrega idiomas a tu agente. Esta acción copiará tus intents a cada idioma nuevo.
  • Agrega frases de entrenamiento, respuestas y entradas de entidades traducidas por idioma nuevo.
5. Agrega idiomas a la consola de Actions on Google.
  • Agrega idiomas a la acción yendo a la página Configuración del proyecto a través del ícono de engranaje que se encuentra junto a la sección "Descripción general". Allí, puedes hacer clic en Idiomas, donde podrás agregar todos los que quieras.


6. Prueba las acciones en la consola de Actions on Google
  • En el simulador de acciones, prueba los flujos de conversación para cada idioma a fin de asegurarte de obtener los resultados esperados. El simulador te permite cambiar de idioma, así como de ubicación. Consulta la documentación correspondiente aquí.
  • Agrega pruebas a tu proyecto (ejemplo de muestra de las librerías de pruebas de Actions on Google).
  • A medida que pruebes diferentes flujos de conversación en los distintos idiomas, ajusta tu SSML para que las acciones suenen más naturales en ese idioma.
7. Actualiza las acciones en la consola de Actions on Google agregando la información del directorio traducida para cada idioma:
  • Descripción (breve y completa)
  • Invocaciones de muestra
  • Política de privacidad
  • Condiciones de servicio (opcional)
8. Envía tu contenido para su publicación.
  • Se recomienda utilizar la versión Beta porque pasa por el mismo proceso de revisión que la versión de producción. Una vez que se apruebe tu proyecto, podrás lanzarlo a producción cuando estés listo.
Esto puede parecer mucho trabajo, pero una vez que traduzcas tu acción a otro idioma, cada paso será más fácil que el anterior. Dedicar tiempo a expandir tu acción a varios idiomas permite que más usuarios puedan usarla.

¿Quieres más? Consulta la comunidad de Actions on Google para intercambiar opiniones con otros desarrolladores. Únete al programa de la comunidad de desarrolladores de Actions on Google para ganar un crédito mensual de USD 200 en Google Cloud y una remera del Asistente cuando publiques tu primera app.



Hace poco, participé en un debate sobre estrategias para ayudar a desarrollar habilidades de Google Cloud Platform (GCP) en todo el mundo. Estaba justificando que era necesario ofrecer más capacitaciones, cuando un colega me hizo una pregunta directa: Miles, ¿tienes una certificación de Google Cloud? ¡WOW! Dirijo el equipo de Soluciones de Arquitectura de Google Cloud a nivel mundial. Hace una década que trabajo en Cloud. Es decir, seguro sé bastante sobre este tema, ¿no? "La verdad es que no la tengo", respondí, aunque me quedé pensando en eso.


giphy.gif
Fuente: giphy.com
¿Por qué debería obtener la certificación? ¿Por qué se debería obtenerla?
La conclusión es que, en el mundo de la tecnología, la velocidad de los cambios se está acelerando. Incluso la velocidad de aceleración se está acelerando (por cierto, eso se llama sobreaceleración). Hay mucho valor del otro lado de esos cambios. Es simple: ¿qué pasaría si las únicas herramientas de tu oficina fueran un telégrafo, un ábaco y una pizarra? Dicho esto, las nuevas herramientas no solo implican aprender a usarlas, sino también todos los cambios que producen. ¡Qué combinación!
Todo el mundo se ve afectado por estos cambios. Hay mucho que aprender. Las empresas que crean equipos de TI deben saber quién sabe qué, ya que, de lo contrario, no tendrán las habilidades colectivas para dar el siguiente paso. Lo mismo ocurre en mi equipo: debo asegurarme de que todos sepan sobre Cloud. Sin embargo, como dice Missy Elliot, yo también tengo que trabajar en eso: ¡no puedo no saber sobre Cloud!
Resulta que las personas increíbles de nuestros equipos de capacitación y certificación (con solo un poco de ayuda de algunos arquitectos de soluciones) han creado estas certificaciones de Google Cloud para hacer precisamente eso. No puedo estar a cargo del equipo de Arquitectura de Soluciones de Google Cloud y no pasar la prueba, ¿no?
Entonces hice el examen, lo aprobé y ahora estoy orgulloso de haber recibido la certificación de Google Cloud como Arquitecto profesional de Cloud.


thats me.png
Ese soy yo con mi certificación
Pero ¿por qué se debería obtener la certificación?
Tal vez seas experto en la nube, pero hay otras personas que no. Quizás estés a cargo de un proyecto de Cloud y desees asegurarte de que sabes lo básico. También es posible que quieras destacarte del resto de tus compañeros. O tal vez la certificación sea el empujón que necesitas para dar el siguiente paso en tu carrera. Por último, podrías ser de aquellos que creen que los títulos de certificación son como los pokemones: hay que conseguirlos a todos.
Cualquiera sea la razón por la que quieras obtener la certificación, solo debes hacerlo. Literalmente, puedes hacerlo desde el nivel más bajo de un centro comercial, como lo hice yo. ¿Quién podría imaginarse que hay intelectualoides realizando exámenes debajo de una tienda de pretzels?
Aquí tienes algunas sugerencias profesionales para cuando quieras obtener la certificación:
¡Estudia!
Ve al sitio web de certificación y consulta los detalles de la prueba. Para el certificado de Arquitecto profesional de Cloud, encontrarás una guía de examen con ejemplos de casos prácticos, un examen de muestra y una lista de capacitaciones recomendadas. Las increíbles personas detrás de la capacitación de Google Cloud también suelen ofrecer recursos gratuitos. Hasta fin de año, puedes obtener un mes de acceso gratuito a la capacitación de Google Cloud en Coursera. También puedes disfrutar de un mes de acceso gratuito ilimitado a Qwiklabs. Solo tienes que inscribirte y comenzar con esta serie de experimentos diseñados para obtener la certificación (también puedes aprovecharlo hasta fin de año). Como última alternativa, te recomiendo jugar a Cloud Hero en uno de nuestros eventos Cloud Summit de todo el mundo.


summit.png
Ese soy yo, con mi certificación, jugando a Cloud Hero en un evento
Presta atención a los detalles
Descubrí que el uso de casos prácticos en el examen es muy útil, ya que brindan mayor contexto. Así que no puedes saltearte nada. Tienes que leer todo para asegurarte de que comprendas los detalles mínimos que marcan la diferencia entre aprobar y desaprobar. Dejé algunas preguntas para revisar más tarde, y luego de un segundo repaso, detecté algunos detalles importantes que omití en la primera leída. En la nube, los detalles importan, amigos.
Así que, ya que obtuve la certificación, me gustaría ayudar a los demás de la misma forma en que lo hizo mi colega Rochana (o quizás esta "ayuda" se parezca más a una "dulce venganza"). Desafío a los lectores de este blog, a mi ilustre compañera Aashima Gupta de nuestro equipo de Soluciones para el Cuidado de la Salud, al inteligente Anthony Vultaggio de nuestro socio Smartronix y a mi amigo Nic Harteau de ingeniería a obtener la certificación de Google Cloud. Así es la cosa. Solo faltan dos miembros más para que todo mi equipo haya obtenido la certificación. ¿Estás listo para hacer lo mismo? Eso sería genial. ¡Es hora de pisar el acelerador!
Adelante, hazlo. Regístrate para realizar el examen y prepárate para lo que está por venir.

Por Antonio Guzmán, Technology Advocate at Xertica

El almacenamiento de archivos ha crecido de tal manera últimamente, que hoy en día es imperativo tener disponibilidad de almacenamiento en la nube. Pasamos de requerir MB a TB. Queremos flexibilidad y diversos tipos de almacenamiento: alta demanda y disponibilidad multirregional, menor demanda focalizada en una región o acceso esporádico.
Cloud Storage
Google Cloud Storage es un almacenamiento versátil de objetos donde puedes colocar cualquier cosa. Todos los archivos son vistos como un objeto y no hay mayor distinción más allá del tipo de almacenamiento elegido (son cuatro, dos para alta demanda y dos para manejo de respaldos e históricos). No aprovisionas nada y se ajusta a tu demanda. Es elástico y cuenta con buenos precios para pagar únicamente por lo que usas.

Puedes acceder a Google Cloud Storage de diferentes formas: desde la consola web, la línea de comandos, vía Cloud SDK usando la API con las bibliotecas para varios lenguajes de programación. Cada uso y necesidad puede encontrar el mecanismo correcto.



12345
# Crea un bucket
gsutil mb gs://TU_BUCKET

# Almacena un archivo
gsutil cp /LA/RUTA/DE/TU/ARCHIVO gs://TU_BUCKET

Mira lo fácil que es manipular archivos y aprovechar gestionar versiones que tienes de tus archivos.


1234567891011121314
# Habilitar versionamiento
gsutil versioning set on gs://TU_BUCKET

# Conoce el estatus del versionamiento
gsutil versioning get gs://TU_BUCKET

# Lista toda las versiones existentes y sus respectivos identificadores únicos
gsutil ls -a gs://TU_BUCKET/TU_FILE

# Recupera una versión específica y produce un nuevo archivo
gsutil cp gs://TU_BUCKET/TU_FILE#GENERATION_NUMBER_X gs://BUCKET_DESTINO/NOMBRE_DE_TU_FILE

# Borra una versión específica
gsutil rm gs://TU_BUCKET/TU_FILE#GENERATION_NUMBER_X

También puedes manejar el ciclo de vida de tus archivos definiendo políticas a través de un JSON. Imagina que cuando un objeto cumple un tiempo determinado, lo puedes mover de alta disponibilidad a modo respaldo (nearline o coldline) y luego eliminarlo, todo de manera automática.



123
# Despliega un .json para definir las reglas automáticas que manejan los ciclos 
# de vida de tus objetos almacenados
gsutil lifecycle set TU_LIFECYCLE_FILE gs://TU_BUCKET/

Donde el .json puede lucir así:



12345678910111213141516171819202122232425262728293031
{
 "lyficycle": {
  "rule": [{
   "action": {
    "type": "SetStorageClass",
    "storageClass": "NEARLINE"
   },
   "condition": {
    "age": 366,
    "matchesStorageClass": ["MULTI_REGIONAL"]
   }
  }, {
   "action": {
    "type": "SetStorageClass",
    "storageClass": "COLDLINE"
   },
   "condition": {
    "age": 732,
    "matchesStorageClass": ["NEARLINE"]
   }
  }, {
   "action": {
    "type": "Delete"
   },
   "condition": {
    "age": 1827,
    "matchesStorageClass": ["COLDLINE"]
   }
  }]
 }
}

¿Quieres “encriptar” tu información? Google lo hace por ti cuando la información está “at rest”, no obstante, tú mismo puedes proveer las “key encryption”. También tienes listas de control de acceso (ACL) para decidir quién y con cuál nivel interactúan con tus archivos. Mira cómo lo puedes hacer:



1234567891011121314151617181920212223
def upload_encrypted_blob(bucket_name, source_file_name,
                          destination_blob_name, base64_encryption_key):

    storage_client = storage.Client()
    bucket = storage_client.get_bucket(bucket_name)
    # La clave es una AES Key encryption de 256 bit (32 byte)
    encryption_key = base64.b64decode(base64_encryption_key)
    blob = storage.Blob(destination_blob_name, bucket, encryption_key=encryption_key)

    blob.upload_from_filename(source_file_name)


def download_encrypted_blob(bucket_name, source_blob_name,
                            destination_file_name, base64_encryption_key):

    storage_client = storage.Client()
    bucket = storage_client.get_bucket(bucket_name)
    # La clave es una AES Key encryption de 256 bit (32 byte)
    encryption_key = base64.b64decode(base64_encryption_key)
    # No podrás obtener el archivo si no pasas la encryption_key
    blob = storage.Blob(source_blob_name, bucket, encryption_key=encryption_key)

    blob.download_to_filename(destination_file_name)

Los posibilidades de almacenamiento son varias; desde servir contenido para una aplicación hasta servir un sitio web estático (y conectarlo con un balanceador de cargas), pasando por el resguardo de tus respaldos o integrarlo como etapa de una solución de Big Data. Tú decides.

Puedes consultar aquí el repositorio con los pasos para que comiences a probar Cloud Storage.




Enlaces de interés