[
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)