This document discusses Megam's cloud management platform. It provides an overview of cloud orchestration and Megam's platform for rapid application deployment, automation, and multi-cloud support. The platform uses a RESTful API-driven architecture with components like an API gateway server, scheduler, and Gulpd agent to manage applications and services across clouds. It also demonstrates launching applications and services on Megam's platform.
The Apache Felix Web Console has been created out of a need to remotely administer an OSGi Framework. This administration includes maintenance of bundles, editing Configuration, and introspecting the system in terms of identifying services and Declarative Services components. In addition the Web Console offers a plugin-model for it to be easily extended.
Managing an OSGi Framework with Apache Felix Web ConsoleFelix Meschberger
Initially created to aid in the simple maintenance of the OSGi framework and the application during the early development of Apache Sling, the Web Console soon attracted interest from the OSGi community. Three years later, the Apache Felix Web Console 3.0 has just been released and provides an extensible console for Web based management of an OSGi framework. This talk will introduce the functionality of the core Web Console as well as some of its existing plugins and the extension points of the Web Console where developers might want to hook up to. To round it up a simple Web Console plugin will be developed and deployed.
ANRLD of EIAR is planning to conduct a number of research activities to be implemented during 2007 and 2008 EC. These research activities will be implemented by researchers of different research centers and is being coordinated by Mr. Legesse Shiferaw and Mr. Bilatu Agiza, researchers of AQRL.
The Apache Felix Web Console has been created out of a need to remotely administer an OSGi Framework. This administration includes maintenance of bundles, editing Configuration, and introspecting the system in terms of identifying services and Declarative Services components. In addition the Web Console offers a plugin-model for it to be easily extended.
Managing an OSGi Framework with Apache Felix Web ConsoleFelix Meschberger
Initially created to aid in the simple maintenance of the OSGi framework and the application during the early development of Apache Sling, the Web Console soon attracted interest from the OSGi community. Three years later, the Apache Felix Web Console 3.0 has just been released and provides an extensible console for Web based management of an OSGi framework. This talk will introduce the functionality of the core Web Console as well as some of its existing plugins and the extension points of the Web Console where developers might want to hook up to. To round it up a simple Web Console plugin will be developed and deployed.
ANRLD of EIAR is planning to conduct a number of research activities to be implemented during 2007 and 2008 EC. These research activities will be implemented by researchers of different research centers and is being coordinated by Mr. Legesse Shiferaw and Mr. Bilatu Agiza, researchers of AQRL.
Node.js and microservices go hand in hand. This comes mainly from the design of Node.js. It is a specialised small platform with an enormous package environment. The NPM ecosystem provides a lot of packages you can use to build your microservice. The two most popular frameworks for this job are Express and Seneca. In this talk I will show you how you can communicate synchronously and asynchronously with your microservices and how easy it is to put your Node.js application into a docker container.
In this talk, I'll show you how you can build Alfresco ADF applications using the new version 3.0.0. The new ADF versions include a number of new features and some breaking changes with the past that will make your life easier, I'll show you how to take advantage of it and embrace the change.
Google App Engine has become a powerful PaaS provider in last couple of years. With Java support enabled, its scope has further increased. This session presents the options we have in terms of testing on Google App Engine. Following is an overview of the proposed agenda:
Running Test suites of Applications not built for Google App Engine
An over-view of Google Cloud Cover
Advantages & Limitations of Cloud Cover
Integration of Existing Test Suites in Google Cloud Cover
Local Testing of Applications built for Google App Engine
DataStore Testing
Memcache Testing
Task-Queue Testing
Authentication API Testing
Open Source ERP Technologies for Java Developerscboecking
PowerPoint presentation from an Austin JUG (java user's group) event in June. The purpose of the presentation is to help Java developers learn, use and extent ADemipere, a popular open source ERP.
In this talk, Carlos de la Guardia shows how a Pyramid application can be deployed using a front end web server, like Apache or Nginx. He also covers how to automate deployment using buildout and a PyPI clone, and post-deployment creation of a variety of maintenance scripts and cron jobs that perform application specific tasks through Pyramid.
A link to audio of the presentation is here: http://2011ploneconference.sched.org/event/29a2f357905e4ab0fe3048c53bc1c94c
Node.js and microservices go hand in hand. This comes mainly from the design of Node.js. It is a specialised small platform with an enormous package environment. The NPM ecosystem provides a lot of packages you can use to build your microservice. The two most popular frameworks for this job are Express and Seneca. In this talk I will show you how you can communicate synchronously and asynchronously with your microservices and how easy it is to put your Node.js application into a docker container.
In this talk, I'll show you how you can build Alfresco ADF applications using the new version 3.0.0. The new ADF versions include a number of new features and some breaking changes with the past that will make your life easier, I'll show you how to take advantage of it and embrace the change.
Google App Engine has become a powerful PaaS provider in last couple of years. With Java support enabled, its scope has further increased. This session presents the options we have in terms of testing on Google App Engine. Following is an overview of the proposed agenda:
Running Test suites of Applications not built for Google App Engine
An over-view of Google Cloud Cover
Advantages & Limitations of Cloud Cover
Integration of Existing Test Suites in Google Cloud Cover
Local Testing of Applications built for Google App Engine
DataStore Testing
Memcache Testing
Task-Queue Testing
Authentication API Testing
Open Source ERP Technologies for Java Developerscboecking
PowerPoint presentation from an Austin JUG (java user's group) event in June. The purpose of the presentation is to help Java developers learn, use and extent ADemipere, a popular open source ERP.
In this talk, Carlos de la Guardia shows how a Pyramid application can be deployed using a front end web server, like Apache or Nginx. He also covers how to automate deployment using buildout and a PyPI clone, and post-deployment creation of a variety of maintenance scripts and cron jobs that perform application specific tasks through Pyramid.
A link to audio of the presentation is here: http://2011ploneconference.sched.org/event/29a2f357905e4ab0fe3048c53bc1c94c
Monitoring Kubernetes with Prometheus (Kubernetes Ireland, 2016)Brian Brazil
Prometheus is a next-generation monitoring system. Since being publicly announced last year it has seen wide-spread interest and adoption. This talk will look at the concepts behind monitoring with Prometheus, and how to use it with Kubernetes which has direct support for Prometheus.
1. Building a cloud management
platform using megam.io
Yeshwanth Kumar
Platform Engineer
Megam systems
2. Agenda :
1. Introduction to cloud orchestration
2. Megam’s Cloud Management Platform
3. Architecture
4. Cloud In A Box
5. Demo
3. What is cloud orchestration?
In the world of software, orchestration is the entity that
manages complex cross domain (system, enterprise,
firewall) processes, and that handles exceptions.
4. How does cloud orchestration help?
➔ Rapid application deployment
➔ end-to-end automation
➔ Multiple cloud support, so no vendor lock-ins
8. Megam’s architecture
● REST-ful
● Stateless
● Asynchronous
● Loosely coupled
● API Driven
● Declarative
Web & CLI
API Gateway server
RabbitMQ
PaaS Engine - megamd
Gulpd agent
9. Gateway Server - Powerful REST API
● Scala
● Play framework
● Stateless
● Super secure - HMAC based auth
● Adheres to CAMP/TOSCA
10. Gateway Server
Robust functional techniques
match use_functional() {
case Some(succ) => “Yay! easy to scale, me :)”
case None => “me :(”
}
Functional concise code high scalability
11. API Gateway server
Error handling - scalaz
Why ValidationNel?
def create(email: String, input: String): ValidationNel[Throwable, Option[EventsResult]] = {
(mkGunnySack(email, input) leftMap { err: NonEmptyList[Throwable] =>
new ServiceUnavailableError(input, (err.list.map(m => m.getMessage)).mkString("n"))
}).toValidationNel.flatMap { gs: Option[GunnySack] =>
(riak.store(gs.get) leftMap { t: NonEmptyList[Throwable] => t }).
flatMap { maybeGS: Option[GunnySack] =>
maybeGS match {
case Some(thatGS) => (parse(thatGS.value).extract[EventsResult].some).successNel[Throwable]
case None => {
play.api.Logger.warn(("%-20s -->[%s]").format("Events created. success", "Scaliak returned => None.
Thats OK."))
(parse(gs.get.value).extract[EventsResult].some).successNel[Throwable];
}
12. Transport layer
A Request that comes to megam_gateway gets funnelled
HTTPRequest
(Headers, Body)
|
/
|
(becomes)
FunneledRequest(maybeEmail,clientAPIHmac, clientAPIDate,
clientAPIPath, clientAPIBody)
13. Transport layer -
marshalling/unmarshalling
toJSON
override implicit val writer = new JSONW[AccountResult]
{
override def write(h: AccountResult): JValue = {
JObject(
JField(IdKey, toJSON(h.id)) ::
JField(FirstNameKey, toJSON(h.first_name)) ::
JField(LastNameKey, toJSON(h.last_name))
}
}
fromJSON
override implicit val reader = new JSONR[AccountResult] {
override def read(json: JValue): Result[AccountResult] = {
val idField = field[String](IdKey)(json)
val firstNameField = field[String](FirstNameKey)(json)
val lastNameField = field[String](LastNameKey)(json)
val phoneField = field[String](PhoneKey)(json)
● Store validated schema
14. Declarative based platform
Assemblies
Assembly Assembly
Components Components Components
#tosca_definitions_version: tosca_simple_yaml_1_0
description: Template for deploying a spring app
node_templates:
orion:
type: tosca.app.java
properties:
# omitted here for sake of brevity
requirements:
- host: megam_host
- domain: megambox.com
- source: https://github.com/megamsys/spring-mvc.git
17. Async, it is! - Leveraging message brokers
- RabbitMQ
● open source
● More flexibility for namespace groupings
● Independant control of each apps, services and VMs
Megam queues -
➔ CloudStandup
➔ CloudPerNode
18. megamd engine/scheduler
➔ Multiple transport protocols - mini servers that run
concurrently (http, queues) in its own space
➔ Extensible provisioner approach (Docker, vm,
unikernel, lxc ....)
➔ Action based
➔ Recoverable actions (good/bad) with state rollback
facility though
20. Concurrency - goroutines vs akka
workers
func (self *Server) ListenAndServe() error {
log.Info("Starting admin interface on port")
//var etcdServerList [2]string
var queueInput [3]string
queueInput[0] = "cloudstandup"
queueInput[1] = "events"
self.Checker()
// Queue input
for i := range queueInput {
listenQueue := queueInput[i]
queueserver := queue.NewServer(listenQueue)
go queueserver.ListenAndServe()
}
21. control app state on the cloud - gulpd agent
● start
● stop
● restart
● apply policy - Bind
- HA
22. Full working of megam
UI
CLI
API Gateway RabbitMQ megamd
app1(gulpd)
app2(gulpd)
app3(gulpd)
cloudstandup
app1.megam.com
app2.megam.com
app3.megam.com
Chef
Docker
23. What does megam provide?
Hybrid
Megam IaaS Megam CIB
● Easy to move from public to private cloud