Capítulo 1. Introducción Introducción

Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com

¡Bienvenido a Google Cloud! Tanto si eres un desarrollador experimentado en la nube como si eres un administrador de sistemas que se pasa a la nube por primera vez, Google Cloud te resultará una gran plataforma para crear cualquier cosa, desde las aplicaciones sin servidor más pequeñas hasta las aplicaciones empresariales y canalizaciones de datos más grandes.

Este capítulo es una visión general de alto nivel de la plataforma, con algunos consejos sobre cómo empezar. Si ya utilizas Google Cloud, probablemente puedas saltarte este capítulo. Si eres nuevo en la plataforma, ya vengas de las instalaciones (on-premise) o de otro proveedor de la nube, aquí encontrarás una breve visión general de los servicios, herramientas y funciones que necesitas conocer para empezar. Hacia el final del capítulo, describiremos cómo trasladar rápidamente tus conocimientos existentes sobre el proveedor de la nube. Los próximos capítulos son colecciones tradicionales de recetas que encontrarás en un libro de cocina.

Visión general

Como la mayoría de las plataformas en la nube, Google Cloud es una colección de recursos físicos como servidores y almacenamiento, así como servicios de nivel superior como BigQuery o AppEngine construidos sobre ellos, todos funcionando en los centros de datos de Google. La plataforma está organizada en zonas, regiones, multirregiones (continentes) y, a continuación, el globo entero. La Tabla 1-1 muestra un modelo mental aproximado de lo que significa cada una de estas .

Tabla 1-1. Descripción de la regionalidad del servicio
Regionalidad del servicio Descripción
Zonal Un gran clúster de computación en uno o varios edificios de centros de datos. Debe considerarse un único dominio de fallo.a
Regional Un conjunto de edificios de centros de datos (campus). Formado por múltiples zonas. Cada zona suele tener una infraestructura eléctrica y de red distinta y un programa de actualización diferente. Los servicios regionales se prestan desde varias zonas o se conmutan automáticamente en caso de interrupción zonal.
Multiregional Un grupo de regiones generalmente en el mismo continente. Los servicios multirregionales se prestarán desde varias regiones y gestionarán un fallo regional.
Global Un servicio implementado en las regiones de Google Cloud de todo el mundo.

a Técnicamente, una zona es una abstracción lógica de una región con las propiedades de dominio de fallo descritas, aunque esta analogía física puede ser útil para entender la diferencia y suele ser la forma en que se implementan.

Los diferentes servicios tienen diferentes alcances; por ejemplo, una máquina virtual (VM) vive en una zona, mientras que un equilibrador de carga de red L7 existe globalmente. La Figura 1-1 muestra un ejemplo de algunos recursos informáticos básicos.

Compute and network resources in a region
Figura 1-1. Recursos informáticos y de red en una región

En general, debes diseñar los servicios de producción para que se implementen al menos en una región, si no en varias. Esto suele ser más fácil en Google Cloud que en otras plataformas, debido al gran número de servicios multirregionales y globales, y al hecho de que estos centros de datos están todos conectados con fibra propiedad de Google.

Proyectos

Una de las diferencias clave entre Google Cloud y algunas otras plataformas en la nube es la construcción de un proyecto. Cada recurso que crees o con el que interactúes existirá en un proyecto, y las funciones y reglas de seguridad tienden a aplicarse a nivel de proyecto, aunque ciertamente pueden ser más granulares. Los recursos de un proyecto suelen trabajar juntos para formar una aplicación. Un proyecto organiza naturalmente los recursos de forma segura, basándose en casos de uso de la vida real.

A menudo, una aplicación tendrá su propio proyecto para cada ciclo de vida, por ejemplo, "myapp-dev", "myapp-staging" y "myapp-prod". Cada proyecto sucesivo puede tener reglas de seguridad diferentes y una copia distinta de tu aplicación, con poco trabajo por tu parte para segmentarlos. A veces los proyectos se utilizan a nivel de equipo. Por ejemplo, un equipo de ciencia de datos que se dedique principalmente a la creación de canalizaciones de datos o a la exploración de datos compartirá un proyecto para todo este trabajo, mientras que las canalizaciones que se pasen a producción se ejecutarán en un proyecto separado y más cerrado.

