Salesforce架构师的网络最佳实践”

  • 时间:2018-07-15 23:03 作者:智能时刻 来源:智能时刻 阅读:1381
  • 扫一扫,手机访问
摘要:2014年7月升级对于在Salesforce平台上实现应使用程序的架构师或者开发人员来说,在分析应使用程序性可以时,网络性可以测试变得越来越重要。本指南涵盖了帮助您识别风险并找到网络相关挑战的处理方案的最佳实践。详情分析应使用程序性可以和运行性可以测试是关键的“试验室”活动,以验证您的Apex和SO
Salesforce架构师的网络最佳实践”

2014年7月升级

对于在Salesforce平台上实现应使用程序的架构师或者开发人员来说,在分析应使用程序性可以时,网络性可以测试变得越来越重要。本指南涵盖了帮助您识别风险并找到网络相关挑战的处理方案的最佳实践。

详情

分析应使用程序性可以和运行性可以测试是关键的“试验室”活动,以验证您的Apex和SOQL代码是为可扩展性而优化的,Visualforce页面设计是遵循最佳实践的。但是,为了确保您的应使用程序已经为现实世界做好准备,您还需要考虑到使用户将从具备不同级别网络连接的不同地理位置访问它。作为架构师,您的任务是成功地启动一个应使用程序,即便用这种网络变体,该应使用程序也可以运行良好。您一定不希望在产品上线后听到终端使用户说“为什么我的页面加载时间这么长,而我的同事能在一秒钟内加载它?”继续阅读,学习最佳实践,帮助您识别风险,并作为架构师找到处理网络相关挑战的方法。

评估Salesforce使用户的网络性可以

假如有人问“为什么我的页面加载时间这么长,而我的同事能在一秒钟内加载它?”“使用户的设置可可以不同,呈现内容的时间和大小也不一样。”为了确保你在将苹果和苹果进行比较,并将重点放在网络上,你必需有一个理想的受控设置:

