SlideShare une entreprise Scribd logo
1  sur  28
Aprende a crear y desplegar
una aplicación de python que
use APIs de BlueVia


Borja Guardiola – 8 Nov 2012
@bluevia_es
@borjaguardiola
Borja at tid.es
Agenda

1. Python
2. Entorno
3. Django
4. Despliegue en local
5. Despliegue en la nube
6. Heroku
7. Instant Servers
Python


Python es un lenguaje de programación interpretado cuya filosofía hace
hincapié en una sintaxis muy limpia y que favorezca un código legible.




Características:
• Multiparadigma ya que soporta orientación a objetos, programación
  imperativa y, en menor medida, programación funcional.
• Lenguaje interpretado
• Usa tipado dinámico
• Es fuertemente tipado
• Multiplataforma.
.
Virtualenv

Virtualenv es una herramienta para crear entornos de Python aislados



Para crear un entorno virtual



$ Virtualenv venv
pip

Herramienta de instalación de paquetes de Python.




$ pip install –r requirements.txt




requirements:txt:
       - Django==1.4
       - httplib2==0.7.2
       - oauth2==1.5.211
Django - createproject

Django es un framework de desarrollo web de código abierto, escrito en
Python, que cumple en cierta medida el paradigma del Modelo Vista
Controlador.

Creamos proyecto Django


$ python venv/lib/site-packages/django/bin/django-admin.py startproject bvstore
$ python manage.py runserver 0.0.0.0:8000


bvstore/
     manage.py
     bvstore/
          __init__.py
          settings.py
          urls.py
          wsgi.py
Django - startapp

Creamos una aplicación



$ python manage.py startapp purchases




purchases/
     __init__.py
     models.py
     tests.py
     views.py
Django – models.py

Actualizamos el modelo



$ editor models.py

class Product(models.Model):
   name = models.CharField(max_length=40)
   content_url = models.CharField(max_length=100)
   image_url = models.CharField(max_length=100)
   price = models.IntegerField()
   currency = models.CharField(max_length=5)

  def __unicode__(self):
    return self.name + "-" + str(self.price) + " " + self.currency

$ python manage.py syncdb
Django – models.py

Jugando con el API



