terraform + mesos

29
Terraform + Mesos How to run a Mesos cluster using Terraform

Upload: thijs-schnitger

Post on 16-Jul-2015

272 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Terraform + Mesos

Terraform + MesosHow to run a Mesos cluster using Terraform

Page 2: Terraform + Mesos

What is Terraforming

Process of modifying planet’s atmosphere,

topography and ecology to make it

habitable by life.

Page 3: Terraform + Mesos

What is Terraforming

Process of modifying infrastructure to make it

habitable by software.

Page 4: Terraform + Mesos

What is Terraform

Open Source Tool

Infrastructure as Code

New Layer of Abstraction

Page 5: Terraform + Mesos

Terraform Concepts

Command Line Tool

$ terraform get$ terraform plan -out master.plan$ terraform apply master.plan$ terraform destroy

Page 6: Terraform + Mesos

Terraform Concepts

Configuration Files

resource "google_compute_instance" "mybox" {name = "mybox"machine_type = "n1-standard-2"zone = "europe-west1-d"

...}

Page 7: Terraform + Mesos

Terraform Concepts

Execution Plan

resource "google_compute_instance" "mybox" {

name = "mybox"

machine_type = "n1-standard-2"

zone = "europe-west1-d"

...

}

+ module.mesos.google_compute_instance.mesos-master.0can_ip_forward: "" => "0"disk.#: "" => "1"disk.0.auto_delete: "" => "1"disk.0.image: "" => "ubuntu-os-cloud/ubuntu-1404-trusty-

v20150128"disk.0.type: "" => "pd-ssd"machine_type: "" => "n1-standard-2"metadata.#: "" => "1"metadata.0.#: "" => "4"metadata.0.clustername: "" => "presentation1"metadata.0.domain: "" => "example.com"metadata.0.mastercount: "" => "3"metadata.0.myid: "" => "0"metadata_fingerprint: "" => "<computed>"name: "" => "presentation1-mesos-master-0"...

Page 8: Terraform + Mesos

Terraform Concepts

Providers

Page 9: Terraform + Mesos

Terraform Concepts

Modules

Encapsulation of TF Functionality

Code Reusability

Page 10: Terraform + Mesos

Terraform Workflow

Configure Cloud Provider Define Infrastructure

Generate Plan Apply Plan

Update Infrastructure Definition

Page 11: Terraform + Mesos

Terraform Example

provider.tf (Google)server.tf (3x Debian Instance)network.tffirewall.tf

00m35s

Page 12: Terraform + Mesos

Mesos

Purpose

Structure

Workflow

Page 13: Terraform + Mesos

Traditional Data Center

Page 14: Terraform + Mesos

Resource usage

Traditional Data Centre

Page 15: Terraform + Mesos

Mesos

Master

Slave Slave Slave

Page 16: Terraform + Mesos

Mesos

Master

Slave Slave Slave

Page 17: Terraform + Mesos

Mesos

Master

Slave Slave Slave

Page 18: Terraform + Mesos

Mesos

Master

Slave Slave Slave

Page 19: Terraform + Mesos

Mesos

Master

Slave Slave Slave

Page 20: Terraform + Mesos

Mesos

Master

Slave Slave Slave

Page 21: Terraform + Mesos

Mesos

Master

Slave Slave Slave

Page 22: Terraform + Mesos

Mesos

Master

Slave Slave Slave

Page 23: Terraform + Mesos

Mesos

Master

Slave Slave Slave

Page 24: Terraform + Mesos

Mesos

Master

Slave Slave Slave

Page 25: Terraform + Mesos

Mesos

Master

Slave Slave Slave

Page 26: Terraform + Mesos

Master

Slave Slave Slave

Mesos - final setup

Page 27: Terraform + Mesos

Terraform a Mesos cluster

Provider

Network

Firewall

Master nodes

Slave nodes

Page 28: Terraform + Mesos

Demo time

Page 29: Terraform + Mesos

What’s next?

● Open issues in GitHub

● Feature requests

● Blog posts http://container-

solutions.com/blog/

● Beer!