开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第12天
云原生技术发展很快,k8s是其中的代表,是一个非常流行的用于管理容器化负载的开源平台,现在已经成为各公司IT部门工作的标准要求。
k8s提供了一个框架,是够为应用构建一个单独的平台,能够利用好的话,就能解决自动扩展、负载均衡、任务调度、自我修复以及配置管理等问题。
想要进一步了解云原生技术知识的话,最好熟悉以下领域,对于学习是非常有好处的,比如:对linux系统的理解、简单的命令行的使用、对于什么是云计算、有一点编程的基础、了解什么是网络、TCP/IP协议以及DNS的概念。
云原生的架构:云计算的发展迅速,开发部署和设计应用程序的需求和可能性都发生了重大变化,云服务商提供了各种按需服务,从虚拟服务器、网络、存储、数据库等,无论是交互式还是通过API接口,部署和管理这些服务都很方便。云原生架构的核心思想是通过结合文化、技术和架构设计模式,优化软件的成本、提高小笼包,可靠性,能够更快的面向市场。云原生的含义其中一些定义是侧重于技术,一些是侧重于事物的文化方面。云原生基金会的定义云原生技术就是组织能够在现代动态环境(公共云、私有云、混合云)中构建和运行可扩展的应用程序,容器、服务网格、微服务,声明式的api就是例子。这些技术使得系统具有弹性、客观理性和扩展性、与自动化技术结合后,能够减少大量重复的工作,提升效率。传统应用在设计是通常是整体比较独立的,包括完成任务所需的所有功能和组件。虽然这样开发和部署比较容易,但是后期管理、跨团队扩展开发、快速更改实施的时候就很困难,云原生架构就可以为日益复杂的应用程序和日益增长的用户需求提供解决方案,基本思想就是将应用程序分解为更小的部分,让其易于管理,这使得一个应用程序的不同功能归属不同的团队,可以单独操作和扩展摸一个功能。
云原生的特征:高度自动化,为了便于管理,从开发到部署的每一个步骤都进行自动化,可以通过现代的自动化工具和持续集成部署流水线来实现。用最少的人力实现有用的快速频繁的测试和部署,一个高度自动化的系统可以更轻松的实现应用故障灾难恢复。自我修复,应用程序和基础架构出现故障是意料之中的是,所以云原生应用程序框架和基础组件会包含健康检查,有助于从内部监控应用程序,在必要时能够自动重启。可扩展,这是为了处理更大的的负载而存在,能够给客户带来更好的用户体验,一般是一个应用开启多个副本,然后将负载进行分配,提高了应用程序的可用性。经济效益,可以自动扩缩容,根据需求来使用资源,这样的话,就可以节省很多成本。类似k8s这种的编排系统就可以更高效和更密集的利用资源。易于维护,将应用程序分成多个更小的部分,每个功能就会更加容易维护和移植,测试和开发团队也可以更好的合作。
云原生自动扩缩容,一般说起自动扩容,说的是水平缩放,就是应用程序或者进程的副本,甚至是服务器或者其他硬件的新机架,就是横向扩展,水平和垂直扩容的区别,举个例子,垂直就是给自己锻炼肌肉,能够提起更重的东西,水平就像是叫了朋友来一起提一个东西。
云原生的serverless(无服务),就是不用提供服务器和预配置的计算资源,就是说你只负责敲代码,剩下的事交给云服务商,人家来帮你搭建正确的环境和配置来运行你的程序,这就是代码既服务。
好了,下次来说一下为了更好发展云原生,很多技术依赖于开源社区,为了不让云服务商垄断,这里就提出了很多行业范围的技术标准,让更多的产品可以互相兼容。