Eduardo Silva - monkey http-server everywhere

9,258 views
9,104 views

Published on

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
9,258
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
17
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Eduardo Silva - monkey http-server everywhere

  1. 1. MonkeyHTTP Server everywhereEduardo Silva ( edsiper )edsiper@monkey-project.comJonathan Gonzalez ( Zeus )zeus@gnu.org
  2. 2. < Project Goals >● Community !● Embedded in mind● Small core / Lightweight● Fast● Flexible API● Linux Kernel
  3. 3. < General Features >● HTTP/1.1● Events oriented (async sockets)● Indented configuration● Ready for Embedded
  4. 4. < Hardware Support > ● x86 ● x64 ● ARM
  5. 5. < HTTP Client/Server Flow >
  6. 6. < Monkey Architecture >
  7. 7. Indented Configuration
  8. 8. < WORKERS > ● Scheduler ● Clock
  9. 9. < Worker: Scheduler > “Assign new client connection to a worker thread...”
  10. 10. < Worker: Scheduler >
  11. 11. < Worker: Clock > “Keep in a global variable the current unix time and also a human readable time format as required per HTTP protocol...”
  12. 12. < Worker: Clock >
  13. 13. < Layer Models >● OSI : O. System Inter 7 layers● TCP/IP : Internet 4 layers● MOL : Monkey Layers 3 layers
  14. 14. < Monkey Layers >
  15. 15. < Layer / Networking > “Expose connectivity capabilities, in a few words: sockets support...”
  16. 16. < Layer / Networking >
  17. 17. < Layer / Events > “Expose hooks for socket events...”
  18. 18. < Layer / Events >
  19. 19. < Layer / Stages > “Specify the cycles of an HTTP connection and expose hooks for them...”
  20. 20. < Layer / Stages >
  21. 21. Plugins
  22. 22. < Logger Plugin >
  23. 23. < Logger Plugin >
  24. 24. < Mandril Plugin > Security
  25. 25. < Mandril Security Plugin >
  26. 26. < Liana Plugin > Connectivity
  27. 27. < Liana Plugin >
  28. 28. SSL ?
  29. 29. ...Yes!using MatrixSSL
  30. 30. < Liana SSL Plugin >
  31. 31. Liana 6IPv6 Support
  32. 32. < IPv6 Plugin >
  33. 33. HTML5Web Sockets
  34. 34. < WebSockets Plugin >
  35. 35. Palm Plugin & App Server
  36. 36. < Palm Plugin & App Server >
  37. 37. < Benchmark >
  38. 38. < Benchmark > Apache Benchmark Archivo : 100 bytes NginX : v1.0 port = 2002 Cherokee : v1.2.2 port = 2003 Apache2 : v2.2.17 port = 80 Monkey : v0.14.0 port = 2001 ab -n 15000 -c 20 -k http://localhost/100b.txt
  39. 39. < Requests/Second > 30000 25000 20000 15000 Requests/Second 10000 5000 0 Monkey NginX Cherokee Apache
  40. 40. < Memory Usage > 1600 1400 1200 1000 800 Uso de Memoria 600 400 200 0 Monkey NginX Cherokee
  41. 41. < List of features>● HTTP/1.1 ● Basic Auth● Virtual Hosts ● Directory Listing● IPv4 & IPv6 ● CGI / Palm● SSL ● Websockets● Security ● Shell● Log writer
  42. 42. < To Do List > ● FastCGI ● NoSQL ! ● URL Rewrite ● Improve Docs!
  43. 43. < Get Involved ! > ● Community ● Beta Testers ● Art Work ● Documentation ● Coding
  44. 44. Q&AEduardo Silva ( edsiper ) Jonathan Gonzalez ( Zeus)edsiper@monkey-project.com zeus@gnu.org

×