  Edge and Fog computing paradigms overcome the limitations of cloud-centric
execution for different latency-sensitive Internet of Things (IoT) applications
by offering computing resources closer to the data sources. Small single-board
computers (SBCs) like Raspberry Pis (RPis) are widely used as computing nodes
in both paradigms. These devices are usually equipped with moderate speed
processors and provide support for peripheral interfacing and networking,
making them well-suited to deal with IoT-driven operations such as data
sensing, analysis, and actuation. However, these small Edge devices are
constrained in facilitating multi-tenancy and resource sharing. The management
of computing and peripheral resources through centralized entities further
degrades their performance and service quality significantly. To address these
issues, a fully distributed framework, named Con-Pi, is proposed in this work
to manage resources at the Edge or Fog environments. Con-Pi exploits the
concept of containerization and harnesses Docker containers to run IoT
applications as micro-services. %Moreover, Con-Pi operates in a distributed
manner across multiple RPis and enables them to share resources. The software
system of the proposed framework also provides a scope to integrate different
IoT applications, resource and energy management policies for Edge and Fog
computing. Its performance is compared with the state-of-the-art frameworks
through real-world experiments. The experimental results show that Con-Pi
outperforms others in enhancing response time and managing energy usage and
computing resources through its distributed offloading model. Further, we have
developed an automated pest bird deterrent system using Con-Pi to demonstrate
its suitability in developing practical solutions for various IoT-enabled use
cases, including smart agriculture.
