servicios en la nube, desafíos de la evolución arquitectónica

46
Google Confidential and Proprietary Servicios en la nube, evolución de software Desafíos de la evolución arquitectónica Innovar utilizando Prediction API

Upload: genexus

Post on 09-Jul-2015

954 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Servicios en la nube, desafíos de la evolución arquitectónica

Google Confidential and Proprietary

Servicios en la nube, evolución de softwareDesafíos de la evolución arquitectónica

Innovar utilizando Prediction API

Page 2: Servicios en la nube, desafíos de la evolución arquitectónica

Google Confidential and Proprietary

Agenda

● Introduction to the ecosystem● Trends● Cloud Services● Mobility Feeling● Opportunities in our ecosystem● Your Future!● Q&A

Page 3: Servicios en la nube, desafíos de la evolución arquitectónica

Google Confidential and Proprietary

DevRel Latam South Region

+Nicolas Bortolotti● Ecosystem ● Focus (+Social)

○ Academia○ Startups○ Software Industry

+DevRelSouthRegionhttp://www.dvlatamsouthregion.com.ar/

Developer Academic MachineStartups Research

Page 4: Servicios en la nube, desafíos de la evolución arquitectónica

Google Confidential and Proprietary

NextLevel

● GDGs○ Academic Developer Technology Groups

■ Class connect■ University Key

● Reality Mode● Innovative Events (Virtual events, virtual practice, more flexible)● +Social

a. Developers Live (Argentina)b. Developers Academyc. Developers University Consortium

Page 5: Servicios en la nube, desafíos de la evolución arquitectónica

Google Confidential and Proprietary

Este es el año...● Las pequeñas y medianas empresas que invirtieron 30% de su presupuesto en tecnologías online

vieron crecer sus ingresos nueve veces más rápido que aquellas compañías que invierten menos del 10%. (McKinsey, SME Chapter, 2012)

● 650.000 PYMES y el 28% de ellas compran o venden por Internet (Estudio anual de Comercio Electrónico en Argentina de Prince&Cooke para CACE - 2012).

● La aparición de empresas de descuentos y clubes de compra favorecen el ingreso de PyMEs al mundo online (Prince&Cooke para CACE - 2012).

● Las PyMEs que brindan mayor ancho de banda a sus empleados crecieron el doble de rápido de aquellas que dieron el peor acceso en los últimos 3 años. (McKinsey, SME Chapter, 2012)

● Las mayores tasas de crecimiento de las PYMEs están relacionadas positivamente con gasto en la Web, generación de ventas online, acceso de banda ancha y acceso móvil de banda ancha (McKinsey, SME Chapter, 2012)

● Google comenzó siendo una pequeña empresa, por eso conocemos muy bien el potencial que tienen las PyMEs y lo mucho que éstas pueden lograr.

● La Web es la plataforma de negocios más poderosa del mundo permitiendo que cualquier PyME se abra a millones de clientes potenciales que, todos los días, a cualquier hora y desde cualquier lugar, realizan búsquedas en Internet acerca de productos y servicios.

● Argentina se encuentra entre los 10 países más emprendedores del mundo: tiene un gran ecosistema emprendedor, 1 de cada 8 argentinos está involucrado en el desarrollo de nuevas empresas.(Global Entrepreneurship)

Page 6: Servicios en la nube, desafíos de la evolución arquitectónica

Google Confidential and Proprietary

A few Key Trends...

● Networks involved in human sensors. (embedded devices)● Derived from census data (embedded devices)● Social feeling.● Social changes with the help of the population. (fraud, harassment,

etc.)● Instant maps, more social, more collaborative.● Contextual mapping.● Timelines variables, social, etc. narrated.● trends ... real-time information ....

Page 7: Servicios en la nube, desafíos de la evolución arquitectónica

Google Confidential and Proprietary

Some challenges ...

Page 8: Servicios en la nube, desafíos de la evolución arquitectónica

Google Confidential and Proprietary

Thinking...

