云原生的概念诞生于10年前,netflix 在 AWS 上的一次演讲中。有趣的是当初没有明确的定义,现在也没有明确的定义,对不同的人来说,有不同的概念。
云原生:是在云上构建更具有可用性和扩展性的网络应用程序的蓝图。提供高敏捷型,在不影响应用可用性的情况下快速发布新功能。从而快速适应用户的不断需求。
云计算:在云提供商管理的计算资源上运行运行应用程序。使得团队不用关心和维护硬件基础设施,新的资源配置和分发速度很快。方便扩展,然而在云上运行应用程序并不能称其为云原生。
Production material control
应用程序架构
MicroServices 应用基于微服务架构构建,每个服务之间能够独立开发和部署,要求团队之间具有高效的协同工作性。
容器和容器编排
是云原生应用程序的重要组件,提供每个服务应用的独立环境。容器编排可以大量管理容器,是的每个微服务在容器上平稳运行。
开发过程
每个微服务的开发是独立进行的,需要开发团队高水平写作,对开发和部署过程中的自动化进行大量投资建设,这就是 devops,它是一种开发实践,强调开发团队之间的协作和沟通。快速可靠的交付应用程序。
CI/CD: 是 devops 的一个重要组成部分,使得团队能够自动化开发和部署应用,持续集成具体是指将阶代码修改提交到存储库,进行自动化测试,确保代码按预期正常工作。
最后通过使用自动化部署方式将应用发布到生产环境。
云原生开放标准
随着cloud native 的发展成熟,一些关键组件变得标准化,最佳实践广泛可用。
云原生意味这使用这些组件构建并遵循这些标准
kubernets:容器编排标准
链路追踪:opentelemetry
service Mesh:istio
云原生网关 envoy
存储和服务发现:Etcd:
云原生对于大型应用具有优势,使得组织可以在短时间内部署和发布项目。减少团队开发时间,提高团队效率。
云:非物理实体,是一种能够抽象、汇集和共享整个网络中的可扩展资源的 IT 环境,是一种提供资源服务的网络。
公有云:公共云通常由非最终用户所有的 IT 基础架构构建而成。以下是一些规模最大的公共云提供商:阿里云、Amazon Web Services(AWS)、Google Cloud、IBM Cloud 及 Microsoft Azure。
私有云:可广义地定义为专为单个最终用户或群组而创建,而且通常在该用户或群组的防火墙内运行的云环境。
混合云:混合云是从局域网(LAN)、广域网(WAN)、虚拟专用网(VPN)和/或 API 连接的多个环境创建而成的 IT 环境,但看起来只是单一的一个环境。
多云:多云是一种云架构,由多个云供应商提供的多个云服务组合而成,既可以是公共云,也可以是私有云。所有混合云都是多云,但并非所有多云都是混合云。当通过某种形式的集成或编排将多个云连接在一起时,多云就变成了混合云。
多云环境可能是有意为之(更好地控制敏感数据,或作为冗余存储空间以提高灾难恢复能力),也可能是偶然形成的(通常是影子 IT 的结果)。无论哪种,都表明有越来越多的企业选择了多云,以期通过扩展更多环境来改进安全与性能。
IaaS 表示将由云服务提供商通过互联网连接为您管理基础架构,包括实际的服务器、网络、虚拟化和数据存储。用户可通过 API 或控制面板进行访问。诸如操作系统、应用和中间件等内容由用户管理,而提供商则负责硬件、网络、硬盘驱动器、数据存储和服务器,并负责处理中断、维修及硬件问题。
PaaS 表示硬件和应用软件平台将由外部云服务提供商来提供和管理,而用户将负责平台上运行的应用以及应用所依赖的数据。PaaS 主要面向开发人员和编程人员,旨在为用户提供一个共享的云平台,用于进行应用的开发和管理(DevOps 的一个重要组成部分)
SaaS 是将云服务提供商管理的软件应用交付给用户的服务。通常,SaaS 应用是一些用户可通过网页浏览器访问的 Web 应用或移动应用。该服务会为用户完成软件更新、错误修复及其他常规软件维护工作,而用户将通过控制面板或 API 连接至云应用。