Contenido

Guía de Estudio para la Certificacion Google Associate Cloud Engineer

Atencion: Work In Progress

TODO:

  • Cloud functions
  • GKE
  • IAM
  • Stackdriver
  • Facturacion
  • Cloud Deployment Manager
  • Cloud Logging

Estare actualizando el contenido porque aun me faltan

📕 Glosario de Términos

  • Aplicación Multicapa (Multi-Tier Application)

    • En ingenieria de software, una arquitectura multiier (comunmente referida como arquitectura n-tier) o arquitectura multicapa es una arquitectura cliente-servidor en la que las funciones de presentación, procesos y gestión de datos de la aplicación están fisicamente separados. - wiki
  • Zone vs Regional

    • Las Regiones están formadas por Zonas (por ejemplo Región us-west1 está firmada por las Zonas us-west1-[a,b,c])- docs
    • Todas las regiones están a una distancia mínima de 160 kilómetros. - doc
  • db transactional**:** realiza todas las transacciones o ninguna (cuenta con rollback)

  • OLAP vs OLTP - artículo

    • OLTP: OnLine Transaction Process (Base de Datos)
      • El propósito de un sistema de OLTP system es la de manejar datos
    • OLAP: Online Analytical Processing (Almacen de datos - Data Warehouse)
      • Usado para el análisis de datos
  • Gcloud

    • Gestiona los recursos de Google Cloud Platform además del flujo de desarrollo - doc
  • Network Address Translation (NAT)

    • Mapea una Dirección IP dentro de otra distinta - wiki
    • Se usa para mapear direcciones IP privadas (192.168.x.x) a una IP externa pública.
    • Como NAT puede gestionar multiples conecciones desde los dispositivos dentro de la red, usando la misma dirección IP externa? (es decir: cómo NAT puede redireccionar los paquetes recibidos?)
      • Cada paquete tiene una IP:puerto del emisor, NAT reemplaza esto con un puerto personalizado y lo vincula con la IP del dispositivo interno - reddit
  • Proxy

    • el cliente direcciona la petición al servidor proxy, cual cual evalua la petición y realiza las transacciones de red requeridas - wiki
      • “En Redes de computadoras, un proxy es un intermediario en el que sé es asignado para enviar y recibir los mensajes por nosotros.” - reddit
    • Proxy vs nat
      • “NAT opera en la capa de red mientras que el proxy trabaja en la capa de aplicación.” - huawei
        • NAT es transparente para muchas aplicaciones
          • El proxy debe recurrir a la dirección IP del servidor proxy especificado en los programas de aplicación.
  • Recursos Globales - doc

    • Los recursos globales en GCP son accesibles para cualquier recurso en cualquier zona dentro del mismo proyecto.
    • ⭐ Algunos Recursos Globales:
      • Imágenes: usadas por cualquier instancia o recurso de disco en el mismo proyecto como imagen
      • Instantáneas
      • Redes de VPC
      • Rutas
  • Servicio de Google Front End - doc

    • Cuando se quiere publicar un servicio en Internet para que esté disponible, puede registrarse con un servicio de infraestructura llamado Google Frontend.

🔢 Gcloud Básico

El SDK de Cloud es un conjunto de herramientas que puedes usar para administrar recursos y aplicaciones alojados en Google Cloud. Estas herramientas incluyen las herramientas de línea de comandos de gcloud, gsutil y bq. docs

🌐 Redes