Page 9: Servicios en la nube, desafíos de la evolución arquitectónica

Google Confidential and Proprietary

Startups

Build Measure

Enhance Get out There & Get paid

Page 10: Servicios en la nube, desafíos de la evolución arquitectónica

Google Confidential and Proprietary

Research - University

Research

● Human-Computer Interaction

● Speech● Natural Language

Processing● Computer Vision● Machine Learning● Algorithms● Structured Data

UniversityRelations

● Research Awards● Educational

Materials● Research Tools● Collaboration and

Communication● ...

Page 11: Servicios en la nube, desafíos de la evolución arquitectónica

Google Confidential and Proprietary

Open Source

Projects

Page 13: Servicios en la nube, desafíos de la evolución arquitectónica

Google Confidential and Proprietary

Innovation..

“La innovación es ineficiente. Con frecuencia, es indisciplinada, siempre lleva la contraria y es iconoclasta; se realimenta con la confusión y la contradicción. En pocas palabras, ser innovador es todo lo contrario de lo que la mayoría de los padres quieren para sus hijos, los consejeros delegados para sus compañías y los jefes de estado para sus países. Los innovadores son insoportables. Y, sin embargo, sin innovación estamos condenados –por aburrimiento y por monotonía- a la decadencia.”

Nicholas Negroponte. Fundador del MIT Media Lab

Page 14: Servicios en la nube, desafíos de la evolución arquitectónica

Google Confidential and Proprietary

Cloud ServicesSoftware Evolution

Page 15: Servicios en la nube, desafíos de la evolución arquitectónica

Google Confidential and Proprietary

¿Cloud?

PaaS

SaaS

IaaS

Page 16: Servicios en la nube, desafíos de la evolución arquitectónica

Google Confidential and Proprietary

Thinking...

● Cloud computing es una arquitectura o una infraestructura.● Internet y la Web son la “nube”● Todo estará en la cloud.● Toda la informática remota es cloud computing.● Cloud computing es una nueva revolución● Cada suministrador tendrá una “nube” diferente● SaaS es la cloud● Cloud elimina las redes privadas.

"Cloud computing es un modelo que habilita un acceso conveniente, una red bajo demanda a con un pool compartido de recursos informáticos configurables (por ejemplo, redes, servidores, almacenamiento, aplicaciones y servicios) que pueden ser rápidamente aprovisionado y desplegado con un mínimo esfuerzo de gestión o servicio por parte proveedor. El modelo de computación en la nube promueve la disponibilidad."

¿Mitos o Verdades?

Page 17: Servicios en la nube, desafíos de la evolución arquitectónica

Google Confidential and Proprietary

Services

App Identity

Blob store

Cloud Storage

Capabilities

Conversion Channel

Images

Log Services

Mail

Memcache

Multitenancy

APP ENGINE

Page 18: Servicios en la nube, desafíos de la evolución arquitectónica

Google Confidential and Proprietary

Languages

JVM Languages● Scala● JRuby● Groovy● Quercus● Rhino● Jython● ...

Page 19: Servicios en la nube, desafíos de la evolución arquitectónica

Google Confidential and Proprietary

App Engine Application Lifecycle

● Build (App Engine SDK and Eclipse plug-in)

● Test (App Engine SDK and Eclipse plug-in)

● Deploy (App Engine SDK and Eclipse plug-in)

● Manage (Admin Console)● Upgrade

Test

Deploy

Manage

Build

Upgrade

Page 20: Servicios en la nube, desafíos de la evolución arquitectónica

Google Confidential and Proprietary

Ensuring Portability

Page 21: Servicios en la nube, desafíos de la evolución arquitectónica

Google Confidential and Proprietary

Java App Engine : SDK

● Local Emulation of the App Engine

● HTTP Server● Servlet and JSP container● Lightweight Datastore● Build tools - ant + JSP

compiler● Deployment Tools

Test

Deploy

Manage

Build

Upgrade

Page 22: Servicios en la nube, desafíos de la evolución arquitectónica