La mayoría de las veces, la mayoría de los recursos y servicios interactuarán con recursos sólo en ese proyecto, y las reglas de seguridad por defecto lo permiten. Sin embargo, puedes compartir recursos entre proyectos, y esto es más habitual cuanto más crece tu aplicación u organización. Por ejemplo, puedes compartir redes entre proyectos o crear reglas de seguridad para permitir el acceso a objetos almacenados en Google Cloud Storage (GCS) entre proyectos. Cruzar los límites de un proyecto suele requerir un paso de configuración consciente, lo que ayuda a la seguridad.

Cómo crear tu primer proyecto en la nube de google

Aquí, crearemos un proyecto vacío de Google Cloud y obtendremos 300 $ en créditos.

  1. Ve a la página Cómo empezar e inicia sesión con una cuenta válida de Gmail.

  2. Acepta las condiciones del servicio, como se muestra en la Figura 1-2.

    Google Cloud Terms of Service dialog box
    Figura 1-2. Cuadro de diálogo Condiciones del servicio de Google Cloud
  3. Activa tu prueba gratuita con el botón de arriba a la derecha para recibir 300 $ en créditos.

  4. Añade una tarjeta de crédito para empezar, como se muestra en la Figura 1-3. No te preocupes; no hay autocarga ni cargos adicionales después de que hayas gastado tus 300 $, siempre que apagues las máquinas virtuales y borres tus datos. En general, es difícil acumular una factura enorme, dada tu cuota predeterminada de recursos.

Google Cloud credit card dialog box
Figura 1-3. Cuadro de diálogo de la tarjeta de crédito de Google Cloud

Verás que se ha creado un nuevo proyecto para ti, como en la Figura 1-4. Puedes decidir cambiar el nombre para mostrar (pero no el ID del proyecto o el número del proyecto), o puedes crear un nuevo proyecto con el nombre que desees.

New project view
Figura 1-4. Vista del nuevo proyecto

¡Enhorabuena! Ya tienes un proyecto en marcha en Google Cloud.

Proyectos empresariales

Google Cloud facilita la creación de uno (o varios) pequeños proyectos para uso personal, utilizando una cuenta de Gmail. Sin embargo, si trabajas en un contexto empresarial, los proyectos pertenecerán a una organización (tu empresa, por ejemplo) y estarán organizados en carpetas (piensa en departamentos). Casi todos los recursos siguen perteneciendo a proyectos individuales, a excepción de algunas reglas de seguridad y recursos de red.

Tu experiencia como desarrollador personal en solitario y como desarrollador de empresa también será muy similar, aunque puede que existan algunas reglas y restricciones de seguridad más. Por ejemplo, es posible que no puedas crear proyectos a voluntad como hacías con tu cuenta de Gmail, y no tendrás pleno poder sobre esos proyectos y recursos. También es probable que veas más errores relacionados con políticas y restricciones organizativas: por ejemplo, no deberías exponer el puerto 22 para SSH en todas tus máquinas virtuales, y verás un error si lo intentas. Te recomendamos esta guía para desarrollar en un entorno restringido de Google Cloud.

La Figura 1-5 es un ejemplo de jerarquía de organización de Google Cloud, que organiza proyectos y recursos.