Nube Privada Virtual (VPC)

  • Una red Nube Privada Virtual (VPC) es una versión virtual de una red física, implementada dentro de la red de producción de Google, utilizando Andromeda.

  • O: es un conjunto de recursos computacionales configurables por demanda al interior de un ambiente de computación en la nube pública, el cual provee un cierto nivel de aislamiento entre las diferentes organizaciones o usuarios que utilizan dichos recursos - wiki

  • La red de VPC consta de una o más particiones de rango de direcciones IP útiles llamadas subredes

  • ⚠️ Redes y subredes son recursos diferentes en Google Cloud - doc

    • Las redes VPC no tienen rangos de direcciones IP asociadas a el
  • Las VPC son recursos globales y las subredes dentro de esa VPC son recursos regionales - wiki

    • VPC en modo-auto crea una subred para cada Región
    • Rango CIDR: cuanto menor sea el número después de la barra, más direcciones estarán disponibles
  • VPC Compartidos

    • Permite a una organización conectar recursos de varios proyectos a una VPC común - gcp
    • Cada recurso puede comunicarse con otro usando la dirección IP interna desde esa red
    • ⭐ Uso: designa un proyecto como proyecto host y se adjunta otro servicio a el
  • VPC Network peering

    • Se utiliza para conectar dos VPC independientemente de que pertenezcan al mismo proyecto o a la misma organización. - doc
    • Caracteristicas - doc
      • VPC Network Peering trabaja con Compute Engine, GKE, App Engine Flexible.
      • ⭐ Nota: App Engine Standard no es compatible (solo Flexible)
  • Rango de Alias IP

    • Utilizado para asignar múltiples IP to a MV
      • útil si el recurso aloja varios servicios y desea asignar a cada servicio una IP diferente (útil para los pods de GKE)
  • Subredes

    • Cada red de VPC consta de una o más particiones útiles del rango de IP llamadas subredes - doc
    • Cada subred está asociada a una región
    • Para saber cuales son las subredes por defecto:
      • gcloud compute networks subnets list --network default
  • ⭐ Regiones y Zonas disponobles

    • Hasta el primer trimestre de 2021, GCP está disponible en 28 regiones con 85 zonas - doc
  • Rutas - doc

    • ruta predeterminada generada por el sistema:
      • Prioridad de 1000 y target 0/0
      • ruta de salida de la red de VPC, incluida la ruta a Internet
      • ruta estándar para Acceso Privado a Google
  • ⭐ Acceso Privado a Google - doc

    • Permite a una MV sin dirección IP externa a comunicarse con las APIs y servicios de Google
  • Una red debe tener al menos una subred antes de poder utilizarla.

    • Puede crearse con el siguiente comando:
1
2
3
4
5
6
7
8
9
# Crea la Red VPC:
gcloud compute networks create NOMBRE_RED \
    --subnet-mode=auto \ # auto o custom
    --bgp-routing-mode=DYNAMIC_ROUTING_MODE \ # global o regional
    --mtu=MTU # 
tamaño de la unidad de transmisión
    
# Listar redes VPC
gcloud compute networks list
  • Los proyectos pueden contener multiples redes VPC.

    • Los nuevos proyectos comienzan con una red por defecto (una red VPC automatica) que tiene una sola subred en cada Región.
  • Modo Auto vs Custom

    • Auto: se crea automaticamente una subred por cada región
    • Custom: ninguna subred es creada automaticamente
  • ⭐ Cuántas redes VPC se puede crear? - 5 por defecto

Cuotas

Algunos números desde la doc

  • Cantidad máxima de rangos de IP secundarios por subred - 30
  • Cantidad máxima de conexiones a una sola red de VPC - 25
  • Cantidad máxima de instancias MV - 15,000 por red

Cloud Interconnect

  • Cloud Interconnect extiende la red local a la red de Google a través de una conexión de latencia baja con alta disponibilidad. - docs

  • Nota: se puede contectar a GCP de tres maneras - docs

    • Cloud VPN

      • ⭐ Cloud VPN es una conexión híbrida
        • Durante su configuración, puede especificar la puerta de enlace de Google Compute Engine VPN
    • Cloud Interconnect

    • Cloud Router

      • Es un servicio Google Cloud totalmente distribuido y administrado que utiliza el Protocolo de Puerta de Enlace Fronteriza (BGP) para anunciar rangos de direcciones IP
  • Para acceder solo a Google Workspace o a las API de Google compatibles:

    • Direct Peering
      • conexión de intercambio de tráfico directa entre la red perimetral y la de Google.
    • Carrier Peering
      • se contrata a un proveedor para obtener servicios de red de nivel empresarial que conectan la infraestructura interna con la Google.
  • Otras conexiones

    • CDN Interconnect
      • proveedores de redes de distribución de contenido (CDN) de terceros para establecer vínculos de intercambio de tráfico directos con la red perimetral de Google
    • Niveles de Servicio de Red (Network tier)
      • Se puede especificar cual red debe ser usada las conexiones - doc
        • Despues de seleccionar un nivel por defecto, puede ser cambiado en tiempo de despligue
      • Two kind of tiers
        • Nivel Premium: utiliza la red de alta disponibilidad de Google
        • Nivel Standard: más económico, utiliza redes de Internet estándar

