基础服务

.net 基础服务开源战略规划备忘录

公司现状

1. 技术人员水平限制: 基础研发人员技术细节,性能处理能力不足,技术视野不够开阔;甚至一些高可用,高性能方案的概念都未听闻,更别提发展方向和思路了,令人痛心。

2. 技术反馈渠道限制: 公司业务线暂不多,基础服务的应用面尚属狭窄;基础服务和镜像各种环境的适应性和性能不足以及时凸显暴露出来,框架bug和问题使用反馈周期太长,不足以快速跟进和改善基础框架。

3. 人员招聘渠道限制: 高技术人才未中长期储备, 各招聘渠道未能招募到合适的技术人员。临时招聘也不能在中短期内补充恰好求职的合适人员。(.net 行业大环境下人员本身也很紧缺)

4. 人员成本预算限制: 因公司业务的发展与现实情况,基础研发人员数量有限,人员成本预算有限;(即便遇到非常合适者,薪资情况仍需各方努力达成。)

5. 基础开发人员培养: 基础研发不同于业务线研发, 难以通过业务发展提升自身满意度,技术成就感,对性能和技术的追求。需要通过内在和外在的压力,才能推动研发人员不断讨论,不断汲取学习,思考和沉淀技术,微创新,将基础服务真正用心做好。

解决方向

在考虑公司各方面的资源限制和现状,以及人员的限制和培养,基础服务的性能要求和稳定性等综合的考虑,采用开源战略方向,形成开源->反馈->交流->改进的生态圈有利于缓解以上公司的现状问题。

若能形成开源生态圈,则可以促进开源项目稳定性,优化开源代码,根据反馈不断的提升自身的基础服务产品,吸引相关的高级技术人才维护检验项目,减少项目的开发维护成本,同时提升公司在技术领域的影响力,提升开发人员的成就感。(目前淘宝,当当网,蘑菇街,大众点评,携程,小米,58同城等都有部分项目开源)

 

目标原则

融入开源社区,借助开源的生态能力,在有限资源条件下更有效率验证基础服务的性能,稳定性,推动其发展。

组织形式

公司开源技术委员会(虚拟)

 

开源生态孵化规划

1. 开源计划

基础服务开源计划: @车江毅【开发细节收集,改进】 @孙明【开发细节收集,改进】 @徐龙【安装咨询】 @陈虎伯【安装咨询】

1)分布式任务调度平台 (已开源,开源版本未更新最新 http://git.oschina.net/chejiangyi/Dyd.BaseService.TaskManager)

@车江毅 @徐龙  @陈虎伯

2)分布式消息队列平台 (已开源,开源版本未更新最新 http://git.oschina.net/chejiangyi/Dyd.BusinessMQ)

@车江毅 @徐龙  @陈虎伯

3)OpenApi开放平台 (已开源,开源版本未更新最新,开源名称待订正 http://git.oschina.net/chejiangyi/ApiView)

@车江毅 @徐龙  @陈虎伯

4)BSF.EntityFramework  (待整理开源) @孙明 @徐龙  @陈虎伯

5)分布式配置中心 (已开源,开源版本未更新最新 http://git.oschina.net/chejiangyi/Dyd.BaseService.ConfigManager)

@车江毅 @徐龙  @陈虎伯

6)分布式消息推送平台(待整理开源) @孙明 @徐龙  @陈虎伯

7)分布式缓存中间件 (已开源,开源版本未更新最新 http://git.oschina.net/chejiangyi/XXF.BaseService.DistributedCache)

@车江毅 @徐龙  @陈虎伯

8)分布式Tcp服务中心(待研发)

@孙明 @徐龙  @陈虎伯

9)分布式文件系统 (功能暂不足以推进开源)

10)分布式监控中心 (已开源,开源版本未更新最新 http://git.oschina.net/chejiangyi/Dyd.BaseService.Monitor)

@车江毅 @徐龙  @陈虎伯

执行步骤

1)上传代码(新版本须建立新分支),整理文档(需求+demo+压测报告等),相关安装包(+安装文档等),readme简介。

至git: http://git.oschina.net/chejiangyi (后期以公司形式开源,前期避免行业商业竞争)

2)撰写博文介绍项目的功能,demo和使用等,发布到公司知识库,发布到开源群,发布到开源社区。

开源QQ群

.net 开源基础服务 238543768

开源基金

设立一定的开源基金和开源任务发布计划等。(未来较长期的发展方向,部分核心技术外包形式【部分高级核心技术人员无法招募,就通过外包技术合作等形式】)

2. 开放计划

基础服务镜像开放计划: @陈虎伯 【安装咨询,使用问题收集,改进】 @徐龙【安装咨询,使用问题收集,改进】

