  Internet of Things (IoT) applications have seen a phenomenal growth with
estimates of growing to a 25 Billion dollar industry by 2020. With the scale of
IoT applications growing and stricter requirements on latency, edge computing
has piqued the interest for such environments. However, the industry is still
in its infancy with no proper support for applications running across the
entire edge-cloud environment, and an array of manual tedious per-application
optimizations. In this work, we propose Steel, a unified framework for
developing, deploying, and monitoring applications in the edge-cloud. Steel
supports dynamically adapting and easily moving services back and forth between
the edge and the cloud. Steel is extensible where common optimizations (but
crucial for the edge) can be built as pluggable and configurable modules. We
have added two very common optimizations: placement and adaptive communication,
to cope with both short and long-term changes in the workload and environment.
