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