$ python manage.py shell

    from purchases.models import Product

    Product.objects.all()

    p = Product(name="La
    Roca",content_url="http://video.com/laroca",image_url="http://laroca.com/i
    mg.jpg",price=3,currency="EUR")

    p.save()

    Product.objects.filter(name=“La Roca”)
Django – settings.py

Configuración del proyecto


STATICFILES_DIRS = (
    os.path.dirname(os.path.realpath(__file__))+"/../static",
)

INSTALLED_APPS = (
     'bvstore.purchases',
)
DATABASES = {
  'default': {
     'ENGINE': 'django.db.backends.sqlite3',
     'NAME': 'storeapp.database‟,
  }
}

Admin options
Django - urls

Declaración de urls del proyecto. Es una “tabla de contenidos” del proyecto.
Las urls tienen la forma:

       (regular expression, Python callback function [, optional dictionary])


$ editor urls.py


from django.contrib import admin

admin.autodiscover()

urlpatterns = patterns('',
     url(r'^$', „purchases.views.home', name='home'),

     url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
     url(r'^admin/', include(admin.site.urls)),
)
Django - admin

Administración de la base de datos



$ editor models.py


admin.site.register(BVApp)
admin.site.register(Purchase)
Django - views

Lógica de la aplicación (controlador):



$ editor views.py


def home(request):
  return HttpResponse("Hola mundo. Estás en la home.")

def movies(request):
  return HttpResponse("Hola mundo. Estás en la categoría de películas.")
Django - templates

Interfaz de la aplicación (vistas). Html con etiquetas especiales.


$ editor settings.py


TEMPLATE_DIRS = (
   os.path.dirname(os.path.realpath(__file__))+"/templates“
)


$ editor views.py



return render_to_response('store.html',
               context_instance=RequestContext(request))
Django - templates

Interfaz de la aplicación (vistas). Html con etiquetas especiales.


$ editor store.html



{% if purchase_list %}
     <h6>Películas compradas</h6>
     {% for p in purchase_list %}
          <p>{{ p.product_name }}</p>
     {% endfor %}
{% else %}
     <h6>No hay ninguna compra realizada.</h6>
{% endif %}
Bluevia

Bluevia es la iniciativa de desarrolladores de Telefónica y Telenor, que ofrece
principalmente APIs de pagos y comunicaciones pero también otros
productos y servicios que son de ayuda a los desarrolladores (ej. Instant
Servers, Arduino)
Bluevia - Pagos

Flujo de pago de Bluevia




1. Autorización + callback (Oauth like)

2. Invocación del pago

3. Status (opcional)
Bluevia - Pagos

Autorización




$ editor views.py

•   Autorización  purchase

•   Callback  authorized

•   Invocación del pago  authorized
Desplegar en Cloud
Los clientes tienen nuevas necesidades que las empresas digitales pueden satisfacer
aprovechando las ventajas de la Cloud Pública.
Los nuevos Clientes
  Siempre conectados a través de diferentes dispositivos
  Son consumidores de información y servicios pero también creadores de contenidos
Emprendedores digitales
  Ofrecen servicios a través de una o varias aplicaciones a sus clientes/usuarios (empresas o
    particulares)
   Los ingresos se generan al cobrar cuota por servicio, por publicidad o en modalidades
    mixtas «freemium»

La nube
  Servidores que alojan aplicaciones de las nuevas empresas para permitir que sus usuarios
    puedan conectarse desde cualquier lugar y dispositivo
   La «Cloud» pública: el modelo más eficiente para las start-ups
 Other details
 Including date etc.
¿Por qué Cloud Pública?
Condicionantes de los                         Ventajas de la Cloud
emprendedores digitales                       Pública
Proyectos que arrancan, con incertidumbre     Sin inversiones, sin amortizaciones. Pago por
de futuro. Poco presupuesto en el arranque.   horas de uso.
Necesidad de variabilizar los costes.

Demanda desconocida,         muy poca al      Flexibilidad inmediata para crecer o decrecer
principio pero con crecimientos rápidos.      y solo pagar por lo usado.

Entorno muy cambiante en el que solo los      Provisión inmediata que permite tener las
más ágiles triunfan.                          máquinas funcionando en minutos.

Empresas     muy      pequeñas,    los        Servicio gestionado por un experto. SLAs y
emprendedores deben enfocarse en su           disponibilidades de servicio.
negocio y no preocuparse por lo que lo
sustenta.


  Other details
  Including date etc.
IaaS: Infraestructura como
                       Servicio (Instant Servers)




Other details
Including date etc.
                                                    PaaS e IaaS




                          Servicio (Heroku)
                       PaaS: Plataforma como
Heroku deploy

PaaS que soporta Ruby, Java, Node.js, Scala, Clojure and Python

Best practices de www.12factor.net

Pasos:

•   Creación de cuenta

•   Heroku client

•   Requirements.txt (psycopg2==2.4.5 dj-database-url==0.2.0)

•   Procfile

•   Crear aplicación (heroku apps:create circusapp -s cedar)

•   Crear base de datos (add-on)
Heroku deploy (II)



Pasos:

•   Promote DB – Establece BBDD por defecto (heroku pg:promote
    HEROKU_POSTGRESQL_AQUA)

•   Syncdb (heroku run python bvstore/manage.py syncdb)

•   Despliegue git push (git push heroku master)

•   Enjoy! http://circusapp.herokuapp.com/movies
Instant Servers deploy

IaaS, el servicio de Cloud Pública de Telefónica para las start-ups digitales
Ofrece provisión inmediata, total libertad de gestión de las diferentes
máquinas, virtuales, pago por uso y alta disponibilidad y rendimiento

Pasos:

•   Creación de cuenta

•   Configuración clave ssh

•   Copiar site

•   Crear virtualenv (python virtualenv.py --system-site-packages
    ~/projects/site/venv)

•   Instalar dependencias (pip install -r requirements)

•   Sincronizar BBDD

•   Runserver y enjoy!        http://81.45.18.53:8000/movies
Comparativa PaaS vs. IaaS
PaaS: Plataforma como                              IaaS: Infraestructura como
Servicio (Heroku)                                  Servicio (Instant Servers)
          Fácil y sencillo de usar. Se despliega       Completamente flexible. Permite
+         una aplicación muy rápido.               +   instalar cualquier cosa en la máquina.
          Entorno de desarrollo gratuito (1            Más barato en producción.
          hilo / 10.000 registros BD)                  1 mes gratis sin límite de capacidad.
          SLAs a nivel de aplicación.                  SLAs a nivel de máquina y servicio


 -        Menos flexible, tiene una serie de
          add-ons de pago pero no permite
                                                   -   Requiere más conocimientos y es
                                                       necesario realizar más tareas de
          instalar software aparte.                    administración y configuración.
          Más caro en producción.                      Sin entorno de desarrollo gratuito
                                                       (máquina 0,5 gratis 6 meses
          (Se factura por hilos de ejecución –         próximamente)
          0,05$ 1 hilo/hora)                           (Se factura por máquina – 0,06$
                                                       máquina 1GB/hora)
     Other details
     Including date etc.
Instant Servers                                   w w w. I n s t a n t S e r v e r s . e s

                         Soporte en castellano
                         Datos alojados en España o UK
                         Calidad y niveles de servicio garantizados por contrato (99,9% de
                          disponibilidad trimestral por máquina con penalizaciones)


                         Tecnología 20-30% más potente




Other details
Including date etc.
Credits



•   www.python.org/
•   www.djangoproject.com/
•   foundation.zurb.com/
•   www.heroku.com
•   www.instantservers.es
•   www.bluevia.com
Preguntas?




@borjaguardiola
borja@tid.es
Bluevia.com

Contenu connexe

En vedette

Raquel Pinillos, Congreso DEC. Informe sobre nivel de la "operativización" d...
Raquel Pinillos, Congreso DEC.  Informe sobre nivel de la "operativización" d...Raquel Pinillos, Congreso DEC.  Informe sobre nivel de la "operativización" d...
Raquel Pinillos, Congreso DEC. Informe sobre nivel de la "operativización" d...Asociación DEC
 
The 2015 U.S. Mobile App Report - COMSCORE
The 2015 U.S. Mobile App Report - COMSCOREThe 2015 U.S. Mobile App Report - COMSCORE
The 2015 U.S. Mobile App Report - COMSCORERomain Fonnier
 
Ponencia Andrés Laseca en el evento Cloud Media de Telefónica
Ponencia Andrés Laseca en el evento Cloud Media de TelefónicaPonencia Andrés Laseca en el evento Cloud Media de Telefónica
Ponencia Andrés Laseca en el evento Cloud Media de TelefónicaTelefónica Grandes Clientes
 
Una completa y pionera guía sobre Bitcoin, la moneda virtual
Una completa y pionera guía sobre Bitcoin, la moneda virtualUna completa y pionera guía sobre Bitcoin, la moneda virtual
Una completa y pionera guía sobre Bitcoin, la moneda virtualTelefónica Grandes Clientes
 
Informe Ostelea Turismo Colaborativo 2015
Informe  Ostelea Turismo Colaborativo 2015Informe  Ostelea Turismo Colaborativo 2015
Informe Ostelea Turismo Colaborativo 2015Albert Canigueral
 
Gamification in 2012: Trends in Consumer and Enterprise Markets with Metrics
Gamification in 2012: Trends in Consumer and Enterprise Markets with MetricsGamification in 2012: Trends in Consumer and Enterprise Markets with Metrics
Gamification in 2012: Trends in Consumer and Enterprise Markets with MetricsWanda Meloni
 
Resultados Proyecto Valcronic presentados en Congreso Crónicos 2014. Más info...
Resultados Proyecto Valcronic presentados en Congreso Crónicos 2014. Más info...Resultados Proyecto Valcronic presentados en Congreso Crónicos 2014. Más info...
Resultados Proyecto Valcronic presentados en Congreso Crónicos 2014. Más info...Telefónica Grandes Clientes
 
Observatorio de Redes Sociales: 4ª ola
Observatorio de Redes Sociales: 4ª olaObservatorio de Redes Sociales: 4ª ola
Observatorio de Redes Sociales: 4ª olaDolores Vela
 
Ponencia Datos abiertos en educación SIMO Educación 2014. Más información sob...
Ponencia Datos abiertos en educación SIMO Educación 2014. Más información sob...Ponencia Datos abiertos en educación SIMO Educación 2014. Más información sob...
Ponencia Datos abiertos en educación SIMO Educación 2014. Más información sob...Telefónica Grandes Clientes
 
Netflix on Cloud - combined slides for Dev and Ops
Netflix on Cloud - combined slides for Dev and OpsNetflix on Cloud - combined slides for Dev and Ops
Netflix on Cloud - combined slides for Dev and OpsAdrian Cockcroft
 
State of Bitcoin Q2 2015
State of Bitcoin Q2 2015State of Bitcoin Q2 2015
State of Bitcoin Q2 2015CoinDesk
 
iPads on your network? Take Control with Unified Policy and Management
iPads on your network? Take Control with Unified Policy and ManagementiPads on your network? Take Control with Unified Policy and Management
iPads on your network? Take Control with Unified Policy and ManagementCisco Mobility
 
El estado del arte de la movilidad en la empresa española 2013
El estado del arte de la movilidad en la empresa española 2013El estado del arte de la movilidad en la empresa española 2013
El estado del arte de la movilidad en la empresa española 2013videos
 

En vedette (20)

Innvovation Security Day Metashield
Innvovation Security Day MetashieldInnvovation Security Day Metashield
Innvovation Security Day Metashield
 
Innovation Security Day FAAST
Innovation Security Day FAASTInnovation Security Day FAAST
Innovation Security Day FAAST
 
Raquel Pinillos, Congreso DEC. Informe sobre nivel de la "operativización" d...
Raquel Pinillos, Congreso DEC.  Informe sobre nivel de la "operativización" d...Raquel Pinillos, Congreso DEC.  Informe sobre nivel de la "operativización" d...
Raquel Pinillos, Congreso DEC. Informe sobre nivel de la "operativización" d...
 
Social Engagement
Social EngagementSocial Engagement
Social Engagement
 
The 2015 U.S. Mobile App Report - COMSCORE
The 2015 U.S. Mobile App Report - COMSCOREThe 2015 U.S. Mobile App Report - COMSCORE
The 2015 U.S. Mobile App Report - COMSCORE
 
Ponencia Andrés Laseca en el evento Cloud Media de Telefónica
Ponencia Andrés Laseca en el evento Cloud Media de TelefónicaPonencia Andrés Laseca en el evento Cloud Media de Telefónica
Ponencia Andrés Laseca en el evento Cloud Media de Telefónica
 
Análisis heart bleed
Análisis heart bleedAnálisis heart bleed
Análisis heart bleed
 
Una completa y pionera guía sobre Bitcoin, la moneda virtual
Una completa y pionera guía sobre Bitcoin, la moneda virtualUna completa y pionera guía sobre Bitcoin, la moneda virtual
Una completa y pionera guía sobre Bitcoin, la moneda virtual
 
Informe Ostelea Turismo Colaborativo 2015
Informe  Ostelea Turismo Colaborativo 2015Informe  Ostelea Turismo Colaborativo 2015
Informe Ostelea Turismo Colaborativo 2015
 
Gamification in 2012: Trends in Consumer and Enterprise Markets with Metrics
Gamification in 2012: Trends in Consumer and Enterprise Markets with MetricsGamification in 2012: Trends in Consumer and Enterprise Markets with Metrics
Gamification in 2012: Trends in Consumer and Enterprise Markets with Metrics
 
Resultados Proyecto Valcronic presentados en Congreso Crónicos 2014. Más info...
Resultados Proyecto Valcronic presentados en Congreso Crónicos 2014. Más info...Resultados Proyecto Valcronic presentados en Congreso Crónicos 2014. Más info...
Resultados Proyecto Valcronic presentados en Congreso Crónicos 2014. Más info...
 
Predicciones cloud Telefónica para 2016
Predicciones cloud Telefónica para 2016Predicciones cloud Telefónica para 2016
Predicciones cloud Telefónica para 2016
 
Observatorio de Redes Sociales: 4ª ola
Observatorio de Redes Sociales: 4ª olaObservatorio de Redes Sociales: 4ª ola
Observatorio de Redes Sociales: 4ª ola
 
Cloud Híbrida de Telefónica
Cloud Híbrida de TelefónicaCloud Híbrida de Telefónica
Cloud Híbrida de Telefónica
 
Ponencia Datos abiertos en educación SIMO Educación 2014. Más información sob...
Ponencia Datos abiertos en educación SIMO Educación 2014. Más información sob...Ponencia Datos abiertos en educación SIMO Educación 2014. Más información sob...
Ponencia Datos abiertos en educación SIMO Educación 2014. Más información sob...
 
Infraestructura para big data Telefónica
Infraestructura para big data TelefónicaInfraestructura para big data Telefónica
Infraestructura para big data Telefónica
 
Netflix on Cloud - combined slides for Dev and Ops
Netflix on Cloud - combined slides for Dev and OpsNetflix on Cloud - combined slides for Dev and Ops
Netflix on Cloud - combined slides for Dev and Ops
 
State of Bitcoin Q2 2015
State of Bitcoin Q2 2015State of Bitcoin Q2 2015
State of Bitcoin Q2 2015
 
iPads on your network? Take Control with Unified Policy and Management
iPads on your network? Take Control with Unified Policy and ManagementiPads on your network? Take Control with Unified Policy and Management
iPads on your network? Take Control with Unified Policy and Management
 
El estado del arte de la movilidad en la empresa española 2013
El estado del arte de la movilidad en la empresa española 2013El estado del arte de la movilidad en la empresa española 2013
El estado del arte de la movilidad en la empresa española 2013
 

Similaire à Aprende a crear y desplegar una aplicación de python que use APIs de BlueVia

Usando azure para escalar tu producto
Usando azure para escalar tu productoUsando azure para escalar tu producto
Usando azure para escalar tu productoMauro Parra-Miranda
 
Visual Studio 2010 Ligthswitch + AZURE + Zero Code
Visual Studio 2010 Ligthswitch + AZURE + Zero CodeVisual Studio 2010 Ligthswitch + AZURE + Zero Code
Visual Studio 2010 Ligthswitch + AZURE + Zero CodeBruno Capuano
 
Trabajo fin de master Dirección TI
Trabajo fin de master Dirección TITrabajo fin de master Dirección TI
Trabajo fin de master Dirección TIManolo Crespo
 
Genesis Suite Server
Genesis Suite ServerGenesis Suite Server
Genesis Suite ServerLuis Lesende
 
Google Cloud Platform y Python
Google Cloud Platform y PythonGoogle Cloud Platform y Python
Google Cloud Platform y PythonCarlos Toxtli
 
Máquinas de estado con Logic App & Automate sobre CDS
Máquinas de estado con Logic App & Automate sobre CDSMáquinas de estado con Logic App & Automate sobre CDS
Máquinas de estado con Logic App & Automate sobre CDSDemian Raschkovan
 
Descubriendo Windows Azure Platform 16-02-2011
Descubriendo Windows Azure Platform 16-02-2011Descubriendo Windows Azure Platform 16-02-2011
Descubriendo Windows Azure Platform 16-02-2011Gisela Torres
 
Software Delta.Info
Software Delta.InfoSoftware Delta.Info
Software Delta.Infoinloac
 
Despliegue de aplicaciones OS en entornos Cloud Computing con Bitnami- OpenEx...
Despliegue de aplicaciones OS en entornos Cloud Computing con Bitnami- OpenEx...Despliegue de aplicaciones OS en entornos Cloud Computing con Bitnami- OpenEx...
Despliegue de aplicaciones OS en entornos Cloud Computing con Bitnami- OpenEx...OpenExpoES
 
Kumbia PHP Framework - Inicios, Presente y Futuro
Kumbia PHP Framework - Inicios, Presente y FuturoKumbia PHP Framework - Inicios, Presente y Futuro
Kumbia PHP Framework - Inicios, Presente y FuturoDeivinson Tejeda
 
NubeAzure.pdf
NubeAzure.pdfNubeAzure.pdf
NubeAzure.pdfhefloca
 

Similaire à Aprende a crear y desplegar una aplicación de python que use APIs de BlueVia (20)

IaaS + PaaS Cloud Solutions
IaaS + PaaS Cloud Solutions IaaS + PaaS Cloud Solutions
IaaS + PaaS Cloud Solutions
 
Webinar Migración de Forms & Reports a Oracle Cloud
Webinar Migración de Forms & Reports a Oracle CloudWebinar Migración de Forms & Reports a Oracle Cloud
Webinar Migración de Forms & Reports a Oracle Cloud
 
Serverless Wars
Serverless WarsServerless Wars
Serverless Wars
 
Modelos de negocio en la nube
Modelos de negocio en la nubeModelos de negocio en la nube
Modelos de negocio en la nube
 
Usando azure para escalar tu producto
Usando azure para escalar tu productoUsando azure para escalar tu producto
Usando azure para escalar tu producto
 
Visual Studio 2010 Ligthswitch + AZURE + Zero Code
Visual Studio 2010 Ligthswitch + AZURE + Zero CodeVisual Studio 2010 Ligthswitch + AZURE + Zero Code
Visual Studio 2010 Ligthswitch + AZURE + Zero Code
 
Offering Cloud Solutions
Offering Cloud Solutions Offering Cloud Solutions
Offering Cloud Solutions
 
Microservicios con .NET
Microservicios con .NETMicroservicios con .NET
Microservicios con .NET
 
Cloud Computing - Gina Franco
Cloud Computing - Gina FrancoCloud Computing - Gina Franco
Cloud Computing - Gina Franco
 
Trabajo fin de master Dirección TI
Trabajo fin de master Dirección TITrabajo fin de master Dirección TI
Trabajo fin de master Dirección TI
 
Genesis Suite Server
Genesis Suite ServerGenesis Suite Server
Genesis Suite Server
 
Google Cloud Platform y Python
Google Cloud Platform y PythonGoogle Cloud Platform y Python
Google Cloud Platform y Python
 
Máquinas de estado con Logic App & Automate sobre CDS
Máquinas de estado con Logic App & Automate sobre CDSMáquinas de estado con Logic App & Automate sobre CDS
Máquinas de estado con Logic App & Automate sobre CDS
 
Descubriendo Windows Azure Platform 16-02-2011
Descubriendo Windows Azure Platform 16-02-2011Descubriendo Windows Azure Platform 16-02-2011
Descubriendo Windows Azure Platform 16-02-2011
 
Software Delta.Info
Software Delta.InfoSoftware Delta.Info
Software Delta.Info
 
Despliegue de aplicaciones OS en entornos Cloud Computing con Bitnami- OpenEx...
Despliegue de aplicaciones OS en entornos Cloud Computing con Bitnami- OpenEx...Despliegue de aplicaciones OS en entornos Cloud Computing con Bitnami- OpenEx...
Despliegue de aplicaciones OS en entornos Cloud Computing con Bitnami- OpenEx...
 
Kumbia PHP Framework - Inicios, Presente y Futuro
Kumbia PHP Framework - Inicios, Presente y FuturoKumbia PHP Framework - Inicios, Presente y Futuro
Kumbia PHP Framework - Inicios, Presente y Futuro
 
Descubriendo windows azure
Descubriendo windows azureDescubriendo windows azure
Descubriendo windows azure
 
Apuntes entorno cliente servidor
Apuntes entorno cliente   servidorApuntes entorno cliente   servidor
Apuntes entorno cliente servidor
 
NubeAzure.pdf
NubeAzure.pdfNubeAzure.pdf
NubeAzure.pdf
 

Plus de BlueVia

China Unicom presentation from BlueVia's #MWC 2012 event
China Unicom presentation from BlueVia's #MWC 2012 eventChina Unicom presentation from BlueVia's #MWC 2012 event
China Unicom presentation from BlueVia's #MWC 2012 eventBlueVia
 
Developing network-friendly-applications
Developing network-friendly-applicationsDeveloping network-friendly-applications
Developing network-friendly-applicationsBlueVia
 
Connfu Adhearsion
Connfu AdhearsionConnfu Adhearsion
Connfu AdhearsionBlueVia
 
Facetones Case Study
Facetones Case StudyFacetones Case Study
Facetones Case StudyBlueVia
 
BlueVia Marketing Toolkit
BlueVia Marketing ToolkitBlueVia Marketing Toolkit
BlueVia Marketing ToolkitBlueVia
 
BlueVia Business Models
BlueVia Business ModelsBlueVia Business Models
BlueVia Business ModelsBlueVia
 
BlueVia for Telco 2.0
BlueVia for Telco 2.0BlueVia for Telco 2.0
BlueVia for Telco 2.0BlueVia
 
BlueVia SDK for .NET Overview
BlueVia SDK for .NET OverviewBlueVia SDK for .NET Overview
BlueVia SDK for .NET OverviewBlueVia
 
Enrich your Super Apps with BB6 and BlueVia APIs
Enrich your Super Apps with BB6 and BlueVia APIsEnrich your Super Apps with BB6 and BlueVia APIs
Enrich your Super Apps with BB6 and BlueVia APIsBlueVia
 
Text Deck Case Study
Text Deck Case StudyText Deck Case Study
Text Deck Case StudyBlueVia
 
GoGoStat Connect Case Study
GoGoStat Connect Case StudyGoGoStat Connect Case Study
GoGoStat Connect Case StudyBlueVia
 
BlueVia Developer Payment Guide
BlueVia Developer Payment GuideBlueVia Developer Payment Guide
BlueVia Developer Payment GuideBlueVia
 
Movistar developers platform está cambiando
Movistar developers platform está cambiandoMovistar developers platform está cambiando
Movistar developers platform está cambiandoBlueVia
 
O2 Litmus is Changing: Find out about BlueVia
O2 Litmus is Changing: Find out about BlueViaO2 Litmus is Changing: Find out about BlueVia
O2 Litmus is Changing: Find out about BlueViaBlueVia
 
BlueVia overview
BlueVia overviewBlueVia overview
BlueVia overviewBlueVia
 

Plus de BlueVia (15)

China Unicom presentation from BlueVia's #MWC 2012 event
China Unicom presentation from BlueVia's #MWC 2012 eventChina Unicom presentation from BlueVia's #MWC 2012 event
China Unicom presentation from BlueVia's #MWC 2012 event
 
Developing network-friendly-applications
Developing network-friendly-applicationsDeveloping network-friendly-applications
Developing network-friendly-applications
 
Connfu Adhearsion
Connfu AdhearsionConnfu Adhearsion
Connfu Adhearsion
 
Facetones Case Study
Facetones Case StudyFacetones Case Study
Facetones Case Study
 
BlueVia Marketing Toolkit
BlueVia Marketing ToolkitBlueVia Marketing Toolkit
BlueVia Marketing Toolkit
 
BlueVia Business Models
BlueVia Business ModelsBlueVia Business Models
BlueVia Business Models
 
BlueVia for Telco 2.0
BlueVia for Telco 2.0BlueVia for Telco 2.0
BlueVia for Telco 2.0
 
BlueVia SDK for .NET Overview
BlueVia SDK for .NET OverviewBlueVia SDK for .NET Overview
BlueVia SDK for .NET Overview
 
Enrich your Super Apps with BB6 and BlueVia APIs
Enrich your Super Apps with BB6 and BlueVia APIsEnrich your Super Apps with BB6 and BlueVia APIs
Enrich your Super Apps with BB6 and BlueVia APIs
 
Text Deck Case Study
Text Deck Case StudyText Deck Case Study
Text Deck Case Study
 
GoGoStat Connect Case Study
GoGoStat Connect Case StudyGoGoStat Connect Case Study
GoGoStat Connect Case Study
 
BlueVia Developer Payment Guide
BlueVia Developer Payment GuideBlueVia Developer Payment Guide
BlueVia Developer Payment Guide
 
Movistar developers platform está cambiando
Movistar developers platform está cambiandoMovistar developers platform está cambiando
Movistar developers platform está cambiando
 
O2 Litmus is Changing: Find out about BlueVia
O2 Litmus is Changing: Find out about BlueViaO2 Litmus is Changing: Find out about BlueVia
O2 Litmus is Changing: Find out about BlueVia
 
BlueVia overview
BlueVia overviewBlueVia overview
BlueVia overview
 

Dernier

PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel tallerValentinaTabares11
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxGESTECPERUSAC
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
Explorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramExplorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramDIDIERFERNANDOGUERRE
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxJOSEMANUELHERNANDEZH11
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxAlexander López
 

Dernier (20)

PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel taller
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptx
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
Explorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramExplorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ram
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptx
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
 

Aprende a crear y desplegar una aplicación de python que use APIs de BlueVia

  • 1. Aprende a crear y desplegar una aplicación de python que use APIs de BlueVia Borja Guardiola – 8 Nov 2012 @bluevia_es @borjaguardiola Borja at tid.es
  • 2. Agenda 1. Python 2. Entorno 3. Django 4. Despliegue en local 5. Despliegue en la nube 6. Heroku 7. Instant Servers
  • 3. Python Python es un lenguaje de programación interpretado cuya filosofía hace hincapié en una sintaxis muy limpia y que favorezca un código legible. Características: • Multiparadigma ya que soporta orientación a objetos, programación imperativa y, en menor medida, programación funcional. • Lenguaje interpretado • Usa tipado dinámico • Es fuertemente tipado • Multiplataforma. .
  • 4. Virtualenv Virtualenv es una herramienta para crear entornos de Python aislados Para crear un entorno virtual $ Virtualenv venv
  • 5. pip Herramienta de instalación de paquetes de Python. $ pip install –r requirements.txt requirements:txt: - Django==1.4 - httplib2==0.7.2 - oauth2==1.5.211
  • 6. Django - createproject Django es un framework de desarrollo web de código abierto, escrito en Python, que cumple en cierta medida el paradigma del Modelo Vista Controlador. Creamos proyecto Django $ python venv/lib/site-packages/django/bin/django-admin.py startproject bvstore $ python manage.py runserver 0.0.0.0:8000 bvstore/ manage.py bvstore/ __init__.py settings.py urls.py wsgi.py
  • 7. Django - startapp Creamos una aplicación $ python manage.py startapp purchases purchases/ __init__.py models.py tests.py views.py
  • 8. Django – models.py Actualizamos el modelo $ editor models.py class Product(models.Model): name = models.CharField(max_length=40) content_url = models.CharField(max_length=100) image_url = models.CharField(max_length=100) price = models.IntegerField() currency = models.CharField(max_length=5) def __unicode__(self): return self.name + "-" + str(self.price) + " " + self.currency $ python manage.py syncdb
  • 9. Django – models.py Jugando con el API $ python manage.py shell from purchases.models import Product Product.objects.all() p = Product(name="La Roca",content_url="http://video.com/laroca",image_url="http://laroca.com/i mg.jpg",price=3,currency="EUR") p.save() Product.objects.filter(name=“La Roca”)
  • 10. Django – settings.py Configuración del proyecto STATICFILES_DIRS = ( os.path.dirname(os.path.realpath(__file__))+"/../static", ) INSTALLED_APPS = ( 'bvstore.purchases', ) DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': 'storeapp.database‟, } } Admin options
  • 11. Django - urls Declaración de urls del proyecto. Es una “tabla de contenidos” del proyecto. Las urls tienen la forma: (regular expression, Python callback function [, optional dictionary]) $ editor urls.py from django.contrib import admin admin.autodiscover() urlpatterns = patterns('', url(r'^$', „purchases.views.home', name='home'), url(r'^admin/doc/', include('django.contrib.admindocs.urls')), url(r'^admin/', include(admin.site.urls)), )
  • 12. Django - admin Administración de la base de datos $ editor models.py admin.site.register(BVApp) admin.site.register(Purchase)
  • 13. Django - views Lógica de la aplicación (controlador): $ editor views.py def home(request): return HttpResponse("Hola mundo. Estás en la home.") def movies(request): return HttpResponse("Hola mundo. Estás en la categoría de películas.")
  • 14. Django - templates Interfaz de la aplicación (vistas). Html con etiquetas especiales. $ editor settings.py TEMPLATE_DIRS = ( os.path.dirname(os.path.realpath(__file__))+"/templates“ ) $ editor views.py return render_to_response('store.html', context_instance=RequestContext(request))
  • 15. Django - templates Interfaz de la aplicación (vistas). Html con etiquetas especiales. $ editor store.html {% if purchase_list %} <h6>Películas compradas</h6> {% for p in purchase_list %} <p>{{ p.product_name }}</p> {% endfor %} {% else %} <h6>No hay ninguna compra realizada.</h6> {% endif %}
  • 16. Bluevia Bluevia es la iniciativa de desarrolladores de Telefónica y Telenor, que ofrece principalmente APIs de pagos y comunicaciones pero también otros productos y servicios que son de ayuda a los desarrolladores (ej. Instant Servers, Arduino)
  • 17. Bluevia - Pagos Flujo de pago de Bluevia 1. Autorización + callback (Oauth like) 2. Invocación del pago 3. Status (opcional)
  • 18. Bluevia - Pagos Autorización $ editor views.py • Autorización  purchase • Callback  authorized • Invocación del pago  authorized
  • 19. Desplegar en Cloud Los clientes tienen nuevas necesidades que las empresas digitales pueden satisfacer aprovechando las ventajas de la Cloud Pública. Los nuevos Clientes  Siempre conectados a través de diferentes dispositivos  Son consumidores de información y servicios pero también creadores de contenidos Emprendedores digitales  Ofrecen servicios a través de una o varias aplicaciones a sus clientes/usuarios (empresas o particulares)  Los ingresos se generan al cobrar cuota por servicio, por publicidad o en modalidades mixtas «freemium» La nube  Servidores que alojan aplicaciones de las nuevas empresas para permitir que sus usuarios puedan conectarse desde cualquier lugar y dispositivo  La «Cloud» pública: el modelo más eficiente para las start-ups Other details Including date etc.
  • 20. ¿Por qué Cloud Pública? Condicionantes de los Ventajas de la Cloud emprendedores digitales Pública Proyectos que arrancan, con incertidumbre Sin inversiones, sin amortizaciones. Pago por de futuro. Poco presupuesto en el arranque. horas de uso. Necesidad de variabilizar los costes. Demanda desconocida, muy poca al Flexibilidad inmediata para crecer o decrecer principio pero con crecimientos rápidos. y solo pagar por lo usado. Entorno muy cambiante en el que solo los Provisión inmediata que permite tener las más ágiles triunfan. máquinas funcionando en minutos. Empresas muy pequeñas, los Servicio gestionado por un experto. SLAs y emprendedores deben enfocarse en su disponibilidades de servicio. negocio y no preocuparse por lo que lo sustenta. Other details Including date etc.
  • 21. IaaS: Infraestructura como Servicio (Instant Servers) Other details Including date etc. PaaS e IaaS Servicio (Heroku) PaaS: Plataforma como
  • 22. Heroku deploy PaaS que soporta Ruby, Java, Node.js, Scala, Clojure and Python Best practices de www.12factor.net Pasos: • Creación de cuenta • Heroku client • Requirements.txt (psycopg2==2.4.5 dj-database-url==0.2.0) • Procfile • Crear aplicación (heroku apps:create circusapp -s cedar) • Crear base de datos (add-on)
  • 23. Heroku deploy (II) Pasos: • Promote DB – Establece BBDD por defecto (heroku pg:promote HEROKU_POSTGRESQL_AQUA) • Syncdb (heroku run python bvstore/manage.py syncdb) • Despliegue git push (git push heroku master) • Enjoy! http://circusapp.herokuapp.com/movies
  • 24. Instant Servers deploy IaaS, el servicio de Cloud Pública de Telefónica para las start-ups digitales Ofrece provisión inmediata, total libertad de gestión de las diferentes máquinas, virtuales, pago por uso y alta disponibilidad y rendimiento Pasos: • Creación de cuenta • Configuración clave ssh • Copiar site • Crear virtualenv (python virtualenv.py --system-site-packages ~/projects/site/venv) • Instalar dependencias (pip install -r requirements) • Sincronizar BBDD • Runserver y enjoy! http://81.45.18.53:8000/movies
  • 25. Comparativa PaaS vs. IaaS PaaS: Plataforma como IaaS: Infraestructura como Servicio (Heroku) Servicio (Instant Servers) Fácil y sencillo de usar. Se despliega Completamente flexible. Permite + una aplicación muy rápido. + instalar cualquier cosa en la máquina. Entorno de desarrollo gratuito (1 Más barato en producción. hilo / 10.000 registros BD) 1 mes gratis sin límite de capacidad. SLAs a nivel de aplicación. SLAs a nivel de máquina y servicio - Menos flexible, tiene una serie de add-ons de pago pero no permite - Requiere más conocimientos y es necesario realizar más tareas de instalar software aparte. administración y configuración. Más caro en producción. Sin entorno de desarrollo gratuito (máquina 0,5 gratis 6 meses (Se factura por hilos de ejecución – próximamente) 0,05$ 1 hilo/hora) (Se factura por máquina – 0,06$ máquina 1GB/hora) Other details Including date etc.
  • 26. Instant Servers w w w. I n s t a n t S e r v e r s . e s  Soporte en castellano  Datos alojados en España o UK  Calidad y niveles de servicio garantizados por contrato (99,9% de disponibilidad trimestral por máquina con penalizaciones)  Tecnología 20-30% más potente Other details Including date etc.
  • 27. Credits • www.python.org/ • www.djangoproject.com/ • foundation.zurb.com/ • www.heroku.com • www.instantservers.es • www.bluevia.com