tag 标签: 云科技

相关博文
  • 热度 6
    2023-12-13 11:07
    682 次阅读|
    0 个评论
    来源:艾特保IT 虹科干货丨触发器和函数:让代码更接近数据 欢迎关注虹科,为您提供最新资讯! 文章速览: 触发器和函数的基础知识 编写语言:从Lua到JavaScript 轻松维护应用程序代码 数据库事件实时处理 如何操作触发器和函数 一般来说,应用程序处理业务的逻辑,是将执行代码发送到数据库。因此每次执行函数时,代码都会从客户端流入服务器,结果就是这个过程十分缓慢,甚至会出现代码在应用程序之间重复执行的情况。 而我们一向是反对复杂性的!从Redis Gears到Redis7.0再到Redis7.2,我们的愿景就是为开发人员提供更灵活、高效的解决方案。 Redis Gears:四年前推出的RedisGears,是Redis平台内的第一个可编程模型,开发人员能在数据所在的地方编写并执行脚本。 Redis 7.0:Redis 7.0引入了带有函数的脚本方法,函数作为数据库的一部分,提高了可用性和持久性,继承了数据的复制和持久性级别。 Redis 7.2:Redis 7.2更进一步,引入了触发器和函数,以增强Redis的可编程性;扩展了服务器端功能;改进了数据库中执行功能的方式和时间;并促进了直接在数据所在的地方执行复杂的业务逻辑。 01 触发器和函数的基础知识 触发器和函数是通过Redis Stack提供的新一代可编程功能。它允许开发人员直接在Redis数据库中针对数据更改进行编程、存储和自动执行JavaScript代码。 1、开发人员可以定义事件(称为触发器)来执行更接近数据的函数 。 也就是说,开发人员定义响应数据库事件或命令而执行的业务逻辑。这加快了代码和相关交互的速度,因为无需等待即可将代码从客户端引入数据库。 2、加快对Redis中其他事件的反应时间 ,如键空间通知,这些通知无法通过发布和订阅(Pub/Sub)事件等其他方式实时处理。 3、远程功能: 触发器和函数处理集群数据库内的分布,在每个分片上安装库并根据密钥所在的位置执行函数。远程函数允许执行读取操作,这些操作可以从任何槽访问数据,甚至在集群数据库中也是如此,因此可以从每个函数访问所有数据。 02 编写语言:从Lua到JavaScript Redis使用Lua来编写脚本和函数。Lua有很多好处,例如代码可重用性,但它并不是专业开发人员常用的语言。根据2022 年StackOverflow开发者调查,只有3.2%的开发人员在专业领域使用 Lua。 因此,在Redis7.2中引入了JavaScript,这种更流行的语言的引入,可以降低新Redis开发人员的采用成本。 03 应用程序代码更容易维护 触发器和函数的另一个好处是它降低了跨多个应用程序管理业务逻辑的复杂性。 当多个应用程序访问同一数据库时,开发人员必须协调应用程序如何以一致的方式处理数据。在每个应用程序中复制代码以验证数据、丰富搜索结果,或在另一个应用程序进行更改时更新数据库也是很常见的。 有了触发器和函数,就不再需要在多个应用程序上重复代码。代码始终以相同的方式执行,按需执行或由数据库中的事件启动。 04 数据库事件实时处理 到目前为止,开发人员对Redis中的数据库事件做出反应需要依赖Pub/Sub机制。虽然 Pub/Sub有很多优点,但它并不总是正确的选择。特别是,Pub/Sub不是实时的。客户端必须主动监听事件;如果客户端没有监听,事件就会丢失。 在Redis7.2时代,开发人员可以注册基于键前缀和事件类型执行的键空间触发器。触发器可以以原子方式执行,因此在事件和业务逻辑之间不处理其他Redis事件。 05 如何操作触发器和函数 这里,我们介绍如何注册一个函数和一个触发器。当通过TFCALL命令调用函数时,函数就会被执行;触发器根据Redis中的事件执行。 1.序言定义我们使用js引擎,库名称为lib,所需的触发器和函数API的最低版本为1.0。 接下来,我们创建一个返回Redis命令结果的函数。客户端允许在我们的函数中执行Redis 命令。数据事件包含运行函数时可以提供的键和参数。 Redis全局变量允许我们注册触发器和函数,并记录到日志文件中。我们为该函数注册一个名称,并在函数执行时调用它。 4.完整的JavaScript文件如下所示,将其另存为lib.js. 5.然后我们使用命令在触发器和函数中注册我们的函数TFUNCTION LOAD。该TFUNCTION LOAD命令还可以在集群数据库中分发函数库。 6.现在我们可以使用TFCALL命令执行该函数。该命令获取以句点分隔的库名称和函数名称。 7.这样,就成功地在Redis数据库中创建、注册并触发了一个函数。 8.我们可以使用键空间触发器拓展这个示例。我们添加了一个新的注册,该注册对前缀为'fellowship:'的键做出反应。在lib.js文件末尾添加此代码。 9. 使用带有 REPLACE 参数的 TFUNCTION LOAD 命令来更新现有库。该TFUNCTION LOAD REPLACE命令立即更新所有使用 Redis 数据库的客户端,并且它们会开始使用新的业务逻辑。 10.要测试新的键空间触发器,请创建一个以Fellowship:开头的新键,并使用RedisInsight 检查字段。键空间触发器是通过命令执行的,因此在创建键时已经添加了last_updated字段。最后,我们可以在RedisInsight中查看结果。
  • 热度 7
    2023-12-12 13:05
    1511 次阅读|
    0 个评论
    来源:艾特保IT 虹科分享 | Morphisec革命:利用移动目标防御增强Windows安全性 欢迎关注虹科,为您提供最新资讯! Windows 10安全工具阵列仍然存在明显的防御漏洞,Morphisec通过其革命性的自动移动目标防御(Automated Moving Target Defense)技术,强化Windows 10安全,提供独特的防御策略,并简化安全运维。 文章速览: -Morphisec弥补Window10安全防护的不足 -用Morphisec和Windows Defender AV取代传统的防病毒软件 -为终端部署提升你的防卫者级别 -对Windows 7生命周期结束的补偿控制 一、Morphisec弥补Window10安全防护的不足 Morphisec加强和提高了微软Windows 10的安全功能,使企业能够充分利用其Win10部署。它和Windows Defender Antivirus共同构成了一个极其强大、具有成本效益的威胁预防堆栈,简化了安全操作。对于寻求额外EDR保护的企业,Morphisec和Microsoft Defender for Endpoint的整合带来了进一步的价值,将端点保护、可视性和光学性提升到一个新的水平,同时降低了风险和安全运营成本。 二、Morphisec和Windows Defender AV取代传统的防病毒软件 强大的嵌入式Windows 10安全工具阵列——设备卫士、应用程序卫士、BitLocker和其他控件,加上Windows Defender Antivirus——基本上已经超越了传统的防病毒工具。然而,即使利用Win10的全套安全功能,也存在明显的防御漏洞。 Morphisec的Defender AV集成改变了这一状况,它通过移动目标防御高级威胁预防加强了Defender,并为Defender生成的警报带来了企业范围的可见性。Morphisec增加了一个重要的保护层,以防止可以绕过防病毒解决方案的漏洞、无文件攻击、未知威胁、零日和逃避性恶意软件。Morphisec管理控制台显示由Defender AV检测到的攻击和Morphisec威胁数据。 1.不受干扰 Windows Defender已经嵌入并默认在Windows 10操作系统中打开。Morphisec使用一个极小的2MB代理,在几分钟内部署完毕,不会影响端点性能,破坏用户操作,或导致BSOD或系统冲突。 2.获得对所有威胁的可见性 Morphisec将Defender AV威胁整合到Morphisec管理仪表板中,以获得所有警报的可见性。安全团队可以将这些事件与Morphisec预防的威胁联系起来,以了解这些事件对企业的影响,并做出任何必要的政策或补救决定。 3.几乎为零的安全性和IT时间 Morphisec不需要更新,不产生任何错误警报,无论在线还是离线,都能提供同样水平的保护。Morphisec在攻击的最初阶段就能确定地阻止攻击,大大降低了企业的修复和取证分析要求和成本。 4.不增加成本 企业可以取消他们的传统防病毒软件,启用免费的嵌入式Defender防病毒软件,并添加Morphisec,以获得更安全的防御,而不增加安全支出。事实上,由于不需要用Defender管理单独的更新——新版本通过Windows Update推送——而Morphisec根本不需要更新,总拥有成本实际上会下降。 三、为终端部署提升你的防卫者级别 软生态系统中,提供了一个无与伦比的组合,将高度先进的预防、检测和行为监控嵌入到操作系统的结构中。通过Morphisec和Defender for Endpoint的整合,客户可以进一步将安全整合到微软生态系统中,以前所未有的灵活性和功能保护企业系统。Morphisec是微软MISA认证的合作伙伴。 1.集成如何运作 Morphisec以移动目标防御为动力的威胁预防和它所捕获的丰富的取证数据扩展了端点卫士的功能,减少了修复和分析成本,提高了安全运营效率。Morphisec收集的攻击信息被无缝集成到微软Defender安全中心。 2.获得更深的可见性 高保真、可操作的威胁情报,包括有关攻击的内部存储器信息,直接在Defender安全中心控制台中可视化。 3.查看完整的攻击时间线 从最早的攻击前阶段开始的完整攻击时间线被整合到防御者安全中心的警报流程树中。 4.确定警报的优先次序 Defender安全中心使用Morphisec取证数据对活动警报列表中的警报进行优先排序,并确定机器风险得分。团队还可以快速转到Morphisec统一安全中心,查看有关攻击的更深入信息。 四、对Windows 7生命周期结束的补偿控制 微软在2020年1月结束对Windows 7的支持,但许多组织到那时还不能完全迁移到Windows 10。Morphisec提供的缓解技术有资格作为Windows 7部署的补偿性控制,因此IT团队可以根据自己的时间表进行更新。在迁移过程中,它通过动态的高级威胁防御层来保护您的Win7终端、服务器和嵌入式操作系统,防止利用未打补丁的应用程序和操作系统漏洞。 Morphisec提供预防优先的安全措施,以抵御最先进的威胁,阻止从端点到云的其他攻击。Morphisec的软件由自动移动目标防御(AMTD)技术提供支持,这是网络安全的下一个发展。AMTD可以阻止勒索软件、供应链攻击、零日攻击和其他高级攻击。 艾特保公司(itbigtec.com)是一家前瞻性的技术企业,专注于提供尖端的数据存储、数据智能、全面的安全与合规性,以及高效的网络监控与优化服务解决方案。我们的使命是通过技术创新,赋能企业在复杂的数字化转型浪潮中实现卓越的运营。
  • 热度 3
    2023-12-5 13:47
    337 次阅读|
    0 个评论
    来源:艾特保IT 虹科干货 | 关于JSON数据库 原文链接:https://mp.weixin.qq.com/s/NutCGWa32rOcEHrk3UDGcQ 欢迎关注虹科,为您提供最新资讯! 如何理解JSON数据库?作为NoSQL数据库的一种类型,JSON数据库有哪些优势呢?JSON数据库如何运作,它为应用程序开发者带来了哪些价值呢? 文章速览: 什么是JSON 什么是JSON数据库 JSON数据库的显著优势 关于JSON数据库的Q&A 一、什么是JSON? 首先,我们得明确“JSON”的含义。 开发人员在创建业务逻辑、用户界面、数据库或后端系统时,需要一种描述和交换数据的方式。这就是数据交换的结构,它可能是基于二进制的,也可能是基于文本的。 JavaScript对象表示法(JSON)是一种基于文本的数据交换格式。因为它是文本格式,所以既适合人类阅读,又适合机器处理。JSON通常用于存储和传输应用程序数据。 像XML一样,JSON是一种数据交换格式,不是编程语言,因为它不是图灵完备的。但也像XML一样,由于其可读性和功能强大,JSON在某些方面可类似于编程语言的使用。如Python和Java一样,JSON也采用了C语言系列程序员熟悉的约定,这使得JSON成为跨平台数据共享的理想工具。 JSON有两种结构: ·键/值对; ·有序值列表。 JSON值可以是对象、列表、字符串、数字、布尔值或null。 例如,一个表示小猫的JSON字符串可能是: {"name": "Jason", "age": 1, "floofy": true} 在这个样例中,“name”、“age”和“floofy”是键,“Jason”、“1”和“true”是它们的值。 二、什么是JSON数据库? JSON数据库(也称为JSON db)是一种文档数据库,有时也被称为文档存储。它以文本文档的形式表示数据,而不是传统SQL数据库中的列或表格。 从结构上看,JSON数据库是NoSQL数据库的一种,它使用JSON文档来读取和存储半结构化数据。列、图、键值、内存和文档都是不同类型的NoSQL数据库。 三、JSON数据库的显著优势 ·JSON数据具有可读性,便于人类理解和解析; ·JSON更轻量级,相比XML格式化开销较小; ·开发人员可以自记录方式建立数据关系,提高性能; ·JSON数据库不需要特定的数据结构来打包数据,便于应对应用程序数据模型的变化。 JSON数据库的优势不仅在于数据结构的用户友好性。在此之外,从存储、模式、索引灵活性到水平和垂直扩展,JSON数据库以多种方式简化了开发人员的工作。 1.存储灵活性 JSON数据库的动态性是其重要特点。 与SQL数据库不同,SQL数据库具有固定的字段定义和字段大小,JSON数据库由于其键/值结构可以适应数据模型或应用程序需求的变化,因此更加灵活。 例如,一个依赖用户配置文件和登录验证的Web应用程序,可以使用JSON数据库存储用户ID、偏好和多个ID映射等信息,以快速查找用户并验证访问权限。如果应用程序需求发生变化,例如需要包含地理数据,数据库模式则可以灵活调整,无需完全重构。 2.模式灵活性 一旦确定了所有开源组件,SCA工具就会提供有关每个组件的信息,包括归属要求以及该许可证是否符合你所在组织的政策。 3.识别安全漏洞 JSON文档数据库是一种具有开发者自定义的灵活结构的紧凑存储数据结构,JSON文件的简洁性极大加快了数据与应用程序的交互速度。 JSON数据库模式允许嵌入或链接对象,包括循环引用。尽管前面提到的Jason这只猫的例子是极其简单的,JSON也能模拟如对象图和循环图等复杂数据结构。特别是,JSON数据库支持嵌套、对象引用和数组,为开发者提供清晰的视角,易于数据库的维护。 例如,在嵌套的JSON数据库模式中,某些值可能是其他JSON对象: 4.分区数据 分区数据是高性能计算的要求之一,数据库需要能够根据需求进行扩展。水平可伸缩性是一种进行负载均衡的方式,特别适用于JSON数据库。JSON数据和索引可以分布在多个分片和节点上,以提高速度和提供更便捷的内存管理。 5.大数据分析 JSON数据库在数据科学和分析应用中极为流行,尤其是那些对大数据有高要求的应用程序。这得益于JSON数据库的灵活模式、水平及垂直扩展能力。这些特性使得文档数据库能够存储大型数据集,并在需要时添加更多节点。分区允许数据在节点间保持平衡,从而提高读写速度并确保可用性。 6.支持多种索引类型 文档数据库支持各种类型的索引,如排序集合、按词典编码、地理空间、IP范围、全文搜索和分区索引。 Q&A 1.什么是JSON数据库? JSON数据库是非关系型NoSQL数据库,以结构化的JSON文档形式存储非结构化数据。 2.JSON数据库的一个例子是什么? Redis Enterprise JSON是一个NoSQL文档存储,使用内存数据结构来提高可扩展性和性能。其包含一个实时查询和搜索引擎,以支持快速数据摄取和自动索引。 3.哪种数据库最适合JSON? 由JSON文件组成的文档数据库是NoSQL数据库的一种,已经具有JSON结构。在这种非关系型数据库中,可以修改JSON对象。SQL服务器可能也支持JSON数据类型,但在解析和结构化数据方面可能有更多限制。 4.JSON的一些用例是什么? JSON数据库用于网页和移动应用程序开发、在线会话存储和购物车、游戏排行榜和用户库存、数据交换和存储、NoSQL数据库、内容管理系统,以及IoT应用中的实时数据交换。 艾特保公司(itbigtec.com)是一家前瞻性的技术企业,专注于提供尖端的数据存储、数据智能、全面的安全与合规性,以及高效的网络监控与优化服务解决方案。我们的使命是通过技术创新,赋能企业在复杂的数字化转型浪潮中实现卓越的运营。 我们拥有专业的技术团队,由经过美国和欧洲行业内顶尖专家培训的专业人才组成,他们不仅拥有包括红帽、思科、IBM等在内的专业认证资格,具备丰富的创新技术实践和成功案例经验。我们以创新为驱动,以技术为基础,持续推动技术前沿的发展。我们的目标是帮助企业在激烈的市场竞争中更快、更高效、更安全地应对业务扩展,从而脱颖而出。
  • 热度 3
    2023-11-29 17:13
    374 次阅读|
    0 个评论
    来源:艾特保IT 虹科干货 | 什么是软件成分分析(SCA)? 欢迎关注虹科,为您提供最新资讯! 大家或许都发现了,开发人员愈发依赖开源代码来快速为其专有软件添加功能。据估计,开源代码占专有应用程序代码库的 60-80%。相伴而来的,除了更高的效率,还有更高的风险。因此,管理开源代码对于降低组织的安全风险至关重要。那么,如何管理开源代码呢?软件成分分析(SCA)又是如何管理开源代码的呢? 文章速览: -什么是软件成分分析? -软件成分分析要求 -为什么SCA应该成为应用程序安全产品组合的一部分 -如何选择合适的软件成分分析工具? 一、什么是软件成分分析? 软件成分分析(SCA)是应用程序安全测试(AST)工具市场的一部分,可用于管理开源组件。SCA工具对应用程序的代码库(包括容器和注册表等相关部分)执行自动扫描,以识别所有开源组件、许可证合规性数据以及任何安全漏洞。除了提供开源使用的可视性,一些SCA工具还可以通过优先级划分和自动修复来帮助修复开源漏洞。 1.生成组件清单 SCA工具通常从扫描开始,生成产品中所有开源组件的清单报告,包括所有直接和间接依赖关系。掌握所有开源组件的详细清单是管理开源使用的基础。毕竟,如果不知道自己正在使用哪些组件,你很难确保其安全性或合规性。 2.确保许可合规性 一旦确定了所有开源组件,SCA工具就会提供有关每个组件的信息,包括归属要求以及该许可证是否符合你所在组织的政策。 3.识别安全漏洞 软件组合分析工具的主要功能之一是识别有已知漏洞的开源组件。好的SCA解决方案不仅揭示哪些开源库存在已知漏洞,还会让你知道代码是否调用受影响的库,并做修复建议,以及识别代码库中需要更新或修补的开源库。 4.使用SCA可以发现的漏洞类型 当代码存在缺陷或弱点时,通常会出现开源漏洞。这些可能是计划外的编码错误,也可能是被蓄意插入代码中的。攻击者可以利用这些漏洞未经授权地访问系统、窃取数据和对软件或系统造成损坏。旧软件或未更新的当前软件版本也可能导致漏洞。这些可能会导致安全漏洞,攻击者可以利用这些漏洞渗透你的代码并窃取敏感和有价值的数据,例如,这些数据可以被禁用和勒索。 5.高级SCA功能 高级SCA解决方案还包括自动策略执行功能,它将代码中找到的每个开源组件与组织策略交叉引用,并触发不同的响应,例如启动自动审批工作流程或使编译构建。 高级SCA解决方案可自动执行开源选择、审批和跟踪的整个过程。有些解决方案甚至能在提出拉取请求和组件进入系统之前,提醒开发人员注意组件中的漏洞。这为开发人员节省了宝贵的时间,并提高了他们的准确性。 6.SCA的局限性 SCA专注于识别和修复开源组件和第三方依赖项中的风险。它并不是为了查找自定义(原始)代码中的漏洞而设计的。例如,SCA无法缓解SolarWinds供应链漏洞,因为SolarWinds的源代码是专有的。要扫描和修复专有代码,请使用SAST(静态应用程序安全测试)。SCA也不会检测不安全的网络配置。 旧的SCA解决方案并非旨在扫描开发和部署环境,因此它们无法保护软件开发生命周期(SDLC) 的后期部分。一些旧的SCA工具无法提供准确评估任何问题的风险影响所需的背景。这些工具可能会产生太多误报,从而消耗有限的资源。注意:更新、更现代的SCA解决方案已经通过优先级功能解决了这一挑战,因此请确保选择可以做到这一点的解决方案。 7.软件成分分析的演变 第一款开源手动扫描仪于2002年左右发布。尽管提高了企业代码库的可见性,但这种早期技术的误报率很高,需要人工干预,无法满足敏捷开发环境的需求。 到2011年,该技术已得到改进,能够实时自动检测漏洞和许可问题。这使得软件和安全团队能够在开发周期的早期部署开源管理。同时,SCA 解决方案还与存储库、构建工具、包管理器和 CI 服务器等软件开发工具集成,这将开源管理和安全性的力量交给了开发人员。尽管取得了这些进步,SCA 仍然非常注重检测。 8.新兴技术对SCA的影响 越来越多的源代码、组件和依赖项被用来创建新的软件和应用程序。据广泛估计,一些组织多达90%的源代码现在都是开源的,这意味着潜在的攻击面已经并将继续扩大。这增加了开源漏洞的风险,以及恶意软件包渗透和攻击软件和应用程序的威胁。因此,SCA的需求变得越来越重要。 9.SCA在软件开发中的未来 开发人员、DevOps和DevSecOps团队现在的任务是在SDLC早期扫描、识别和修复开源漏洞。他们正在将安全任务转移到更早地处理和修复问题上,而不是等到软件准备投入生产或发货时才去处理和修复。 在开发过程中还有一种更新的趋势,即“智能转移”,它鼓励团队采用灵活的扫描和修复流程,快速、轻松地修复SDLC中的代码,并在现有的开发人员工作流程中完成。现代SCA解决方案可以做到这一点,还能确定漏洞的优先级,并识别出可以安全忽略的漏洞。这使得现代SCA成为任何强大应用安全策略的核心。 10.检测还不够 检测只是第一步,它无助于企业降低风险,缺少补救措施的检测是不完整的应用安全模式。 因此,企业必须采用成熟的SCA安全模式,在检测的基础上进行优先级划分和修复,这样开发人员和安全专业人员就能专注于更有价值的事情。 11.优先顺序和补救措施 现代SCA解决方案将检测和修复紧密联系在了一起。 - 优先排序 成熟的软件成分分析工具应包含优先处理开源漏洞的技术。 通过自动识别风险最大的安全漏洞,企业可以首先解决这些漏洞。开发人员和安全专业人员就不用浪费时间和资源,在成页的警报中寻找最重要的漏洞,从而避免在生产系统中运行极易被利用的漏洞。 -补救 自动修复漏洞不仅仅是向开发人员显示漏洞的位置,还能提出修复建议,并提供数据说明修复可能对构建产生的影响。可以根据漏洞检测、漏洞严重性、CVSS评分或更新版本发布时触发的安全漏洞策略启动自动修复工作流程。 最可靠的风险缓解策略之一是持续为开源组件打补丁,以避免暴露于已知漏洞。一个好的SCA解决方案可以实现这一目标。 先进的SCA工具(包括repo、浏览器和IDE成)可无缝集成到软件开发生命周期(SDLC)中,以便在漏洞修复更容易、成本更低时及早解决。 二、软件成分分析要求 1.综合数据库 数据库是任何SCA解决方案的核心。 数据库越全面,汇聚了多个来源的数据,就越能更好地识别开源组件和安全漏洞。如果没有一个全面、持续更新的数据库,就无法检测到正确版本的开源组件,从而无法更新许可证、修复安全漏洞以及应用更新和补丁。开源社区高度分散。因为没有一个集中的更新或补丁信息源,所以一切都要依靠数据库。 2.广泛的语言支持 SCA解决方案不仅应支持当前使用的语言,还应支持未来一两年内可能考虑使用的任何语言。没人希望在实施SCA解决方案后,却发现它不支持一年后最新项目的语言。所以,未雨绸缪,选择支持多种语言的解决方案。 3.广泛的报告 从库存、许可、归属和尽职调查报告到漏洞和高严重性错误报告,解决方案应能提供适合各种使用情况的各种报告工具,包括管理、法律、安全、DevOps和DevSecOps。 4.强有力的政策 选择具有自动策略的解决方案,这些策略既强大又高度灵活,而且可以定义企业自己的独特需求。可自动执行开源选择、审批、跟踪和补救流程的策略可节省开发人员的时间,并大大提高他们的准确性。 5.漏洞优先级排序和修复 如前所述,一个能优先处理安全漏洞并提供修复建议的解决方案是很有必要的。自动化程度越高,就越容易在不降低开发速度的情况下首先解决最关键的问题。 6.双重治理和开发人员关注 SCA解决方案分为两大类——提供管理工具和提供开发人员工具。 -管理、安全、DevOps和法律团队使用的治理解决方案,可提供对组织软件组合的全面可见性和控制。 -开发人员工具可帮助开发人员在避免拉取易受攻击的开源组件,并通过与本机开发环境集成的工具修复代码中检测到的任何漏洞。 最好的SCA解决方案同时提供管理和开发人员工具,这保证了每个人都能在需要的时间和地点获得所需的工具。 7.与DevOps管道集成 在SDLC的每个阶段,选择能与各种开发人员环境无缝集成的SCA解决方案,如资源库、构建工具、软件包管理器和CI服务器,这样开发人员就能在提出拉取请求之前,决定是否可以或应该使用开源组件。 8.容器/Kubernetes 容器和Kubernetes的使用很广泛,但安全性仍然是一个挑战。选择一个SCA解决方案,从容器化环境内部扫描开源组件,识别漏洞或合规性问题并自动执行策略。此外,还要确保解决方案对您的特定容器注册表提供本机支持。 三、软件成分分析要求 开源组件已成为各行各业软件应用程序的主要组成部分。然而,尽管对开放源码的依赖程度很高,但仍有太多企业在确保其开放源码组件符合基本安全标准和许可要求方面较为松懈。有了正确的软件成分分析解决方案,就能离降低开源风险更近一步。 1.监管合规要求概述 目前,各国政府发挥着更加积极的作用,推出了企业必须遵守的新网络安全战略。这些建议和战略要求供应商承担更多责任,提高代码库、软件、应用组件和依赖关系的可见性,以及更严格的合规性. 2.SCA如何帮助实现合规性 SCA专注于扫描、检测和修复开放源代码中的漏洞,包括识别和修复不符合许可要求的组件和依赖关系。通过查找此类问题和符合许可条件的版本,SCA可以帮助确保您的代码库是最新的,完全符合许可条件。 3.软件成分分析的好处 提高安全性。SCA的具体目的是扫描您的开源软件、组件和依赖关系,识别漏洞,并使用现代SCA工具自动修复这些漏洞。如果充分利用这些功能,SCA必将提高应用程序的安全性。 节约成本。手动识别和修复开源漏洞需要大量资源,遗漏漏洞会对开发和创新速度产生不利影响。这代价高昂。SCA加快了这一过程并使之自动化,减轻了开发人员和DevOps团队的负担,使安全实施成本更低,更彻底。 提高效率。现代SCA工具专门用于加速和自动化检测和修复过程。因此,它们能让整个过程变得更简单、更快捷。此外,它们还能优先处理漏洞,这意味着误报结果会大大减少,团队修复无关问题的时间也会大大减少。 提高了开发人员的工作效率。速度、效率和自动化将开发人员从耗时的开源扫描和安全防护任务中解放出来。现在,他们可以比以往任何时候都更高效地完成这项任务,而且在开发工作流程中完成这项任务时,整个过程可以做到无缝衔接,从而最大限度地减少对开发工作的干扰。有了SCA,开发人员可以确保代码库的安全性,同时还能保持和提高生产力。 四、如何选择合适的软件成分分析工具? 你应该选择一种既能满足您的需求,又尽可能简单易用、不具干扰性的SCA工具。 确保选择的工具对开发人员友好。该工具最好能在开发人员现有的工作流程中运行,这样他们就不必退出开发环境来实施安全功能,也不需要他们学习全新的软件。为此,它应无缝集成到现有软件和开发环境中。 SCA工具不仅要进行简单的扫描,还应对软件组件及其依赖关系进行全面分析。它应能在特定项目和工作范围内优先处理需要您关注的风险较高的漏洞。它应该提供清晰、全面的报告,这些报告将成为高质量治理和控制的基石,它还应该能够快速、轻松地修复漏洞。理想情况下,这一流程将是自动化和可扩展的,这样您的SCA功能就能随着您的代码库以及软件和应用程序范围的扩大而增长。现在,它应该是云本地的。 虹科通过创新帮助客户成功,是您优选的解决方案合作伙伴。虹科艾特保IT凭借深厚的行业经验和技术积累,近几年来与世界行业内顶级供应商Morphisec,DataLocker,Lepide,SecurityScorecard,veracode,Mend,Onekey,Allegro,Profitap,Apposite等建立了紧密的合作关系,提供包括网络全流量监控,数据安全,终端安全(动态防御),网络安全评级,网络仿真,软固件安全分析等行业领先解决方案。让网络安全更简单! 此外,我们积极参与工业互联网产业联盟、中国通信企业协会等行业协会的工作,为推广先进技术的普及做出了重要贡献。我们在不断创新和实践中总结可持续和可信赖的方案,坚持与客户一起思考,从工程师角度发现问题,解决问题,为客户提供完美的解决方案。
  • 热度 4
    2023-11-15 13:37
    568 次阅读|
    0 个评论
    文章来源:虹科云科技虹科干货丨Lambda数据架构和Kappa数据架构——构建现代数据架构 如何更好地构建我们的数据处理架构,如何对IT系统中的遗留问题进行现代化改造并将其转变为现代数据架构?该怎么为你的需求匹配最适合的架构设计呢,本文将分析两种最流行的基于速度的数据架构,为你提供一些思路。 文章速览: 什么是数据架构? 基于速度的数据架构 Lambda数据架构 Kappa数据架构 探索数据流模型 结语 一、什么是数据架构? 数据架构是企业架构中的一个元素,继承了企业架构的主要属性:流程、策略、变更管理和评估权衡。根据Open Group架构框架,数据架构是对“企业主要数据类型、来源、逻辑数据资产、物理数据资产和数据管理资源的结构和交互” 的描述。 根据数据管理知识体系,数据架构是“识别企业的数据需求(无论结构如何)并设计和维护核心蓝图以满足这些需求”的过程。它使用核心蓝图来指导数据集成、控制数据资产并使数据投资与业务战略保持一致。 然而,糟糕的数据架构是僵化且过度集中的。它使用了错误的工具来完成工作,这阻碍了开发和变更管理。 二、基于速度的数据架构 数据速度是指数据生成的速度、数据移动的速度以及将其处理为可用指导的速度。 根据处理数据的速度,数据架构通常分为两类:Lambda和Kappa。 Lambda数据架构✦ 1.什么是Lambda Lambda数据架构由Apache Storm的创建者Nathan Marz于 2011 年开发,旨在解决大规模实时数据处理的挑战。术语 Lambda 源自lambda演算 (λ),描述了在多个节点上并行运行分布式计算的函数。Lambda数据架构提供了一个可扩展、容错且灵活的系统来处理大量数据。它允许以混合方式访问批处理和流处理方法。 2.Lambda架构的使用场景 1)当您有各种工作负载和速度要求时,Lambda架构是理想的选择。由于它可以处理大量数据并提供低延迟查询结果,因此适合仪表板和报告等实时分析应用程序。Lambda架构对于批处理(清理、转换、数据聚合)、流处理任务(事件处理、开发机器学习模型、异常检测、欺诈预防)以及构建集中存储库(称为“数据湖”)非常有用。 2)Lambda架构的关键区别在于,它使用两个独立的处理系统来处理不同类型的数据处理工作负载。第一个是批处理系统,它将结果存储在集中式数据存储(例如数据仓库或数据湖)中。第二个系统是流处理系统,它在数据到达时实时处理数据并将结果存储在分布式数据存储中。 3.Lambda架构的组成 Lambda架构由摄取层、批处理层、速度层(或流层)和服务层组成。 · 批处理层:批处理层处理大量历史数据并将结果存储在集中式数据存储中,例如数据仓库或分布式文件系统。该层使用Hadoop或Spark等框架进行高效的数据处理,使其能够提供所有可用数据的总体视图。 · 速度层:速度层处理高速数据流,并使用Apache Flink或Apache Storm等事件处理引擎提供最新的信息视图。该层处理传入的实时数据并将结果存储在分布式数据存储中,例如消息队列或NoSQL数据库。 · 服务层:无论底层处理系统如何,Lambda架构服务层对于为用户提供一致的数据访问体验至关重要。它在支持需要快速访问当前信息(例如仪表板和分析)的实时应用程序方面发挥着重要作用。 4.Lambda架构的使用场景 Lambda架构解决了计算任意函数的问题,系统必须评估任何给定输入的数据处理函数(无论是慢动作还是实时)。此外,它还提供容错功能,确保在一个系统出现故障或不可用时,任一系统的结果都可以用作另一个系统的输入。在高吞吐量、低延迟和近实时应用程序中,这种架构的效率是很明显的。 Lambda架构示意图 5、Lambda架构的缺点 Lambda架构提供了许多优势,例如可扩展性、容错性以及处理各种数据处理工作负载(批处理和流)的灵活性。但它也有缺点: · Lambda架构很复杂,它使用多种技术堆栈来处理和存储数据。 · 设置和维护可能具有挑战性,尤其是在资源有限的组织中。 · 每个阶段的批处理和速度层中都会重复底层逻辑。这种重复有一个代价:数据差异。因为尽管具有相同的逻辑,但一层与另一层的实现不同。因此,错误/错误的概率较高,并且您可能会遇到批处理层和速度层的不同结果。 Kappa数据架构✦ 2014年,Jay Kreps指出了Lambda架构的一些缺点。这次讨论使大数据社区找到了一种使用更少代码资源的替代方案——Kappa数据架构。 1、什么是Kappa数据架构 Kappa(以希腊字母 ϰ 命名,在数学中用于表示循环)背后的主要思想是单个技术堆栈可用于实时和批量数据处理。该名称反映了该体系结构对连续数据处理或再处理的重视,而不是基于批处理的方法。 Kappa 的核心依赖于流式架构。传入数据首先存储在事件流日志中。然后,它由流处理引擎(例如 Kafka)连续实时处理或摄取到另一个分析数据库或业务应用程序中。这样做需要使用各种通信范例,例如实时、近实时、批处理、微批处理和请求响应等。 2、Kappa数据架构的组成 数据重新处理是 Kappa的一项关键要求,使源端的任何更改对结果的影响可见。因此,Kappa 架构仅由两层组成:流处理层和服务层。 在Kappa架构中,只有一层处理层:流处理层。该层负责采集、处理和存储直播数据。这种方法消除了对批处理系统的需要。相反,它使用先进的流处理引擎(例如 Apache Flink、Apache Storm、Apache Kafka 或 Apache Kinesis)来处理大量数据流并提供对查询结果的快速、可靠的访问。 流处理层有两个组件: · 摄取组件:该层从各种来源收集传入数据,例如日志、数据库事务、传感器和 API。数据被实时摄取并存储在分布式数据存储中,例如消息队列或NoSQL数据库。 · 处理组件:该组件处理大量数据流并提供对查询结果的快速可靠的访问。它使用事件处理引擎(例如 Apache Flink 或 Apache Storm)来实时处理传入数据和历史数据(来自存储区域),然后将信息存储到分布式数据存储中。 对于几乎所有用例,实时数据都胜过非实时数据。尽管如此,Kappa架构不应该被视为 Lambda 架构的替代品。反之,在不需要批处理层的高性能来满足标准服务质量的情况下,您应该考虑 Kappa架构。 3、Kappa架构的优势 Kappa架构旨在提供可扩展、容错且灵活的系统,用于实时处理大量数据。它使用单一技术堆栈来处理实时和历史工作负载,并将所有内容视为流。Kappa 架构的主要动机是避免为批处理层和速度层维护两个独立的代码库(管道)。这使得它能够提供更加精简的数据处理管道,同时仍然提供对查询结果的快速可靠访问。 Kappa架构示意图 4、Kappa架构的缺点 Kappa架构承诺可扩展性、容错性和简化的管理。然而,它也有缺点。 · Kappa架构理论上比 Lambda更简单,但对于不熟悉流处理框架的企业来说,技术上仍然可能很复杂。 · 扩展事件流平台时的基础设施成本。在事件流平台中存储大量数据可能成本高昂,并会引发其他可扩展性问题,尤其是当数据量达到TB或PB级时。 · 事件时间和处理时间之间的滞后不可避免地会产生数据延迟。因此,Kappa 架构需要一套机制来解决这个问题,例如水印、状态管理、重新处理或回填。 探索数据流模型✦ 1、为什么会出现数据流模型 Lambda和Kappa试图通过集成本质上不兼容的复杂工具来克服2010年代Hadoop生态系统的缺点。这两种方法都难以解决协调批处理和流数据的根本挑战。然而,Lambda和Kappa 为进一步的改进提供了灵感和基础。 统一多个代码路径是管理批处理和流处理的一项重大挑战。即使有了Kappa架构的统一队列和存储层,开发人员也需要使用不同的工具来收集实时统计数据并运行批量聚合作业。今天,他们正在努力应对这一挑战。 2、什么是数据流模型 数据流模型的基本前提是将所有数据视为事件并在不同类型的窗口上执行聚合。实时事件流是无界数据,而批量数据是具有自然窗口的有界事件流。 窗口模式示意图 数据工程师可以选择不同的窗口,例如滑动窗口或会话窗口,以进行实时聚合。数据流模型允许使用几乎相同的代码在同一系统内进行实时和批处理。 “批处理作为流处理的一个特例”的想法已经变得越来越普遍,Flink和Spark等框架也采用了类似的方法。 结语 当然,关于速度模型的数据架构讨论还有另一个用处:适合物联网 (IoT) 的设计选择,在本篇文章中,我们就不再赘述。如何最好地构建我们处理数据的架构,如何对僵化且缓慢的IT遗留系统,进行现代化改造并将其转变为现代数据架构,显然,关于这个问题还尚未有定论。欢迎与我们共同探讨。