Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Status

Status
titleIMPROVING

Principle

  • Minimize user operations for managing and monitoring topologies
  • REST Service centralized metadata management
  • Consistent UI experience

Objective

  1. Make sure consistent semantics between the term application (user space) and topology (physical space only)
  2. Topology configuration can be edited on UI
  3. Use REST Service as only entry to manage application (START/STOP) and ApplicationManager to schedule the task execution and update the execution information 
  4. Eagle UI should support to manage/monitor the application on site/application page
  5. Single site/application may have more than one topologies (for example hdfsAuditLogMonitoring and userProfileMonitoring should have topologies running separately)

Architecture

To have a better user experience with EAGLE ui, we should could provide an interface to manage a certain topology via the ui page, such as START, STOP, or STATUSsubmit a topology

Gliffy Diagram
nameApplicationTopologyArch

Gliffy Diagram
nametopologyManagerArch

Schema

Topology

...

Description Service

  • Service name: AppManagementServiceTopologyDescriptionService
  • Entity: TopologyDescriptionEntity
  • Table name: application_definitioneagle_metadata
  • Prefix: topologyDescription
 AttributeTypeDescription
tagstagesitetopologyStringsite topology name
fieldsexeClassStringtopology entry class
 appNameStringapplication/topology name
fieldsmainClassStringapplication main class
 jarFileStringjar file path
 configFileStringapplication configuration file path
typeStringtopology type: DSL or CLASS
 descriptionStringdescription on this topology
 versionStringtopology version

Topology Execution Service 

  • Service name: TopologyExecutionService
  • Entity: TopologyExecutionEntity
  • Table name: eagle_metadata
  • Prefix: topologyExecution
  • Description: define the relation between an application and an topology, and maintain the execution status as well
 AttributeTypeDescription
tagssiteStringtopology site
 applicationString 
 topologyString 
fieldsfullNameStringtopology execution name: eagle_${site}_${application}_${topology}
 urlStringtopology tracking url
 descriptionStringtopology running status description deployEnvironmentStringcluster name
 statusStringapplication status: INITIALIZED, RUNING, FAILED, STOPPED

Cluster Definition

running status {NEW, STARTING, STOPPING, STARTED, STOPPED}
 modeStringtopology running mode: cluster or local
 environmentStringtopology execution environment, e.g., storm
 lastModifiedDatelonglast status update time

Topology Operation Service

  • Service name: TopologyOperationService
  • Entity: TopologyOperationEntityService name: ClusterDefinitionService
  • Table name: cluster_definitioneagle_metadata
  • Prefix: topologyOperation
typee.g., storm, sparkconfigjsoncluster config
 AttributeTypeDescription
tagsnameoperationStringcluster name{START, STOP, STATUS}
 siteString 
 applicationString 
 

...

operationID

...

String

...

 

...

 

...

topology
  1. NEW
    1. create a topology definition entity, whose initial status is INITIALIZED
  2. START
    1. choose the deployed cluster
    2. click START button, and after updating the status to STARTING, a new thread is created to execute the submitting topology task
  3. STOP
    1. click STOP button
Stringtopology name: ${topology}
fieldsstatusString{INITIALIZED, PENDING, FAILED, SUCCESS}
 messageStringexception message
 lastModifiedDatelonglast status update time

Customized Restful Apis

HTTP MethodURLPayloadDescription
POST/app/operationTopologyOperationEntitycreate an topology operation
DELETE/app/topology/{topology} delete a topology description

...