博睿数据2021战略发布巡展,开辟IT运维创新路径

2022-08-05

2021年5月26日,由博睿数据举办的“服务可达达者为先·博睿数据2021年战略升级发布巡展”北京站,在北京金茂威斯汀大饭店圆满举行!本次战略升级发布巡展不仅揭开了“数据链DNA”的神秘面纱,更紧扣IT运维发展脉搏,助力企业实现用户体验从“应用可用”到“服务可达”的跨越式进阶。

博睿数据发布仪式


以用户为中心的“服务可达”IT运维体系


博睿数据COO吴静涛直言:“过去20年里都是以应用为中心构建了所有的IT体系,包括整个数据中心的建设、运维体系等。现在到了转变思路的时候了。”

博睿数据COO吴静涛发言


消费主体的变化更加速了这一思路的转变,与80、90后习惯于被动适应不同,Z世代对于产品的体验需求更多体现在定制化和个性化。在Z世代接棒“消费担当”的当下,探索用户体验,已经成为大多数企业的“必修课”。所以,仅仅围绕着“应用可用”的IT运维体系已经无法满足企业数字化转型中提升竞争力的需求。


从“应用可用”到“服务可达”,意味着主视角的颠覆转变。一个是从企业角度出发,而另一个是从用户的角度出发。这需要企业对用户层和业务层有更深入的了解。


从代码到用户全路径打通的“数据链DNA”


作为企业的决策者们面临的挑战在于,近年来随着新技术的不断兴起和发展,以及数字化转型步入深水区,企业需要变革传统IT基础架构的同时,也要不断扩展企业数据获取的触角。架构迭代,数据井喷,企业该如何在利用新技术驱动数字化转型的同时,不断释放应用、网络、数字体验的价值,成为了企业决策者们思考的主要命题之一。


企业的技术团队同样在技术演进的洪流中加速奔跑,云原生、容器化、微服务化、敏捷开发等等,软件定义一切让丰富的应用程序聚集在一起,这些组件可以位于企业的本地基础设施中,可以位于云上以微服务化在容器中运行,数据也来自应用程序、容器、Kubernetes、APP和边缘网络,甚至是某个API,而且这些应用支撑起了企业数字化转型的平台底座,任何的延迟、故障都意味着业务的无法满足。现代化的软件体系和架构为技术和开发团队带来高效、应用质量、易扩展性等优势的同时,也将不可预见的运维复杂性边界拓宽了。


在阐述“服务可达的数据链DNA”时,博睿数据COO吴静涛表示,“相较以往AIOps智能运维概念,服务可达的数据链DNA有着更加领先的含义,其可以打通从代码到用户(Code to Customer)访问的全过程,全数据链探知路径、性能和服务品质,形成一种创新的运维管理模型。”


这一全过程的打通,意味着企业能够多维度、更综合地利用数据,让用户所思更直观,运维管理更便捷,扩大数据本身价值,使其能够真正驱动决策。然而逻辑的不同、数据的多样性,以及微服务、容器等技术推动的现代化应用的发展,让这一过程变得更具挑战。这也是为什么至今只有深耕IT运维13年的博睿数据提出这一解决方式。


在会上,博睿数据华北区域售前总监张俊峰、博睿数据架构师徐驰、博睿数据架构师张冲及博睿数据产品高级总监孙丽,分别解读了实现从代码到用户全路径打通的“数据链DNA”:

数据链DNA架构图


“D”—DEM(Digital Experience Management):


用户数字体验管理,包含客户端APP体验监控、浏览器体验监控、小程序体验监控、浏览器拨测和手机拨测等一系列技术。博睿数据的DEM基于用户会话的监控视角和分析模型,是国内DEM领域监控工具中独家具备了用户会话及全量访问事件的监控和分析能力的产品。


“N”—NPMD(Network Performance Monitoring and Diagnostics):


网络性能监测和诊断,通过网络嗅探、BigIP大数据引擎、Nginx Telemetry等技术,从业务、应用、系统、网络、硬件几个维度分析诊断,实现网络传输的路径发现,异常发现,故障发现。