Equilibrador de Carga (Load Balancer)

  • Eli5 Load Balancer - sirve la petición a las instancias menos ocupadas o con menos tráfico

  • Permite ubicar tus recursos detrás de una sola dirección IP que sea accesible de manera externa o interna para la red de nube privada virtual (VPC) - gcp

  • Anycast = la dirección IP de destino tiene múltiples rutas o a dos o más destinos - wiki

  • CLI

1
2
# Cree una regla de reenvío para dirigir el tráfico de red a un equilibrador de carga
gcloud compute forwarding-rules create

Escogiendo un Equilibrador de Carga

Basado en los docs

  • Equilibrador de Carga Interno

    • Distribuye el tráfico a instancias dentro de Google Cloud.
    • Escogiendo basado en el tipo de Tráfico
      • Equilibrador de Carga Interno HTTP(S) - docs
        • Regional
      • Internal TCP/UDP Load Balancing - docs
        • Regional
  • Equilibrador de Carga Externo

    • Distribuye el tráfico proveniente desde Internet hacia la VPC
    • Escogiendo basado en zonas y el tipo de tráfico:
      • Si el tráfico es UDP: usar TCP/UDP Externo
    • HTTP(S) Externo - docs
      • Global
    • Proxy SSL - docs
      • Global
    • Proxy TCP - docs
      • Global
    • Redes Externas TCP/UDP - docs
      • Regional
  • Nota:

  • Secure Sockets Layer

    • SSL opera directamente encima del protocolo de control de transmision (TCP) - fuente - eli5
    • SSL puede usar TCP [1] para transportar registros SSL, de esta manera, SSL se basa en TCP como servicio - fuente
  • Verificaciones de Estado (Health Check)

    • El Equilibrador de carga puede utilizar mecanismos de verificación de estado - docs

Firewall

  • ⭐ Cada VPC implementa un firewall virtual distribuido - doc

  • permite habilitar o denegar conexiones desde o hacia instancias MV - docs

    • Debe especificar y aplicar reglas de entrada (ingress) o salida (egress), no ambas
  • Cada red tiene implicitas dos reglas de Firewall que permiten conexiones salientes y bloqueando las conexiones entrantes.

  • ⭐ Reglas por Defecto: doc

    • Permiten conectarse entre MVs de la misma red y enviar paquetes ICMP
  • ⭐ Tráfico que siempre está bloqueado - doc

    • Tráfico de salida al puerto de destino TCP 25 (SMTP)
      • “El puerto 25 TCP es frecuentemente bloqueado por Proveedores de Servicio de Internet (ISPs), como una técnica anti-spam, ya que se utiliza en spam de MX y abuso de máquinas de retransmisión/proxy abierto..” - web
    • Protocolos distintos de TCP, UDP, ICMP, IPIP, AH, ESP, SCTP y GRE para direcciones IP externas de los recursos de Google Cloud
  • CLI

1
2
# Crea una regla de firewall para Compute Engine
gcloud compute firewall-rules create [NOMBRE_REGLA] [--network=NOMBRE_SUBRED] --destination-ranges[RANGO_CIDR] [--direction]

Cloud Armor

  • Ayuda a proteger las aplicaciones y sitios web contra los ataques web y de denegación del servicio. - doc
  • Protección DDoS, soporte híbrido y multinube, acceso basado en IP y geo-localización, protección adaptativa (modelo de aprendizaje automático personalizado entrenado)

🎒 Almacenamiento

