如何设计你的应用,能够在系统错误时做到自我修复?在分布式系统中,会经常遇到错误.硬件也会遇到异常情况.网络有时会出现短暂的错误.整个地区出现了服务中断.即便如此,关于这些问题的方案也是要提前规划的.因此,需要设计一个能够在错误出现时完成自我修复的系统,主要包括以下3个部分:发现错误.正确的对待错误.使用日志并监控错误,提高可操控性.对故障类型的响应取决于应用的可用性的需求.例如,如果你需要系统是高可用的,你可能会希望在故障发生时,系统自动切换到辅助区域.然而,这种部署比单一区域的价格高的多.而且…
nodejs 实践:express 最佳实践系列 nodejs 实践:express 最佳实践(一) 项目结构 nodejs 实践:express 最佳实践(二) 中间件 nodejs 实践:express 最佳实践(三) express 解析 nodejs 实践:express 最佳实践(四) express-session 解析 nodejs 实践:express 最佳实践(五) connect解析 nodejs 实践:express 最佳实践(六) express 自省获得所有的路由 no…
[摘要]仓储管理存在四大细分场景:出入库管理.盘点.分拣和货物跟踪.本系列将介绍利用华为云IOT全栈云服务,端侧采用华为收发分离式RFID解决方案,打造端到端到IOT智慧仓储解决方案的最佳实践. 仓储是什么? 仓储,是物流生命周期很重要的一部分,首先了解什么物流. 物流,顾名思义“物的流通”,指从物品的供应地向接收地流通,是一个根据实际需要,将运输.核算.储存.装卸搬运.包装.流通加工.配送.信息处理等功能有机结合起来实现用户要求的复杂过程. 在现代物流流程中,一般会经历如下几个环节: 工厂根据…
赵化冰,腾讯云高级工程师,Istio Member,ServiceMesher 管理委员,Istio 项目贡献者,热衷于开源.网络和云计算.目前主要从事服务网格的开源和研发工作. 引言 TCM(Tencent Cloud Mesh)是腾讯云上提供的基于Istio 进行增强,和 Istio API 完全兼容的 Service Mesh 托管服务,可以帮助用户以较小的迁移成本和维护代价快速利用到 Service Mesh 提供的流量管理和服务治理能力.本系列文章将介绍 TCM 上的最佳实践,本文将介…
      本文由海水的味道编译整理,转载请注明译者和出处,请勿用于商业用途! 点标记语法 属性和幂等方法(多次调用和一次调用返回的结果相同)使用点标记语法访问,其他的情况使用方括号标记语法. 良好的风格: view.backgroundColor = [UIColor orangeColor]; [UIApplication sharedApplication].delegate; 不良的风格: [view setBackgroundColor:[UIColor orangeColor]];…
