混搭.NET技术
新闻 .NET技术+25台服务器怎样支撑世界第54大网站 再度燃起人们对.NET的技术热情。这篇新闻中透露了StackExchange 在技术方面的混搭,这也是我所崇尚的。因此我也在社区里极力推广Mono平台,这篇短文就想和大家一起讨论一下混搭.NET技术。
混搭(Mashup)架构是一种新型的集成各种技术的应用开发架构。传统上,Mashup源于流行音乐,是一种音乐类型,也被称为bastard pop,指的是艺术家组合或者混合两首不同的歌曲(通常属于不同的流派)的音乐和歌词来创作新的歌曲。它拥有三个特征:天生的创新性,人们的经验性和结果的和谐性。
特征一:天生的创新性。从起源上看,Mashup是一种内容上的创新组合。这里重点是创新,虽然组合的元素通常都源自于本来无关但非常常见的东西,但这和任何创新活动类似,一旦组合便会产生一种具有新意的新生事物。
特征二:人们的经验性。这些组合都是人工进行合成的,而不是通过计算算法来合成的,人们的经验和思维在Mashup过程中起到了决定性作用。
特征三:结果的和谐性。无独有偶,在现实社会中Mashup风潮也影响着服装时尚界,设计师们把街头朋克元素引入到传统的英格兰服饰,用运动T恤混搭具有少女风情的篷篷裙,产生了意想不到的匹配效果。时尚界也称Mix & Match风格,从字面上理解,Mix是混合,Match是匹配,合起来翻译成混搭。指将不同风格,不同材质,不同身价的东西按照个人口味拼凑在一起,从而混合搭配出完全个人化的风格。Mix就是混合两个或多个元素,来展现新的用户体验。Match是指一种和谐相配的有机组合,否则就是“瞎搭”了。这就是特征三,混搭结果必须和谐匹配,具有这种既混且搭的东西,现实生活中除了音乐和服装,还有中国火锅,多元文化,多元的收藏,装饰和建筑风格等等,人们的情绪可以说也是一种混搭的表现。
对IT技术来说,就如同创造新音乐,新服装那样,它能让开发人员创造针对特定的业务需求的业务混搭IT技术。下面我们来看下StackExchange 在技术方面的混搭:
1、混搭Windows和Linux
Stack Overflow 把系统部署在Windows 平台上,同时使用Linux系统上,什么好用用什么,不要做无必要的系统之争,比如 C# 在 Windows 机器上运行最好,我们使用 IIS;Redis 在*nix 机器上可以得到充分发挥,使用*nix。还有 Windows上也有IIS ARR,但是他没有Linux上的Haproxy好,所以它使用Haproxy,同样的还有Windows上有nlb,Linux上有LVS,LVS 比NLB 好太多了,所以不要局限于所使用的系统,完全可以混搭使用Windows和Linux。
2、混搭物理服务器和虚拟机
硬件永远比开发者和有效率的代码便宜。基于木桶效应,速度肯定受限于某个短板,现有的云服务基本上都存在容量和性能限制。StackExchange 混搭使用了物理服务器和虚拟机,物理服务器可以将发挥纵向扩展的威力,数据库服务器使用SSD 磁盘,365GB内存 ,这样高配置的服务器现在云平台上基本没有,同时在一些低负载的场景使用虚拟机,例如VM 用于部署、域控制器、监控、运维数据库等场合。
3、混搭.NET开源社区技术
Stack Overflow 主要使用微软的.NET技术,混搭.NET开源社区的技术。 Stack Overflow本身就是.NET开源社区的一个参与者,他运用了redis作为其缓存层,目前最流行的Redis的.NET 驱动就是ServiceStack.redis,它是Stack Exchange的一位开发者Demis Bellot 所开发的开源的、支持.NET与Mono平台的REST Web Services框架ServiceStack 的一部分。微型的 ORM ——Dapper也是 Stack Overflow 开源的,还有Stack Overflow的开源监控解决方案Opserver,也是 Stack Exchange发布。它基于.NET框架构建,这在监控工具领域有些与众不同。
4、混搭其他技术
使用 http://logstash.net/做日志管理,SSD 改变了搜索的使用方式。因为锁的问题,Luncene.net 并不能支撑 SO 的并发负载,因此他们转向了 ElasticSearch。
在众多的技术方案中,不同的技术方案都有它的优点,不过从单一的方式来说,也会有缺点,但两种技术方案的结合混搭,就可以解决这些问题,最大程度上发挥各自优点,弥补不同技术方案的缺点。不过只有象StackExchange 具备丰富的技术能力的专业团队,才能很好的完成混搭,让后期的使用安枕无忧。
任何一个技术方案,管理都会有风险,混搭当然也会有。因此,在进行混搭创新之前,首先要对混搭的技术有一个准确的评估,比如你的技术方案与要混搭创新的技术之间有没有优势互补,微软在2011年以前经常是复制社区的技术,一个微软技术的使用者局限于微软的技术,这就好比是近亲繁殖,微软现在已经改变策略,直接集成社区的技术,这也是一种混搭创新,特别是使用微软技术的同仁们也要学会混搭;第二点,在进行混搭创新的变革之前,要和整个公司团队有充分的沟通,让你的团队很清楚地知道为什么要进行这样的混搭创新,,大多数人都不大喜欢被改变,所以领导者决心要变革、要创新就必须说服成员,告诉他们不改变会怎样。
2014年的.NET技术已经进入一个新的高度,.NET vNext 有一个专门为云端环境优化过的模式,该模式允许你在部署程序的时候连同他们所用到的.NET Framework的相关库一同部署。由于.NET的运行时和框架中的库部署在了程序基础(app-basis)上,所以在同一台机器上,每一个程序可以运行不同版本的.NET vNext,并且可以单独升级,互不影响。这些库已经被显著的优化、精简以便减少框架占用的空间,并且将会使用NuGet来发布。.NET开发团队以跨平台的思想来开发这个模式,在开发过程中和Xamarin积极合作,以确保经过云端优化过的.NET程序可以运行在装有 Mono 运行时的Mac和Linux上。一次将非Windows主机作为一等公民对待。微软将Mono和Linux完全集成到他们的构建环境和测试矩阵中,并积极地与社区共同努力将Mono变成一个托管ASP.NET的顶级平台,Xamarin最近也在行动,剑桥大学的开源顾问全职加入Xamarin 公司,他的工作是确保Mono 成为Linux上的一等公民。消息来自他的博客 http://t.cn/RPLN4Hj。.NET和ASP.NET的巨大生产力可以提供给那些使用混合开发环境的团队。
混搭.NET技术的更多相关文章
- 前后端分离之Web前端架构设计
架构设计:前后端分离之Web前端架构设计 在前面的文章里我谈到了前后端分离的一些看法,这个看法是从宏观的角度来思考的,没有具体的落地实现,今天我将延续上篇文章的主题,从纯前端的架构设计角度谈谈前后端分 ...
- 关于大型网站技术演进的思考(十三)--网站静态化处理—CSI(5)
讲完了SSI,ESI,下面就要讲讲CSI了 ,CSI是浏览器端的动静整合方案,当我文章发表后有朋友就问我,CSI技术是不是就是通过ajax来加载数据啊,我当时的回答只是说你的理解有点片面,那么到底什么 ...
- paip.java 架构师之路以及java高级技术
paip.java 架构师之路以及java高级技术 1. Annotation 设计模式... 概念满天飞.ORM,IOC,AOP. Validator lambda4j memcache. 对 ...
- 业务类接口在TCP,HTTP,BLL模式下的实例 设计模式混搭 附源码一份
业务类接口在TCP,HTTP,BLL模式下的实例 设计模式混搭 附源码一份 WinForm酒店管理软件--框架这篇随笔可以说是我写的最被大家争议的随笔,一度是支持和反对是一样的多.大家对我做的这个行业 ...
- 从蓝光到4K,腾讯视频高码率下载背后的技术
欢迎大家前往云+社区,获取更多腾讯海量技术实践干货哦~ 由 腾讯技术工程官方号 发布在云+社区 蓝光和4k视频正逐渐普及,4K视频峰值码率超10Mbit/s.架构平台部TVideo平台从资源,链路.缓 ...
- 【转】关于大型网站技术演进的思考(十三)--网站静态化处理—CSI(5)
讲完了SSI,ESI,下面就要讲讲CSI了 ,CSI是浏览器端的动静整合方案,当我文章发表后有朋友就问我,CSI技术是不是就是通过ajax来加载数据啊,我当时的回答只是说你的理解有点片面,那么到底什么 ...
- k8s云集群混搭模式,可能帮你节省50%以上的服务成本
现在大部分中小企业或团队都是使用云平台来部署自己的服务,如阿里云,亚马逊云等.一般来说,业务的负载都具备一定的规律,比如每天集中在某几个小时,或呈现时间段周期性波峰.波谷交替的现象,如下图 如果使用E ...
- k8s云集群混搭模式落地分享
在 <k8s云集群混搭模式,可能帮你节省50%以上的服务成本>一文中,介绍了使用k8s + 虚拟节点混合集群的方式,为负载具有时间段波峰.波谷交替规律的业务节约成本,提高服务伸缩效率的部署 ...
- 【学习笔记】大数据技术原理与应用(MOOC视频、厦门大学林子雨)
1 大数据概述 大数据特性:4v volume velocity variety value 即大量化.快速化.多样化.价值密度低 数据量大:大数据摩尔定律 快速化:从数据的生成到消耗,时间窗口小,可 ...
随机推荐
- 【转】PHP的Trait 特性
Trait是在PHP5.4中加入的,它既不是接口也不是类.主要是为了解决单继承语言的限制.是PHP多重继承的一种解决方案.例如,需要同时继承两个 Abstract Class, 这将会是件很麻烦的事情 ...
- JavaScript代码优化指南
1. 将脚本放在页面的底部 <script src="./jquery.min.js"></script> <script src="./i ...
- git 创建分支 并 提交到远程分支
git branch(分支命令的使用http://hbiao68.iteye.com/blog/2055493 0.可以通过git branch -r 命令查看远端库的分支情况 1,从已有的分支创建新 ...
- 【Java并发系列01】Thread及ThreadGroup杂谈
img { border: solid black 1px } 一.前言 最近开始学习Java并发编程,把学习过程记录下.估计不是那么系统,主要应该是Java API的介绍(不涉及最基础的概念介绍), ...
- Power BI入门教程
题记:这篇文章不仅是Power BI的入门教程,同时相对于Qlik Sense进行了简单比较. 最近把一个Qlik Sense的示例应用手动转成了Power BI的应用,把相关步骤和遇到的问题记录如下 ...
- windows和linux平台下的通用时间测试函数
Time.cpp ////////////////////////////////////////////////////////////////////////////// // Timer.cpp ...
- 学习微信小程序之css11内外边距集合
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- NetBeans连接SQL server数据库教程
不废话,直接开始 1.下载sqljdbc.jar 可以从微软中国官方网站下载 SQLJDBC微软中国 笔者提供一个网盘链接Sqljdbc.jar 4个压缩包视版本选择,SQL 2012 用sqljdb ...
- mysql优化
一.优化事项 1. 数据库(表)设计合理 (不合理设计导致内伤) 我们的表设计要符合3NF 3范式(规范的模式) , 有时我们需要适当的逆范式.2. sql语句的优化(索引,常用小技巧 ...
- C#启用管理员权限运行程序
方法一:关闭程序重新请求打开 static class Program { [STAThread] static void Main() { Application.EnableVisualStyle ...