Possibilidades com python
Upcoming SlideShare
Loading in...5
×
 

Possibilidades com python

on

  • 772 views

 

Statistics

Views

Total Views
772
Views on SlideShare
772
Embed Views
0

Actions

Likes
2
Downloads
1
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Possibilidades com python Possibilidades com python Presentation Transcript

  • Web, escalabilidade e NoSQL possibilidades com Python Gustavo Pinto @gustavopinto
  • gustavopinto
  • Web - integração de serviçoso que usar?
  • Web - integração de serviçosReST:
  • Web - integração de serviçosReST: https://github.com/caelum/restfulie-python
  • Web - integração de serviços>>> response = Restfulie.at(resource_uri).get()>>> print response.body<palestra> <nome>Possibilidade com Python</nome> <evento>PythonBR</evento> <local>Amcham - Sao Paulo</local> <link rel="self" href="http://www.slideshare.com.br/gustavopinto/pythonBR" /></order>
  • Web - social machinesAPI TwitterAPI Facebook
  • Api Twitter
  • Api Facebookgraph = facebook.GraphAPI(oauth_access_token)profile = graph.get_object("me")friends = graph.get_connections("me", "friends")graph.put_object(profile, "feed", message="Live frompythonBrasil[7] !") https://github.com/facebook/python-sdk
  • Web - social machines
  • 1- Release
  • Escalabilidade"[...] sistemas que estãopreparados para crescer."
  • Escalabilidade"[...] sistemas que estãopreparados para crescer."
  • Escalabilidade"[...] sistemas que estãopreparados para crescer."
  • Escalabilidade, plugável?
  • Escalabilidade, plugável?
  • Perguntas● você faz caching?● você está preocupado com a arquitetura multicore?● você conhece seu framework?
  • Caching● Varnish● MemCached
  • Caching● Varnish● MemCached
  • Caching● Varnish● MemCachedEssa é suanecessidade?
  • Multicore - Paralelismo
  • Paralelismo 700 R$ ● uma aplicação single-threaded vai ser executada somente em um único processador, não importa quantos processadores estejam disponíveis.
  • Paralelismo 700 R$ ● uma aplicação single-threaded vai ser executada somente em um único processador, não importa quantos processadores estejam disponíveis. ● lembrando que, concorrência != paralelismo
  • Paralelismo ● Python built-in ○ threading ○ multiprocessing (Python 2.6) ● pypar ● pyMPI ● mpi4pyhttp://wiki.python.org/moin/ParallelProcessing
  • Paralelismodef expo(x):return x ** 2[expo (i) for i in range(100000)]
  • Paralelismofrom multiprocessing import Pooldef expo(x):return x ** 2pool = Pool()roots = pool.map(expo, range(100000))print roots
  • Paralelismofrom multiprocessing import Pooldef expo(x):return x ** 2pool = Pool()results = [pool.apply_async(expo, (x,))for x in range(100000)]roots = [r.get() for r in results]print roots
  • Paralelismofrom multiprocessing import Pooldef expo(x): Mas eu podia ter feito isso usandoreturn x ** 2 threads..pool = Pool()results = [pool.apply_async(expo, (x,))for x in range(100000)]roots = [r.get() for r in results]print roots
  • Framework
  • NoSQLMas, o que é NoSQL?
  • NoSQLMas, o que é NoSQL? +
  • NoSQLMas, o que é NoSQL? +
  • NoSQLMas, o que é NoSQL? +
  • NoSQL ?
  • NoSQL● top-level project● desenhado para tratar volume de dados muito grande● espalhados através de vários servidores● fornecendo um serviço altamente disponível● sem nenhum ponto único de falha.
  • NoSQL● top-level project● desenhado para tratar volume de dados muito grande● espalhados através de vários servidores● fornecendo um serviço altamente disponível● sem nenhum ponto único de falha.
  • NoSQL● top-level project● desenhado para tratar volume de dados muito grande● espalhados através de vários servidores● fornecendo um serviço altamente disponível● sem nenhum ponto único de falha.Eventualmente consistente..
  • NoSQL
  • NoSQL 1. Keyspace 2. Column Family 3. Column Family Row 4. Column 21 3 4
  • NoSQL - Cassandra (Thrift)def main:socket = TSocket.TSocket("localhost", 9160)transport = TTransport.TBufferedTransport(socket)protocol = TBinaryProtocol.TBinaryProtocolAccelerated(transport)client = Cassandra.Client(protocol)
  • NoSQL - Cassandra (Thrift)keyspace = "Keyspace1"column_path = ColumnPath(column_family="PrimeiroNivel",column="nome")key = "1"value = "Gustavo Pinto"timestamp = time.time()try:transport.open()client.insert(keyspace,key, column_path, value, timestamp,ConsistencyLevel.ZERO)
  • NoSQL - Cassandra (Thrift)#readcolumn_parent = ColumnParent(column_family="PrimeiroNivel")slice_range = SliceRange(start="", finish="")predicate = SlicePredicate(slice_range=slice_range)result = client.get_slice(keyspace, key, column_parent,predicate, ConsistencyLevel.ONE)
  • NoSQL - Cassandra
  • NoSQL - Cassandramas, essa é asua necessidade?