  The development of cloud computing delivery models inspires the emergence of
cloud-native computing. Cloud-native computing, as the most influential
development principle for web applications, has already attracted increasingly
more attention in both industry and academia. Despite the momentum in the
cloud-native industrial community, a clear research roadmap on this topic is
still missing. As a contribution to this knowledge, this paper surveys key
issues during the life-cycle of cloud-native applications, from the perspective
of services. Specifically, we elaborate the research domains by decoupling the
life-cycle of cloud-native applications into four states: building,
orchestration, operate, and maintenance. We also discuss the fundamental
necessities and summarize the key performance metrics that play critical roles
during the development and management of cloud-native applications. We
highlight the key implications and limitations of existing works in each state.
The challenges, future directions, and research opportunities are also
discussed.
