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

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

How about external_app as the component type, with a javadoc comment saying an 
external_app is one that has been predefined using the slider build command?

Here's the method I used to compare with the existing method. I realized I 
forgot to compile the pattern the first time, and with that improvement the 
pattern method is 3 to 5 times slower. Another problem with the pattern method 
is that dots in the prefix would not be matched correctly.
{code}
  public static Map<String, String> mergeMapsWithPattern(
      Map<String, String> first, Map<String, String> second,
      String... prefixes) {
    Preconditions.checkArgument(first != null, "Null 'first' value");
    Preconditions.checkArgument(second != null, "Null 'second' value");
    Preconditions.checkArgument(prefixes != null, "Null 'prefixes' value");
    StringBuilder sb = new StringBuilder();
    sb.append("^(");
    for (String prefix : prefixes) {
      sb.append(prefix);
      sb.append("|");
    }
    sb.setLength(sb.length()-1);
    sb.append(").*");

    Pattern pattern = Pattern.compile(sb.toString());

    for (Map.Entry<String, String> entry : second.entrySet()) {
      String key = entry.getKey();
      if (pattern.matcher(key).matches()) {
        continue;
      }
      if (!first.containsKey(key)) {
        first.put(key, entry.getValue());
      }
    }
    return first;
  }
{code}

> 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