Open source Cloud Automation Platform

Download Open source Cloud Automation Platform

Post on 16-Apr-2017

2.940 views

Category:

Technology

2 download

Embed Size (px)

TRANSCRIPT

Grid Toolkits

http://www.gomegam.com

Megam : Under the Hood From IaaS to PaaS ? Are you ready ?

Why PaaS ?

What Are My Options ?

How You Can Build One.

Architecture/Know How of Megam

Our Working Prototype Screencast #1

Why PaaS

Business needs agility with faster time to marketCycle time to build apps can be shortened ?

Cloud Apps on Hybrid cloudApps on single cloud are fragile

Businesses need 24 x 7 uptimeHybrid Scaling, DR of Cloud Apps is a pain

Enterprise IT Migration cycle

SaaS

PaaS

IaaS

Rehost

Refactor

Revise

Rebuild

Replace

The market will experience consistent growth with worldwide PaaS revenue totaling 1.5 billion in 2013, and growing to $2.9 billion in 2016

The SaaS-based cloud market will grow from $12.1B in 2013 to $21.3B in 2015, with the primary growth factors being ease of customization and speed of deployment.

Gartner

What Are My Options ?

Megam

Megam - Features

Write Once, Run on Any Cloud.

Apps Marketplace Easy to consume canned apps.

Cloud in a box for Bare metal

Log Analytics, Server/Application Monitoring

For more info: visit http://www.gomegam.com

Target Market

Data centers, Enterprise, SMBs, DR vendors, SCM vendors, Developers, Training, Software makers

Definition driven architecture

describe dependencies to move to cloud.

What to describe ?

Describe the VM which stands up an App/DB (or) Scaling, Loadbalancing, DR

For simplicity assume a Ruby on Rails App

We need a Medium to describe WebApp, CLI, Mob

In the Medium We describe a Cloud named sandbox_default

We created a cloud named sandy_defaultLet us use it

In the Medium we describe a app by choosing a framework

To stand that app in cloud : sandbox_default

You Can Watch Logs real time/ off-line

Manage from a Dashboard

Enough of Talking Show me the Use case

On board www.megam.coStart Create AppChoose Java AppPoint Git or WARChoose CloudLaunch AppSelect LogsWatch Real-time LogSelect Monitor AppMonitor/Watch App Metric..APIServer

Herk

What more can I do ? Contact Us : gomegam@megam.co.inPhone: +613-834-4518

Guide: http://www.gomegam.com/docsOpen source Apache V2.

What happens Internally ?

Sure(Rest of the slides has in depth design)

What happens during description of an app

A node is a top level description of a cloud resource (app, services).DefnsCan have

A Defn is a description of a cloud resource by specifying its constraints and characteristics.

App Defn:A Web App or mob HTML5 or API Service

Nut DefnA Group composed of Appn + Wrenchn + Boltn

Wrench DefnComposes App Defns (eg: HA Proxy)

Bolt DefnService: Attaches to an App (eg: DB, QueueSSL..)

4 types of Defn

Scaling app is easy.

app can be combined with bolt and viceversa.

If more than one app is requested, then you need a wrench to compose them.

||

=

=

+

In this case 2 independent apps will be created

node =>

Has a type, name, domain

With predef (flavor of framework : java, scala, go, ...)

Has required runtime dependencies: scm

Has an exec context

Can have many requests based on req_type

node Has

Sub groupTermed PredefSub categoryTermed RequestsRoRRubyGoErlangScalaPlayJavaRiakPostgreSQLRabbitMQAkka...

CREATENUKESTOP

NSTOPNSTARTNRESTART

AppBoltWrenchNut

Watch our screencast #1

Data structure

OrgsUsersCloudApps

Productsprod_idcloud_identity_idusers_id

org_idapi_key

accountsnodespredefsPredef clouds/1(org_id)/2(org_id)

Cloud BooksHistoriesCloud Statistics

Cloud Books

requests

Dashboards

Widgets

