Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Cresco is a free and open source distributed resource management framework.
####The project includes these modules:
- Cresco-Agent: Communicates with controller for configuration and control management. Provides environment to dynamically load plug-ins.
- Cresco-Controller: Discovers agents and manages the control channels of groups of agents and agent plug-ins. Deprecated
- Cresco-Agent-Controller-Plugin: Discovers agents and manages the control channels of groups of agents and agent plug-ins.
- Cresco-[someplugin]-Plugin: Is dynamically loaded and uses the control channel of the host Cresco-Agent. Plugins produce either produce interface channels or data channels.
######Future project modules:
- Cresco-Guilder: Topology optimization (Cost, Performance, Energy, etc) analytics engine.
####Controllers: Controllers manage agents and agents support plug-ins. Controllers provide the following functions:
- Discovers Agents and Plug-ins based on zone configuration (controller and agent sharing the same log channel)
- Web-based RESTful API interface for the management of Agents and Plug-ins.
- SSH-based Command-line interface for the management of Agents and Plug-ins.
- Monitors core agent services based on WatchDog messages.
Controller Future Development:
- Web-based Dashboard /w topology reporting
- Monitors data integrity of streams produced by plug-ins based on WatchDog messages
- Monitors performance metrics of plug-in services based on WatchDog messages
####Agents: Agents are distributed components that provide a standard execution environment for plug-ins. Agents provide the following functions:
- Establishes log channel for agent and plug-in status and WatchDog reporting to controller
- Establish a control channel between the agent and controller
- Provides a platform to dynamically (load, configure, unload) plug-ins
Agent Future Development:
- Mesh based (agent-to-agent gateway) control of agents
####Plugins: The Cresco-Controller and Cresco-Agent provide a framework to manage plug-ins loaded on distributed agents. Plug-ins can function as:
- External Interfaces: Provides interfaces into clouds of resources external to the core Cresco service.
- Data Channel Source: Generates a data stream and provisions a data channel.
- Data Channel Drain: Provides a destination for a data stream, consuming information from a specified data channel. Note: Data channel drains don't terminate data channels, they simply subscribe to data. Many drains can be connected to the same data channel.
#####Interface Plug-ins: These plugins provide a command interface into an external system. Typically, these interfaces would be used to provision resource to be used to transmit, process, or store data streams.
Interface plug-in WatchDog information should include current resource utilization and applicable consumption cost information for the provisioned service.
#####Data Channel Plug-ins: These plugins provide a data channel from/to external sources/destinations. Typically, these interfaces would be used to generate, process, transmit, or store streams of data.
Data Channel plug-in WatchDog information should include performance metrics related to the generation, processing, transmission, or storage of data streams.
- Cresco-Dummy-Plugin: Example plug-in that demonstrates agent and controller interaction. This plug-in does not produce a data channel.
#####Plug-ins In Development:
- Apache HBase: Data Reader and Writer
- Apache Storm: Topology Deployment
- Netflow v5: Collector
- Rabbit MQ: Queue Management/Reader/Writer
- SNMP Traps: Collector
- Syslog: Collector
- Amazon Web Services (AWS): Provision resources from AWS.
- OpenStack: Provision resources from OpenStack deployments.
- OpenDayLight (ODL): Manage network paths using the ODL Software-Defined Networking (SDN) controller.
- Agent Benchmark: Determine the system-level performance of the node hosting the agent.
- Agent-to-Agent Discovery: Agents discover other agents and determine agent-to-agent reachability. This provides a reachability matrix for topologies.
####Gilders: Controllers manage agents and agents support plug-ins. Controllers provide the following functions:
- Maintains performance metrics of plug-in services
- Generates real-time cost information of deployed topologies.
- Discover/Deploy alternative topology components.
- Automatically augments topology based on desired optimization.
###How does Cresco Work?
Why the name Cresco?
- Proto-Indo-European *ker ("to grow").
- Old Armenian սերիմ (serim, "be born") and սերեմ (serem, "bring forth")
- Latin creare ("become visible, multiply, augment")