“A”—APM(Application Performance Management):


应用性能管理通过字节码注入和微服务探针,无需应用代码变更的情况下实现对代码运行效率、SQL调用效率、PaaS API调用逻辑追踪,以及微服务的性能监控。


7种武器提供完善“数据链DNA”技能


为实现数据链DNA每个环节的可用,博睿数据还打造了七种武器:


·客户端拨测/SDK/反嵌JS


通过浏览器和手机真机APP拨测,客户APP的SDK嵌码,Browser/H5/Webview监控,确保服务可达并提升用户体验;


·Edge/CDN节点主动拨测


性能监控,得到使用过程中的实际性能表现,延迟和丢包作为选型依据和性能排查依据;


·云服务提供月报/定制测评


通过每月对云服务商监控提供定期性能报告,成为企业客户对多云服务的议价依据,从而提升企业客户的实际服务能力和可用性;


·门户网页/首屏加载分析


信创环境和传统环境的灰度性能分析;提供专业建议,来提高体验,避免劫持,从而提高可用性;


·NPMD网络性能管理


实时网络流数据捕获分析技术,实现流数据路径判断,快速发现和排除网络上的节点的通讯故障;


·ADTD应用深度追踪


调用逻辑的自动拓扑可视化,快速发现API服务异常,重载过库攻击等现网环境风险;


·APM应用性能管理


通过字节码注入,无需开发变更,在运行环境中实现对代码执行,SQL调用效率的监控,是DevOps的必备技术,也是提升信创平台应用性能的利器。


数据洞察统一智能运维平台Dataview


在采集到不同环节的体验数据、网络数据和代码执行效率数据后,最终通过一体化智能运维平台——Dataview,打破“监控孤岛”,进行信息整合、特征关联,把数据形成可视化信息,呈现在企业面前。


大会现场,中信建投信息技术部总监陶剑峰、51Talk音视频技术总监陈震为我们分享了博睿数据产品在实践中的表现和价值。

中信建投信息技术部总监陶剑峰发言


中信建投信息技术部总监陶剑峰称,博睿数据产品帮助管理者从崩溃率、网络性能、用户会话健康度等指标进行用户性能体验KPI建设,促进客户端性能优化。

51Talk音视频技术总监陈震发言


51Talk音视频技术总监陈震则表示:博睿数据产品完整重现用户使用APP的全部过程,能够精准定位故障发生原因,提升用户体验和业务效果。


数据链DNA


正如本届战略发布会主题“服务可达,达者为先”所传达的核心思想一般,帮助企业实现从用户角度出发,最终落实于服务体验,是提升企业竞争力、维持企业高质量发展的一大利器。


博睿数据在国内率先提出这一理念,不仅在竞争激烈的APM市场中树立了新的标杆,其所倡导全新IT运维体系为企业通过数字化转型驱动“数字经济”开辟了新路径。用行动向我们诠释了“让IT运营更智能”的品牌理念。

文章标签

智能运维

相关文章

