当前位置:首页 > 数码 > Web-系统设计概念-生产-应用的架构 (web系统设计)

Web-系统设计概念-生产-应用的架构 (web系统设计)

admin5个月前 (05-02)数码35

Every flawless application you use relies on a complex tapestry of architecture, testing, monitoring, and security measures. Today, we'll explore a very high-level architecture for a production-ready application.

CI/CD Pipeline

Our first critical area is the Continuous Integration and Continuous Deployment - the CI/CD pipeline. This ensures that our code goes from our repository through a series of testing and pipeline checks into our production servers without any manual intervention. It configures platforms like Jenkins or Actions to automate our deployment process.

Interaction with Servers

架构

Once our application is live in production, it needs to handle potentially massive loads of user requests. This is managed by our load balancer and reverse proxy (like Nginx). They make sure user requests are evenly distributed across multiple servers, ensuring a smooth user experience even during traffic spikes.

Backbone: Data Storage and External APIs

Our servers also need to store data. For that, we have an external storage server which doesn't reside on the same production servers. Instead, it's connected over the network. Our servers may also communicate with other services. Moreover, we can have multiple such services, not just a single one.

Monitoring, Logs, and Alerts: The Silent Guardians

To ensure everything is running smoothly, we have a logging and monitoring system that keeps a watchful eye on every minute interaction, storing logs and analyzing the data. It's common practice to have logs stored on an external service, typically not on our main production servers. For the backend, tools like PM2 can be used for logging and monitoring. For the frontend, platforms like Sentry can be used for capturing and reporting errors in real-time.

AlertingService

What happens when things don't go as planned, when our logging system detects failed requests or anomalies? It first notifies our alerting service. Then, push notifications are sent out, keeping our users in the loop. From a general "Something's wrong" to a specific "Payments are failing," effective communication ensures users aren't left in the dark, fostering trust and reliability. Modern practice is to have these alerts directly integrated into platforms we're already using, such as Slack. Imagine a dedicated Slack channel where alerts pop up the moment an issue arises. This allows developers to take action almost immediately, resolving root causes before the problem escalates.

Debugging in Production

After the alert, developers need to debug the issue in the production environment.

  • Log Inspection: First, the issue needs to be identified. Those logs we mentioned earlier? They're our tool of choice. Developers sift through them, looking for patterns or anomalies that could point to the source of the problem.
  • Recreate in a Safe Environment: Golden rule - never debug directly in production. Instead, developers recreate the issue in a 'staging' or 'test' environment. This ensures users aren't affected by the debugging process. Developers use tools to inspect the application as it runs and start debugging.
  • Hotfixes: Once the bug is identified, a 'hotfix' is rolled out. This is a quick, temporary fix designed to get things working again. Think of it as a bandage before a more permanent solution can be implemented.

Conclusion

Building and maintaining production-ready applications is a complex task that demands careful planning and execution. By understanding the fundamental concepts outlined in this high-level overview, you can lay the groundwork for a reliable, scalable, and secure application architecture.


web应用程序属于什么架构体系?

web应用程序属于B/S架构。

B/S结构(Browser/Server,浏览器/服务器模式),是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。客户机上只要安装一个浏览器,如Chrome、Safari、MicrosoftEdge、NetscapeNavigator或InternetExplorer,服务器安装SQLServer、Oracle、MYSQL等数据库。浏览器通过WebServer同数据库进行数据交互。

web前端开源框架有哪些

