这是我参与「第五届青训营」伴学笔记创作活动的第 18 天
一、本堂课重点内容
- 云计算
二、详细知识点介绍
云计算
美国国家标准与技术研究院(NIST)定义:
云计算是一种模型,它可以实现随时随地、便捷地、随需应变地从可配置计算资源共享池中获取所需的资源(例如,网络、服务器、存储、应用、及服务),资源能够快速供应并释放,使管理资源的工作量和与服务提供商的交互减小到最低限度。
通俗理解:云计算=网络+计算
- 虚拟化技术
- 编排方案
架构:
- Iaas (Infrastructure as a Service)
- PaaS (Platform as a Service)
- SaaS (Software as a Service)
- FaaS (Function as a Service)
云原生Cloud Native
云原生简单理解就是,把环境移动云端。
云原生用虚拟技术,使开发人员不需要关注硬件的配置,让扩缩容变得十分容易。
云原生技术
弹性资源:
- 虚拟化容器
- 快速扩缩容
微服务架构:
- 业务功能单元解耗
- 统一的通信标准
DevOps:
- 敏捷开发
- CI/CD
服务网格:
- 业务与治理解构
- 异构系统的治理统一化
- 复杂治理能力
云原生四要素
微服务:几乎每个云原生的定义都包含微服务,跟微服务相对的是单体应用,微服务有理论基础,那就是康威定律,指导服务怎么切分,很玄乎,凡是能称为理论定律的都简单明白不了,不然就忒没b格,大概意思是组织架构决定产品形态,不知道跟马克思的生产关系影响生产力有无关系。
微服务架构的好处就是按function切了之后,服务解耦,内聚更强,变更更易;另一个划分服务的技巧据说是依据DDD来搞。
容器化:Docker是应用最为广泛的容器引擎,在思科谷歌等公司的基础设施中大量使用,是基于LXC技术搞的,容器化为微服务提供实施保障,起到应用隔离作用,K8S是容器编排系统,用于容器管理,容器间的负载均衡,谷歌搞的,Docker和K8S都采用Go编写,都是好东西。
DevOps:这是个组合词,Dev+Ops,就是开发和运维合体,不像开发和产品,经常刀刃相见,实际上DevOps应该还包括测试,DevOps是一个敏捷思维,是一个沟通文化,也是组织形式,为云原生提供持续交付能力。
持续交付:持续交付是不误时开发,不停机更新,小步快跑,反传统瀑布式开发模型,这要求开发版本和稳定版本并存,其实需要很多流程和工具支撑。
四、课后个人总结
云计算架构可以让编程人员更专注于业务处理,而不用去关心架构实现的具体细节。
我认为的云计算就是将开发环境换到云端,将流程行为程序化处理,利用虚拟技术实现弹性容量,而做出的一套系统性的网络服务。