Tipos de Almacenamiento

Documentación de Google Cloud

  • Block storage

    • Is the traditional storage type for Vm - netapp
      • Stores chunk of raw data linearly in constant size blocks
    • Solución en GCP = Persistent disk, SSD Local
  • Object storage

    • Permite almacenar y recuperar cualquier cantidad de datos en todo el mundo y en cualquier momento - docs
      • Vincula un enlace (por ejemplo, una URL) a un objeto específico sin jerarquia - reddit
    • Solución en GCP = GCS
  • Cache

  • Los datos se almacenan en memoria de rápido acceso. Los datos son borrados con el reinicio de la MV (si no se almacenan en otro lugar diferente), pueden sufrir invalidación de caché

  • Soluciones en GCP = RAM - SSD Local - Memorystore

Servicios de Almacenamieno de GCP

Cloud Datastore / Firestore

  • Base de datos documental NoSQL altamente escalable, transaccional, terabytes+
  • ⭐ Firestore ****es la nueva versión de Datastore
  • Acelera el desarrollo de aplicaciones moviles, web e IoT con conectividad directa a la base de datos - doc
  • ⭐ Datastore usa el lenguaje GQL - doc
  • CLI
1
2
  # Para exportar todos los tipos en el namespace ejemploNs del proyecto exampleProject al bucket exampleBucket
gcloud datastore export gs://exampleBucket --namespaces='exampleNs' --project='exampleProject'

Filestore - doc

  • Sistema de Archivos en Red (NFS) Gestionado - docs
    • Permite a un computador cliente acceder a archivos sobre una red casi como si se estuviera acceciendo desde un almacenamiento local - wiki
  • ⭐ Filestore vs GCS
    • “(filestore) ofrece almacenmaiento de archivos de alto rendimiento a aplicaciones que se estén ejecutando en instancias Compute Engine y Kubernetes Engine” - stackoverflow

Memorystore - doc

  • Basicamente, es un servicio redis gestionado.
  • Reduce la latencia con un servicio en memoria escalable, seguro y con alta disponibilidad para Redis y Memcached.
    • 100% compatible Redis y Memcached de código abierto
  • ⭐ Tamaño máximo: 300 GB - doc
  • CLI - doc
1
2
3
# Crea una instancia Memorystore para Redis:
gcloud redis instances create myinstance --size=2 --region=us-central1 \
    --redis-version=redis_5_0

BigTable

  • Es un servicio de base de datos NoSQL escalable y completamente administrado para grandes cargas de trabajo de estadísticas y operaciones con una disponibilidad de hasta el 99.999%
  • baja latencia, no transaccional, almacenamiento de columna ancha, sin consultas tipo SQL, expone la API de Apache HBase, petabytes+
  • Estructura
    • Instancia - doc
      • Una instancia de Cloud Bigtable es un contenedor para hasta cuatro clústeres de Bigtable.
      • Las instancias puede tener uno o mas clústeres, localizados en diferentes zonas
    • Clústeres - doc
      • Servicio Bigtable service en un lugar especifico
    • Nodos - doc
      • Recursos de computo que Bigtable utiliza
      • Cada clúster de una instancia tiene 1 o más nodos
  • CLI - docs

Cloud Storage (gcs)

  • Los Objetos son inmutables, versionado de objetos**,** petabytes+

  • Tipo de acceso: Uniforme (recomendado), granular (usa ACL obsoletas) - doc

  • GCS - Buenas Práticas - doc

  • Uso compartido y colaboración - doc

  • ⭐ URLs Firmadas

    • Es una URL que proporciona permisos y tiempo limitados para realizar una solicitud - doc
      • “permitiendo a los usuarios sin credenciales a realizar una tarea específica en un recurso”
    • Cada URL Firmada esta asociada a una Cuenta de Servicio
    • La petición mas común para URLs Firmadas son las de subir y descargar objetos
  • Clases de Almacenamiento - doc

    • Opciones Cold:

      • Nearline Storage: lectura o modificación en promedio 30 días o menos
      • Coldline Storage: lectura o modificación una vez cada 90 días
      • Archive Storage: una lectura o modificación en 365 días
    • ⭐ Cambiar clase de Almacenamiento

      • Nota: es un proceso de reescritura, no se puede cambiar la clase de almacenamiento original del bucket
      • ⭐ Nota: se utiliza para esto el comando gsutil, no gcloud
        • El comando gsutil solo puede ser utilizado para Cloud Storage. - stackoverflow
