Mesos + Singularity: Mesos + Singularity: PaaS automation for - - PowerPoint PPT Presentation

mesos singularity mesos singularity paas automation for
SMART_READER_LITE
LIVE PREVIEW

Mesos + Singularity: Mesos + Singularity: PaaS automation for - - PowerPoint PPT Presentation

Mesos + Singularity: Mesos + Singularity: PaaS automation for mortals PaaS automation for mortals Gregory Chomatas @gchomatas PaaS team 120 meters: My shortest travel to a Conference 120 meters: My shortest travel to a Conference Miletus


slide-1
SLIDE 1

Mesos + Singularity: Mesos + Singularity: PaaS automation for mortals PaaS automation for mortals

Gregory Chomatas @gchomatas PaaS team

slide-2
SLIDE 2

120 meters: My shortest travel to a Conference 120 meters: My shortest travel to a Conference

slide-3
SLIDE 3

Thales of Miletus - 624 BC Those who can, do, the others philosophise... Really?

Miletus

slide-4
SLIDE 4

Optionality* with Mesos Optionality* with Mesos

Invest in a Mesos-powered PaaS and keep doing what you love most; building your product

* Optionality is the property of asymmetric upside (preferably unlimited) w ith corresponding limited downside (preferably tiny)

slide-5
SLIDE 5

Blogging SEO Social Media CMS Lead Management Landing Pages Calls-to-Action Marketing Automation Email Analytics CRM Sync

slide-6
SLIDE 6

The underlying culture & structure The underlying culture & structure

12-factor apps .net monolith to microservices Small, autonomous teams with end-to-end ownership - no ops

slide-7
SLIDE 7

High productivity High productivity

~100 engineers 800+ components that can be updated/scaled independently QA: ~400 small to medium AWS machines PROD: ~750 medium to large AWS machines

Source: Martin Fowler http://martinfowler.com/bliki/MicroservicePremium.html

slide-8
SLIDE 8
  • 1. Develop locally
  • 2. Provision QA aws instance
  • 3. Deploy via local Python script
  • 4. Provision PROD aws instance
  • 5. Deploy via local Python script
  • 6. Repeat 4 & 5 to scale

  • 10. Repeat 4&5 at 4am to replace hw

But for how long... But for how long...

slide-9
SLIDE 9

Statically partitioning the cluster is inefficient Statically partitioning the cluster is inefficient

slide-10
SLIDE 10

The cost of flexibility & asynchronicity The cost of flexibility & asynchronicity

High operational overhead Poor utilisation & elasticity Higher rate of failures

slide-11
SLIDE 11

Redress the balance with a Mesos-based PaaS Redress the balance with a Mesos-based PaaS

Abstract away machines Homogenous environment Scale out in seconds Centralized deployables registry Sept 2013: Our First Mesos Cluster

slide-12
SLIDE 12

To Boldly go...to Singularity

slide-13
SLIDE 13

Singularity: do more with a single scheduler Singularity: do more with a single scheduler

Great UI & HTTP API Native Docker Support Health Checks Load Balancing API Log Maintenance

Oct 2013: Start building Singularity

slide-14
SLIDE 14

Singularity: do even more... Singularity: do even more...

Security / artifact signature verification Agent & Rack maintenance Webhooks Auto-rollback Email Notifications Executor cleanup

Singularity Components

slide-15
SLIDE 15

The PaaS Stack The PaaS Stack

BUILD DEPLOY RUN Jenkins Orion Singularity

slide-16
SLIDE 16

The Build / Deploy cycle The Build / Deploy cycle

buildpack runner

S3

slide-17
SLIDE 17

The Deployer - Dry run The Deployer - Dry run

slide-18
SLIDE 18

The Deployer - Deploying The Deployer - Deploying

slide-19
SLIDE 19

Singularity Singularity

Deployable view Deployable view

slide-20
SLIDE 20

Singularity Singularity Task view

Task view

slide-21
SLIDE 21

Singularity f Singularity file tailing

ile tailing

slide-22
SLIDE 22

Singularity Singularity Health Checks & Resources

Health Checks & Resources

slide-23
SLIDE 23

Singularity Singularity All Deployables view

All Deployables view

slide-24
SLIDE 24

Singularity Singularity

Cluster Status Cluster Status

slide-25
SLIDE 25

Singularity Singularity

Cluster Maintenance view Cluster Maintenance view

slide-26
SLIDE 26

Migration to Mesos - Timeline Migration to Mesos - Timeline

slide-27
SLIDE 27

Manual Server Provisioning Manual Server Provisioning

slide-28
SLIDE 28

Server provisioning UI usage Server provisioning UI usage

slide-29
SLIDE 29

1800+ deployables 1800+ deployables ~300 deploys / day ~300 deploys / day 10 minutes from git 10 minutes from git push to production push to production

slide-30
SLIDE 30

I want persistent IMAP connections to 200k+ I want persistent IMAP connections to 200k+ inboxes (Jul 2015) inboxes (Jul 2015)

slide-31
SLIDE 31
slide-32
SLIDE 32

Stateful Services Single Process services Hard coded stationary hosts Cgroups memory isolation User resistance

Migration Issues Migration Issues

slide-33
SLIDE 33

All eggs in one basket Mesos / Framework issues (pingback port) Failures (Zookeeper, Mesos, Singularity) Cluster Maintenance Missing features

Operational Issues Operational Issues

slide-34
SLIDE 34

Phased rollout of new Kernel, Instance types Rolling upgrade of instance basic SW with puppet vars

Maintenance Maintenance

Rolling upgrade of master/agent process with ansible Local testing on docker cluster Roll out at infra-QA then product-QA and last to Production cluster Deploy tools deploy themselves but maintain command line alternative with fabric

slide-35
SLIDE 35

Optionality with Mesos@HubSpot Optionality with Mesos@HubSpot

Singularity Ghidorah - Load Balancers in Mesos Massive Builds in Mesos Baragon - Tasks Load Balancer Manager Mesos Spark Cluster

slide-36
SLIDE 36

The sweet spot The sweet spot

Source: Mark Leslie (http://firstround.com/review/The-Arc-of-Company-Life-and-How-to-Prolong-It/)

slide-37
SLIDE 37

Invest early in a deploy & build infrastructure Invest early in a deploy & build infrastructure Dedicate 1-2 engineers to experiment on Dedicate 1-2 engineers to experiment on a Mesos powered PaaS a Mesos powered PaaS Try Singularity today! Try Singularity today!

github.com/HubSpot/Singularity

slide-38
SLIDE 38

HubSpot Blog: How We Built Our Stack For Shipping at Scale​ Blazar: An out-of-this world build system! Baragon: Load Balancer API

Useful links Useful links