目前常用的一些开源前端的框架如下:1. BootstrapBoostrap绝对是目前最流行用得最广泛的一款框架。 它是一套优美,直观并且给力的web设计工具包,可以用来开发跨浏览器兼容并且美观大气的页面。 它提供了很多流行的样式简洁的UI组件,栅格系统以及一些常用的JavaScript插件。 Bootstrap是用动态语言LESS写的,主要包括四部分的内容:脚手架——全局样式,响应式的12列栅格布局系统。 记住Bootstrap在默认情况下并不包括响应式布局的功能。 因此,如果你的设计需要实现响应式布局,那么你需要手动开启这项功能。 基础CSS——包括基础的HTML页面要素,比如表格(table),表单(form),按钮(button),以及图片(image),基础CSS为这些要素提供了优雅,一致的多种样式。 组件——收集了大量可以重用的组件,如下拉菜单(dropdowns),按钮组(button groups),导航面板(navigation control)——包括:tabs,pills,lists标签,面包屑导航(breadcrumbs)以及页码(pagination),缩略图(thumbnails),进度条(progress bars),媒体对象(media objects)等等。 JavaScript——包括一系列jQuery的插件,这些插件可以实现组件的动态页面效果。 插件主要包括模态窗口(modals),提示效果(tool tips),“泡芙”效果(popovers),滚动监控(scrollspy),旋转木马(carousel),输入提示(typeahead),等等。 Bootstrap已经足够强大,能够实现各种形式的 Web 界面。 为了更加方便地利用Bootstrap进行开发,很多工具和资源可以用来配合使用,下面列举了其中的一部分工具和资源。 jQuery UI Bootstrap —— 对于jQuery和Bootstrap爱好者来说这是个非常好的资源,能够把 Bootstrap的清爽界面组件引入到jQuery UI中。 jQuery Mobile Bootstrap Theme —— 和上面提到的jQuery UI主题类似,这是一个为jQuery mobile建立的主题。 如果你想让用Bootstrap开发的网站在手机端也可以优雅访问,那么这个资源对你来说很方便易用。 Fuel UX —— 它为Bootstrap添加了一些轻量的JavaScript控件。 Fuel UI 安装,修改,更新以及优化都很简单方便。 —— Bootstrap提供了自己的几种界面风格,StyleBootstrap提供了更多的配色选项,并且你可以给每个组件都应用不同的配色。 BootSwatchr —— 利用这个工具你可以立刻查看主题修改后的效果。 对于每一次变动的效果,这个应用都会生成一个唯一的URL方便你与他人分享,你也可以在任意时刻修改你的主题。 Bootswatch —— 提供大量免费的Bootstrap主题。 Bootsnipp —— 在线前端框架交互组件制作工具,是一个供给设计师和开发者的基于Bootstrap HTML/CSS/JavaScript 架构的免费元素。 LayoutIt —— 通过界面拖放生成器简便快捷地创建基于Bootstrap的前端代码。 通过拖放动作将Bootstrap风格的组件加入到你的个人设计里并且可以方便地修改他们的属性,简单便捷。 2、flexApache基金会发布了Flex 4.8版本,这是Adobe将Flex捐献给Apache基金会后发布的第一个版本需要注意的是2014年03月10日,Apache Flex技术社区发布了全新的Apache Flex 4.12.0版本,该版本是Apache Flex 4.11.0的升级版本,改进的功能包括:◆支持最新版本的Flash Player◆支持最新的AIR运行时◆改进了内存占用和性能◆改善了针对移动平台的组件的样式◆支持iOS7系统◆修复了超过80个漏洞[4]2014年05月10日,Apache对4.12.0版本进行优化改进,发布了Flex 4.12.1,新版本加入对全新Flash Player及Air运行时的支持,改进对移动媒体查询的支持,并修复20多个Bug。 3、easyuieasyui帮助你构建你的web应用更加容易。 它是一个基于jquery的插件,开发出来的一套轻量级的ui框架,非常小巧而且功能丰富。 但是她有一个最大的问题就是代码只能找到以前的开源的版本,到了1.2以后的版本源代码都是经过混淆的,如果遇到问题修改起来会非常麻烦!不过一个比较大的优势是开源免费,并且界面做的还说的过去!4、jQuery UIjQuery UI 是一套 jQuery 的页面 UI 插件,包含很多种常用的页面空间,例如 Tabs(如本站首页右上角部分) 、拉帘效果(本站首页左上角)、对话框、拖放效果、日期选择、颜色选择、数据排序、窗体大小调整等等非常多的内容。 功能非常全面,界面也挺漂亮的,可以整体使用,也可以分开使用其中的几个模块,免费开源!5、DWZDWZ富客户端框架(jQuery RIA framework), 是中国人自己开发的基于jQuery实现的Ajax RIA开源框架.设计目标是简单实用,快速开发,降低ajax开发成本。 欢迎大家提出建议,我们将在下一版本中进一步调整和完善功能.共同推进国内整体ajax开发水平。 毕竟是国产的,支持一下,而且源码完全公开,可以选择一下!不过性能怎么样不敢确定!6、GWTGoogle 网页工具包——GWT 提供了一组基于Java语言的开发包,这个开发包的设计参考Java AWT包设计,类命名规则、接口设计、事件监听等都和AWT非常类似。 熟悉Java AWT的开发者不需要花费多大的力气就能够快速的理解GWT开发工具包,将更多地时间投入到GWT应用的开发过程中。 你不用去了解这样那样的javascript框架,通过java你就可以写出功能丰富的界面,可以做单元测试,毕竟是google的产品,严重支持一下!7、YUIYahoo! UI Library (YUI) 是一个开放源代码的 JavaScript 函数库,为了能建立一个高互动的网页,它采用了AJAX, DHTML 和 DOM 等程式码技术。 它也包含了许多 CSS 资源。 使用授权为 BSD许可证,基本上没怎么研究过!YUI Compressor倒是挺出名的,这套UI库不知道应用的情况怎么样!10、SenchaSencha 是由 ExtJS、jQTouch 以及 Raphael 三个项目合并而成的一个新项目。 大公司的框架,并且是几样库的强强联合,值得推荐!8、Dojo在国内应用好像不是很广,不过性能上应该没问题。 Dojo是一个用javascript语言实现的开源DHTML工具包。 有多个基金会的支持,包括IBM和SUN,都是软件界的泰斗,值得信赖!9、ZKZK是 一套以 AJAX/XUL/Java 为基础的网页应用程式开发框架,用于丰富网页应用程式的使用接口。 最大的好处是,在设计AJAX网络应用程式时,轻松简便的操作就像设计桌面程式一样。 ZK包含了一个以AJAX为基础、事件驱动(event-driven)、高互动性的引擎,同时还提供了多样丰富、可重复使用的XUL与HTML组件,以 及以 XML 为基础的使用接口设计语言 ZK User-interfaces Markup Language (ZUML)。 功能丰富,全面,文档齐全,而且升级了很多次,非常值得推荐!10、OperaMasks-UIOperaMasks- UI是OperaMasks团队 2011下半年打造的一款轻量级前端JS组件库,旨在提供一款学习曲线低、定制性灵活、样式统一,且多浏览器支持、覆盖企业业务场景的前端 JavaScript UI组件库。 目前,该团队已将这一产品以LGPL 开源协议开放给社区。 文档丰富,功能齐全,而且很容易使用和开发!而且是国产的哟!11、JavaFXSun 公司(已于2009年被Oracle公司收购)在2008年12月05日发布了JavaFX技术的正式版,它使您能利用 JavaFX 编程语言开发富互联网应用程序(RIA)。 JavaFX Script 编程语言(以下称为JavaFX)是Sun微系统公司开发的一种declarative, statically typed(声明性的、静态类型)脚本语言。 JavaFX技术有着良好的前景,包括可以直接调用Java API的能力。 因为 JavaFX Script是静态类型,它同样具有结构化代码、重用性和封装性,如包、类、继承和单独编译和发布单元,这些特性使得使用Java技术创建和管理大型程序 变为可能。

