Part I
CA 的各种收购导致 IT 高度复杂和异构环境(IT 资源)。 IT 复杂性成为企业关注的关键问题公司的董事会。
CA 管理层决定将应用程序维护和运营外包到海外。这降低了成本,但不幸的是并没有解决他们的整体运营问题效率低下。
CA 开始考虑云解决方案。 但是,CA 不确定如何选择正确的云计算技术和提供商。 他们被丰富的东西淹没了云提供商和基于云的产品。
Assume that you are hired as a cloud consultant to help CA to adopt the cloud solutions.
- Discuss within the context of cloud computing IT solutions the complexity of the CA IT
environment. - Why outsourcing is not a good solution for CA, and why Cloud Computing is believed to be a
much better solution? Justify your answer. - Suggest a logical process of actions to determine whether CA should adopt the cloud
computing solutions. (Hint: consider some measures for complexity, heterogeneity, …, CA
application architecture, projected cost savings, pilot project, …)
云计算下的 IT 环境
在云计算中,IT 基础设施被视作可以灵活使用的工具,资源。他可以让 IT 需求方通过网络连接,和使用 IT 基础设施资源,既不需要安装,也不需要自己维护。
这意味着在 CA 的 IT 环境中,采用云计算的情况下,我们把 IT 环境复杂性分为以下三个部分。
软件复杂性(代码、程序运行需求):这部分复杂性来源于编码和日益增长的需求修改,受影响于业务线数量和架构师的架构演进,开发人员编码,产品经理的项目管控。在现代云计算环境下,滋生出了基础设施下沉的生态系统,通过 IaaS, PaaS 等平台,剥离了业务无关的逻辑,CI/CD,网络基础设施(负载均衡,路由等),存储,数据库服务下沉到云生态中。这为软件复杂性带来的改变是业务人员更专注于编写业务,软件聚焦于业务而不是如何构建和维持软件运行的环境从而带来软件复杂性的降低。
运维复杂性:运维复杂性是指已经存在或者即将存在的,为业务提供支持的环境维护复杂性,通常复杂在资源的管理和调度扩缩上。主要体现在以下两个方面:网络,网络是运维复杂性中最困难的部分,CA 的 IT 环境在背景描述中可以看到,非常多的并购造成的复杂 IT 环境中一定存在网络连通域的问题,做好内网的网络隔离,网络路由将是 IT 运维人员的挑战,由于并购的存在,很多并购目标方都会存在自己的 IT 资源和运维团队。在他们间进行调和运维会产生巨大的沟通成本。在地域上,IT 基础设施有天然隔离,不同机房甚至需要专线来进行网络和数据连通。在此基础之上,每个并购目的方自己的产品服务形成的产品线还有软件层面的运维复杂性,举例说明:我并购的一个公司提供存储服务,他只在北欧提供机房和服务,现在我的业务存在于北美,如何让该业务扩展到北美的近点数据中心呢?由此我们可以看出运维复杂性的难度。当使用云计算环境下这个问题迎刃而解,我们通过选用北美的云供应商,将我们的服务通过云生态自动扩缩容在不同地域,天然具有自动化运维的能力,极大降低了运维复杂度。
管理复杂性:IT 环境是由人来分配的,因此涉及到管理问题。不同层次的人应该具有不同的权限,单是管理权限上就会有巨大的复杂度。但显然,如果我要搬走一台物理机有很多社会工程学上的方法,因此仅仅是纸上权限管理并不足以概括管理复杂性。涉及到人员变动时,如果不能及时变更或删除某些人员的权限,也会造成巨大的经济损失。当我们使用云环境时,通过云提供的租户的概念,以租户管理系统灵活,基于软件的去分配 IT 资源的权限,将极大的降低管理成本,并且具有云供应商提供的相应的安全能力。
通过使用云生态全链路的 IT 基础设施,Ca 会具有如下复杂性的 IT环境
- 运维团队人数下降约 90%,不需自己维护复杂的网络设备,物理机房
开发人员,管理人员对 IT 资源有清晰的认识并可以更专注于自己的业务工作而不是配置调度 IT 环境
外包带来的非自主可控性
下面我们阐述为什么外包应用维护和运营是坏的方案。
首先我们明确我们的主要目的:降低成本
通过外包降低成本的方式是治标不治本,的确公司不用负担更多的超高的用人成本,但这是用应用的可靠性,运维的响应和处理速度降低换来的。同时他为公司的业务发展加上了一层外部限制,即当我的业务发展到某个外包无法承担的时候,我是资助这个外包扩大业务线,还是并购成为自己的部门(又提供了极高的用人成本)还是想要更换供应商?能够清晰的看到这几个问题,无论是哪一个答案,都是一个巨大的成本巨坑。即反其道而行之。
举一个例子:
比如应用被网络攻击,紧急告警由外包的运维系统发送给外包公司,根据 Ca 购买的外包方案,会有不同级别的响应速度,假设响应速度在 1h(超高的外包价格)内,外包经过紧急处理和部署防御,暂时阻止了这次网络攻击,然后将这些部署撤下,等待下一次网络攻击时又进行新的紧急处理。我们可以看到问题的关键,外包公司带来的是当前业务的稳定性,他并不关心这个业务以后可能的发展并做出行动。
当我们选用云计算解决方案时,我们将会成立专门的云计算部门,他们负责云环境下资源的调度维护,及在云生态下的基础设施维护,将会带来以下好处。自主可控的研发体系
- 高速响应可扩展的监控运维体系
- 针对地区,峰谷流量等的灵活扩缩容体系
- 一个统一的 IT 基础设施部门,为全体公司提供统一可控成本高利用率的 IT 资源
迁移到云上的分析
复杂性
复杂性已在上述论述
异构基础设施
首先为什么我们会存在异构情况,异构可能指以下情况:
- CPU 架构异构(arm 和 intel)这会导致 IT 基础设施调度的困难
- Oracle 等特殊功能设备和常规功能软件的异构(比如数据库)
- 虚拟机物理机异构
软件运行的 IT 环境具有如此大的异构复杂性,如何将他们转移到云上呢?
首要就是分析 Ca 的业务存量,理清那些业务使用什么架构的基础设施,分门别类。
然后根据价值进行分级,为的是进行逐步迁移。针对每一类做出迁移的解决方案,不用一蹴而就。
应用基础架构分析
在这里我们提出 IT 中台的概念,即大部分业务的架构都需要同样的功能组件如:
Gateway
Log
DataAnalysis etc.
因此,复用这部分组件带来的成本效益提升肉眼可见。
在以往的应用架构中,需要为每一个用到这个服务的应用单独部署一个部分,不仅不灵活,还会存在利用率低下的问题。使用云设施之后,这部分公共能力将作为云服务的方式提供,使用的应用按量计费。
这使得一个应用的部署体量可以只缩小到业务本身,甚至小到一个二进制文件,而数据库,这些难以维护由极重的基础设施,将有运营商平台提供标准化的服务(这还意味着我们可以任意移动一个服务到另一个云供应商上。)
成本分析
举一个例子:虚拟机时代业务对资源的利用率通常是 10-20%,在使用云计算之后按需计费,理论上有机会到 100%,实际是 40-50%。单就 IT 资源的利用率如此,剩下的我们可以考虑在人员和管理上的支出分析。以及最重要的案例分析:假如我收购一个新的公司,我要为该公司的 IT 基础设施付出什么代价,和我之前相比有什么变化?答案是我们只需要在云资源中为这个业务线划分一个租户,甚至不用添加任何实际的物理 IT 设施即可为其提供服务。
试点分析
我们可以尝试将一些应用进行云原生改造,初步迁移到建立的如 Kubernetes 等集群管理系统上,以实际运行结果检视我们的成本变化并预测整体迁移的难度和工作量,评估成本和价值收益。
Part II
- What are the cloud-delivery models and cloud-deployment models that characterise
each of the following Cloud providers (Hint: use online resources)?
a. Amazon Web Services
b. Microsoft Azure
c. Google Cloud Platform
d. IBM Cloud
e. VMware
f. Salesforce
g. Oracle Cloud
h. SAP
i. Rackspace
j. Eucalyptus - If you want to develop an application on the Cloud, which Cloud provider would you
choose? Why? - Explain the difference between cloud-based storage and traditional data centres.
- Explain the concept of scaling (horizontal vs vertical) in Cloud Data centres. (Hint:
support your analysis by using some examples).
云交付和开发模型
可能这个部分作业是让调研云服务提供商是 IaaS 还是 PaaS 还是 SaaS 以及这些概念是什么意思。
aws
亚马逊提供IaaS和PaaS平台服务 AWS面向用户提供包括弹性计算、存储、数据库、应用程序
vmware
vmware 是通过 vSphere 交付虚机的,他们自己叫 ITaaS,正好我们公司在用这个,主要是提供一个(或多个)高性能的物理机,并在上面做虚拟化的虚机管理,比如一台物理机上同时运行几十个不同用户的个人操作系统。
也可以认为是 DaaS (Desktop as a service)
优势云供应商
由于 Ca 存在的是不同子公司各自的业务线和环境,同时 ca 本身作为一个电信供应商,所以最适合的是自建自己的云来承接这些服务。
过渡期则应该选用支持混合云,易于迁移,提供标准化服务的云供应商,因此以下可以排除了
d. IBM Cloud
e. VMware
f. Salesforce
g. Oracle Cloud
h. SAP
i. Rackspace
j. Eucalyptus
在 以下供应商中,我们根据成本来选择,同时可以同时使用它们多个供应商,分摊风险和成本,寻找最优方案。
a. Amazon Web Services
b. Microsoft Azure
c. Google Cloud Platform
最后依托自己的 datacneter 组建自己的云服务,再进一步节省成本,同时在混合云的概念下,一些服务依旧可以使用上述云供应商的服务来降低成本。
传统数据中心和云端存储的不同
传统IDC提供的资源难以承受短时间内的快速再分配。
云计算是将多台计算节点连接成一个大型的虚拟资源池来提高计算效率,使资源再分配的效率和规模不受限于单台实体服务器甚至单个IDC数据中心。无论从交付/服务方式、资源分配规模、资源分配速度,还是整个平台的运行效率方面,相比传统IDC服务,云计算均有着极大提升
传统IDC资源的交付通常需要数小时甚至数天,云则通过更新的技术实现资源的快速再分配,可以在数分钟甚至几十秒内分配资源实现快速可用
云数据中心的特点是高度的虚拟化,这其中包括服务器、存储、网络、应用等虚拟化,使用户可以按需调用各种资源是自动化管理程度,
水平和垂直扩缩容的概念(要求举例说明)
垂直扩容就是升级服务器,买性能更好的,更贵的然后替换原来的服务器,这种扩容方式不推荐使用。 因为单台服务器的性能总是有瓶颈的。 水平扩容: 水平扩容也称为横向扩展,很简单就是增加服务器的数量,这种扩容方式可持续性强,将众多普通服务器组织到一起就能形成强大的计算能力,理论上可以无限扩容。使用云计算的服务就是典型的水平扩展方式。
存储举例:
我有 1t 的数据, 现在增长到 100t,在云上或者水平扩容的架构中,我只需要购买 100 块 1t 的通用存储直接插到运行的服务器上,简单的增加资源,让应用就能使用。但在垂直扩容中,我可能需要停机,购买一个超大硬盘或者阵列,支持 100t 以上才行,然后更换存储(中间还涉及把原来的 1t 数据转移到新磁盘上)
计算资源举例:
原来我支持 100人同时访问我的服务,现在变成了 1000 万人,水平扩容下我只需要添加运行的服务器 2000 台,每个服务器的性能要求可能只是简单的 2c(假设负载 5000 的 qps),在负载均衡的架构下,请求会路由到不同的低性能机器上妥善处理。但是垂直扩容的情况下,要购买一个 4000c 的机器,几乎是不可想象的。
Part III
Using online resources, explore the AWS Cloud (https://aws.amazon.com/) and AWS Educate
Cloud (https://aws.amazon.com/education/awseducate/)
- Register a regular AWS account or an AWS Educate Starter Account (free and does
not request credit card but has some limitations compared to AWS account). - Describe the provided GUI after you login.
- Describe the GUI of your profile.
Login Describe
我只有一点印象了,是去年还是前年用过 aws
登录需要跳转两三次,然后会给个学生账号,里面有几百美元。
登录 UI 极丑,用户体验挺差的,因为在中国的原因,还卡的要死。
控制台描述
有非常复杂的云服务控制台,里面罗列了各种服务,教程。给人一种复杂的感觉,关键是每个云产品看名字都不知道是干嘛的。