Efforts related to Internet of Things (IoT), Cyber-Physical Systems (CPS), Machine to Machine (M2M) technologies, and Industrial Internet aim to improve decision velocity and accuracy for a wide-range of data-driven applications. Current practices of moving data directly from end-devices to central and potentially distant cloud computing services will not be sufficient to manage future device, data, and related computational needs in the areas of distributed machine learning and complex event processing. Technical, economical, and policy constraints necessitate the need to move computational processing toward sources of data generation, a technique that is known as edge computing. We present the Cresco distributed agent-based framework, which is designed to address the challenges of edge computing through the management of geographically distributed resources, resource-awareness (computational, network, etc.) tasks scheduling and placement, support of heterogeneous devices, location awareness, function mobility, secure resource discovery, secure messaging, and pipeline (serverless) application descriptions. The Cresco framework has been used in a number of edge-enabled distributed applications including international network measurement, private cloud management, smart cities, and smart healthcare.