在两个或者多个不同的位置至少有两个几乎相同的终端(PCs)。在地理上更接近Salesforce数据中心(即:,以及其余远程站点(例如。)。

用相同的浏览器和使用户(或者使用户集)访问目标(例如,Visualforce页面),以排除尽可可以多的变量。

用相同的工具来度量时间(以下部分将对此进行解释)。

在相似的时间范围内运行测试,以评估与网络带宽相关的问题,并屡次排除缓存影响。

假如您无法访问远程位置来运行测试,那么能用Charles或者Shunra之类的工具以及netem和ipfw之类的实使用工具来人为地增加推迟和带宽限制,以模拟不同的网络环境。

一旦有了受控的测试设置,您即可以收集基准统计数据并用它们来迭代地评估性可以调优工作。不论你如何设置你的测试,或者者你选择用什么工具来运行它们,我们最终追求的是两件事:

  • 减少负载。
  • 减少网络推迟。

为了简单起见,我们将在下面几节中逐一探讨。但是,请记住,这两者都要看,而不仅仅是一个。

减少负载

减少有效载荷的目标是减少网络时间。因为您正在测试和比较内容大小一致的相同页面,因而在服务器端和在用户端呈现的时间应该非常类似。下载资源所花费的时间差异越大,与请求的总持续时间相比,它所占的比例越大,通过检查页面设计和减少负载,您可可以会得到更多的网络性可以改进。

您不需要用花哨的应使用程序性可以监视(APM)工具来评估负载。您能用免费的浏览器工具来收集关键指标。Chrome、Firefox和Internet Explorer都有相似的工具,它们能为您提供从页面请求发送到Salesforce到使用户感知到页面被“加载”到整个呈现过程完成的时间的图形表示。您还能用Fiddler或者Charles等工具进行高级分析。

当这样做时,不要太过迷于字节大小,工具会显示每个被下载的资源。交换数据不会按位(或者按字节交换数据)进行。它们以分组的形式通过电线传送。例如,假如您解决了几个映像文件以减少这里和那里的少量字节,但是没有看到性可以有多大的提高,很可可以是由于您没有减少每个资源下载的数据包的实际数量。假如你有一个高度图形化,动态页面有很多资源,比方图像、CSS或者者JS文件,结合他们或者拼接,而后削减他们可可以会有更大的效果比减少一小部分的大小和依然需要十(希望不是数百)资源并行下载。您还能用其余通使用的web应使用程序优化技术来最小化下载负载、减少往返行程和握手等。

更重要的是,确保检查Visualforce性可以最佳实践,并在Salesforce1平台上构建高效的Visualforce页面。例如,删除不必要的Visualforce标记,这会添加页面视图状态的大小。通过仔细选择使用户所需的字段和用诸如分页之类的技术,限制在页面上加载和显示的数据量。假如您有一个多步骤的向导应使用程序,该应使用程序将引导使用户遍历一个流程,请考虑实现一个处理方案,使页面之间的转换成为无状态。假如您有一个允许使用户用大量字段升级记录的表单,那么只发送delta信息,而不发送整个数据集。

减少网络推迟

当您通过优化应使用程序来减少目标页面的有效负载时,您还应该在得出结论之前查看网络层,您无法使最终使用户更接近Salesforce服务器。

您能用诸如Traceroute (Traceroute)或者更高级的工具来进行更深入的分析。在salesforce,我们有几个第三方工具能持续地监视和收集各种网络相关的度量,我们还能根据需要部署这些工具,以便从远程站点处理问题(请联络用户支持以取得帮助)。这些工具能让我们很好地理解RTT、BGP路由以及帮助发现问题区域的包丢失率等细节。下面几节将解释如何用这些度量来确定如何减少网络时间。您最有可可以参加您的IT、网络工程或者ISP团队,以获取统计数据并进行深入分析。

减少推迟

用Salesforce时,大多数浏览器页面或者移动应使用程序请求都是突发的事务,每个请求都需要屡次往返Salesforce服务器,以建立连接、发送/接收数据,并确认交换的每个数据包。

从网络的角度来看,你应该注意两个关键方面:

  • 实例不是分布在多个数据中心(除了在地理远程数据中心待命的灾难恢复克隆之外)。换句话说,在任何特定的时刻,使用户事务都是连接到我们的数据中心的。
  • Salesforce.com采使用与经营商无关的体系结构,它通过连接到多个行业领先的网络供应商,这些供应商直接位于每个数据中心边界的边缘,拥有高带宽的骨干。这提供了冗余和灵活性,以便为通过Internet连接的使用户提供最佳的网络性可以。

尽管因为使用户和Salesforce之间的地理距离而添加的推迟是固定的,但是可可以有机会减少特定于使用户网络的“拓扑”推迟。确保你至少涵盖以下内容:

  • 优化BGP - BGP路由在确定数据包通过internet发送时的推迟方面起着重要作使用。在极端的情况下,您的数据包能通过更长的方式在全球发送到Salesforce,也能跳过过多的中继点,每次都添加了推迟。尽管优化BGP有时更像是一门艺术,而非科学,但我们在仔细研究和改变网络路由偏好之后,看到了巨大的收获。用网络监视和分析工具,比方千分之一和Appneta提供了发现问题的洞察力。
  • 避免不稳固路径——最短路径不肯定是最好的路径。考虑因为网络稳固性问题的影响,如数据包丢失和数据抖动。假如任何一端在给定的时间范围内都没有收到预期的包(例如,放弃等待另一端确实认),那么它将重新提交最后一个包,而后等待屡次,每次都乘以并添加总体推迟。因为RTOs和SRTTs的添加,地理推迟的影响变得更糟。与BGP分析相似,监视工具能识别具备稳固性问题的路径。基于调查,您能与您的网络团队和isp一起优化路由,以修复或者避免已知的具备稳固性问题的路径。这将导致数据包重新传输的减少,这意味着在冗余的数据包交换上白费的时间更少。
  • 识别瓶颈——您的网络中可可以存在一个正在添加推迟的中间设施。通过用Wireshark之类的工具,并与您的IT/网络团队和Salesforce支持紧密合作,包级跟踪分析可可以会发现与次优或者在您的办公室或者托管数据中心中配置不当的设施相关的优化机会。您可可以还会发现,除了salesforce提供的资源之外,对其余资源的访问也显示出性可以问题。
  • 避免重定向——每个重定向增加到整个RTT中,并导致许多往返重定向服务器的往返,以完成SSL握手。评估并避免不必要的重定向。例如,启使用My Domain并将登录请求指向My Domain URL,而不是常规登录页面。假如已经实现了SSO,请确保将SAML断言发送回My Domain端点。请参阅本指南,理解能应使用于减少因为重定向造成的推迟的其余技术。

利使用CDN

假如您有一个构建在Force.com站点上的公共页面,并且没有通过SSL提供服务,salesforce提供了一个缓存选项,允许您利使用我们合作伙伴的内容交付网络(CDN)。CDN通过从地理位置更靠近使用户的缓存服务器上提供静态资源来提高页面加载时间。这种方法对减少网络推迟也有相似的效果。

带宽利使用率最大化

假如您知道您有一个本地分支办公室,它的吞吐量有限,许多使用户共享这条线,那么这可可以是需要研究的内容。然而,让1Gbps企业骨干离开您的办公室并不意味着您不必担心带宽,由于带宽利使用率受到推迟和TCP窗口大小的限制。对于涉及到的所有各方来说,控制TCP窗口大小配置可可以并不容易,但是对于存在问题的用户机PC来说,这是一个值得研究的调优机会。有关细节,请阅读下面的内容。要理解更多关于用salesforce的带宽需求,请阅读本文的帮助文章。

集成设计注意事项

假如您将Salesforce之外的服务集成为应使用程序设计的一部分,请考虑以下内容:

  • 能用mashup (i-frame)技术直接与用户端进行调使用,而不是通过salesforce平台进行屡次往返。这种方法对减少网络推迟也有相似的效果。
  • 握手和数据传输最小化(通过批解决和压缩)以减少有效负载也很重要。应该仔细调整超时设置,以平衡推迟,避免占使用连接太长时间。对于API调使用,并行化(假如可可以的话)能帮助减轻推迟的少量负面影响。
  • 幂等性也是一个关键的设计考虑因素,尤其是在网络连接不佳的情况下。您应该假设在完成之前任何事务都可可以失败,并且所有来自远程服务器/服务的请求都应该工作,并且只工作一次,以允许多个重试,而不会带来数据完整性问题。

总结

确保您的页面加载时间目标不仅在您的开发试验室设置中得到满足,而且对于具备额外推迟或者次优网络连接的远程使用户也是如此。研究web页面优化技术以及消除网络瓶颈以减少网络时间。这将确保您不会听到终端使用户“为什么我的页面加载时间这么长?”

  • 全部评论(0)
最新发布的资讯信息
【系统环境|】2FA验证器 验证码如何登录(2024-04-01 20:18)
【系统环境|】怎么做才能建设好外贸网站?(2023-12-20 10:05)
【系统环境|数据库】 潮玩宇宙游戏道具收集方法(2023-12-12 16:13)
【系统环境|】遥遥领先!青否数字人直播系统5.0发布,支持真人接管实时驱动!(2023-10-12 17:31)
【系统环境|服务器应用】克隆自己的数字人形象需要几步?(2023-09-20 17:13)
【系统环境|】Tiktok登录教程(2023-02-13 14:17)
【系统环境|】ZORRO佐罗软件安装教程及一键新机使用方法详细简介(2023-02-10 21:56)
【系统环境|】阿里云 centos 云盘扩容命令(2023-01-10 16:35)
【系统环境|】补单系统搭建补单源码搭建(2022-05-18 11:35)
【系统环境|服务器应用】高端显卡再度登上热搜,竟然是因为“断崖式”的降价(2022-04-12 19:47)
手机二维码手机访问领取大礼包
返回顶部