一,
什么是云计算?
云计算(cloud computing)是分布式计算的一种,指的是通过网络“云”将巨大的数据计算处理程序分解成无数个小程序,然后,通过多部服务器组成的系统进行处理和分析这些小程序得到结果并返回给用户。云计算早期,简单地说,就是简单的分布式计算,解决任务分发,并进行计算结果的合并。因而,云计算又称为网格计算。通过这项技术,可以在很短的时间内(几秒钟)完成对数以万计的数据的处理,从而达到强大的网络服务。
现阶段所说的云服务已经不单单是一种分布式计算,而是分布式计算、效用计算、负载均衡、并行计算、网络存储、热备份冗杂和虚拟化等计算机技术混合演进并跃升的结果。
OK,以上所述还是比较的抽象,其实,我们常用的搜索引擎服务,邮箱服务也是包括在云计算概念下的,自然的,阿里云,腾讯云,网易云,华为云,电信的天翼云等等各大云计算厂商所提供的ECS(弹性云服务器),EDS(弹性云桌面),RDS(云数据库),OSS(对象存储),HBR(混合云备份)等等各种各样的服务也是包括在云计算的概念下。
简单来说,云计算就是通过网络利用虚拟化技术对外提供各种各样的服务。
那么,以ECS为例,云厂商首先需要建立大型的若干个IDC机房,机房的规模是非常大的,然后利用诸如社区版OpenStack或者自研的魔改OpenStack,部署在前面建立的IDC机房内,然后通过官网进行销售。当然了,OpenStack是有计费系统,监控系统,备份系统等等这些。IDC的机房运行费用,运营费用,以及客服等等费用都是均摊在ECS上的,像阿里云这些,我们就称它为公有云。
公有云的特点是前期投入十分巨大,并且由于是在互联网提供服务,因此,需要保证高可用,高可靠,高性能,而三高一般是通过硬件,冗余服务等等来实现的,进而造成整个系统十分庞大,复杂。建设时期的基础设施的投资决定了公有云是需要有计费系统,冗余系统的
OK,私有云相对公有云会相对的简单许多,比如,基础设施里有自建机房或者使用某个机房的一部分即可,然后是在一个私有网段内,通过虚拟化技术。比如社区版OpenStack,创建ECS,在私网内部使用。根据自身需求,决定私有云的规模,可能会非常的小型化,并且基础设施这些投入并不需要回报,因此,可以省略掉计费系统等等
二,
云计算的尽头是什么?
那么,云计算不仅仅是将计算力商品化,在形式上,可以更加的精细化,也就是云原生了(可以理解为云原生是云计算下的一个细分领域,是一个从属关系)。
云原生指的是容器虚拟化,大体具有以下四个要素:
云原生的四要素
微服务:几乎每个云原生的定义都包含微服务,跟微服务相对的是单体应用,微服务有理论基础,那就是康威定律,指导服务怎么切分,很玄乎,凡是能称为理论定律的都简单明白不了,不然就忒没b格,大概意思是组织架构决定产品形态,不知道跟马克思的生产关系影响生产力有无关系。
微服务架构的好处就是按function切了之后,服务解耦,内聚更强,变更更易;另一个划分服务的技巧据说是依据DDD来搞。
容器化:Docker是应用最为广泛的容器引擎,在思科谷歌等公司的基础设施中大量使用,是基于LXC技术搞的,容器化为微服务提供实施保障,起到应用隔离作用,K8S是容器编排系统,用于容器管理,容器间的负载均衡,谷歌搞的,Docker和K8S都采用Go编写,都是好东西。
DevOps:这是个组合词,Dev+Ops,就是开发和运维合体,不像开发和产品,经常刀刃相见,实际上DevOps应该还包括测试,DevOps是一个敏捷思维,是一个沟通文化,也是组织形式,为云原生提供持续交付能力。
持续交付:持续交付是不误时开发,不停机更新,小步快跑,反传统瀑布式开发模型,这要求开发版本和稳定版本并存,其实需要很多流程和工具支撑
简单来说,基于docker,containerd 这些虚拟化容器引擎的技术栈都是云原生,而现在随着时间的流逝,基本上云原生是已经定型了,kubernetes,Jenkins,devops这些构成了整个云原生架构。
三,
云计算的服务类型
虽然都是使用云计算,但是不同的用户需要的服务是不一样的,有些公司可能只需要租借服务器、有些公司可能需要整套服务,而有些个人客户可能希望直接可以通过付费得到一个网站等。
所以,根据服务类型的不同,云计算可以分为三类,即基础设施即服务(IaaS)、平台即服务(PaaS)和软件即服务(SaaS)。这3种云计算服务有时称为云计算堆栈,因为它们构建堆栈,它们位于彼此之上。
以下是这三种服务的概述:
基础设施即服务(IaaS)
基础设施即服务是主要的服务类别之一,它向云计算提供商的个人或组织提供虚拟化计算资源,如虚拟机、存储、网络和操作系统。
ECS是laas的一个典型代表,不需要本地安装部署操作系统,在云厂商那里按需购买服务器即可。
平台即服务(PaaS)
平台即服务是一种服务类别,为开发人员提供通过全球互联网构建应用程序和服务的平台。Paas为开发、测试和管理软件应用程序提供按需开发环境。
例如,金蝶软件平台,不需要在本地安装金蝶
软件即服务(SaaS)
软件即服务也是其服务的一类,通过互联网提供按需软件付费应用程序,云计算提供商托管和管理软件应用程序,并允许其用户连接到应用程序并通过全球互联网访问应用程序。
例如,腾讯文档,可在线编辑word文档,不需要在本地安装word全家桶。
以上服务都是非定制的,也就是都是按照一个模板生产出来的,通常需要按自己的需求进行改造,其次,安全性是无法保证的,例如,腾讯文档的在线word编辑,比如你使用此文档编辑一个密级非常高的文档,大概率是要吃官家饭的。
四,
云计算如何实现?
和云原生的现状类似,目前来说,云计算高度依赖于OpenStack。OpenStack是一组软件套件的总称,简单的可以理解为word全家桶,由必选组件和可选组件组成。
例如,nova,neutral,keystone,glance这些核心组件,以及其它非必选组件,例如web可视化控制台horzion
OpenStack大体可以分为两类,
一类是社区版OpenStack,也就是OpenStack官方,OpenStack Docs: Zed
社区版的OpenStack版本众多,安装难度较大,版本介绍:OpenStack Releases: OpenStack Releases
和kubernetes类似,安装方式有yum安装,脚本一键安装,ansible安装,但没有安装管理工具kubeadm
另一类是基于社区版的OpenStack的魔改,例如,华为的FusionSphere平台和中兴的TECS平台
此类OpenStack特点是华为做了大量的封装,使得安装部署极为方便,但FusionSphere由于是商业软件,因此,下载以及安装都需要一定的权限,
下载地址:HUAWEI CLOUD Stack Deploy 系列 云计算8.1.0.6 软件补丁下载 - 华为
下载权限:SUPPORT
中兴的TECS平台
此平台没有太多了解,但应该是和华为的FusionSphere类似,基础还是OpenStack社区版。