FreeMarker template error (DEBUG mode; use RETHROW in production!): The string doesn't match the expected date/time/date-time format. The string to parse was: "2024年3月5日". The expected format was: "MMM d, y". The nested reason given follows: Unparseable date: "2024年3月5日" ---- FTL stack trace ("~" means nesting-related): - Failed at: #if "2024年3月5日"?date lt item.createTi... [in template "themes/halo_quickstarter/post_newsDetail.ftl" at line 106, column 25] ---- Java stack trace (for programmers): ---- freemarker.core._TemplateModelException: [... Exception message was already printed; see it above ...] at freemarker.core.BuiltInsForMultipleTypes$dateBI$DateParser.parse(BuiltInsForMultipleTypes.java:220) at freemarker.core.BuiltInsForMultipleTypes$dateBI$DateParser.getAsDateModel(BuiltInsForMultipleTypes.java:190) at freemarker.core.BuiltInsForMultipleTypes$dateBI$DateParser.getAsDate(BuiltInsForMultipleTypes.java:197) at freemarker.core.EvalUtil.modelToDate(EvalUtil.java:86) at freemarker.core.EvalUtil.compare(EvalUtil.java:270) at freemarker.core.EvalUtil.compare(EvalUtil.java:115) at freemarker.core.ComparisonExpression.evalToBoolean(ComparisonExpression.java:78) at freemarker.core.IfBlock.accept(IfBlock.java:49) at freemarker.core.Environment.visit(Environment.java:370) at freemarker.core.IteratorBlock$IterationContext.executedNestedContentForCollOrSeqListing(IteratorBlock.java:321) at freemarker.core.IteratorBlock$IterationContext.executeNestedContent(IteratorBlock.java:271) at freemarker.core.IteratorBlock$IterationContext.accept(IteratorBlock.java:244) at freemarker.core.Environment.visitIteratorBlock(Environment.java:644) at freemarker.core.IteratorBlock.acceptWithResult(IteratorBlock.java:108) at freemarker.core.IteratorBlock.accept(IteratorBlock.java:94) at freemarker.core.Environment.visit(Environment.java:334) at freemarker.core.Environment.visit(Environment.java:340) at freemarker.core.Environment.visit(Environment.java:340) at freemarker.core.Environment.process(Environment.java:313) at freemarker.template.Template.process(Template.java:383) at org.springframework.web.servlet.view.freemarker.FreeMarkerView.processTemplate(FreeMarkerView.java:391) at org.springframework.web.servlet.view.freemarker.FreeMarkerView.doRender(FreeMarkerView.java:304) at org.springframework.web.servlet.view.freemarker.FreeMarkerView.renderMergedTemplateModel(FreeMarkerView.java:255) at org.springframework.web.servlet.view.AbstractTemplateView.renderMergedOutputModel(AbstractTemplateView.java:179) at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:316) at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1401) at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1145) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1084) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898) at javax.servlet.http.HttpServlet.service(HttpServlet.java:497) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) at javax.servlet.http.HttpServlet.service(HttpServlet.java:584) at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:799) at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1631) at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:230) at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) at run.halo.app.cas.UserInfoFilter.doFilter(UserInfoFilter.java:37) at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) at org.jasig.cas.client.util.AssertionThreadLocalFilter.doFilter(AssertionThreadLocalFilter.java:54) at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) at org.jasig.cas.client.util.HttpServletRequestWrapperFilter.doFilter(HttpServletRequestWrapperFilter.java:75) at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) at run.halo.app.cas.MyAbstractTicketValidationFilter.doFilter(MyAbstractTicketValidationFilter.java:215) at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) at run.halo.app.cas.MyAuthenticationNoLoginFilter.doFilter(MyAuthenticationNoLoginFilter.java:57) at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102) at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102) at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) at run.halo.app.security.filter.ContentFilter.doAuthenticate(ContentFilter.java:69) at run.halo.app.security.filter.AbstractAuthenticationFilter.doFilterInternal(AbstractAuthenticationFilter.java:229) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) at run.halo.app.filter.CorsFilter.doFilter(CorsFilter.java:53) at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) at run.halo.app.filter.LogFilter.doFilterInternal(LogFilter.java:40) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:548) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:600) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624) at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1440) at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:501) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594) at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1355) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) at org.eclipse.jetty.server.Server.handle(Server.java:516) at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:487) at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:732) at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:479) at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277) at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311) at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105) at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:338) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:315) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:173) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131) at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:409) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883) at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034) at java.base/java.lang.Thread.run(Thread.java:834) Caused by: freemarker.core.UnparsableValueException: Unparseable date: "2024年3月5日" at freemarker.core.JavaTemplateDateFormat.parse(JavaTemplateDateFormat.java:51) at freemarker.core.JavaTemplateDateFormat.parse(JavaTemplateDateFormat.java:33) at freemarker.core.BuiltInsForMultipleTypes$dateBI$DateParser.parse(BuiltInsForMultipleTypes.java:213) ... 118 more Caused by: java.text.ParseException: Unparseable date: "2024年3月5日" at java.base/java.text.DateFormat.parse(DateFormat.java:395) at freemarker.core.JavaTemplateDateFormat.parse(JavaTemplateDateFormat.java:49) ... 120 more