免责声明:本文转载或采集自网络,版权归原作者所有。本网站刊发此文旨在传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及版权、内容等问题,请联系本网,我们将在第一时间删除。同时,本网站不对所刊发内容的准确性、真实性、完整性、及时性、原创性等进行保证,请读者仅作参考,并请自行核实相关内容。对于因使用或依赖本文内容所产生的任何直接或间接损失,本网站不承担任何责任。

标签: 架构

“Web-系统设计概念-生产-应用的架构 (web系统设计)” 的相关文章

释放CPU与内存性能桎梏的终极解决方案-NUMA架构 (释放cpu性能)

释放CPU与内存性能桎梏的终极解决方案-NUMA架构 (释放cpu性能)

简介 NUMA(Non-Uniform Memory Access)是一种计算机架构,其中每个处理核心或处理器都拥有自己的本地内存。与统一内存访问(UMA)架构不同,在 UMA 架构中,所有...

你自称懂架构-架构设计的真谛!-来这里看看 (架构怎么理解)

你自称懂架构-架构设计的真谛!-来这里看看 (架构怎么理解)

1. 引言 抢红包已经成为春节期间不可或缺的娱乐活动,自2015年微信推出红包功能以来,每年参与抢红包的用户数和红包发放量都呈爆发式增长。微信红包系统的背后蕴含着怎样的技术架构和设计理念,一...

哈啰云原生架构落地实践探索 (哈罗云起)

哈啰云原生架构落地实践探索 (哈罗云起)

全网容器化后一线研发会面临一系列使用问题,包括时机、容量、效率和成本问题,弹性伸缩是云原生容器化后的必然技术选择。 当时第一时间考虑用原生HPA组件,但在实际调研和小规模使用的时候发现了很多...

微服务架构中的不可或缺的服务治理工具-Eureka (微服务架构中如何处理服务间的通信)

微服务架构中的不可或缺的服务治理工具-Eureka (微服务架构中如何处理服务间的通信)

引言 Eureka是Netflix OSS(开源软件)项目的一部分,它是一个用于实现微服务架构中的服务注册和发现的开源工具。在当今庞大且复杂的微服务系统中,Eureka扮演着至关重要的角色,帮助...

掌控复杂性-创造灵活可扩展的系统-六边形架构 (复杂事物掌控力)

掌控复杂性-创造灵活可扩展的系统-六边形架构 (复杂事物掌控力)

六边形架构是一种架构模式,将外部系统与核心应用程序分隔开来。它的思想很简单:从一个六边形开始,然后应用端口和适配器。 六边形架构的六个边 六边形有六个边,但六边形的形状本身并没有特别含...

架构中的低成本约束 (架构中的低成本是指)

架构中的低成本约束 (架构中的低成本是指)

低成本架构:创新与挑战的平衡 引言 在架构设计过程中,成本通常被视为一项重要约束或非功能目标。与高并发、高性能、高可用和安全性等其他非功能目标类似,低成本贯穿整个架构设计流程。本文探讨了实现低成...

从单体到分布式-全面解析-一文搞懂微服务架构演进 (单体可分为)

从单体到分布式-全面解析-一文搞懂微服务架构演进 (单体可分为)

简介 微服务架构是一种软件开发方法,将应用程序拆分为较小的、独立的服务,这些服务可以单独部署和维护。该架构旨在提高灵活性、可扩展性和可靠性。 微服务组件 服务:独立部署和维...

最佳实践和挑战-平台工程团队的架构和设计注意事项 (最佳实践的定义)

最佳实践和挑战-平台工程团队的架构和设计注意事项 (最佳实践的定义)

什么是平台工程? 平台工程是一种构建、维护和管理服务和工具的实践,这些服务和工具可供组织中的其他团队使用。平台工程团队创建标准化、可重用的组件,以便其他团队可以专注于构建应用程序和产品,而...