Designing Right-Provisioned System Architectures for Edge Computing