Google Confidential and Proprietary

Eclipse Project

Source Folder

Persistenceconfig file

App Engine SDK

Destination WAR

Page 23: Servicios en la nube, desafíos de la evolución arquitectónica

Google Confidential and Proprietary

Life of a request - Scales dynamically/automatically

User App EngineFrontEnd

App's Runtime

User

User

User

App EngineFrontEnd

App's Runtime

App's Runtime

App's Runtime

App's Runtime

User

Page 24: Servicios en la nube, desafíos de la evolución arquitectónica

Google Confidential and Proprietary

Multiple versions

User App EngineFrontEnd

App's Runtime

Version1.1Version

1.1Version1.1

Version2.1

Page 25: Servicios en la nube, desafíos de la evolución arquitectónica

Google Confidential and Proprietary

Images

● Transforming Images in Java● Available Image Transformations● Image Formats

https://developers.google.com/appengine/docs/java/images/overview

- App Engine provides the ability to manipulate image data using a dedicated Images service.

- The Images service can accept image data directly from the app, or it can use a Blobstore value or a Google Cloud Storage value

import com.google.appengine.api.images.Image;import com.google.appengine.api.images.ImagesService;import com.google.appengine.api.images.ImagesServiceFactory;import com.google.appengine.api.images.Transform;

// ... byte[] oldImageData; // ...

ImagesService imagesService = ImagesServiceFactory.getImagesService();

Image oldImage = ImagesServiceFactory.makeImage(oldImageData); Transform resize = ImagesServiceFactory.makeResize(200, 300);

Image newImage = imagesService.applyTransform(resize, oldImage);

byte[] newImageData = newImage.getImageData();

Page 26: Servicios en la nube, desafíos de la evolución arquitectónica

Google Confidential and Proprietary

Blobstore API

● Using the Blobstore● Uploading a Blob● Serving a Blob

https://developers.google.com/appengine/docs/java/blobstore/overview

- The Blobstore API allows your application to serve data objects, called blobs, that are much larger than the size allowed for objects in the Datastore service

Map<String, BlobKey> blobs = blobstoreService.getUploadedBlobs(req);BlobKey blobKey = blobs.get("myFile");

if (blobKey == null) { res.sendRedirect("/");} else { res.sendRedirect("/serve?blob-key=" + blobKey.getKeyString());}

Page 27: Servicios en la nube, desafíos de la evolución arquitectónica

Google Confidential and Proprietary

Cloud Storage

● Using the Cloud Storage API○ Creating an Object○ Opening and Writing to the

Object○ Finalizing the Object○ Reading the Object

- The Google Cloud Storage API allows your application to store and serve your data as opaque blobs known as "objects". While Cloud Storage offers a RESTful API,

https://developers.google.com/appengine/docs/java/googlestorage/overview

// Get the file serviceFileService fileService = FileServiceFactory.getFileService();

/** * Set up properties of your new object * After finalizing objects, they are accessible * through Cloud Storage with the URL: * http://commondatastorage.googleapis.com/my_bucket/my_object */GSFileOptionsBuilder optionsBuilder = new GSFileOptionsBuilder() .setBucket("my_bucket") .setKey("my_object") .setAcl("public-read");

// Create your objectAppEngineFile writableFile = fileService.createNewGSFile(optionsBuilder.build());

Page 28: Servicios en la nube, desafíos de la evolución arquitectónica

Google Confidential and Proprietary

Mobility Feeling..

Page 29: Servicios en la nube, desafíos de la evolución arquitectónica

Google Confidential and Proprietary

El rápido crecimiento de Android

Android es el sistema operativo con la mayor presencia en el mercado mundial de smartphones.

201025% de los smartphones eran Androids

2011

52,5% de los smartphones son Androids(para comparación, 16,6% son iPhones)

Gartner, 2011

Page 30: Servicios en la nube, desafíos de la evolución arquitectónica

Google Confidential and Proprietary

Números de Android

