如何在三层架构中使用VLAN或VPC保护应用​

如何在三层架构中使用VLAN或VPC保护应用​

2023-09-13 09:00:00

云计算 在当今的容器和云环境中,我们可以很容易地将不同组件分离到不同系统中,而这样做的好处也是很明显的:轻松快速地构建出更可靠、更安全、可扩展性更高的应用程序。​

通过VPC实现网络隔离能在安全性方面带来很多好处,例如实现内部协作以及妥善存储敏感信息。

在开发工作方面,网络隔离还可用于实现多层Web应用程序的部署。通过对应用进行分层,我们可以将能够以及不能访问公共互联网的应用划分为不同的片段,例如通常可以通过这种方式将数据库层与公共互联网隔离,同时依然可以从上层拉取补丁和软件更新,而不需要直接访问公共互联网。除了减小攻击面,这种做法还有助于实现多区域部署

延伸阅读,了解Akamai cloud-computing

出海云服务,选择Akamai Linode!

我们可以通过多种方式来运行多层应用,通常只需要依赖一些最基础的形式即可获得最大化的可扩展性、安全性以及可靠性。三层架构是一种最常见的设计形式,这种形式在云端环境中尤为常见。

三层应用程序通常由三个层组成,这些层往往位于不同服务器上,能够分别以高度独立的方式开发和维护。这三层分别是:

  • 表示层:管理用户和应用程序间通信的外部接口,通常由Web服务器组成,运行HTML和Web开发代码。
  • 应用程序层:一种自定义应用程序,提供了必要的业务逻辑,借此将应用程序“黏合”在一起。
  • 数据层:数据库系统,用于存储和检索应用程序中使用的数据。

这三层内容作为独立的服务,需要通过基于网络的API进行通信。出于安全和性能方面的考虑,应用程序层和数据层通常需要位于同一个本地网络中,并且需要放置在同一个防火墙之后,但每一层的分离也使得我们可以将每个组件部署在不同硬件上,甚至部署到不同的地理位置。实际可以实现的灵活性主要取决于应用程序的具体需求。

下图展示了现实世界中一个最基础的三层Web应用程序。表示层的Web服务器在浏览器窗口中为用户提供了交互界面;另一端的数据层则是一个数据库,该数据库可以是一个单独的系统,或是在网络中用一个单一实体所代表的集群。数据库层方面流行的开源选项包括MySQL、MariaDB、PostgreSQL for SQL、MongoDB以及Cassandra for NoSQL等。

图1:三层架构可将Web应用程序拆分为表示层、应用程序层和数据层

Web服务器和数据库之间还有应用程序层,我们的大部分开发工作可能都是围绕这里进行的。应用程序层包含供应用程序实现目标所需的自定义代码和业务逻辑。在前端,Web服务器会将查询发送给应用程序层,随后应用程序层会响应Web服务器,并由Web服务器设置数据格式随后展示给用户。在后端,应用程序层将查询数据库,接收数据,随后处理收到的数据,产生用户需要的信息或结果。

作为一个非常简单的例子,我们可以将数据库想象成存储了公司销售记录的记录册。用户输入请求,希望得到一段时间内某一特定商品在特定地点的平均日销量。Web服务器会将请求发送给应用程序层,应用程序层构造数据库查询,接收原始数据,执行必要的计算,随后将响应发送回Web服务器。

图2:用户向表示层请求一系列信息,应用程序层可将请求转换为数据库查询

对于应用程序层来说,Apache Web服务器可能是最方便的表示层解决方案,而MongoDB可能是最方便的数据层解决方案。而应用程序层的自定义代码通常会使用Python、PHP或Ruby等语言编写。并且在一些现成的编程框架帮助下,我们可以更高效的开始编写自己的代码,例如Python开发可选择Django,Ruby开发可选择Rails,PHP开发可选择Symfony。

理论上,应用程序层可以和表示层结合在一起,为此只需要向Web服务器提供直接查询数据库所需的必要代码,但对于大多数复杂的业务逻辑来说,这种做法并不现实,并且也抵消了应用程序划分所带来的好处。

上文提到的“好处”中最重要的一点是:可以减小攻击面从而提高安全性。如图1所示,三层解决方案最大限度减少了必须放置在防火墙之外的应用程序组件。Web服务器可以通过安全的API进行通信,其他活动都发生在防火墙内部,更重要的是,都发生在私有地址空间中,因此无法通过互联网访问,这样即可遏制包括SQL注入在内的很多隐患,毕竟SQL注入已经是最常见,也最具破坏性的漏洞。好在这些隐患通常可以通过对数据库进行隔离和保护所有直接通信等方式加以遏制。

三层应用程序带来的另一个好处是可靠性。当每一层都运行在单独的服务器上,运行在不同的物理硬件,甚至在完全不同的数据中心内运行时,一层出现的故障就不太可能影响到其他层。这还有助于进一步提高可扩展性。因为这些独立运行的组件也可以独立进行扩展。举例来说,如果数据库访问遇到性能瓶颈,即可向数据库集群添加更多节点,这一过程对整体运行的影响也是最小的。

三层方法还有助于优化开发流程。连接各层的API以一种支持高效分工的方式将不同组件分开,Web开发者和管理员可以操作和管理Web服务器,数据库开发者和管理员可以运行数据库系统。在这两者之间,精通应用程序层所用框架技术的专家可以只专注于应用程序代码。例如在DevOps场景中,应用程序开发者可以用脱机的方式构建并测试新版应用程序代码,并在保证对运行只产生最小影响的前提下轻松更改应用代码。

如果你要着手开发Web应用程序,可以从一开始就考虑采用三层架构。在当今的容器和云环境中,我们可以很容易地将不同组件分离到不同系统中,而这样做的好处也是很明显的:轻松快速地构建出更可靠、更安全、可扩展性更高的应用程序。

这篇文章的内容感觉还行吧?有没有想要立即在 Linode 平台上亲自尝试一下?别忘了,现在注册可以免费获得价值 100 美元的使用额度,快点自己动手体验本文介绍的功能和服务吧↓↓↓

出海云服务,选择Akamai Linode

欢迎关注Akamai,第一时间了解高可用的MySQL/MariaDB参考架构,以及丰富的应用程序示例。

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/281485.html<

(0)
运维的头像运维
上一篇2025-05-13 00:37
下一篇 2025-05-13 00:38

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注