什么是原生云(cloud native)应用?
原生云cloud-native应用的定义是:首先,应用系统应该与底层物理基础设施解耦。说白了,应用程序应该与操作系统等基础设施分离,不应该依赖Linux或Windows等底层平台,或依赖某个云平台。也就是说,应用从开始就设计为运行在云中,无论私有云或公有云;其次,该应用必须能满足扩展性需求,垂直扩展(向上和向下)或水平扩展(跨节点服务器)。
cloud-native应用应该是容错的,为了能够扩展,需要异步处理请求,使用队列解耦功能。
快速成为一个cloud-native应用可以使用Docker,可以在像亚马逊公有云和OpenStack私有云中部署。
更官方定义是来自于Cloud Native Computing Foundation(CNCF)组织的定义,容器是CNCF推荐标准,这样服务能够运行在公有云和私有云之中。并能够在两者之间平滑迁移。Google作为CNCF成员,捐赠了其 Kubernetes 作为容器协调(container-orchestration)管理系统。
当前cloud-native正在持续演进,最初始的两个特点:与基础设施解耦和垂直或上下扩展。如果这个目标不是很简单,那么可以用一句话概括:cloud-native的关键词就是微服务,运行在自己容器中微服务。其结果是导致一个环境:“用户驱动的系统”,包括标准化:标准化的部署和操作程序。
微服务与容器的结合能够简化应用在各种计算环境中的部署。