Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Principales características
Experiencia unificada
Listado fuertemente consistente
Geo - redundante
Escalable a exabytes
Estructura típica
Los objectos están asociados a Buckets. Los Buckets están relacionados con proyectos y los
proyectos se asocian a una Organización.
Seguridad
Cloud Console
Gsutil
Para interactuar con el Cloud Storage podemos hacer uso de la Cloud Shell. Esta se abre,
primero creando un proyecto en alguna organización (sin organización es posible también)
y luego haciendo click en la parte derecha superior.
Una vez adentro podemos interactuar con cloud storage de la siguiente manera:
Con el comando gsutil seguido de otros comandos que usaremos para navegar e
interactuar con el storage dentro de nuestro proyecto.
Los comandos son parecidos o iguales a los que uno usaría en una computadora
Linux, los vistos en clase fueron:
o ls
o cp
Estos comandos se usan para lo mismo que los usarías en una computadora linux,
con la particularidad de que no estás interactuando solo con una computadora
común y corriente sino con el sistema de storage de google.
Para crear objetos tenemos que crear buckets para almacenarlos dentro del proyecto,
esto se hace con el comando mb (claro, con gsutil en frente) que significa make
bucket, a continuación le tenemos que poner un nombre al bucket y la convención
es la siguiente:
o gsutil mb gs://<bucket_name>-bucket-<bucket_number>. Donde el
nombre del bucket tiene que estar relacionado con el nombre de tu proyecto
y el número es el número de bucket que has creado.
Y para subir un objeto al storage se hace simplemente:
o gsutil cp <file_name> gs://<bucket_name>-bucket-
<bucket_number>. Donde <file_name> es el nombre del archivo o del
objeto que vamos a subir.
gsutil
Se sugiere ponerle al Bucket que este asociado con el proyecto, para que sea fácil de ubicar.
El nombre del Bucket debe ser único.
gsutil mb gs://mi-proyecto-bucket-01
gsutil ls
gsutil ls gs://mi-proyecto-bucket-01
gsutil cp gs://mi-proyecto-bucket-01/archivo.txt .
Ubicación
Tipos de ubicación
Regional: Los datos se replican en las zonas de una sola región. Para datos a los que se
accede con frecuencia dentro una región.
Dual-regional: Los datos se replican en regiones cercanas. Para disponibilidad de datos
accedidos frecuentemente en un área específica.
Multi-regional: Los datos se replican en diferentes regiones (continentes). Para la más alta
disponibilidad de datos frecuentemente accedidos.
Clases
Se refieren a la frecuencia con la que accedemos y disponibilidad que deseamos sobre los
objetos dentro del bucket. Además del precio.
UBICACION
• define el centro de datos o los centros de datos donde recibirán los datos que vamos
almacenar en nuestro bucket
• un bucket y los objetos que almacena pueden estar ubicados en una o múltiples regiones
Regiones y zonas
• Existen diferentes regiones y zonas donde podemos alojar recursos de computo
o Una región: es un espacio geográfico donde Google tiene uno o mas centros de datos,
estos centros de datos se llaman zonas y cada uno de estos es independientes uno de otro de
tal manera que si en una región falla no afecto las otras zonas.
• ¿Qué tipos de ubicación hay?
o Existen 3 tipos:
Regional: los datos se almacenan en una región especifica con replicación en las zonas
de disponibilidad de esta región
Dual-regional: los datos se replican en un par especifico de regiones.
Multi-regional: los datos se distribuyen se forma redundante en america, Europa o Asia
Uso típico para la mas alta disponibilidad de datos frecuentemente accedidos Para
disponibilidad de datos accedidos frecuentemente en un área especifica Para datos a los que
se accede con frecuencia dentro de una región
Algunos casos de uso • Streaming de video y música
• Imágenes
• Sitios web
• Documentos • Streaming de video y música
• Imágenes
• Sitios web
• Documentos • Codificación de video
• Genómica
• Análisis de datos generales
CLASES
Clases de almacenamiento
• establece ciertas condiciones asociadas a la frecuencia en que estos datos van hacer
accedidos, los niveles de disponibilidad y los esquemos de precios que van a tener estos
buckets
• Permite que los objetos se almacenan y sirvan con diferentes frecuencias de acceso,
niveles de disponibilidad y perfiles de precios
Clases
• Estándar: Duración mínima de 0 dias
• Nearline: Duración mínima de 30 dias
• Coldline: Duración mínima d 90 dias
• Archive: Duración mínima de 365 dias
Estándar Nearline Codline Archive
Para datos a los que se accede frecuentemente Para datos a los que se accede menos de una
vez por mes Para datos a los que se accede menos de una vez por trimestre para retención a
largo plazo
• Streaming de video y música
• Documentos de acceso frecuente
• Análisis de datos
• Codificacion de video transcoding • Documentos de acceso poco frecuente
• Respaldos
• Datos para análisis poco frecuente
• Documentos de acceso muy poco frecuente
• Respaldos • Archivos regulatorios
• Reemplazo de cintas.
6.- Clases de almacenamiento en acción
Cuando Utilizar NoSQL: Cuando la base de datos es muchísima, los picos son muy altos y
el crecimiento muy acelerado.
Características
o Alto capacidad y procesamiento
o Procesamiento de baja latencia
o Cantidades muy grandes de datos
o Cambios de tamaño sin tiempo de inactividad
o Replicación flexible y automatizada
o Google Search, Maps y otros productos de Google
Transacciones ACID
Las transacciones son operaciones que las bases de datos realizan y que siguen cuatros
propiedades básicas.
¡SIEMPRE LAS DEBEN DE CUMPLIR!
Estas cuatro propiendas viven bajo el acrónimo ACID.
Atomicity - Atomicidad
Consistency - Consistencia
Isolation - Aislamiento
Durability - Durabilidad
Atomicidad
Te asegura una transacción que tiene varias operaciones, se complete satisfactoriamente. Si
no es así, todas las operaciones que se alteraron por esa transacción, tienen que regresar al
estado inicial.
Consistencia
La que nos va asegurar que efectivamente todas las transacciones que se completaron, estén
completadas de forma exitosa.
Aislamiento
Lo que permite que las operaciones sean aisladas y transparentes.
Durabilidad
Lo que nos asegura que el resultado de una operación permanezca a pesar de un resultado
en el sistema.
Totalmente administrada.
Una solución integrada.
Confiable
Migraciones sencillas a Cloud SQL.
Get a Highly Consistent, Scalable Database Service with Cloud Spanner | Google
Cloud Labs https://www.youtube.com/watch?v=_JsuTeXOjQg
10.- Cloud Spanner
Ir a Spanner
Aceptamos
Create Instance (Creamos una instancia de Spanner)
Indicamos un nombre (example-db)
En configuración ponemos (Regional, us-central1)
Aceptamos capacidad de inicio (por defecto)
Create Database
example-db-db (en este caso pone dos veces db para distinguir de la instancia de
Spanner)
Create
Una vez dentro de la base (te deja ahí luego de hacer el paso anterior)
Create table
vamos a Data
Insert
Luego de terminar, hacemos click en RUN y por consola nos dice que inserto un registro.
El proceso que se ejecutara es update sobre la tabla Singer, y por consola tendremos el
resultado.
Para visualizar:
Vamos a Query y escribimos.
Luego RUN y en la pestaña RESULTS nos muestra el resultado de la ejecución del query.
11.- Firestore
Serverless
Tiempo Real
Soporte Offline
Características:
Escalable
Confiable
Flexible
Disponible
Transaccional
.
Firestore en modo nativo
.
.
Por definición, posee la abstracción de Datastore sumándole:
.
Firestore en modo Datastore
.
.
Si buscas el desarrollo de aplicaciones de servidor, deseando escalar automáticamente
mediante escrituras y acceso a datos, la elección será el modo Datastore.
.
Si buscas el desarrollo de aplicaciones web y/o móvil, deseando escalar automáticamente el
uso simultáneo de usuarios. la elección será el modo Nativo.
.
📚 Referencia
En consola de GCP
01 - Menú
02 - Firestore
03 - Elegir modo de operación (no se puede cambiar)
04 - En este caso NATIVO
05 - Ubicación (us-east4(Northrn-Virginia))
06 - Crear base de datos (esperar unos segundos)
Podemos crear manualmente o mediante carga por procesos
07 - Abrír la consola de GCP
08 - node createTestData 5
En este caso el numero 5 es el equivalente a la cantidad de documentos
09 - ls
Listamos todo incluyendo ahora .csv
10 - cat customers_5.csv
11 - node importTestData customers_5.csv
12 - Vamos a Firestore y actualizamos
13 - Tenemos la colección y los documentos
13.- Comparativa de las opciones de almacenamiento
Pensemos que estamos diseñando nuestra infraestructura en la nube, y nos toca abordar el
caso de almacenamiento.
.
Nuestra aplicación MVP es un marketplace que da servicio a clientes móviles y web, los
cuales requieren almacenar imágenes, relacionar la información existente en modelos como
usuarios y artículos, además de medir el impacto de nuestros artículos con respecto a
nuestros usuarios.
.
En este caso, emplearía los siguientes servicios:
Conclusión
14.- Conclusiones.
Los datos son pieza clave, destaco este apunte que hice del curso de Coursera:
“Google cree que en el futuro todas las empresas sin importar su tamaño o sector se
diferenciarán de sus competidores por medio de la tecnología en su mayoría en forma de
software. Y el mejor software se centra en los datos. Así, cada una se convertirá en una
empresa de datos, si no lo es ya.”
1.
2.
3.
4.
5.
Operaciones que realizan las base de datos. Estas transacciones necesitan seguir 4 propiedades
básicas (ACID).
6.
Atomicidad
7.
8.
Si quieres escalar, requerir a la plataforma más recurso y la plataforma hace por ti.
No la administras.
No la configuras.
Una solución no administrada es la que aún está en desarrollo o no está diseñada para
distribuirse. Cuando se completa la solución no administrada y se desea distribuir, se puede
exportar y empaquetar como una solución administrada.
9.
Las bases de datos relacionales basadas en la nube, como Cloud SQL, Cloud Spanner y AlloyDB
10.
Para la siguiente situación, ¿cuál sería la mejor opción de almacenamiento en la nube con GCP?
"Usuarios de aplicaciones en el rededor del mundo. Interacción rápida y necesidad baja latencia".
Cloud spanner
11.
¿Cuáles son las diferencias principales entre Cloud SQL y Cloud Spanner?
12.
13.
14.
Cloud Spanner
15.
Cloud SQL
16.
Cloud Firestore
17.
Firestore nos permite tener datos sincronizados en tiempo real, de forma que los usuarios de una
aplicación pueden acceder a información vigente en todo momento. Este enunciado es:
Verdadero
18.
Cloud Firestore ofrece soporte offline para que aplicaciones móviles o web pueda seguir operando
incluso si el usuario no está conectado a internet en algún momento. Este enunciado es:
Verdadero
19.
¿Ser serverless, permitir sincronización en tiempo real y ofrecer soporte offline son características
de qué servicio de almacenamiento en la nube de GCP?
Cloud Firestore
20.
Si quieres desarrollar una aplicación mobile o web, ¿qué modo de Firestore es la mejor opción?
Modo nativo
21.
Es un contenedor de objetos que tiene asignado un nombre único para que podamos identificarlo.
22.
Cloud Storage nos permite almacenar objetos en buckets de una manera segura, confiable y a un
precio muy accesible. Esto es:
Verdadero
23.
24.
Objetos están contenidos en un bucket. Los buckets están asociados a un proyecto. Los proyectos
pueden estar agrupados a una organización.
25.
Google Cloud Storage tiene todos los datos cifrados, tanto en reposo como en movimiento. Este
enunciado es:
verdadero
26.
Google Cloud Storage permite crear un control de versiones de tu archivo. Este enunciado es:
verdadero
27.
28.
En el caso que se presentará alguna falla en alguna zona de la región seleccionada el servicio sigue
operacional en las otras zonas de la misma región.