云计算这个词提出来已经很久(大概在2006年),在10年前听到这个东西,都说是一个未来趋势。现在这个东西已经不是一个未来趋势,而是已经渗入到方方面面的一个服务,现在一个中小型的创业公司信息化都会优先选择云;任何一个架构师都需要熟悉云上架构的一些内容。但是哪怕到目前为止,很多人对云计算的看法都还是存在一些误解,比如:
- 把系统部署在云上就算是上云成功
- 认为迁云就一定能降低成本
- 云就是不安全,要安全一定不能上云
- 跟风上云,认为云就是一种先进的架构
- 上云就一定高可用、高可靠
之所以有这些错误的认知,就是因为没有深入实践云上架构,本人有幸参与了2个项目的分别是系统迁云和云上数据中心,本栏目结合自己在实践中的经验,从以下几个方面来给大家详细讲讲上云架构的不一样地方:
- 云计算有什么不同,为什么上云
- 云上架构
- 云上开发
- 云上灾备
- 云上组织架构
那么这一章我们先来讲一下云计算有什么不同以及为什么要上云。云计算的定义也是比较模糊,有几个不同版本,但是我们不需要太在意它的定义,我们只需要知道它的目的:就是将云计算服务如水电一般让我们使用,我们只需要按需使用,不需要则关闭即可。那么它到底有什么不同,我们从3个方面来了解:云计算特点、云服务模式、云计算部署模式;
1 云计算有什么不同
弄清楚云计算有什么不同,对后续的迁云、架构、开发等都是必要的,因为只有弄清楚云计算与传统的数据中心有什么不一样,才能让你正确使用它。
1.1 云计算特点
- 弹性(可扩展性):云计算提的最多的就是弹性,理论上它可以不受到基础实施影响,对资源快速和弹性提供和同样对资源快速和弹性释放的能力。
- 按需自主服务:允许用户根据需要自助申请和管理计算、存储和网络资源,无需与云服务提供商协商或人工干预。
- 经济性:可以提供按需购买的服务,用户可以根据自己的需求来购买,甚至可以按使用量来精确计费。使用得当能大大节省IT成本,提高资源的使用效率。
- 简单灵活性高:云计算支持虚拟化,可以存储信息网络、操作管理系统和开发软硬件等,并且可以快速扩大或缩小规模,灵活满足计算需求。简单在于基础设施即代码(IaC)加上可视化控制台,让你无需像以前一样面对底层存储、网络等复杂操作。
- 安全:很多企业不希望将数据放到云上,因为存在安全性,但是事实上云服务可以提供更专业的安全团队。
当然你会看到其它特点比如高可靠性、超大规模、可用性等,但是这些我认为都不是它相对于传统数据中心的特点。之所以要讲云计算的特点,在后续的为什么上云、架构选择等方面,利用云计算的特点才是你上云的目的之一。
1.2 云服务模式
云服务有3种服务模式:
- IaaS:云服务供应商管理和维护物理数据中心和物理基础设施(服务器、磁盘存储、网络等),用户直接购买基础设施服务,如ECS等
- PaaS:PaaS在IaaS平台之上,将大部分标准化的应用堆栈层的功能抽象出来,比如EKS、SQS、Database等
- SaaS:SaaS在PaaS层之上,以服务形式向消费者交付完整的应用,面对客户的产品,比如企业系统、电子邮件等系统
1.3 云计算部署模式
在云部署方式上面有听过比较多的概念,这里想说的是概念不重要,重要的是理解其适用场景。
/ | 公有云 | 私有云 | 混合云 | 专有云 |
---|---|---|---|---|
概念 | 基础设施部署在公共云端,以一种多租户方式提供给用户 | 云基础设施提供给一组消费者专用 | 结合公有云和私有云 | 公有云服务商将一系列软硬件资源阻隔出来,定向为某一客户所用,然后取得比公有云更好的阻隔性,比私有云更好的灵活性。 |
优点 | 价格较低;弹性;降低基础设施门槛 | 控制较强;较好监管;专有配置 | 利用公有云优点,兼具私有云的控制、监管优点 | 基础设施由公有云管理,但是从物理上隔离出来,兼具公有云和私有云的特质 |
缺点 | 控制较弱;监管问题;有限配置 | 价格较高;弹性有限;敏捷性弱 | 部署和管理相对复杂;技术难度高 | 费用高;扩展性有限; |
适用场景 | 一般非监管内容(如数据)且需要弹性伸缩的业务放在公有云 | 需要监管的数据且比较稳定的放在私有云 | 适合有监管要求但是希望获取弹性的业务 | 希望利用公有云的特性,但是使用过程中不会受到其他客户的影响的业务 |
当然还有社区云、边缘云等概念,这里就不一一累述,有兴趣者可以自行了解,再次强调概念不重要,重要的是我们如何在适用场景下选择正确的部署模式。
2 为什么上云
刚才说的误解之一就是跟风上云,认为云就是一种先进的架构。很多企业其实没有弄明白为什么要上云,只不过身边的其它行业、同行都上云,就认为自己一定要上云,但是上的效果就是没有达到期望。之所以会这样,是因为你的目的与云的特点不吻合或者架构错误。因此你需要理清楚自己为什么要上云,其次理清楚云的特点和架构,最后选择最合适而不是最好的云架构。
我觉得企业上云无非就是以下几个原因:
- 客户需求:需求永远是第一位,有时候你会看到有些企业将云作为其宣传的产品优点,但效果微乎其微。好的产品应该是客户需要什么才选择什么。确实存在可以引导客户,但是大部分时候客户本身需求才是最有利的竞争力。比如客户希望使用一个浏览器就能访问系统,不想自己部署机房等基础设施,这时候比较适合上云;如果客户有强烈的掌控能力,有自身的机房,不希望数据在外部,那么这时候云反而成为他们排除的原因。
- 快速上线:前面说的云有个特点就是简单灵活性高,你可以快速就搭建一套系统,这个在以前可能要1个月到几个月的时间。更好的是可以迅速试错,提供很大的灵活性,不会有沉没成本。更重要的是这个原因可能成为你核心竞争力。
- 降低成本:很多企业将其作为迁云的原因,实际上,上云不一定会降低成本,但是设计得当有可能大大的降低你原先建造本地数据中心所需要的成本。
- 专注业务:不需要管理太多的基础设施,甚至技术堆栈。这样企业就更能专注业务内容,你可以拥有更精简的队伍,变现也是节省成本同时提高核心竞争力。比如类似Instagram只不过十几个人一样,但是这个需要对云有更好的认识,不要期望每个企业都能像Instagram一样,需要业务、技术等方面符合才行。
因此在上云之前先想清楚为什么要上云才是首要问题,这样在接下来的架构、开发等方面都能够清楚知道应该选择哪一些内容。