1)基础服务镜像1.0版(内部测试版本->开放测试版本->正式稳定版)

2)基础服务镜像2.0版(内部测试版本->开放测试版本->正式稳定版)

执行步骤

1)发布基础服务镜像内部测试版本,通过一定的业务功能验证其稳定性。(验证周期约一个月)

2)发布基础服务镜像开放测试版本,通过收集开源的反馈问题,验证其稳定性。(验证周期约三个月)

3)发布基础服务镜像正式稳定版本,仅对内提供,一般不对外公开。(产品发布的镜像版本须为稳定版镜像,并记录版本更新信息)

总体原则

1)稳定版镜像不对外公开,对外开放仅为最新开放测试的基础服务版本和跟进反馈。

基础服务镜像暂不对外允许商业使用权利,仅用于学习测试使用。(避免同行业商业竞争)

3. 反馈计划

交流QQ群: net 开源基础服务 238543768

交流社区: oschina,博客园,csdn,51cto等

源码开源: git.oschina.net,github等

通过线上qq群,社区,源码分享等多种渠道(还有线下的交流渠道),分享基础服务设计的成果和思路,汇聚志同道合或者同样需求的人才,一起探讨总体方向,细节,性能优化,同类产品建议等。

(根据经验: 一般至少80%的交流都是一些基础和废话,约20%的交流是值得思考的,10%的交流是值得改进和有价值的; 10%当中结合公司实际业务和具体问题,5%的建议可以形成一轮小版本迭代需求)

4. 线下计划

方向: 打通线上和线下交流,汇聚行业精英人才,打开技术交流渠道

形式: 以QQ群和微信群为交流汇聚点,通过策划线下圆桌会议,1对多小型技术分享会议,技术专家邀请分享,技术沙龙交流等交流会议

间隔: 一季度一次,不限人数,不限大小

人员: 公司内部人员推荐的(其他公司)人才,QQ技术交流群的高级人才,业内知名技术人才等

资金: 公司预算支持

场地: 咖啡馆,小会议室等安静休闲场所

效果: 拓宽技术眼界,了解行业技术动向,反馈一些价值的技术建议, 吸纳技术精英。

5. 人才计划

方向: 以基础服务开源为核心,宣传并推广开源技术为手段,高级技术人才人脉互相传递(人才)特性,打通线上反馈交流和线下会议分享,吸引并聚拢相关类型的技术人才(同时提高公司的技术影响力),形成一定规模的开源技术圈子。

目标: 以开源吸引形成技术互补,互动,培养,并到合适时机招聘入职;且适用于用于长期技术人才储备。

形式: 反馈计划,线下计划,人才储备关注(高级人才招聘时推荐公司开源社区并加入),公司内部员工推荐(曾经认为不错的技术同事),开源社区人才推荐(人脉传递)。

资金: 开源基金支持(未来考虑开源基金计划,如部分高级核心技术人员无法招募,就通过外包技术合作,发布开源任务模式等形式)

6. 培养计划

方向:为公司技术开发人员打开技术交流另一扇窗口,有交流才会有进步。(除了公司内部培训,交流外)

目标:以外部技术人才与内部开发在开源社区的互动交流,了解实时的行业技术动态(行业技术新闻和咨询,相关技术框架和更新等),打开开发人员的技术视野和思考,提升技术能力。

形式:在线社区(QQ,git技术反馈,开源社区)等沟通交流。

举例:一些技术难点,一些技术疑难问题,一些压测的性能指标等都可以在开源社区提出并咨询讨论。

开源规划总结

开源社区和生态的发展,如同公司业务的发展一样,是逐步形成的;虽然以目前公司的各方面现状,想法真正各方面切实落地为时尚早;

但是做为技术长期规划和发展展望,我们仍然需要时刻提醒自己的目标和方向,并严格要求自己代码和文档等各方面的质量要求,并不断完善且逐步推进。

时间: 2024-12-25 11:34:18

基础服务的相关文章

云计算之openstack基础服务之一keystone服务最佳实践

1.openstack简介 Openstack是一个项目,该项目支持所有类型的云环境的一个开源云计算平台,该项目的目的是为了实现简单,大规模可扩展性,以及丰富功能集,来自世界各地的云计算专家项目作出贡献.Openstack提供了一个基础架构即服务(Iaas)并通过各种配套服务的解决方案,每个服务提供一个应用编程接口来完成整个openstack的结合. 架构图如下: 相关服务介绍: 服务名称 项目名称 描述 Dashboard Horizon 基于openstackAPI接口使用Django开发的

