deploying dc/os on premises with juju

33
Deploying DC/OS On Prem (With a little help from your friends)

Upload: tom-barber

Post on 06-Jan-2017

71 views

Category:

Software


1 download

TRANSCRIPT

Page 1: Deploying DC/OS on Premises with Juju

Deploying DC/OS On Prem

(With a little help from your friends)

Page 2: Deploying DC/OS on Premises with Juju

Who’s the guy at the front?Tom Barber

NASA JPL Devops and Data Developer

Spicule & Meteorite BI

Data guy and open source hacker… erm developer.

Page 3: Deploying DC/OS on Premises with Juju

A bit of history…...

Page 4: Deploying DC/OS on Premises with Juju

CaveatWe want to run our services on hardware supplied by

We also want to retain control of the underlying hardware to control costs, networking and scalability.

Page 5: Deploying DC/OS on Premises with Juju

Our Goal

Page 6: Deploying DC/OS on Premises with Juju

We also want to be able to run our services in different data centres for

resilience and data locality purposes.

Page 7: Deploying DC/OS on Premises with Juju

So how can we achieve our goals?

Page 8: Deploying DC/OS on Premises with Juju

Container Management SystemsDocker Swarm

Kubernetes

Apache Mesos

CoreOS

DC/OS

Deployed to fixed hosts

Page 9: Deploying DC/OS on Premises with Juju

I’m a sucker for a nice looking dashboard

Page 10: Deploying DC/OS on Premises with Juju

The next question we asked was:“We have a bunch of Bigstep bare metal servers, what's the most flexible way to manage them?”

Page 11: Deploying DC/OS on Premises with Juju

Introducing Metal As A Service!Deploy workloads onto bare metal servers

Integration with Juju to manage the services

DNS & IP management

Internal fabric networking

Operating system agnostic

Page 12: Deploying DC/OS on Premises with Juju
Page 13: Deploying DC/OS on Premises with Juju
Page 14: Deploying DC/OS on Premises with Juju

We already manage a lot of our services using Juju… so could we make DC/OS work with Juju?

Page 15: Deploying DC/OS on Premises with Juju

Application modeling with Juju

Page 16: Deploying DC/OS on Premises with Juju

Juju Key ConceptsBootstrap

Deploy

Relate

Scale

Repeat!

Page 17: Deploying DC/OS on Premises with Juju

BootstrapPick a cloud

AWS

Azure

CloudSigma

Google

Joyent

Rackspace

LXD Local

Manual

MAAS!

Page 18: Deploying DC/OS on Premises with Juju

Deployjuju deploy dcos-master

juju deploy dcos-agent

Page 19: Deploying DC/OS on Premises with Juju

Relatejuju add-relation dcos-master dcos-agent

Page 20: Deploying DC/OS on Premises with Juju

Scalejuju add-unit -n 10 dcos-agent

Page 21: Deploying DC/OS on Premises with Juju

Repeat! (Anywhere)Export my model to a YAML file

Import into a new cloud or MAAS service

Deploys in the same manner

Page 22: Deploying DC/OS on Premises with Juju

Crowdsourcing OpsMajority of users get Charms from the Juju Charm Store. Similar to

PuppetForge et al

Charms written by a user or company and then added to and extended by others

Charms that have been validated and have a test suite are often promulgated to the top level recommended charms to try and ensure users have a good experience

Page 23: Deploying DC/OS on Premises with Juju

Development flow to enhance charms

Page 24: Deploying DC/OS on Premises with Juju

Monitoring DC/OSjuju deploy nagios

juju deploy nrpe

juju add-relation nagios:monitors nrpe:monitors

juju add-relation dcos-master:local-monitors nrpe:local-monitors

Page 25: Deploying DC/OS on Premises with Juju

Logging DC/OSjuju add-relation logstash dcos-master

Page 26: Deploying DC/OS on Premises with Juju

(Finally) Deploying Containers to DC/OSjuju deploy dcos-nginx

juju add-relation dcos-nginx dcos-master

Page 27: Deploying DC/OS on Premises with Juju

Enriching your deployment with MetadataYou can make use of non dockerized or Mesos-ized services from other charms

Passing around metadata allows you to configure applications dynamically even within and across DC/OS core systems

Page 28: Deploying DC/OS on Premises with Juju

Current State of PlayDCOS Master Nodes (Scalable)

DCOS Client Nodes (Scalable)

Monitoring connectivity

Ability to deploy docker containers

Actions to do various admin tasks

Page 29: Deploying DC/OS on Premises with Juju

RoadmapImplement disk mounts for NFS and Loopback devices.

Add more actions.

Implement Monitoring.

Improve Security.

Expose running app ports automatically.

Simplify the upgrade process.

ELK to Beats?

Custom Cluster Name

Private Docker Reg

Marathon Load Balancer

Page 30: Deploying DC/OS on Premises with Juju

Support and [email protected] <- me

[email protected] <- the community

[email protected] <- also me

https://jujucharms.com/u/spicule/basic-dcos-bundle <- a bundle to get you going

https://github.com/buggtb/dcos-master-charm <- the master

https://github.com/buggtb/dcos-agent-charm <- the agents

Page 31: Deploying DC/OS on Premises with Juju

But it doesn’t end there…..

Page 32: Deploying DC/OS on Premises with Juju

DC/OS is hard to configure once installedYou can’t easily change from public to private units

You can’t enable or disable OAuth logins

You can’t enable or disable telemetry

Page 33: Deploying DC/OS on Premises with Juju

Layered MesosMesos master and slaves

Marathon support for Docker deployment

Utilise the Zookeeper charm

SSL Communication

HA support

SDN support