If you can't read please download the document
Upload
kishore-neelamegam
View
2.957
Download
2
Embed Size (px)
Citation preview
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 : [email protected]: +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: [email protected] 2: We use Github https://github.com/megamsysStep 3: Setup Dev Environment. Step 4: Contact : [email protected] for our wishlist or better yet suggest one.Step 5. Join our forum https://groups.google.com/forum/?fromgroups#!forum/megamlive
2014 Megam Systems