计算机网络管理基础服务安装

使用yum方式完成服务安装 ___By Nemo(仅供参考) Notice:Apache 安装好之后,我又改回桥接模式用rpm安装了. 首先,让你的虚拟机上个网,所以需要把网卡设置成nat模式,在宿主机上先拨个号,设好后重启linux系统. 重启后,打开firefox,看是不是能上网.Ok,但nat模式默认的ip是动态分配的,咱们得按照老师的要求把设成你静态的学生牌号.所以咱们得这么设一下!应该通过vmware虚拟机中-->Edit(编 缉)-->Virtual Net Editor(虚拟网络

计算机网络管理基础服务安装+大数据时代的网络运维

使用yum方式完成服务安装 ___By Nemo(仅供参考) Notice:Apache 安装好之后,我又改回桥接模式用rpm安装了. 首先,让你的虚拟机上个网,所以需要把网卡设置成nat模式,在宿主机上先拨个号,设好后重启linux系统. 重启后,打开firefox,看是不是能上网.Ok,但nat模式默认的ip是动态分配的,咱们得按照老师的要求把设成你静态的学生牌号.所以咱们得这么设一下!应该通过vmware虚拟机中-->Edit(编 缉)-->Virtual Net Editor(虚拟网络

开源项目 AllJoyn 基础服务

AllJoyn 基础服务主要包括 Onboarding,Notification 和 Control Panel三个大项. 这三个也是编写App的最基础的,最常用的部分. Onboarding 提供了一种标准的让设备接入WiFi网络的方式. 这里定义了两个角色: Onboarder(登录器):一个运行在智能设备上的App. Onboardee(登陆者):准备添加到网络中的设备. 基本流程 Onboarder 发现设备需要登录到网络中 连接,并提供配置信息 Onboardee验证是否可以登录到网络

Asp.net 面向接口可扩展框架之类型转化基础服务

新框架正在逐步完善,可喜可贺的是基础服务部分初具备模样了,给大家分享一下 由于基础服务涉及太广,也没开发完,这篇只介绍其中的类型转化部分,命名为类型转化基础服务,其实就是基础服务模块的类型转化子模块 说到类型转化必须要清楚.net的类型,类型都不清楚何来类型转化 1.Primitive类型 1.1 这个概念估计很多人都没听说过,Primitive不是一个新类型,而是.net类型中最基本的一种分类,是基元类型的意思       MS将类型分为三类:Primitive(基元类型).Complex(复

(C/C++)基于SharpUI控件库的插件式框架开发--第三篇框架基础服务库

一个框架基础的东西,一般也是操作的最基础的类,比如char.int.bool等,有时出现内存泄露的问题导致错误的抛出,但是C++开发有的时候就算是抛出异常,那也是靠经验来积累才能非常快速准确的找出错误所在,这就需要在框架中需要添加日志管理的接口,日志管理的好处就是开发者自身在找异常时提供参考,另一个就是如果用户操作时出现问题,也可将日志反馈,帮助快速解决问题:总之了为了更好的扩展完善我的框架,我详细列一下这个基础服务库(XPCore)包含内容: 虽说sharpui控件库内封闭好string类,但

arcgis server10.2.2发布地图基础服务的具体步骤

原文:arcgis server10.2.2发布地图基础服务的具体步骤 1.直接打开制作好的.mxd文档,比如这里: 2.打开mxd文档之后,打开菜单:file-share as -services 弹出地图发布服务的界面: 点击publish之后,耐心的等待一段时间,地图服务就发布好了,地图服务成功之后,可以在浏览器查看: (1) (2) (3) 到此地图服务发布结束! 备注: GIS技术交流QQ群:432512093

发布Hessian服务作为服务内部基础服务

摘要:Hessian经常作为服务内部RPC工具来使用,速度快效率高.重构代码的核心思想就是把共用的代码段提出来,使代码结构优化:架构设计类似,把基本的共用的服务提出来,使架构优化.下面讲述一下我在具体应用中使用Spring3.2.4在Tomcat7.0.47下发布Hessian4.0.37服务的过程. 关键词:Spring, Hessian, JAVA, 架构设计, Hibernate, Tomcat Hessian经常作为服务内部RPC远程过程调用工具来使用,速度快效率高,我们的项目也不例外的

【基础服务】简单理解DNS的递归、迭代查询 - DNS(一)

DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串.通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析).DNS协议运行在UDP协议之上,使用端口号53.在RFC文档中RFC 2181对DNS有规范说明,RFC 2136对DNS的动态更新进行说明,RFC 2308对DNS查询的反向缓存进行说明. 简单理解DNS的递归.迭代查询过程: 客户端发