Web-系统设计概念-生产-应用的架构 (web系统设计)
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技术创建和管理大型程序 变为可能。
免责声明:本文转载或采集自网络,版权归原作者所有。本网站刊发此文旨在传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及版权、内容等问题,请联系本网,我们将在第一时间删除。同时,本网站不对所刊发内容的准确性、真实性、完整性、及时性、原创性等进行保证,请读者仅作参考,并请自行核实相关内容。对于因使用或依赖本文内容所产生的任何直接或间接损失,本网站不承担任何责任。