本文作者:Talia Nassi。她是Akamai的首席开发者布道师,同时也是各大国际性会议和活动的主题演讲者,致力于创作关于在云端构建、测试和Linode等方面的内容。
前段时间,我参加了在美国加利福尼亚奥克兰举办的DeveloperWeek会议。这是一个为开发者、DevOps工程师和产品经理举办的,为期两天的年度性活动。去年,我曾在会上做了一个关于基础设施即代码构建应用的演讲。今年,我在Akamai展台上进行演示,展示了我们最新的VPC服务。
延伸阅读,点击链接了解 Akamai Cloud Computing
与业内的很多其他会议不同,DeveloperWeek专注于工具,并重点凸显了广泛的供应商。如果想了解新工具和即将推出的技术,这里将会是一个很好的去处。
活动期间,参观Akamai展台的人群各有不同。一方面,有很多学生来寻找招聘人员进行交流,其中甚至有些人以前从未听说过Akamai。不过这也挺常见的。此外,还有一些DevOps专家对服务器配置比较感兴趣,他们还提出了一些很详细的技术问题。
本文详细记录了我参会期间的一些见闻和感受。
与农贸市场的类比带给我们的启示
在DeveloperWeek活动全程,我最喜欢的演讲是Billy Thompson关于避免供应商锁定的那一场,毕竟这个话题也是我过去一直在努力解决的问题。他以农贸市场的类比开始了演讲。Billy喜欢农贸市场,喜欢那里销售的各种蔬菜。他去了所有摊位,选择了自己最喜欢并且价格最划算的当季蔬菜。但如果他只去了农贸市场的一个摊位,而忽略了其他几十个每天都蹲守在自己摊位前的摊主,结果会怎样呢?他会错过其他摊主提供的多样选择,错过自己选择的那一个摊主所没有提供的东西,或者可能错过以更便宜价格得到同样蔬菜的机会。
这种情况其实与如今的云计算非常相似。人们的认识存在一定局限,认为云就是那几家超大规模服务商而已。但其实,市面上有几十个不同的云服务提供商,他们提供了许多类似的服务。作为云工程师,我们需要做出更好的决策,以更好地满足自己和业务的需求。
不要仅仅因为名字而选择某个云服务商,而是要选择多个云服务商,他们的功能会适合我们每一个特定的需求,这样才能从中获得最大化收益。我们完全可以像逛农贸市场那样,从每个摊主那里挑选最好的、当季的蔬菜一样;当从多个云服务商中进行选择时,我们也将可以从每个服务商那里挑选出自己喜欢,并且价格合适的东西。
Billy让听众进行了一种名为“Bare Bones Approach”的练习。假设有一个应用程序,将其简化到最基础的骨架状态。然后,逐步添加一层一层的支撑功能。在这种方法中,我们首先要识别出应用程序最基本的基础需求,同时要确保自己不受任何特定技术或提供商先入为主观念或偏好的影响。通过这种方法,我们可以保证所添加的每个功能层都是经过深思熟虑的,并且所做的选择可以满足自己的需求,而不是受到可能不符合应用程序目标的外部因素的影响。这种方法让我们可以用更加可定制、更高效,并且更有效的方式使用技术,并确保自己的选择与应用程序的需求维持一致。这种设计理念使得应用程序更具可移植性。毕竟这不是为了修复没有问题的东西,而是为了微调我们自己的需求,并确保自己的云服务满足这些确切的要求。
VPC Terraform演示
另外我所参与的Demo也值得一提。在本次会议中,我与团队同事、开发者布道师Austin Gil一起进行了演示。
我们首先介绍了虚拟私有云(VPC)的概念。这是云中一个安全、隔离的区域,用户可以在其中使用自己定义的虚拟网络运行各类资源。这种设置带来了几个好处,包括通过隔离计算资源增强安全性、更好地控制网络环境(如IP地址范围和网关),以及创建混合环境,将本地网络扩展到云中。我们还介绍了基础设施即代码(IaC)的原则,使用Terraform介绍了该机制如何通过代码实现基础设施的自动化和高效管理。
为了让我们关于虚拟私有云(VPC)和基础设施即代码(IaC)的讨论更生动,我们还演示了两种不同设置,涉及两个数据库的部署。
我们的第一个设置不涉及VPC,这是为了获得一个基线,以突出VPC的优势。第二个设置部署在VPC的安全边界内,这样即可清晰地展示出VPC可以提供的更高安全性和网络隔离能力。这种设置非常有效地展示了VPC如何防止未经授权的访问,并维护内部网络的完整性。
正如上文提到的,我们使用了Terraform来定义和配置基础设施。Terraform配置文件使用HashiCorp配置语言(HCL)编写。其他云提供商通常使用JSON或YAML。如果不熟悉HCL,Terraform网站上有许多代码库可供学习。我们部署了两个具有相似配置的数据库,主要区别在于它们的网络设置。第一个数据库部署在没有VPC保护的标准云环境中,第二个数据库安全地嵌套在VPC中,借此获得进一步的安全性和隔离。
这使我们能够展示数据库的访问情况所存在的明显差异;非VPC环境中的数据库可以轻易访问,说明存在潜在安全漏洞。相比之下,VPC内的数据库对外部不可访问,有效凸显了VPC在网络隔离和保护敏感数据方面的作用。
应用程序的两个版本功能是相同的。每个版本都显示一个数据库。然而,因为使用VPC来保护第二个数据库,因此只能看到访问第一个数据库的应用程序的完整细节。
当尝试访问第二个应用程序时,我们无法看到数据库,而是收到了一个错误信息。很好,这意味着我们成功阻止了不良行为者访问我们的私密信息。
这个演示中,我们展示了如何通过一种简单的方式实施网络隔离层来保护应用程序数据。在本例中,我们将网络的不同部分拆开,以防止未经授权的访问数据库。但其实这种操作也可以用来实现其他更复杂的目的,例如DevOps环境或合规要求。
在DevOps设置中,我们可能有多个环境,比如开发环境、暂存环境和生产环境。每个环境都需要不同的网络配置和访问控制。通过利用VPC,我们可以在隔离的网络边界内创建单独的环境。这确保了在一个环境中进行的更改不会影响其他环境,并允许对网络策略进行细粒度的控制。
在合规和监管要求方面,诸如医疗保健、金融和政府等行业受到严格的合规性法规的约束,涉及数据隐私和安全。使用具有隔离层的VPC,通过将敏感数据和工作负载与网络的其余部分隔离开来,可以帮助企业遵守这些要求。例如,我们可以将个人身份信息隔离在专用子网中,并在网络层强制执行加密和访问控制。隔离层的概念可适用于几乎所有领域的应用程序。
又一次成功的DeveloperWeek活动,希望明年能再次参与,也希望能从社区的其他成员那里学到更多东西。
同时,我们也会继续对Akamai VPC服务进行不断的完善和改进,帮助用户更轻松、便捷、灵活地在Akamai云平台上部署和运行。
—————————————————————————————————————————————————
如您所在的企业也在考虑采购云服务或进行云迁移,
点击链接了解Akamai Linode的解决方案