1
2
3
4
5
# Reescribe un objeto origen a un objeto desitno .
gsutil -m rewrite -s coldline gs://bucket/**
        
# Crea un bucket
gsutil mb gs://NOMBRE_BUCKET
  • Localización

    • Región: Baja latencia dentro de una sola región
    • Multi-región: Alta disponibilidad a través de una mayor área
    • Regiones-Duales: Alta disponibilidad y baja latencia a través de 2 regiones
    • ⭐ No hay una manera única de mover objetos desde Región a Multi-Región - stackoverflow
  • ⭐ Versionado

    • Cuando se usa versionado, la última versión del objeto es llamado objeto “vivo” - doc

Cloud SQL

  • Base de Datos Relacional SQL, transaccional, servicio de réplicas, terabyte+
  • MySQL, PostgreSQL, y (MS) SQL Server
  • ⭐ CLI
1
2
3
4
5
# Actualizar la configuración de una instancia Cloud SQL
gcloud sql instances patch [NAME] [--backup-start-time] [--backup-location] 
    
# Comandos para trabajar con respaldos de las instancias Cloud SQL
gcloud sql backups [create/delete/describe/list/restore]

Cloud Spanner

  • Base de Datos Relacional SQL, escalado horizontal, petabytes+

BigQuery

  • Datalake almacenamiento de datos (OLAP), análisis de datos
  • CLI
1
2
# Importar datos a bq
bq load --autodetect --source_format=FORMAT DATASET.TABLE PATH_TO_SOURCE

🧠 Servicios de Cómputo