Crecimiento: 850.000 nuevos Androids por díaMás de 300.000.000 de dispositivos activados globalmente hasta el momento.OBS: Los números consideran solamente los dispositivos oficiales.

825dispositivos

58fabricantes

329operadoras

169paises

Page 31: Servicios en la nube, desafíos de la evolución arquitectónica

Google Confidential and Proprietary

Aplicaciones

Google Play ya ha registrado

11.000.000.000instalaciones de apps globalmente

...1.57 apps/persona

Page 32: Servicios en la nube, desafíos de la evolución arquitectónica

Google Confidential and Proprietary

Android en Argentina

0

400K

800K

2009 2010 2011

26.680

388.980

1.423.800 !

Shipments por año, no acumulados (Canalys, 2011)

Page 33: Servicios en la nube, desafíos de la evolución arquitectónica

Google Confidential and Proprietary

Android en Argentina

Smartphone Shipments - Argentina - 2011 (Canalys, 2011)

Page 34: Servicios en la nube, desafíos de la evolución arquitectónica

Google Confidential and Proprietary

¿Necesitamos más apps?

Hay 500.000+ apps en Google Play(buenas y malas)

Lo más importante no es la cantidad sino que la

calidad de apps.

Page 35: Servicios en la nube, desafíos de la evolución arquitectónica

Google Confidential and Proprietary

Prediction API

Page 36: Servicios en la nube, desafíos de la evolución arquitectónica

Google Confidential and Proprietary

What is Prediction API?

This API allows us to make smarter applications. Prediction API has access to machine learning algorithms proposed by Google to analyze historical data and predict possible future results.

RESTful API Flexible Input Multi-Platform Support

Asynchronous cloud-based training, automatic model

selection and tuning, and the ability to add training data on

the fly.

Numeric or text input that can output hundreds of discrete categories or

continuous values.

Google App Engine, Apps Script (Google Docs), web &

desktop apps, and the command line.

Page 37: Servicios en la nube, desafíos de la evolución arquitectónica

Google Confidential and Proprietary

Prediction API Overview

● Soporta Autenticación (OAuth2.0)● Predictive Model Markup Language. (PMML)● HTTP and HTTPs

Training data Train the model.

Storage. - Google Cloud Storage.

Send queries for the model.

Model Feedback (with more information)

Page 38: Servicios en la nube, desafíos de la evolución arquitectónica

Google Confidential and Proprietary

Opportunities with Prediction API

+ Predictions shopping or wish list. (shops, supermarkets, etc.)+ Analysis of viewing preferences in movies, television, etc..+ Analysis and categorization of sounds.+ Prediction of common routes, cross-traffic analysis, etc..+ Social analysis and the senses ... +1 -1more ... ...

Page 39: Servicios en la nube, desafíos de la evolución arquitectónica

Google Confidential and Proprietary

Demo!

Page 41: Servicios en la nube, desafíos de la evolución arquitectónica

Google Confidential and Proprietary

WebGL Skin

http://www.chromeexperiments.com/detail/webgl-skin/

Page 42: Servicios en la nube, desafíos de la evolución arquitectónica

Google Confidential and Proprietary

Google Gravity

http://www.chromeexperiments.com/detail/gravity/

Page 43: Servicios en la nube, desafíos de la evolución arquitectónica

Google Confidential and Proprietary

WebGL Bookcase

http://www.chromeexperiments.com/detail/webgl-bookcase/

Page 44: Servicios en la nube, desafíos de la evolución arquitectónica

Google Confidential and Proprietary

Google APIs and the Future Web..

http://www.sea-seek.com/3d/San_Francisco_Bay

Page 45: Servicios en la nube, desafíos de la evolución arquitectónica

Google Confidential and Proprietary

Questions...

Q&A

Page 46: Servicios en la nube, desafíos de la evolución arquitectónica

Google Confidential and Proprietary

Thank you!Director de Relaciones para Desarrollo de la Región Sur+Nicolas Bortolotti

http://nbortolotti.blogspot.com/