Google Cloud Platform y Python

Post on 13-Apr-2017

1.119 views 5 download

Transcript of Google Cloud Platform y Python

Google Cloud Platform y PythonCarlos Toxtli

PresentaciónMaestro en Innovación Empresarial y Tecnológica15 años de experienciaExperto en TI

Compute EngineCompute Engine es una plataforma que nos permite montar servidores dedicados en una máquina virtual con una IP solo para nosotros. Los servidores pueden ser montados en Linux o en Windows. Soportan las tecnologías que queramos instalar y nos conectamos por SSH a ellos.

Compute Engine - PythonExisten 2 formas en que python funciona.Una es instalando y corriendo aplicaciones expuestas a través de los puertos.La segunda es usándola para automatizar el monitoreo y creación de instancias de compute engine.Veamos un ejemplo

Compute Engine - PythonEjemplo de como borrar una instancia programáticamente

Compute Engine - URLshttps://cloud.google.com/compute/docs/tutorials/python-guide

App EngineNos permite crear proyectos sobre un servidor de aplicaciones. Este servidor está hospedado y controlado por Google, nosotros solo subimos nuestro código en python, java, PHP y Go. Así como los principales frameworks como por ejemplo Django.

App Engine y PythonCreamos el archivo de recursos y el código y lo subimos a través de la herramienta.

App Engine - URLshttps://cloud.google.com/appengine/docs/python/gettingstartedpython27/helloworld

Container EngineNos permite montar contenedores de Docker. Se puede empaquetar una aplicación y sus dependencias en un contenedor virtual que se puede ejecutar en cualquier servidor Linux. Esto ayuda a permitir la flexibilidad y portabilidad. Se les conoce también como “maquinas virtuales ligeras” que corren sobre el mismo sistema operativo.

Container EngineExisten 2 formas de usar Python aquí.Una corriendose dentro de un container de Docker y desplegándose bajo las configuraciones de sistema operativo deseado.La otra forma de usarlo es para automatizar los contenedores de forma automática, veamos un ejemplo.

Container Engine - Python

Cloud StorageEs almacenamiento de datos, esta plataforma es usada porque muchas veces tenemos gran volúmen de datos y si lo almacenamos en instancias, por su tamaño estarían “en discos separados”. Es por eso que nace este servicio, que es muy veloz y no importa que tanta información haya, no se fragmenta en varias unidades.

Cloud Storage - Python

Cloud Storage - URLshttps://cloud.google.com/storage/docs/gspythonlibrary?hl=en

Es el concepto de almacenamiento frío de Google. El almacenamiento frío es el que se realiza de datos que una empresa u organización no puede perder, pero no se usan muy seguido. Esa información histórica que es mucha es mejor guardarla aquí porque es más barato y es casi ilimitado el espacio.

Nearline

Los servicios de DRA (el intermedio entre Standard y Nearline) y Nearline se usan desde la misma librería de Google Storage. La librería gcsannex de python lo hace de una manera muy sencilla para los 3 servicios (Standard, DRA y Nearline)

Nearline - Python

https://pypi.python.org/pypi/gcsannex/

Nearline - URLs

Cloud SQLEs una instancia de MySQL en la nube dedicada para ti. Cabe aclarar que de verdad es un servidor completo solo corriendo MySQL para ti, es por ello que cuando lo das de alta te pide sobre que tipo de instancia deseas ejecutarlo. Cuenta con acceso remoto para conectarte desde aplicaciones externas.

Cloud SQL - PythonPython

Cloud SQL - PythonDjango

DataStoreEs una base de datos no relacional basada en NoSQL. Es muy facil de usar y muy veloz, está administrada por las instancias de Google y se adapta a lenguajes donde con estructuras de arreglos asociativos se guarden datos a modo de objetos.

DataStore - Python

DataStorehttps://cloud.google.com/appengine/docs/python/datastore/