Compute engine (VM)

  • IaaS - MV bajo demanda

  • IP address - doc

    • Para localizar la IP externa (e interna) de la MV, se debe utilizar: gcloud compute instances list
    • Si la MV está autorizada, puede recibir una dirección IP externa y mapearla a su dirección interna
  • ⭐ Cuotas doc

  • Hay dos tipos de Cuotas: proyecto o regional

    • Proyecto:
      • Puestas para un proyecto especifico, se puede saber con: gcloud compute project-info describe --project ID_PROYECTO
    • Regional:
      • Las cuotas de las MV son gestionada a nivel regional: gcloud compute regions describe REGION
  • Note:

    • “Las cuotas no garantizan que los recursos estén disponibles siempre”
  • Almacenamiento:

    • SSDs Local - doc
      • Mejor rendimiento: están fisicamente conectados al servidor que hospeda la instancia de MV
      • 375 GB de capacidad
      • Pueden ser conectados 24 discos para un total máximo de 9 TB
  • scripts de apagado - doc

    • tienen una limitada cantidad de tiempo para finalizar los procesos corriendo (Instancias descartables: 30s)script desde la Consola usando la clave de metadatos shutdown-script
  • Instance groups

    • colección de MV que pueden ser gestionados como una simple entidad - doc
    • Hay dos Tipos de IG:
      • Grupo de Instancias Gestionadas (MIGs)
        • ⭐ Múltiples e identicas MV, escalables y altamente disponibles.
        • crea MV desde un template de instancias y configuración Stateful opcional (por ejemplo, discos)
        • Hay dos tipos de MIG:
          • MIG Zonal
            • despliga instancia en una zona
          • MIG Regional
            • despliga instancias a través de multiples zonas de la misma Región
      • Grupo de Instancias No Gestionadas
        • pueden contener instancias heterogeneas, necesita ser gestionado por un humano
        • no ofrecen autoescalado, autosanado, soporte a actualizaciones rolling ni soporte multi-zone
        • ⭐ “Usa grupo de instancias no gestionadas cuando se necesiten aplicar equilibrio de carga a grupos de instancias heterogeneas, o si se necesita gestionar las instancias por un humano” - doc
  • Ahorra Costos

    • Instancias de MV Interrumpibles (Preemptible)
      • ⭐ Instancias de MV Interrumpibles no pueden ser migradas a una instancia de MV regular - doc
    • Descuentos por Comprometimiento de Uso
      • Si hubiere una carga de trabajo que siempre (o la mayor parte de las veces) sea requerida, se puede comprometer a utilizar una MV de 1 a 3 años y recibir un descuento.
  • MV Protegida - doc

    • ⭐ ofrece integridad verificable de tus instancias de VM de Compute Engine, para que puedas estar seguro de que las instancias no se expusieron a software malicioso o rootkits de nivel de inicio y kernel
    • uso del Inicio seguro, el inicio medido habilitado para el módulo de plataforma segura virtual (vTPM) y el monitoreo de integridad.
  • Cloud Console

    • ⭐ Para reiniciar una MV, se debe utilizar el botón reset
    • Se pueden ordenar las instancias de MV por Etiquetas, estatus, zonas, usado por, IP, etc.
    • ⭐ Se puede filtrar una instancia por You can filter VM instances by Etiquetas, estatus, Miebro del Grupo de Instancias Gestionadas, IP, Propiedades de la MV.
  • GPU

    • ⭐ Se debe configurar las instancias de GPU para que se detengan durante los eventos de mantenimiento del host - doc
  • Snapshot

    • ⭐ Compute Engine usar instantaneas incrementales por lo que cada instantea contiene solo los datos que han sufrido cambios desde la instantanea previa. - doc
    • Para tomar una instantanea se debe tener el rol de Compute Storage Admin - doc
      • Permisos para crear, modificar y eliminar discos, imagenes e instantaneas.
  • Discos

    • Los discos están a nivel regional, por lo que se puede habilitar replicación regional
      • Regional: el disco será reolicado sincronicamente a través de dos zonas dentro de una Región
    • Caso de Uso: Copiar una MV desde una zona a otra en la misma Región
      • gcloud para copiar el disco a una nueva zona, para entonces crear una MV a partir de ese disco
      • Otros: Mover una instancia entre zonas - doc

GKE - Google Kubernetes Engine

  • Ejecuta aplicaciones contenereizas en un entorno gestionado
  • construido sobre Compute engine
  • Clúster Regional
    • Se puede especificar un clúster, y GCP replica las configuraciones a todas las demás zonas
    • Problema: se paga por recursos multiplicando el número de zonas disponibles
  • Clúster Multizona
    • Se puede escoger mas de una zona de una Región
    • Se reducen costos (por ejemplo se pueden seleccionar 2 zonas en lugar de 3)
      • Y no es necesario mantener los mismos nodos en ambas zonas, en caso de fallas en una zona, esto puede ser un potencial
    • Problema: el nodo maestro está solo en la zona principal Si la zona muere, el nodo maestro muere
  • Aprovisionamiento Automático - doc
    • GCP tratará de entender los recursos requeridos por un pod, y creará un pool de nodos bajo demanda con los suficientes recursos para alojar ese pod
    • Adapta el pool de nodos de acuerdo a los requisitos que necesite el pod
  • Binary Authorization
    • Despliega solo contenedores verificados en Google Kubernetes Engine.

Cloud Run

  • En una frase: el usuario le proporcionará a Google Cloud Run un contenedor Docker que contebga un servidor web.
    • Google ejecutará este contenedor y creará un endpoint HTTP. - medium
  • ⭐ Puede ser facilmente confundido con App engine (particularmente con App Engine Flex)
    • [aquí] hay algunos comentarios utiles:
      • “AppEngine solo puede ser desplegado en una sola Región.”
      • Cloud run permite desplegar un servicio a cualquier Región dentro de un proyecto haciendo su API realmente global, todo dentro del mismo proyecto.

