首页 > 编程笔记

什么是公有云和私有云,为什么使用云?

曾经,对于公有云、私有云、混合云和多云(multicloud)的差异,可以根据云的位置和所有者很容易进行区分。但是如今,这两者不再是对云进行分类的唯一驱动因素了。

因此,我们会给出不同的目标环境更全面的定义,进而阐释为何要使用不同的环境。

创建公有云环境所需的资源通常并不属于终端用户,所以这些资源可以重新分配给其他租户。私有云环境会将资源以专属的方式提供给终端用户,这些资源通常会在用户的防火墙、数据中心之内,有时也会在用户的本地(on premise)。

具有一定程度的工作负载可移植性、编排和管理功能的多个云环境被称为混合云。解耦的、独立的、不相连的云通常被称为多云。混合云和多云是互斥的:不可能同时拥有这两种方式,因为这些云要么相互连接(混合云),要么彼此隔离(多云)。

不管采用哪种云,将应用部署到云中正变得越来越普遍,因为人们都在寻求通过扩大环境组合来提高安全性和性能。但是,安全性和性能只是人们将工作负载迁移至混合云和多云环境的众多原因中的两个。使用云的主要动机还是因为云提供了按用量付费的模式。相对于将投资花在昂贵的、难以扩展的企业内部硬件上,云能够在需要时为我们供应资源。我们没有必要投资基础设施、设备,或建立自己的数据中心。我们甚至都不需要专门的 IT 团队来处理云数据中心的运维,因为我们可以享用云供应商员工的专业知识。

对于开发者来讲,云具有自服务(self-service)和灵活性的特点。我们不需要等待环境的提升(promote),就可以按需选择基础设施组件(如数据库、消息代理等),这样能够省去不必要的等待时间,最终加快开发周期。

除了这些主要的优势,我们还可以在一些云环境中找到为开发者定制的功能。比如,OpenShift 有一个集成的开发控制台,允许开发人员直接编辑和访问其应用拓扑的所有细节。基于云的 IDE,如 Eclipse Che,提供了基于浏览器的开发工作空间访问能力,消除了团队的本地环境配置。

除此之外,云基础设施鼓励我们将部署过程实现自动化。借助部署自动化,我们只需点一下按钮,就能将软件部署到测试和生产环境,这是敏捷开发和 DevOps 团队的强制要求。在阅读微服务架构相关材料的时候,应该已经看到它对 100% 自动化的需求。但自动化远远超出了应用本身,它扩展到了基础设施和下游系统。

推荐阅读