Los nombres no mienten, es una tabla multidimensional con muchas columnas y muy muy grande. Es lo que Google ha usado por muchos años internamente para sistemas que deban dar respuestas inmediatas. Es no relacional con almacenamiento de datos distribuido y de replicas multidimensionales.

BigTable

BigTable

Cloud NetworkingEsta herramienta cuenta de varias interfaces, tanto las que sirven para dministrar los DNS, las que controlan el balanceo de la carga, las que controlan los certificados SSL, la interconexion entre servidores internos, la interconexión con el carrier. Basicamente todas las opciones de ser se conjuntan aquí.

Cloud Networking

Cloud Networking - URLshttps://developers.google.com/api-client-library/python/apis/dns/v1?hl=en

Permite realizar almacenamiento y consulta de conjuntos de datos masivos con billones de filas. Su uso es sencillo y permite a los desarrolladores y analistas de negocio estudiar bases de datos (casi) en tiempo real. Realiza consultas del tipo SQL sobre conjuntos de datos que contienen terabytes de información en unos pocos segundos.

BigQuery

BigQuery

https://cloud.google.com/bigquery/bigquery-api-quickstart?hl=en

BigQuery - URLs

DataFlow

Diseñada para crear flujos en los cuales se ejecuten secuencias en batch mientras pasa la información entre sistemas de BigData. Usando un SDK de forma sencilla se pueden crear pre procesos o post procesos en el canal y no en los extremos.

DataFlow - Python

Se está creando el SDK para Python 3 mientras tanto se puede usar el de Java

https://cloud.google.com/dataflow/getting-started-eclipse

DataFlow

Pub/SubSistema de mensajería “muchos a muchos” asíncrono. Plataformas basadas en arquitecturas orientadas a servicios necesitan que los módulos se interconectan internamente y los sistemas de mensajería con alta demanda requieren una infraestructura robusta como la que ofrece Google.

Pub/Sub - Python

Pub/Subhttps://cloud.google.com/pubsub/configure

Translate APIAlgunas APIs como la de traductor se encuentran como parte de Google Cloud Platform, existe suficiente documentación y librerías para usarla ya que tiene más tiempo de existir, solo ahora se anexa a la plataforma. Traduce textos de un idioma a otro.

Translate API

https://cloud.google.com/translate/docs

Translate API

Prediction APIHerramienta muy poderosa que permite predecir tendencias a través de datos, mediante un proceso de entrenamiento detecta patrones. Una herramienta comúnmente usada en sistemas de Machine Learning.

Prediction API

Cloud EndpointsCrear un servicio RESTful ahora es muy sencillo con Cloud Endpoints ya que proporciona la autenticación por OAuth2, los tokens, las llaves y clientes compatibles para iOS, Android y Javascript entre otros. La solución ideal para exponer un App Engine con servicios REST.

Cloud Endpoints

Cloud MonitoringObten los indicadores de desempeño de tus servidores y elabora reportes con los datos de uso de los mismos.

Cloud Monitoring

Cloud Deployment ManagerPara los casos en los que queramos replicar una serie de servicios configurados a nuestro agrado, podemos automatizarlo para que se replique un ambiente similar

Cloud Deployment Manager

Cloud Deployment Managerhttps://cloud.google.com/deployment-manager/quickstart-guide

Cloud LoggingNos permite escribir registros de actividades de las aplicaciones que tengamos corriendo en App Engine o Compute Engine, ayuda a centralizar todo en un mismo repositorio de Logs.

Cloud Logging

Cloud Logginghttps://cloud.google.com/logging/docs/api/

ConclusiónLos servicios de Google Cloud Platform están pensados en dar una solución robusta a proyectos que pueden escalar. Python es la base de varias tecnologías de Google y es por ello que existen ya librerías para automatizar prácticamente todos los servicios disponibles en esta plataforma.

Descarga la presentaciónLa presentación la subiré a mis redes sociales

http://google.com/+CarlosToxtlihttp://facebook.com/carlos.toxtli