使用开源软件的正确姿势

使用开源软件的正确姿势

一、选择开源软件的考量点:

  • 是否满足业务
  • 是否成熟
  • 可以从以下几个方面考察是否成熟:
    • 版本号:一般建议除非特殊情况,否则不要选0.X版本的,至少选1.X版本的,版本号越高越好。
    • 使用的公司数量:一般开源项目都会把采用了自己项目的公司列在主页上,公司越大越好,数量越多越好。
    • 社区活跃度:看看社区是否活跃,发帖数、回复数、问题处理速度等。
  • 运维能力
  • 可以从以下几个方案去考察运维能力:
    • 开源方案日志是否齐全:有的开源方案日志只有寥寥启动停止几行,出了问题根本无法排查。
    • 开源方案是否有命令行、管理控制台等维护工具,能够看到系统运行时的情况。
    • 开源方案是否有故障检测和恢复的能力,例如告警、倒换等。

二、使用开源软件的考量点:

  • 深入研究,仔细测试

  • 可以从如下几方面进行研究和测试:

    • 通读开源项目的设计文档或者白皮书,了解其设计原理;
    • 核对每个配置项的作用和影响,识别出关键配置项;
    • 进行多种场景的性能测试;
    • 进行压力测试,连续跑几天,观察cpu、内存、磁盘io等指标波动;
    • 进行故障测试:kill,断电、拔网线、重启100次以上、倒换等。
  • 小心应用,灰度发布

    • 再怎么深入的研究,再怎么仔细的测试,都只能降低风险,但不可能完全覆盖所有线上场景。
    • 先在非核心的业务上用,然后有经验后慢慢扩展。
  • 做好应急,以防万一

    • 对于重要的业务或者数据,使用开源项目时,最好有另外一个比较成熟的方案做备份,尤其是数据存储。例如:如果要用MongoDB或者Redis,可以用MySQL做备份存储。这样做虽然复杂度和成本高一些,但关键时刻能够救命!

三、基于开源项目做开发的考量点:

  • 保持纯洁,加以包装

    • 不要改动原系统,而是要开发辅助系统: 监控,报警,负载均衡,管理等。

    • 给开源项目提需求或者bug


文章作者: BY 木易杨
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 BY 木易杨 !
评论
 上一篇
深入剖析kubernetes系列之一 深入剖析kubernetes系列之一
前言 从即日起开写本系列,此系列是依据极客时间《深入剖析kubernetes》专栏整理的笔记,本系列会持续更新。 第一篇 容器技术基础之进程 进程可以看作是一个程序运行起来后的计算机执行环境的总和。 cgroup技术是用来制造约束
2019-09-29 BY 木易杨
下一篇 
虚拟机磁盘误删除恢复故障 虚拟机磁盘误删除恢复故障
最近一台存放重要文件的Windows7虚拟机磁盘文件被误删除,导致虚拟机无法启动,只留下两个文件,test-flat.vmdk和test-000001-delta.vmdk,启动虚拟机时报错,信息如下:the file specified
2019-06-20 Jemmy yang