Elascale is a comprehensive autoscaling and monitoring solution that leverages both virtual machines and containers. It adjusts both microservices and macroservices using Docker Swarm for clustering microservices and Docker Machine for provisioning macroservices. Metrics are collected using Beats and consolidated in Elasticsearch, while insights are provided in Kibana. The autoscaling engine uses metrics like CPU and memory utilization to scale services up and down according to a replication factor formula to maintain performance as workload increases. Elascale was tested on an IoT application deployed in a smart city testbed.