一.有效组织CSS代码 规划组织CSS代码:组织CSS代码文件,所有的CSS都可以分为2类,通用类和业务类.代码的组织应该把通用类和业务类的代码放在不同的目录中. 模块内部的另一样式规则:样式声明的顺序是按照模块中元素的层级关系来处理,从父级元素开始,如果是同一级元素则按照元素在页面的位置从上到下.从坐到右地定义对应的样式.如果多个公用,则先声明公用的样式,然后声明个体样式. CSS排序实践: 对CSS样式排序 推荐按样式属性功能分组排序 推荐在CSS样式代码编写完成并准备嵌入的时候排序 使用如…
一.常用的前端文件的组织结构: 1.js (放置JavaScript代码) lib(放置框架JavaScript文件) custom.js 2.css(放置CSS样式代码) lib(放置框架CSS文件) images(放置用于样式中的背景图) reset.css( 统一元素默认样式的样式文件) custom.css(业务相关样式文件) 3.resource(放置页面图片文件以及其他类型资源文件) 4.index.html 代码文件整体按照文件类型的不同归类,同一类型的代码文件则需要安装具体的业务…
Web前端开发最佳实践(1):前端开发概述 Web前端开发最佳实践(2):前端代码重构 Web前端开发最佳实践(3):前端代码和资源的压缩与合并 Web前端开发最佳实践(4):在页面中添加必要的meta信息 Web前端开发最佳实践(5):正确闭合HTML标签,停止使用不标准的标签和属性 Web前端开发最佳实践(6):过时的块状元素和行内元素 Web前端开发最佳实践(7):使用合理的技术方案来构建小图标 Web前端开发最佳实践(8):还没有给CSS样式排序?其实你可以更专业一些 Web前端开发最佳…
保持冗余确保你的应用的部署体系是有冗余的,以避免单一节点失败的情况.一个弹性良好的系统可以灵活的绕过系统故障.找出应用中(请求执行)的关键路径.路径中的每个节点是否都有冗余?子系统失败时,系统能否有效的转移故障?也要考虑到业务需求.每个(节点的)冗余都会导致额外的开销和复杂度.你的架构应该考虑到业务需求的标准,例如,目标恢复时间(Recovery time objective).再如,多区域部署肯定比单区域部署开销大,并且更难管理.需要有相应的故障转移和故障恢复的方案.对于特殊业务需求,额外的开…
一.养成良好的编码习惯,提高可维护性 1.避免定义全局变量和函数,解决全局变量而导致的代码“污染”最简单的额方法就是把变量和方法封装在一个变量对象上,使其变成对象的属性: var myCurrentAction = { length : 0 , init : function(){}, action : function(){} } 还可以将全局的变量包含在一个局部作用域中,然后在这个作用域中完成这些变量的定义以及变量使用的逻辑: (function(){ var length = 0; fun…
一.HTML语义化 HTML5中增加了很多标签都是基于此类原则设计的(article   nav  header  footer).页面标签语义化的优点是使得搜索引擎以及第三方抓包工具等更容易读懂页面代码.提高可读性. 如果图片是作为网页内容的一部分,则应该使用<img>元素,如果图片仅仅是起装饰作用,则应该使用背景图方式. 给空标签添加隐藏文字,用于说明表情帝额实际功能(使用text-indent达到隐藏文字的目的). 在页面内容的标题部分使用<hx>标签. 页面中只使用一个&l…
一.验证代码是否符合标准 优点: 标准的页面会保证浏览器正确的渲染 网页能更容易被搜索引擎搜索,提高网站的搜索排名 提高网站的易用性 网页更好维护和扩展 常用工具: W3 Validator HTML Validator(Firefox) 二.常用规范 自闭合标签:area  base br col command embed hr img input keygrn link meta param source track wbr 过时标签不再使用:basefont  big  center f…
KVM克隆和KVM静态迁移 KVM克隆 上一章我们已经有了一个合用的虚拟机镜像,现在我们需要用这个KVM镜像大量的创建和部署 virt-clone就是做这个用的.它简化了我们克隆KVM的步骤. 首先停掉我们准备clone的模板 virsh shutdown mykvm1 用mykvm1作为模板,创建mykvm2 virt-clone -o mykvm1 -n mykvm2 -f /kvm-data/kvm/mykvm2.qcow2 virt-clone命令实质是修改 kvm的宿主机侧参数, 新的…
创建KVM及KVM优化 把KVM优化与KVM创建放在一起,是因为我们创建的KVM是要用在生产环境中,所以基础优化工作是必备的. 创建KVM 创建系统盘, 大小: 操作系统通常都不到10G,所以系统盘20G-30G 类型: 建议qcow2,支持快照,优化后性能基本达到宿主机的80%以上 qemu-img create -f qcow2 /kvm-data/kvm/privi_disk.qcow2 30G 安装操作系统 virt-install --virt-type kvm --cdrom=/ho…
KVM宿主机配置 系统环境:ubuntu16, bond0 业务网口 bond1 管理网口+存储网口 安装KVM环境支持 sudo apt-get install qemu-kvm sudo apt-get install qemu sudo apt-get install libvirt-bin sudo apt-get install virtinst 创建网桥 在bond0上建网桥br0, 在bond1上建网桥br1 配置如下: auto br0 iface br0 inet static…
Martin Fowler在<企业应用架构模式>一书中写道: I found this(business logic) a curious term because there are few things that are less logical than business logic. 初略翻译过来可以理解为:业务逻辑是很没有逻辑的逻辑. 的确,很多时候软件的业务逻辑是无法通过推理而得到的,有时甚至是被臆想出来的.这样的结果使得原本已经很复杂的业务变得更加复杂而难以理解.而在具体编码实现…
前言 对于项目版本管理,你是否存在这样的痛点:项目分支多而杂不好管理,git log界面commit信息错乱复杂无规范,版本回退不知道选择什么版本合适--. 项目版本管理的最佳实践系列,笔者将以两篇文章的形式展开介绍(即基础篇与进阶篇).本文为gitflow版本管理的最佳实践-基础篇.基础篇主要介绍git应用于生产的基本流程与怎么使用gitflow管理你的项目版本线(适用于敏捷迭代的项目管理场景下).进阶篇 将着重介绍gitflow+jenkins+docker+DevOps+敏捷Scrum 完…
在新的 JSP 最佳实践系列的前一篇文章中,您了解了如何使用 JSP include 伪指令将诸如页眉.页脚和导航组件之类的静态内容包含到 Web 页面中.和服务器端包含一样,JSP include 伪指令允许某个页面从另一个页面提取内容或数据.清单 1 重温了 include 伪指令. 清单 1. JSP include 伪指令 <![CDATA[ <%@ page language="java" contentType="text/html" %&g…
body{ font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI",Tahoma,Helvetica,Sans-Serif,"Microsoft YaHei", Georgia,Helvetica,Arial,sans-serif,宋体, PMingLiU,serif; font-size: 10.5pt; line-height: 1.5;}…
突然想写这一篇Git的使用心得,主要有几个原因,其一是自己使用Git也有快3年时间了,其间自己经历过一些坑,也有迷茫的时候,在呆过的大大小小的团队中,其实每个人也都并不是Git专家,很多对于流程以及Git本身的理解,还处于一个比较混乱的地带.自己写这篇文章希望能抛砖引玉,在总结自己得失的同时,能给大家带来更深层次的思考. 直接进入主题,经过这么多年的实践,多次想避开Git flow寻找更简单的流程,每次自认为找到了捷径,但事实上都发现有这样或者那样更多的问题,所以,我认为最佳的Git实践,仍然得…
前言 本文是Hadoop最佳实践系列第二篇,上一篇为<Hadoop管理员的十个最佳实践>. MapRuduce开发对于大多数程序员都会觉得略显复杂,运行一个WordCount(Hadoop中hello word程序)不仅要熟悉MapRuduce模型,还要了解Linux命令(尽管有Cygwin,但在Windows下运行MapRuduce仍然很麻烦),此外还要学习程序的打包.部署.提交job.调试等技能,这足以让很多学习者望而退步. 所以如何提高MapReduce开发效率便成了大家很关注的问题.但…
目录 系列文章 领域服务 应用服务 学习帮助 系列文章 基于ABP落地领域驱动设计-00.目录和前言 基于ABP落地领域驱动设计-01.全景图 基于ABP落地领域驱动设计-02.聚合和聚合根的最佳实践和原则 基于ABP落地领域驱动设计-03.仓储和规约最佳实践和原则 基于ABP落地领域驱动设计-04.领域服务和应用服务的最佳实践和原则 基于ABP落地领域驱动设计-05.实体创建和更新最佳实践 基于ABP落地领域驱动设计-06.正确区分领域逻辑和应用逻辑 围绕DDD和ABP Framework两个…
目录 系列文章 数据传输对象 输入DTO最佳实践 不要在输入DTO中定义不使用的属性 不要重用输入DTO 输入DTO中验证逻辑 输出DTO最佳实践 对象映射 学习帮助 系列文章 基于ABP落地领域驱动设计-00.目录和前言 基于ABP落地领域驱动设计-01.全景图 基于ABP落地领域驱动设计-02.聚合和聚合根的最佳实践和原则 基于ABP落地领域驱动设计-03.仓储和规约最佳实践和原则 基于ABP落地领域驱动设计-04.领域服务和应用服务的最佳实践和原则 基于ABP落地领域驱动设计-05.实体创…
本文参考自官方文档.原文链接 大量数据部署对Salesforce的影响 当用户需要在Salesforce中部署大量数据的时候,部署的过程往往会变慢.这时就需要架构师或开发者设计出更好的过程来提高大量数据的部署效率. 多租户架构和元数据 Salesforce使用元数据驱动机制来实现多租户架构. 不同于传统的关系数据库,Salesforce中对每个"租户"系统内部的数据结构并没有相对应的数据表.Salesforce中使用统一的数据结构来保存各个"租户"系统内部数据结构的…
作者:Kristopher Jones 翻译 :吴祺深 欢迎访问网易云社区,了解更多网易技术产品运营经验. 让我们来说一下hreflang属性.如果你还没有关掉这个页面,那么你已经完成了这个教程最重要的一步:开始. 为你的国际客户优化SEO实践,需要比试图对本地的暖通空调公司进行排名更多的技术粒度和完全不同的战略.从链接构建到URL结构的一系列东西,都需要根据区域性搜索意图和语言差异来进行优化.幸运的是,作为开始的一步,我们已经汇编了多数搜索引擎进行国际站点排名时,常用的排序因子: * 针对语言…
Prometheus 是一个开源的监控解决方案,部署简单易使用,难点在于如何设计符合特定需求的 Metrics 去全面高效地反映系统实时状态,以助力故障问题的发现与定位.本文即基于最佳实践的 Metrics 设计方法,结合具体的场景实例--TKE 的网络组件 IPAMD 的内部监控,以个人实践经验谈一谈如何设计和实现适合的.能够更好反映系统实时状态的监控指标(Metrics).该篇内容适于 Prometheus 或相关监控系统的初学者(可无任何基础了解),以及近期有 Prometheus 监控方…
在撰写这一系列文章的过程中,我总结出了很多最佳实践.在这篇文章中,我介绍了在保护您的WindowsAzure应用程序时需要考虑的更多事项. 下面是一些工具和编码提示与最佳实践: · 在操作系统上运行 o   获取最新的安全补丁 o   尽量以部分信任模式运行 ·  错误处理 o   如何实施重试逻辑 o   记录 Windows Azure中的错误 ·  Azure存储的访问权限 o   Blob的访问权限 o   存储连接字符串 o   门卫模式 o   旋转存储密钥 o   用于确保数据安全…
多种Windows Azure服务可以帮助您将应用程序安全性扩展到云. 有三种服务可提供多个提供程序之间的身份标识映射.内部部署数据中心间的连接和相互发送消息的应用程序功能(无论应用程序位于何处). ·  使用Windows Azure Active Directory,您可以通过位于云中的应用程序的代理身份验证在应用程序上创建单点登录应用程序.使用访问控制服务功能,您可以将来自多个提供程序的标识映射到应用程序可以识别的claims. ·   通过Service Bus,您可以使用安全消息传递和…
基于Claim的身份标识是处理网站与 Web 服务的身份认证和访问一种简单而强大的方式,无论您是在本地工作还是面向云工作.您可以通过减少自定义实施和使用基于Claim的单一简化标识模型,创建更安全的应用程序.   Windows Identity Foundation (WIF)是一组 .NET Framework 类.它是用于在您的应用程序中实施基于Claim的标识的框架. 从架构上说,使用基于Claim的标识可以将应用程序从身份验证业务中脱离出来.单点登录变得更容易实现,您的应用程序不再负责…
那么,哪些安全威胁应由WindowsAzure环境缓解?哪些安全威胁必须由开发人员缓解? 开发 Windows Azure 应用程序的最佳安全做法一文说明了对于在 Windows Azure 中运行的应用程序而言,什么样的威胁应被视为主要威胁.它还专门说明了 Azure 能够缓解的威胁以及您需要调用 API的内容和您需要自己处理的内容.(它未涉及合规性问题.) 您应该处理的内容 我将选择一些威胁和您应该执行的操作,并提供一些参考,以便您可以了解有关如何在代码中进行实现的更多信息.该列表在Wind…