App Engine

  • ⭐ Definiciones:

    • Una aplicación por proyecto
    • La aplicación puede tener multiples Servicios:
      • Los componentes lógicos pueden compartir de forma segura las funciones de App Engine y comunicarse
    • Cada cambio en el Servicio crea una nueva Versión
    • Cada Versión se ejecuta en una máquina llamada Instancia
      • Instancias Residentes:
        • Cada vez que es escalado a 0, esas están siguen igual en linea o vivas. - medium
      • Instancias Dinámicas:
        • crea instancias con escalado automático - doc
  • PaaS - Ejecuta codigo en la nube sin preocuparnos por la insfraestructura

    • Se le indica a Google como la aplicación debe ser ejecutada.
    • App Engine creará y ejecutará un contenedor con esas instrucciones.
    • Por ejemplo, especificar un app.yml con:
      • runtime: nodejs12
      • entrypoint: node build/server.js
  • Caracteristicas Básicas

  • No se puede escribir en el disco local, se debe probar la aplicación localmente, para que encaje bien con la arquitectura de microservicios

  • ⭐ Solo una App Engine por Proyecto - doc

  • ⭐ Limites - doc

    • Servicios máximos por aplicación: 5
    • Versiones máximas por aplicación: 5
    • Instancias máximas por versión con escalado manual: 20
  • Entornos - docs

    • Entorno Estandar
      • código en una versión especifica en un lenguaje de programación especifico, inicio rápido (sec)
    • Entorno Flexible
      • ofrece docker, inicio más lento (min)
  • ⭐ Localizaciones

    • App Engine es un servicio regional, No se pueden trasladar aplicaciones de Región. - doc
  • Servicios

    • Se pueden desplegar multiples servicios en un solo App Engine dentro del mismo proyecto en que la reside
    • “Una aplicación de App Engine consta de un solo recurso de aplicación que consiste en uno o más servicios.” - doc
    • “Dentro de cada servicio se implementan sus versiones”
  • Limites

    • Cantidad de Servicios máximos por aplicación - App Grátis 5 - App de Pago 105
    • Cantidad de Versiones máximas por aplicación - App Grátis 15 - App de Pago 210
  • Si se desea dividir el tráfico con una cookie, el nombre de la cookie debe ser GOOGAPPUID - doc

  • ⭐ Escalado - doc

    • Escalado Básico**:**
      • App Engine intenta de mantener bajos los cotos, aún cuando esto resulte en una alta latencia y el volumen de petición se incremente
    • Escalado Automático:
      • Cada instancia en la aplicacion tiene su propia cola para peticiones entrantes. App Engine automáticamente gestiona el incremento en la carga
  • ⭐ Instancia

    • La clase de instancia determina la cantidad de memoria y CPU disponibles para cada instancia - doc (el tipo de MV)
  • ⭐ HTTP url - doc

  • app.yaml - doc

    • Se puede configurar la app de App Engine en el archivo app.yaml.
    • Algunas opciones interesentes que deben estar en el archivo yaml son:
      • api_version: Obligatorio
      • default_expiration: Establece un período de caché predeterminado global para todos los controladores de archivos estáticos de una aplicación.
      • env_variables: Se definen variables de entorno
      • includes: permite incluir el archivo de configuración de cualquier biblioteca o servicio en toda la aplicación.
      • instance_class
      • libraries: - Obsoleto, usar requirements.txt para especifiar una biblioteca Python
      • threadsafe: Obligatorio, Configura la aplicación para utilizar peticiones concurrentes
      • version: - mejor configurarlo con la CLI
      • automatic_scaling
        • [min/max]_instances
        • ⭐ max_concurrent_requests: número de peticiones concurrentes que una instancia de escalado automático puede aceptar antes de que el programador genere una nueva instancia (predeterminado: 10, máximo: 80).
        • max_idle_instances: cantidad máxima de instancias inactivas que App Engine debe mantener para esta versión.
      • basic_scaling
        • max_instances: ⭐ Nota: el valor min_instances no existe!
        • idle_timeout: La instancia se cerrará en esta cantidad de tiempo después de recibir su última petición.

🖇️ Recursos

  • ⭐ Google developer cheat sheet - github