Possibilidades com python

906 views

Published on

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
906
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
3
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Possibilidades com python

  1. 1. Web, escalabilidade e NoSQL possibilidades com Python Gustavo Pinto @gustavopinto
  2. 2. gustavopinto
  3. 3. Web - integração de serviçoso que usar?
  4. 4. Web - integração de serviçosReST:
  5. 5. Web - integração de serviçosReST: https://github.com/caelum/restfulie-python
  6. 6. 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>
  7. 7. Web - social machinesAPI TwitterAPI Facebook
  8. 8. Api Twitter
  9. 9. 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
  10. 10. Web - social machines
  11. 11. 1- Release
  12. 12. Escalabilidade"[...] sistemas que estãopreparados para crescer."
  13. 13. Escalabilidade"[...] sistemas que estãopreparados para crescer."
  14. 14. Escalabilidade"[...] sistemas que estãopreparados para crescer."
  15. 15. Escalabilidade, plugável?
  16. 16. Escalabilidade, plugável?
  17. 17. Perguntas● você faz caching?● você está preocupado com a arquitetura multicore?● você conhece seu framework?
  18. 18. Caching● Varnish● MemCached
  19. 19. Caching● Varnish● MemCached
  20. 20. Caching● Varnish● MemCachedEssa é suanecessidade?
  21. 21. Multicore - Paralelismo
  22. 22. Paralelismo 700 R$ ● uma aplicação single-threaded vai ser executada somente em um único processador, não importa quantos processadores estejam disponíveis.
  23. 23. 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
  24. 24. Paralelismo ● Python built-in ○ threading ○ multiprocessing (Python 2.6) ● pypar ● pyMPI ● mpi4pyhttp://wiki.python.org/moin/ParallelProcessing
  25. 25. Paralelismodef expo(x):return x ** 2[expo (i) for i in range(100000)]
  26. 26. Paralelismofrom multiprocessing import Pooldef expo(x):return x ** 2pool = Pool()roots = pool.map(expo, range(100000))print roots
  27. 27. 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
  28. 28. 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
  29. 29. Framework
  30. 30. NoSQLMas, o que é NoSQL?
  31. 31. NoSQLMas, o que é NoSQL? +
  32. 32. NoSQLMas, o que é NoSQL? +
  33. 33. NoSQLMas, o que é NoSQL? +
  34. 34. NoSQL ?
  35. 35. 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.
  36. 36. 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.
  37. 37. 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..
  38. 38. NoSQL
  39. 39. NoSQL 1. Keyspace 2. Column Family 3. Column Family Row 4. Column 21 3 4
  40. 40. NoSQL - Cassandra (Thrift)def main:socket = TSocket.TSocket("localhost", 9160)transport = TTransport.TBufferedTransport(socket)protocol = TBinaryProtocol.TBinaryProtocolAccelerated(transport)client = Cassandra.Client(protocol)
  41. 41. 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)
  42. 42. 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)
  43. 43. NoSQL - Cassandra
  44. 44. NoSQL - Cassandramas, essa é asua necessidade?

×