Google Cloud organization hierarchy
Figura 1-5. Jerarquía organizativa de Google Cloud(https://oreil.ly/eXevQ)

Consola en la nube

Gran parte de tu interacción diaria con Google Cloud será a través de la consola mediante tu navegador. Ya has visto la consola, pero puedes volver a acceder a ella en la página de inicio de Google Cloud Platform. La Figura 1-6 muestra la consola con muchos de los elementos más importantes señalados.

The Google Cloud Console
Figura 1-6. La consola de Google Cloud

La Tabla 1-2 muestra algunas de las partes más utilizadas de la Consola de Google Cloud.

Tabla 1-2. Partes de la Consola de Google Cloud
Nombre Descripción
Menú de navegación Haz clic aquí para acceder a los numerosos servicios de GCP.
Proyecto actual Si trabajas en varios proyectos diferentes, es útil ver en cuál estás.
Barra de Búsqueda Rápida Aunque antes me enorgullecía de saber dónde estaban todos los servicios en el menú de servicios y de anclarlos para acceder a ellos más rápidamente, cada vez utilizo más la barra de búsqueda para acceder rápidamente a las distintas páginas. Al fin y al cabo, Google es una empresa de búsquedas.
Caparazón Nube Abre rápidamente un intérprete de comandos en tu navegador con gcloud y otras herramientas instaladas. Más sobre esto dentro de un rato.
Cuenta corriente Aquí es donde puedes ver fácilmente con qué cuenta has iniciado sesión, lo que resulta especialmente útil si cambias entre tu cuenta de empresa y tu cuenta de Gmail.
Proyecto actual Aquí es donde aparecen tus cargos actuales del mes hasta la fecha en el proyecto.

Haz clic en el menú de navegación para ver los servicios disponibles. Puedes hacer clic directamente en Compute Engine si quieres ir directamente a la página por defecto (una lista de tus máquinas virtuales en ese proyecto), o puedes pasar el ratón por encima de Compute Engine y ver las subpáginas adicionales a las que puedes acceder directamente, como se muestra en la Figura 1-7.

The navigation menu, where you access a service’s main page and subpages
Figura 1-7. El menú de navegación, desde el que accedes a la página principal y a las subpáginas de un servicio

Ten en cuenta que puedes fijar servicios individuales si los utilizas con frecuencia para que aparezcan en la parte superior del menú de navegación, como se muestra en la Figura 1-8.

Pinning services in the menu
Figura 1-8. Anclar servicios en el menú de navegación

O puedes utilizar la barra de búsqueda, que suele ser más rápida si utilizas muchos servicios.

Ahora, vamos a mostrarte algunas cosas que puedes hacer en la Consola en la Nube. En primer lugar, subiremos un archivo y, a continuación, ejecutaremos una consulta.

Este ejemplo de muestra cómo utilizar la consola para realizar acciones sencillas y cotidianas que antes realizábamos con herramientas de la interfaz de línea de comandos (CLI). En este caso, crearemos un cubo GCS y subiremos un archivo a él:

  1. En la Consola de la Nube, abre la sección Almacenamiento en la Nube, como en la Figura 1-9.

    Cloud Storage browser from the navigation menu
    Figura 1-9. Navegador de Almacenamiento en la Nube desde el menú de navegación
  2. Crea un nuevo cubo, como se muestra en la Figura 1-10. Llámalo como quieras.

    Create a new bucket
    Figura 1-10. Crear un nuevo cubo
  3. Deberías ver tu nuevo cubo, como en la Figura 1-11.

    An empty bucket in the console
    Figura 1-11. Un cubo vacío en la consola
  4. Hay muchas formas de subir archivos al Almacenamiento en la Nube. Por ahora, crea un archivo de texto o documento vacío en tu escritorio y luego súbelo a través de tu navegador. El resultado se parecerá a la Figura 1-12.

    A new file in the new bucket
    Figura 1-12. Un nuevo archivo en el nuevo cubo
  5. ¡Enhorabuena! Has subido un archivo. Puedes hacer clic en él para ver más datos sobre el archivo, el tamaño e incluso un enlace de descarga autenticado.

  6. No olvides eliminar el objeto y el cubo para evitar cargos a largo plazo.

Herramienta de línea de comandos de gCloud

Gran parte de tu trabajo interactuando con Google Cloud, ya sea creando máquinas virtuales, implementando aplicaciones o ejecutando consultas BigQuery, puede realizarse fácilmente desde tu estación de trabajo, utilizando el conjunto de utilidades gcloud. Aunque cada servicio de Google Cloud tiene una API y a menudo una biblioteca cliente en tu idioma preferido, gcloud es una forma enormemente útil, común y de primera clase de interactuar con Google Cloud.

Instalar gcloud

El kit de desarrollo de software (SDK) del cliente (gcloud) es una forma sencilla de empezar a utilizar rápidamente estos servicios desde la CLI y mediante scripts. Tu sistema necesitará tener instalado Python. Si tienes algún problema con la instalación, pasa a la sección "Shell Nube" para una experiencia gcloud sencilla y basada en navegador.

  1. Dirígete a la documentación del instalador del SDK para descargar el cliente gcloud para tu sistema operativo. Tu secuencia de instalación será algo parecido a esto (para macOS):

    curl https://sdk.cloud.google.com | bash
  2. Elige un directorio (normalmente el directorio personal). Pulsa Intro por defecto.

  3. Permite que el instalador modifique tu variable de entorno $PATH para que puedas utilizar inmediatamente gcloud con sólo escribirlo. Pulsa y para continuar.

  4. Actualiza tu archivo .bashrc o .bash_profile para que el directorio gcloud se añada siempre a la variable de entorno $PATH. Déjalo en blanco y pulsa Intro para mantener el valor predeterminado.

  5. Reinicia tu shell:

    exec -l $SHELL
  6. Inicia la instalación de gcloud:

    gcloud init
  7. Tendrás que elegir una cuenta (lo que puede implicar salir al navegador para autenticarte y copiar y pegar un código).

  8. Elige un proyecto por defecto:

    You are logged in as: [dhodun@google.com].
    Pick cloud project to use:
     [1] dhodun1
     [2] dhodun2
    Please enter numeric choice or text value (must exactly match list
    item):

También podrás elegir una región o zona por defecto. Éstas son comunes y útiles, sobre todo para las máquinas virtuales (en Google Compute Engine), especialmente si trabajas principalmente en una sola región o zona y no quieres especificarlas como banderas en cada comando gcloud .

Comandos gCloud

Ahora que tienes gcloud instalado, aquí tienes una serie de comandos útiles que utilizarás. Te recomiendo que los pruebes todos ahora para familiarizarte con la herramienta.

La mayoría de los comandos de gcloud siguen el mismo formato:

`gcloud` + `service` + `resource in that service` + `command`

Los comandos habituales son list, create, delete, etc.

gcloud config list

Este muestra tu configuración actual de gcloud, incluyendo el proyecto, la cuenta, la región y la zona configurados actualmente:

dhodun@cloudshell:~ (dhodun2)$ gcloud config list
[compute]
region = us-central1
zone = us-central1-c
[core]
account = dhodun@google.com
disable_usage_reporting = True
project = dhodun2
gcloud auth login
Este añade otra cuenta con credenciales a gcloud, lo que inicia el flujo de trabajo de autenticación basado en navegador.
gcloud auth list

Este enumera todas las cuentas conectadas actualmente a gcloud. Esto es habitual si tienes una cuenta corporativa y una cuenta personal (y de alguna manera puedes iniciar sesión en ambas en el mismo sistema) o si tienes un par de cuentas personales para varios proyectos.

dhodun@cloudshell:~ (dhodun2)$ gcloud auth list
 Credentialed Accounts
ACTIVE ACCOUNT
*       dhodun@google.com
        dhodun@mycorp.com
gcloud config set project <project_ID>
Este comando establece tu proyecto predeterminado configurado actualmente para gcloud. Muchos otros comandos de gcloud e incluso bibliotecas cliente deducirán el proyecto al que apuntar en función de cómo esté configurado gcloud. A menudo, es más cómodo establecer tu proyecto por defecto con este comando que añadir "-p <id_proyecto>" a cada comando gcloud que ejecutes.
gcloud auth set account <your_name@gmail.com>
Este te permite cambiar de cuenta cuando algunas de ellas están autenticadas en gcloud.
gcloud components update
Este actualiza gcloud. Recuerda hacer esto con cierta frecuencia; siempre se están lanzando nuevos comandos, servicios y capacidades en Google Cloud.
gcloud compute instances create my-new-vm --image-family ubuntu-1604-lts --image-project ubuntu-os-cloud

Este crea una nueva VM de Ubuntu con todas las demás configuraciones por defecto de tu proyecto. Salida:

Created [https://www.googleapis.com/compute/v1/projects/dhodun2/zones/us-central1-c/instances/my-new-vm].
NAME       ZONE           MACHINE_TYPE   PREEMPTIBLE  INTERNAL_IP  EXTERNAL_IP   STATUS
my-new-vm  us-central1-c  n1-standard-1               10.128.0.29  35.223.11.69  RUNNING
gcloud compute instances list
Este enumera todas las máquinas virtuales de tu proyecto actual.
gcloud container clusters list
Este enumera todos los clusters actuales de Google Kubernetes Engine (GKE) que se ejecutan en tu proyecto. No verás nada si aún no has creado un clúster.
gcloud compute instances delete my-new-vm
Este comando borra la misma máquina virtual que creaste en el ejemplo anterior. Pulsa y para confirmar.
gcloud projects list --format="json"

En puedes añadir patrones de formato y filtrado a cualquier gcloud para hacerla más legible. Este comando muestra lo que ocurre si quieres ver los detalles de todos tus proyectos en un bonito formato JSON.

[
  {
    "createTime": "2021-08-06T11:02:22.009Z",
    "lifecycleState": "ACTIVE",
    "name": "dhodun2",
    "projectId": "dhodun2",
    "projectNumber": "181626564526"
  }
]

Si quieres profundizar en gcloud, consulta la hoja de trucos oficial.

Otras herramientas gcloud

Ahora que tienes gcloud instalado, en realidad también tienes algunas otras herramientas:

  • gsutil para operaciones GCS (Google Cloud Storage)

  • bq para el acceso CLI a BigQuery, el almacén de datos sin servidor de Google Cloud

  • kubectl, la herramienta de código abierto para acceder e interactuar con clusters Kubernetes

Estas herramientas de se tratarán en futuros capítulos, pero aquí tienes algunos comandos de ejemplo para que te hagas una idea:

gsutil ls
Este enumera todos los cubos GCS a los que tienes acceso.
gsutil ls gs://gcp-public-data-landsat/

Este es el comando normal para listar una carpeta de un cubo.

dhodun@cloudshell:~ (dhodun2)$ gsutil ls gs://gcp-public-data-landsat/
gs://gcp-public-data-landsat/index.csv.gz
gs://gcp-public-data-landsat/LC08/
gs://gcp-public-data-landsat/LE07/
gs://gcp-public-data-landsat/LM01/
gs://gcp-public-data-landsat/LM02/
gs://gcp-public-data-landsat/LM03/
gs://gcp-public-data-landsat/LM04/
gs://gcp-public-data-landsat/LM05/
gs://gcp-public-data-landsat/LO08/
gs://gcp-public-data-landsat/LT04/
gs://gcp-public-data-landsat/LT05/
gs://gcp-public-data-landsat/LT08/
bq ls -project_id bigquery-public-data

Este enumera todos los conjuntos de datos a los que tienes acceso de lista en el proyecto dado. O deja la bandera del proyecto en blanco para ver todo a lo que tienes acceso en el proyecto actual. (Si tienes un proyecto nuevo, no verás nada).

dhodun@cloudshell:~ (dhodun2)$ bq ls -project_id bigquery-public-data
               datasetId
 -------------------------------------
  austin_311
  austin_bikeshare
  austin_crime
  austin_incidents
  Austin_waste
...
bq query --nouse_legacy_sql \
'SELECT
   COUNT(*)
 FROM
   `bigquery-public-data`.samples.shakespeare'

Este ejecuta una consulta en un conjunto de datos BigQuery, en este caso simplemente contando el número de filas de una tabla disponible públicamente. Verás esta salida:

dhodun@cloudshell:~ (dhodun2)$ bq query --nouse_legacy_sql \
> 'SELECT
>    COUNT(*)
>  FROM
>    `bigquery-public-data`.samples.shakespeare'

Waiting on bqjob_r5dc0d7cca7a2a56_0000017b2be329b3_1 ... (0s) Current status: DONE
+--------+
|  f0_   |
+--------+
| 164656 |
+--------+
gcloud container clusters get-credentials CLUSTER_NAME --zone ZONE

Autentica y almacena las credenciales en un clúster de Google Kubernetes Engine para que luego puedas utilizar la CLI de Kubernetes kubectl. Puedes ver en la salida que las credenciales se almacenan en caché y se genera una entrada kubeconfig para que luego puedas utilizar kubectl de forma natural.

dhodun@cloudshell:~ (dhodun2)$ gcloud container clusters get-credentials my-first-cluster-1 --zone us-central1-c
Fetching cluster endpoint and auth data.
kubeconfig entry generated for my-first-cluster-1.
kubectl get pods

Ahora puedes utilizar kubectl para interactuar con tu clúster como lo harías con cualquier clúster de Kubernetes. Lo utilizarás en el Capítulo 6 .

dhodun@cloudshell:~ (dhodun2)$ kubectl get pods
NAME                                            READY   STATUS        RESTARTS   AGE
Redis                                           3/3     Running       0          2m1s
web-server                                      3/3     Running       0          79s

Caparazón Nube

Una de las grandes características de para empezar con Google Cloud es Cloud Shell, un entorno de desarrollo y operaciones basado en navegador. Se trata esencialmente de una pequeña máquina virtual "justo a tiempo" que arranca con gcloud, kubectl, bibliotecas de cliente y otras herramientas instaladas y está preautenticada en Google Cloud con tu cuenta. Incluso tiene un entorno de desarrollo integrado (IDE) basado en web. Esto te permite operar con tu entorno en la nube sin tener que instalar ningún software en tu escritorio. También se puede utilizar para iniciar sesión en máquinas virtuales en tu navegador, lo que evita la necesidad de descargar y gestionar claves SSH.

Así es como se conecta a una VM, utilizando Cloud Shell:

  1. En la Consola Nube, haz clic en el icono Shell Nube de la parte superior derecha, como en la Figura 1-13.

    Cloud Shell icon
    Figura 1-13. Icono de Shell Nube
  2. Una vez aprovisionado, ejecuta gcloud config list como en la Figura 1-14 para ver que estás autentificado, apuntando a tu proyecto actual y listo para ejecutar otros comandos.

    Basic Cloud Shell output
    Figura 1-14. Salida básica de Shell Nube
  3. También puedes utilizar Cloud Shell desde la página de GCE para utilizar SSH directamente en una VM. Si aún no has eliminado esa VM de prueba, puedes ir a la página de Google Compute Engine y hacer clic en el botón SSH situado a la derecha de la VM para probarlo, como en la Figura 1-15.

    The Cloud Shell button in the GCE VM list
    Figura 1-15. El botón Shell Nube en la lista de máquinas virtuales de la GCE
  4. Se abrirá una nueva ventana, y se transferirán claves SSH nuevas a la máquina virtual para que puedas conectarte de forma segura. Nota: ¡no tienes que preocuparte de transferir estas claves tú mismo!

  5. Ahora que estás en la VM, como en la Figura 1-16, puedes comprobar que tienes acceso a gcloud. Sin embargo, estarás autenticado como la cuenta de servicio por defecto y no como tu cuenta de usuario. No se recomienda poner tus credenciales de usuario en las máquinas virtuales, porque cualquiera que obtenga acceso a esa máquina podría suplantar tu identidad al llamar a otras API de Google Cloud .

    Cloud shell SSH session into a GCE VM
    Figura 1-16. Sesión SSH de Cloud Shell en una VM GCE

Bibliotecas de clientes

A medida que escribas aplicaciones cada vez más nativas de la nube, interactuarás con cada vez más servicios en la nube en tu código. Por ejemplo, puedes almacenar archivos en Google Cloud Storage o escribir mensajes en el bus de mensajes Pub/Sub. En lugar de escribir directamente en la API, Google Cloud dispone de bibliotecas cliente en muchos lenguajes para facilitar esta tarea, como Go, Java, Node.js, Python, Ruby, PHP, C# y C++. A menudo se envían para servicios individuales o grupos de servicios. Puedes verlos todos en Bibliotecas de clientes de la nube.

He aquí un ejemplo muy sencillo del uso de una biblioteca cliente frente al uso de gcloud y comandos CLI similares que hemos utilizado antes. Crearemos un cubo con la Biblioteca Cliente de Almacenamiento y Cloud Shell. Utilizaremos un script de Python y la biblioteca cliente para crear un bucket de Google Cloud Storage y subir un archivo.

Este ejemplo de código, así como todos los demás ejemplos de código de este capítulo, está en el repositorio GitHub de este libro. Puedes seguirlo y copiar el código de este ejemplo.

  1. Abre un entorno Cloud Shell como acabamos de hacer.

  2. Haz clic en Abrir Editor en la parte superior derecha de Cloud Shell para abrir el IDE de Cloud Shell, como en la Figura 1-17.

    Open Editor button
    Figura 1-17. Botón Abrir Editor
  3. En el Explorador de archivos, haz clic en Archivo y luego en Nuevo archivo; y ponle el nombre storage_script.py. Introduce el siguiente código en este archivo. Cambia el nombre del cubo por algo único y aleatorio. El nombre de tu proyecto es una buena opción. Guarda el archivo. También puedes encontrar el script en el repositorio de GitHub, que puedes clonar en tu entorno Cloud Shell.

    from google.cloud import storage
    
    BUCKET_NAME = "INSERT-NEW-BUCKET-NAME"
    FILE = "file.txt"
    
    client = storage.Client()
    
    # create a new bucket
    bucket = client.bucket(BUCKET_NAME)
    bucket.storage_class = "STANDARD"
    new_bucket = client.create_bucket(bucket, location="us")
    
    # get the bucket (useful if it already exists)
    bucket = client.get_bucket(BUCKET_NAME)
    
    # create and upload a new blob from text
    blob = bucket.blob('remote/path/new_file.txt')
    blob.upload_from_string('New file!')
    print(blob.download_as_string())
    
    # create and upload a new blob from file
    blob2 = bucket.blob('remote/path/file.txt')
    blob2.upload_from_filename(filename='file.txt')
    print(blob2.download_as_string())
  4. Crea otro archivo y llámalo archivo.txt. Añade un texto como "¡Hola Mundo!" y guarda el archivo.

  5. Cuando termines de editar, haz clic en Abrir Terminal en la parte derecha de Cloud Shell, como en la Figura 1-18, para volver al modo terminal.

    Open Terminal button in Cloud Shell
    Figura 1-18. Botón Abrir Terminal en Cloud Shell
  6. Antes de ejecutar tu script, tendrás que utilizar la herramienta pip para instalar la biblioteca cliente de Cloud Storage para Python desde PyPi, el repositorio de paquetes de Python.

    pip3 install google-cloud-storage
  7. Ahora puedes ejecutar tu script.

    python3 storage_script.py

    Deberías ver la siguiente salida del script leyendo el contenido de ambos archivos:

    b'New file!'
    b'Hello World!'
  8. Borra tus archivos y el cubo, utilizando el navegador para evitar cargos adicionales.

Acabas de utilizar una de las bibliotecas cliente para conectarte mediante programación a un servicio de Google Cloud. Hay muchas bibliotecas cliente, dependiendo de los servicios con los que estés trabajando.

Si trabajas más en el lado de la infraestructura, utilizarás en gran medida las herramientas CLI o las herramientas de flujo de trabajo de infraestructura como Terraform, pero si estás en el lado de la aplicación, utilizarás con frecuencia estas bibliotecas cliente.

Observa también que cuando creamos el cliente, client = storage.Client(), no proporcionamos ninguna credencial ni un ID de proyecto. Esto se debe a que las bibliotecas cliente pueden inferir las credenciales basándose en una serie de ajustes de la máquina local, empezando por las Credenciales Predeterminadas de la Aplicación. En Cloud Shell, esto ya se ha configurado para ti en tu cuenta de usuario.

Esto es más allá del alcance de la introducción, pero que sepas que cuando utilizas tus propias credenciales como Credenciales predeterminadas de la aplicación, cualquier código que se ejecute en tu máquina y que acceda a una API de Google Cloud intentará utilizar tus credenciales de usuario potencialmente potentes. Consulta esta guía para obtener más información.

Facturación

Aunque configuración avanzada de cuentas de facturación para empresas está fuera del alcance de este libro, debes comprender los aspectos básicos de la facturación. A medida que consumes recursos de Google Cloud en un proyecto, los cargos se acumulan y suelen actualizarse en la consola cada noche. Si abres la sección Facturación de la consola, verás un resumen de tus cargos actuales, como en la Figura 1-19.

Billing breakdown for a single project
Figura 1-19. Desglose de la facturación de un único proyecto

Un proyecto siempre se asigna a una cuenta de facturación, que es la que paga el proyecto. Si creaste un proyecto con tu tarjeta de crédito, también creaste una cuenta de facturación. En un entorno empresarial, es probable que te den un proyecto con una cuenta de facturación ya asignada. El equipo financiero o de compras puede gestionar esta cuenta, lo que les permite controlar el proceso de pago, y a ti controlar los recursos de tu proyecto. Sin embargo, puedes ver el coste actual de tu proyecto en .

Precios

Los servicios de Google Cloud se cobran a medida que los utilizas. Es decir, no hay costes iniciales, y los servicios suelen facturarse por segundos o incluso menos. Si tienes una máquina virtual encendida 95 segundos, pagas sólo 95 segundos de uso informático.

Cada servicio tiene un modelo de precios diferente. Por ejemplo, en BigQuery pagas por el almacenamiento subyacente en función de la cantidad de datos que tengas y del tiempo que estén almacenados, y luego también pagas por cada consulta en función de la cantidad de datos que se analicen. En Google Compute Engine, sin embargo, pagas por segundo por los recursos consumidos por las máquinas virtuales activadas, como núcleos, RAM y almacenamiento en disco.

Si acabas de crear una cuenta, tienes 300 $ en créditos gratuitos para utilizar durante unos meses. Muchos servicios también tienen un nivel gratuito para un uso reducido que te ayudará a empezar. Consulta la documentación de cada servicio para obtener más detalles. Una gran herramienta para entender y predecir tus gastos es la Calculadora de Precios de Google Cloud. En puedes añadir servicios para estimar tu factura, como en la Figura 1-20.

Google Cloud Pricing Calculator
Figura 1-20. Calculadora de precios de Google Cloud

Código Nube (Extensiones IDE)

Otra herramienta de que merece la pena instalar es Cloud Code, un plug-in para IDEs populares, VSCode e IntelliJ, así como Cloud Shell. Cloud Code proporciona herramientas de autocompletado e in-IDE para aplicaciones basadas en Kubernetes y Cloud Run. Tiende un puente entre el desarrollo local y la implementación en entornos de nube, proporciona depuración en vivo para tus cargas de trabajo en contenedores, y te permite gestionar estos entornos con un solo clic. La Figura 1-21 muestra cómo ejecutar fácilmente una aplicación desde el IDE, orientada a un clúster minikube local de Kubernetes. Puedes dirigirte con la misma facilidad a un clúster en la nube.

Cloud Code run options
Figura 1-21. Código en la nube opciones

Pasar de otra nube

Si te trasladas a Google desde otra nube, encontrarás una serie de guías muy útiles para trasladar tus conocimientos actuales sobre herramientas, productos, servicios y arquitecturas al mundo de Google Cloud. Te recomendamos encarecidamente que las explores al principio de tu aprendizaje:

Este libro de cocina

El resto del libro se divide en función de la tecnología o las áreas de producto. Por ejemplo, hay capítulos específicos que tratan temas como Kubernetes y BigQuery. El resto de estos capítulos también están divididos en el típico formato de libro de cocina, con un problema a resolver y una solución, utilizando herramientas en la nube, acompañada de código o scripts de ejemplo. Pasemos ahora al Capítulo 2, que trata de Google Cloud Functions.

Get Libro de cocina de Google Cloud now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.