想要成为一名解决方案架构师,你要过的第一关就是通过相关的考试以获得专业认证,这能证明你已经掌握了一些知识,并且能够设计复杂的系统。
成为解决方案架构师并不是一件容易的事情,首先你需要成为一名优秀的工程师。这意味着你已经非常了解算法,并且知道如何有效地应用它们,优秀的开发人员还得具有设计复杂体系结构系统的经验。
目前最受欢迎的认证是AWS解决方案架构师、Azure解决方案架构师和谷歌云平台架构师。我将指导你完成准备AWS解决方案架构师考试的必要基础知识,这些基础知识也适用于其他认证考试。
计算能力
这是所有云系统的基本支柱,无论云系统背后是真实的实体服务器还是虚拟的环境。对我们来说,重要的是一个专门运行应用程序的地方,以及能够恰当地处理工作量的能力。因此,理解配置不同类型的计算系统的概念至关重要。
如果应用程序消耗大量计算资源,那么系统应具有足够的中央处理器(CPU)和随机存取存储器(RAM);如果应用程序执行许多I/O操作,那么系统需要集中精力进行配置。
了解应用程序的必要性有助于定义系统需求。例如,在亚马逊上,弹性云计算(EC2)是一项可以提供计算能力的服务,它具有各种类型的实例来满足不同的需求,做出正确的选择还可以节约成本。
自动伸缩组(ASG)是AWS中的服务。一旦用户基础增加,可伸缩性问题可能就会出现,这就是自动伸缩的概念。如果没有足够的资源,它就将自动增加计算器的数量。当越来越多的机器开始工作时,流量应在它们之间平均分配。弹性负载均衡器(ELB)是AWS中的另一项服务,可以帮助你解决这个难题。
当应用程序很简单时,可以将其转为无服务器,这意味着不会配置服务器和负载均衡器,一切都会由云系统处理,并根据流量自动伸缩。应用程序可以是函数或函数链。云系统负责执行它们,因此命名为serverless。亚马逊 Lambda就是执行这些函数的服务。
存储
有许多可用的存储类型——对象存储,块存储或用于不同操作系统的文件系统存储,它们有自己的用途和应用。作为一名解决方案架构师,你需要能选择合适的解决方案来满足要求,以保证良好的性能并使其具有成本效益。
- 对象存储(在AWS中是S3)用于视频、图像和文档等简单对象。它具有很高的数据持久性,可以用作存放应用程序资产的地方。
- 块存储(AWS EBS)是具有块级结构的高性能存储。此类存储只能同时连接到一台计算机上。但有一个选项可以将其分离,稍后可以在另一台计算机上使用。
- 文件系统存储(AWS EFS)提供了像文件和文件夹之间的常见结构。当共享访问计算队列中所需的数据时,这对场景很有用。它充当网络驱动器,可以由多个使用者同时使用。
数据库
你需要对数据库中数据的组织方式有清楚的了解。在选择数据库之前,请问自己以下问题:
- 你是否需要执行复杂的查询和表连接?
- 谁将负责数据库的维护和更新?
数据库类型包括关系型数据库和非关系型数据库。为解决方案选择合适的数据库至关重要,它定义了未来的性能和可伸缩性。
使用关系型数据库,数据会变得更加结构化,这使我们能够运行不同类型的查询;非关系型数据库以不同的方式组织保存和查询数据(例如,作为键值存储),这会使水平伸缩更容易执行。
接下来,你需要选择它是否为无服务器。无服务器数据库由云系统自动维护和扩展。AWS的DynamoDB是一个无服务器的非关系型数据库,其中数据被组织为键值存储。而对于关系型数据库,AWS提供具有不同引擎的关系型数据库服务以及Aurora和Aurora Serverless(均为Amazon专有数据库)。
除此之外,你还必须记住要进行多少次读取和写入操作。例如,如果组织中的许多其他部门正在读取数据库,那么可以考虑使用读副本;如果需要对同一数据进行多次读取,则可以选择使用Elasticache频繁缓存的请求。
联网
你需要了解什么是公共网络和私有网络。在分布式系统中,通信是通过网络进行组织的。使用无类别域间路由(CIDR)可以限制对网络中特定资源的访问,它还是安全解决方案的重要组成部分。当然,没有人想对数据库进行公开访问。与此相反,数据库应该位于私有网络中,并且只应允许来自定义源的入站流量。
花点时间学习一下TCP/IP协议的工作原理,检查不同的网络拓扑。这将揭示如何构建一个只具有单一互联网入口点的系统,如何仅允许出站流量,以及如何防护以免遭受不同攻击,并拥有一个稳定的弹性解决方案。
亚马逊有一套丰富的联网服务。以下内容只是其中的一小部分:子网、安全组、虚拟私有云(VPC)、互联网网关、NAT网关和Web应用程序防火墙。
这是AWS解决方案架构师考试所需的基础知识。无论你准备任何认证考试还是想要进一步扩展知识,能够建立弹性和可伸缩的体系结构都是一项很有价值的技能。