Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Willian Molinari (a.k.a PotHix)
Apache Mesos,
abstraindo o datacenter
Plaev.github.io
❏ O que é o Apache Mesos
❏ Como funciona?
❏ Que problema resolve?
❏ Como usar?
Agenda
O que é o Mesos?
❏ Criado em Berkeley
❏ Trabalho de PhD
❏ 1º apresentação em 2009
❏ Twitter começa a usar em 2010
O que é o Mesos?
Nota: Não foi só isso, mas ajudou bastante :)
Empresas que usam
#MesosCon
#MesosCon 2014
mais de 250+ participantes
#MesosCon 2015
mais de 700+ participantes
Que problema resolve?
Static Partitioning
n CPUs
n GBs (mem)
n GBs (disco)
atributos
Fairness
Módulo de alocação
DRF por padrão, mas extensível
dados do twitter da apresentação do Chris Aniszczyk
Como funciona?
baseado na comparação do feita pelo David Greenberg
Isolamento
Processos
Containers
Compartilhamento de recursos
Linux Scheduler
DRF
API comum
Syscalls
(open, connect, fork)
Mesos API
(killTask, lanchTasks)
http://mesos.apache.org/documentation/latest/mesos-architecture/
http://mesos.apache.org/documentation/latest/mesos-architecture/
http://mesos.apache.org/documentation/latest/mesos-architecture/
http://mesos.apache.org/documentation/latest/mesos-architecture/
http://mesos.apache.org/documentation/latest/mesos-architecture/
http://mesos.apache.org/documentation/latest/mesos-architecture/
http://mesos.apache.org/documentation/latest/mesos-architecture/
http://mesos.apache.org/documentation/latest/mesos-architecture/
http://mesos.apache.org/documentation/latest/mesos-architecture/
frameworks
http://mesos.apache.org/documentation/latest/mesos-architecture/
high availability
http://mesos.apache.org/documentation/latest/mesos-architecture/
master
election
http://mesos.apache.org/documentation/latest/mesos-architecture/
servidor
processo do mesos
executor
do framework
container
Containerizers
❏ mesos (cgroups)
❏ docker
❏ external
Containerizers
❏ mesos (cgroups)
❏ docker
❏ external
Containerizers
Faça o seu! :P
Como usar?
Frameworks
Vários disponíveis na Doc
Outros frameworks
Outros frameworks
API
vários endpoints, tudo pode ser feito por lá
POST /v2/apps: create and start
{
"cmd": "env && python3 -m http.server $PORT0",
"constraints": [
[
"hostname",
"UNIQUE"
]...
apps & cron
http://aurora.apache.org/documentation/latest/user-guide/
aurora update
Preempting
Criação de tasks via Python!
hello_world_proc = Process(
name="hello_process",
cmdline="""
while true; do
echo -n "Hello w...
Não curtiu esses?
Faça o seu framework! :)
❏ C++
❏ Java
❏ Python
❏ Go
❏ Scala
Vixe, muito trabalho...
Perguntas?
Willian Molinari
@PotHix
pothix@pothix.com
Slides: https://goo.gl/PNJjvR
Mesos
Mesos
Mesos
Mesos
Mesos
Mesos
Mesos
Mesos
Mesos
Mesos
Mesos
Mesos
Mesos
Mesos
Mesos
Mesos
Mesos
Mesos
Mesos
Mesos
Upcoming SlideShare
Loading in …5
×

Mesos

366 views

Published on

Palestra sobre o Apache mesos e suas vantagens

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Mesos

  1. 1. Willian Molinari (a.k.a PotHix) Apache Mesos, abstraindo o datacenter
  2. 2. Plaev.github.io
  3. 3. ❏ O que é o Apache Mesos ❏ Como funciona? ❏ Que problema resolve? ❏ Como usar? Agenda
  4. 4. O que é o Mesos?
  5. 5. ❏ Criado em Berkeley ❏ Trabalho de PhD ❏ 1º apresentação em 2009 ❏ Twitter começa a usar em 2010 O que é o Mesos?
  6. 6. Nota: Não foi só isso, mas ajudou bastante :)
  7. 7. Empresas que usam
  8. 8. #MesosCon
  9. 9. #MesosCon 2014 mais de 250+ participantes
  10. 10. #MesosCon 2015 mais de 700+ participantes
  11. 11. Que problema resolve?
  12. 12. Static Partitioning
  13. 13. n CPUs n GBs (mem) n GBs (disco) atributos
  14. 14. Fairness
  15. 15. Módulo de alocação DRF por padrão, mas extensível
  16. 16. dados do twitter da apresentação do Chris Aniszczyk
  17. 17. Como funciona?
  18. 18. baseado na comparação do feita pelo David Greenberg
  19. 19. Isolamento Processos Containers
  20. 20. Compartilhamento de recursos Linux Scheduler DRF
  21. 21. API comum Syscalls (open, connect, fork) Mesos API (killTask, lanchTasks)
  22. 22. http://mesos.apache.org/documentation/latest/mesos-architecture/
  23. 23. http://mesos.apache.org/documentation/latest/mesos-architecture/
  24. 24. http://mesos.apache.org/documentation/latest/mesos-architecture/
  25. 25. http://mesos.apache.org/documentation/latest/mesos-architecture/
  26. 26. http://mesos.apache.org/documentation/latest/mesos-architecture/
  27. 27. http://mesos.apache.org/documentation/latest/mesos-architecture/
  28. 28. http://mesos.apache.org/documentation/latest/mesos-architecture/
  29. 29. http://mesos.apache.org/documentation/latest/mesos-architecture/
  30. 30. http://mesos.apache.org/documentation/latest/mesos-architecture/ frameworks
  31. 31. http://mesos.apache.org/documentation/latest/mesos-architecture/ high availability
  32. 32. http://mesos.apache.org/documentation/latest/mesos-architecture/ master election
  33. 33. http://mesos.apache.org/documentation/latest/mesos-architecture/
  34. 34. servidor
  35. 35. processo do mesos
  36. 36. executor do framework
  37. 37. container
  38. 38. Containerizers
  39. 39. ❏ mesos (cgroups) ❏ docker ❏ external Containerizers
  40. 40. ❏ mesos (cgroups) ❏ docker ❏ external Containerizers Faça o seu! :P
  41. 41. Como usar?
  42. 42. Frameworks Vários disponíveis na Doc
  43. 43. Outros frameworks
  44. 44. Outros frameworks
  45. 45. API vários endpoints, tudo pode ser feito por lá
  46. 46. POST /v2/apps: create and start { "cmd": "env && python3 -m http.server $PORT0", "constraints": [ [ "hostname", "UNIQUE" ] ], "container": { "docker": { "image": "python:3" }, "type": "DOCKER" }, "cpus": 0.25, "healthChecks": [ { ... } ], "id": "my-app", "instances": 2, "mem": 50, "ports": [ 0 ], "upgradeStrategy": { "minimumHealthCapacity": 0.5, "maximumOverCapacity": 0.5 } }
  47. 47. apps & cron
  48. 48. http://aurora.apache.org/documentation/latest/user-guide/
  49. 49. aurora update
  50. 50. Preempting
  51. 51. Criação de tasks via Python! hello_world_proc = Process( name="hello_process", cmdline=""" while true; do echo -n "Hello world! The time is now: " && date sleep 10 done """) hello_world_docker = Task( name = 'hello docker', processes = [hello_world_proc], resources = Resources(cpu = 1, ram = 1*MB, disk=8*MB)) [...] [...] jobs = [ Service(cluster = 'devcluster', environment = 'devel', role = 'docker-test', name = 'hello_docker', task = hello_world_docker, container = Container(docker = Docker(image = 'python:2.7')))]
  52. 52. Não curtiu esses?
  53. 53. Faça o seu framework! :) ❏ C++ ❏ Java ❏ Python ❏ Go ❏ Scala
  54. 54. Vixe, muito trabalho...
  55. 55. Perguntas? Willian Molinari @PotHix pothix@pothix.com Slides: https://goo.gl/PNJjvR

×