apache mesos distributed computing talk

26
Apache Mesos A romantic stroll into Distributed Computing Brandon Gulla - Praxis Engineering

Upload: brandongulla

Post on 20-Feb-2017

195 views

Category:

Engineering


1 download

TRANSCRIPT

Page 1: Apache Mesos Distributed Computing Talk

Apache MesosA romantic stroll into Distributed Computing

Brandon Gulla - Praxis Engineering

Page 2: Apache Mesos Distributed Computing Talk

●Beer.●Why distributed-computing is hard? ***●How Mesos helps.●Mesos in the wild.●DCOS-Demo.●Questions?●Repeat Step 1

This is a shortened version of the talk I normally give, feel free to contact me offline for a deeper dive.

Agenda

Page 3: Apache Mesos Distributed Computing Talk

$ > whoamiBrandon GullaDistributed DevOps [email protected] github/bgulla

Page 4: Apache Mesos Distributed Computing Talk

Mesosphere

● Commercial company supporting Apache Mesos based in SF and Hamburg, Germany.

● Founded by the Apache Mesos Founder Ben Hindman, Former AirBnB CTO Tobi Knapp and previous Twitter Engineer Florian Leibert.

● Provides full stack Mesos solutions running Apache Mesos as well as their corporate product: DCOS (Datacenter Operating System).

● Keith McClellan will be presenting a demo as soon as you’re tired of me.

Page 5: Apache Mesos Distributed Computing Talk

MesosFrameworks

Page 6: Apache Mesos Distributed Computing Talk

●Servers, Memory and Disks have gotten cheaper so we buy more. These often go under-utilized.

●Traditionally, clusters have been provisioned statically.

●Puppet, SaltStack, Ansible, **pdsh** :(●Not Multi-tenant friendly.●DevOps Nightmare!!!●Doesn’t Scale :(

“Just Network them together!”

Page 7: Apache Mesos Distributed Computing Talk

Personal Gateway To Mesos

●Customer had a 100+ node Hadoop cluster with legacy dependency requirements.

●Wanted to utilize current MapReduce libraries without breaking ingest requirements.

●More importantly: Customer wanted a way to manage their resources on demand...

Page 8: Apache Mesos Distributed Computing Talk

Solution:

Page 9: Apache Mesos Distributed Computing Talk

●Open-source two-level Resource Manager.

●Written in C++ wrapping around libprocess.

●Scalable - Runs on 10,000s of servers.●Fault-Tolerant! Multiple masters. Load

Balancing!●Solve Bigger Problems.●I/O Isolation via Linux cgroups.●Distributed Resource Manager:

●RAM●Disks●Ports●GPUs●Network (Yes- Software Defined Networking)

Welcome to Apache Mesos

Page 10: Apache Mesos Distributed Computing Talk

Mesos: Turn Your Datacenter into One Large Computer● Where did we install MySQL? Who cares! Mesos +

Service Discovery = Dynamic Awesomeness. ● Separates dependencies between Ops and

Development. Ops wants to take a rack down, who cares, just move the processes from that rack somewhere else. Ops can do this as part of their work. Developers shouldn't know/care.

● Fault Tolerant, if something dies, Mesos will automatically spin another one up.

Page 11: Apache Mesos Distributed Computing Talk

History

Page 12: Apache Mesos Distributed Computing Talk

Shared Resources = Multi-Tenancy

Page 13: Apache Mesos Distributed Computing Talk

Mesos Explained

Page 14: Apache Mesos Distributed Computing Talk
Page 15: Apache Mesos Distributed Computing Talk

Resource Offers and Launching A Task

Page 16: Apache Mesos Distributed Computing Talk

Writing your own Mesos Framework

●Feature Complete API using:●JVM Languages (Java, Scala, Groovy)●C++●Python●Go

●Write a framework in minutes using Mesos-Compose.

●YML interface ●Similar to Docker-Compose

●Unit Testing with Mini-Mesos

Page 17: Apache Mesos Distributed Computing Talk

Don’t want to write your own Mesos Framework? No problemo, Amigo.

Page 18: Apache Mesos Distributed Computing Talk

0 to Mesos in seconds with Marathon.

Page 19: Apache Mesos Distributed Computing Talk

Containers: VMs but awesomer.●Shares Kernel with Host (no hypervisor)●Boots in milliseconds.●Portable. docker pull python:27

●Run CentOS on Debian, Run Gentoo on Alpine.

●Dependency Friendly

Page 20: Apache Mesos Distributed Computing Talk

●If you’re replacing a once statically installed, non-distributed application: Use Marathon.

●Apache, Nginx, Jenkins..etc

●If your application requires fine grain control and orchestration of tasks: Write your own Framework.

●Apache Accumulo●Hadoop Yarn (Shameless Apache Myriad Plug)●Spark

Framework Development: My Experiences

Page 21: Apache Mesos Distributed Computing Talk

Mesos in the Wild●Netflix: Mantis+Fenzo●Apple: Jarvis (Siri)●Microsoft Azure Container Service.

Page 22: Apache Mesos Distributed Computing Talk

Mesos: Full Stack Replacement

Current Mesos Equivalent

Systemd Marathon

Cron Chronos

DNS Mesos-DNS

Chroot / BSD Jail Docker

NFS Gluster, CEF, HDFS

Page 23: Apache Mesos Distributed Computing Talk

Redefined ThinkingBefore:

After:

Processes

Page 24: Apache Mesos Distributed Computing Talk
Page 25: Apache Mesos Distributed Computing Talk

MesosFrameworks

Page 26: Apache Mesos Distributed Computing Talk

Demo TimeTo Infinity and Beyond.