Decomposing

Web Appnilavu

API Servermegam_play

Cloud Herkmegam_akka

Gulpgulp

Cloud Toolmegam_chef

Common libsmegam_common

Ruby APImegam_api

Cloud Real timetap

CLImeggy

Web AppCLIAPI ServerHerkCommon libsRuby APICloud Real time

Cloud Tool

Mob

Gulp

WebApp

Ruby on Rails

Customers will login to https://www.megam.co

Create an accountGenerate a a shared api_key.

Create Apps for free

Use default in built cloud settings (EC2).

Metrics Meter and Monitor cloud books

Off-line/Real time log

Dash Built using AngularJS

https://github.com/megamsys/nilavu.git

Status : 0.3 beta

API Server

Stateless RESTful API Server

Functional Programming (Scala), Scalaz 7

HMAC based Auth.

Protected resources

https://api.megam.co

https://github.com/megamsys/megam_play.git

Status : 0.1 beta

Gateway

Command Line(CLI)

CLI built using mixlib::cli (ruby), follows the chef cli style.

Commandsaccount

nodes (CRUD)

logs

Status : 0.1 alpha

https://github.com/indykish/meggy

Cloud Real-Time Streamer

Real-time streaming server

Clustered to the number of cores, restarts itself on failure.

Connects to Redis

Uses express/socket.io

Stream content based on URL /streams/:id {where id = a node}

https://github.com/megamsys/tap.git

Status : 0.3 beta

Redis

Tap Monitor

Tap Cluster

Tap 0

Tap 1

Tap n

Redis

Tap Cluster

Cluster current

If fail over

n based on core

Current

If Fail Over

BeaverAgent

BeaverAgent

BeaverAgent

BeaverAgent

v1/nodes/logs/:id

/node0

User clicks on an URL

/node1

/noden

(or) requests log from pug

n1nnn2

Cloud Provisioner

A facade provisioner which calls a cloud management tool. Supported (Chef11)

Support for hosted and private chef.

Instrumented from Herk Cloud Bridge

https://github.com/megamsys/megam_chef.git

Status : 0.3 beta

Cloud Provisioner

JSON

JSON ValidatedAsync FutureInit~/.megam/megam_chef.yaml

{"systemprovider": {"provider": {"prov": "chef"}},"compute": {"ec2": {"groups": "megam","image": "ami-56e6a404","flavor": "m1.small"},"access": {"ssh-key": "megam_ec2","identity-file": "~/.ssh/megam_ec2.pem","ssh-user": "ubuntu"}},"chefservice": {"chef": {"command": "knife","plugin": "ec2 server create","run-list": "'role[opendj]'","name": "-N TestOverAll"}}}

chef_repotested cookbooksknife-1

knife-2knife-n...

...

Herk Cloud Bridge

Main Clustered Akka Master which manages several slaves of cloud node

pubsub to RabbitMQ

https://github.com/megamsys/megam_akka.git

Status : 0.3 beta

Gulpd - Native

Golang based native bridge Slave that is responsible to mutate a node

pubsub to RabbitMQ

https://github.com/megamsys/gulp.git

Status : 0.3 beta

Router

Seed#1Zk

/machines/instances/nodes/pogo...

vhost 'megam'/megam_conf/pogo(node#1)/rogo(node#2)

Seed#2Clo#1Clo#2MasterWorker#1Master Worker#2Request Dispatcher#1Request Dispatcher#3Request Dispatcher#2Slave #1Slave #3Slave #2

CloudProvisioner

Gulp #1

Gulp #1

How to contribute...

Step 1 : Sign our contributor's agreement: Email: gomegam@megam.co.inStep 2: We use Github https://github.com/megamsysStep 3: Setup Dev Environment. Step 4: Contact : gomegam@megam.co.in for our wishlist or better yet suggest one.Step 5. Join our forum https://groups.google.com/forum/?fromgroups#!forum/megamlive

2014 Megam Systems

Recommended

View more >