[ 
https://issues.apache.org/jira/browse/SLIDER-875?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15343024#comment-15343024
 ] 

Billie Rinaldi commented on SLIDER-875:
---------------------------------------

I had an idea about something we could do to begin to support this in Slider. 
If we introduce the concept of an "external" component that refers to a Slider 
app that has already been built (using the slider build command), we could 
effectively support hierarchical applications. We could read the "external" 
appConfig/resources/metainfo information and merge it into the current app 
configuration. So, for example, if you wanted to run an uber-app including 
hbase and storm, you could use an appConfig like the following:
{noformat}
{
  "schema": "http://example.org/specification/v2.0.0";,
  "metadata": {},
  "global": {
  },
  "components": {
    "hbase": {
      "site.global.component_type": "external"
    },
    "storm": {
      "site.global.component_type": "external"
    }
  }
}
{noformat}
This would read the hbase and storm configurations and add their components 
(hbase master, hbase regionserver, nimbus, supervisor, storm ui, etc.) into the 
appConfig so all app components would be managed by a single AM. Presumably you 
would also be able to override configuration properties of the external 
components.

> Ability to create an Uber application package with capability to deploy and 
> manage as a single business app
> -----------------------------------------------------------------------------------------------------------
>
>                 Key: SLIDER-875
>                 URL: https://issues.apache.org/jira/browse/SLIDER-875
>             Project: Slider
>          Issue Type: New Feature
>          Components: agent, app-package, appmaster, client, core
>    Affects Versions: Slider 0.70
>            Reporter: Gour Saha
>            Assignee: Billie Rinaldi
>             Fix For: Slider 2.0.0
>
>
> A business application as we typically refer to, is one that provides value 
> to an end user. Few examples will be, a CRM application, an online 
> advertising application, and a trucking application (to monitor driving 
> habits of truck drivers).
> An end user does not understand (or care about) the numerous application 
> components like HBase, Storm, Spark, Kakfa, Tomcat, MySql, Memcached, or 
> Nodejs that are required to build such a business application. 
> Several such business applications are hosted by cloud vendors like AWS, GCE, 
> Azure, and others. From a cluster management point of view, the IT 
> administrator would benefit from an Uber control of the business application 
> as a whole. The business application owner understands the different 
> components (like Tomcat, Memcached, HBase, etc.) of her/his Uber application. 
> As much as they need fine-grain control of each of these individual 
> applications (which is supported today), they would also benefit from a 
> management control for the Uber app. With Docker becoming popular every day, 
> this will provide a platform to the application owners to define a business 
> application as a conglomeration of Docker containers.
> Slider currently is viewed (and used) to package individual applications like 
> HBase, Storm, Kafka, Memcached, and Tomcat. Slider should be able to expose 
> the concept of an Uber application package definition. This Uber definition 
> will be composed of config and resource specifications of the individual 
> application components. Additionally, it will have definitions for Uber 
> management and control, like -
> # Stop, start and flex of the Uber app
> # Dependency specification between the individual applications such that flex 
> of certain components of an application can automatically trigger 
> proportional flex of components in another application
> # Cruise control of the Uber app, on top of what SLIDER-868 will provide for 
> an individual app. Ability to define a skyline for the Uber app, over time 
> and other dimensions.
> # Resource requirements and planning for the Uber app as a whole. Most of the 
> time, an Uber app is functional only when all (or minimum viable) application 
> components are deployed and available. Tomcat running with MySql, Memcached 
> and HBase still waiting for containers, is a useless business application. 
> Slider should be able to do resource calculation and negotiation for the Uber 
> app as a whole. It can work with YARN to get the minimal viable applications 
> of the Uber app running or not bother to run anything (I smell SLAs for 
> vendors and savings for application owners).
> # Ability to define and use multiple YARN labels for the Uber application (in 
> addition to the fine grained label definitions for the individual 
> sub-components of a single app)
> I am sure, there are several other benefits which are not identified yet, but 
> this is a start.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to