SlideShare a Scribd company logo
重整⼯工具箱:从开源软
件到开放服务
LI Daobing <lidaobing@gmail.com>
七⽜牛云存储
2014-11-06 上海
• 李道兵 <lidaobing@gmail.com>
• Debian Developer
• 2004 年开始接触 Debian
• qterm, ibus, scim 等软件包得维护⼈人员
• 开源爱好者
• 中⽂文维基百科前管理员
• 参与维护 iso-codes, translationproject.org
• python-lunardate, capistrano-scm-jenkins 作者
• 我对开源的看法
• 参与⼀一个项⺫⽬目,贡献我的时间是因为认同他的理念,⽽而不是想改造他的
理念
• Github: http://github.com/lidaobing https://speakerdeck.com/lidaobing
⺫⽬目录
• 引⼦子
• 演化中的 LAMP
• 会发⽣生什么?
个⼈人观点YY,仅供参考
引⼦子
• A: 你们在⽤用什么版本管理软件?
• B: Github
• A: Github 不是⼀一个服务么?
• B: 软件也可以是服务
• A: Github 是开源的么?
• B: 不是
• A: 你为什么不⽤用开源的版本管理软件?
• B: Hmm...
引⼦子
• 在这⾥里我不想回答刚才的“你为什么不⽤用开源的版本
管理软件”这个问题,其实我们不只⽤用了 github, 我们
还⽤用了 travis(持续集成), hipchat(聊天), 腾讯邮箱, 监
控宝,未来还会采⽤用更多 SaaS 服务。
• SaaS 和传统软件的优劣⺴⽹网上已经有了很多 slides, 我
今天不讲这个。
• 我想讲从我的观点来看未来会发⽣生什么,以及作为⼀一
个程序员应当如何应对。
LAMP
• 有⼈人说 LAMP 是开源软件运动(FOSS)的最伟⼤大成果
• 最早的含义 (2000 年左右)
• Linux
• Apache
• MySQL
• PHP
LAMP
• ⼀一个完整的版本
• Linux / *BSD
• Apache / Nginx / Lighttpd
• MySQL / PostgreSQL / MariaDB / MongoDB / …
• PHP / Python / Ruby / Java / Golang / …
LAMP
• 来⾃自⾼高可⽤用的需求
• 狭义LAMP
• 缓存层: Memcached/Redis
• 存储层: NFS, mogilefs,glusterfs, …
• sphinx(全⽂文搜索), rabbitmq(消息队列), …
LAMP
• 线上的部分: 狭义LAMP, 缓存, 存储, 全⽂文检索, 消息队列
• 开发的部分
• 软件仓库: SVN/Git
• bug管理: Trac/Redmine
• 持续集成: Jenkins/Hudson
• 部署系统: capistrano/puppet/salt/⼿手动
LAMP
• 线上的部分: 狭义LAMP, 缓存, 存储, 全⽂文检索, 消息队列
• 开发的部分: 软件仓库,Bug管理,持续集成,部署
• 运维的部分:
• 监控:zabbix/cacti
• ⽇日志: logstash/syslog-ng/⼿手动
• 数据分析: hadoop/spark/⼿手⼯工
• 安全升级: CVE/USN
LAMP
• 线上的部分: 狭义LAMP, 缓存, 存储, 全⽂文检索, 消息
队列
• 开发的部分: 软件仓库,Bug管理,持续集成,部署
• 运维的部分: 监控,⽇日志,数据分析,⽇日常升级
• 前端的部分: 抱歉我不懂前端
就差⼀一个写代码的了
会发⽣生什么?
已经有云服务
• 线上的部分: L, A, M, P, 缓存, 存储, 全⽂文检索, 消息队
列
• 开发的部分: 软件仓库,Bug管理,持续集成,部署
• 运维的部分: 监控(*),⽇日志,数据分析,⽇日常升级
• 前端的部分: 抱歉我不懂前端
开发相关的软件
• 开发相关的软件:bug管理,持续集成,…
• 不要想着⼀一个软件通吃所有需求(程序员都很挑⾷食
的,你能做好⼀一个需求就不错了)
• 账号打通/服务打通才是关键(github 是不错的选择)
• 常⻅见的软件其实做得都不好
会发⽣生什么?
已经有云服务 / 即将有云服务
• 线上的部分: L, A, M, P, 缓存, 存储, 全⽂文检索, 消息队
列
• 开发的部分: 软件仓库,Bug管理,持续集成,部署
• 运维的部分: 监控,⽇日志,数据分析,⽇日常升级
• 前端的部分: 抱歉我不懂前端
那么这些云服务会以什
么形式出现?
不是现在的PaaS
• PaaS 没有操作系统
• 没有操作系统意味着你⽆无法分析现有系统的瓶颈
• 同时你定位线上bug的能⼒力也⼤大服务降低
• ⽆无法(很难)开发有状态的服务,只能⽀支持平凡的架
构。
• Docker 有望改造现有的 PaaS
也不是公有云
• 能解决部分的问题,⽐比如存储,邮件,短信,还有开
发相关的服务
• 性能是该死的瓶颈
• 数据库,消息队列这些对响应,容量的要求都很⾼高。
我期望的: 机房云
• 机房的卖点不再仅仅是我有多少带宽,我的联通性有
多好
• ⽽而是我这边已经⼊入驻了多少家服务供应商,有多少典
型⽅方案
• 数据库,语⾳音识别,⾳音视频转码,…
• 游戏,移动应⽤用,电商,…
有些 IDC 已经在做了?
• 差之毫厘,谬之千⾥里
• 专业的事情交给专业的⼈人去做
• 你的数据库能优化到什么程度?
• 你的视频转码能优化到什么程度?
• 让外部团队来竞争,还是⾃自⼰己做,哪个更好?
这事难点在哪⼉儿?
• 云服务本⾝身就很难:安全性,稳定性,公平性
• 全国的机房太多,点太多的话管理难度⼤大幅度增加
开发者如何做?
• 信任,同时⼜又不信任
• 信任: 主动拥抱服务
• 不信任:
• 对于服务的返回数据,检查完整性,如果数据完整性
有问题,即使申明正常(⽐比如HTTP协议返回200)也
要按异常处理;对于所有的异常要有详细⽇日志;推动
服务提供⽅方提供 reqId,⽅方便双⽅方联调。
• 对于⽆无状态的服务(⽐比如 email, sms), 找两家,定期
测试,⾃自动切换或备⽤用
Thanks for your
attention

More Related Content

Viewers also liked

Spatial Context 151208
Spatial Context 151208Spatial Context 151208
Spatial Context 151208
Alasdair Rae
 
Our company's back ground
Our company's back groundOur company's back ground
Our company's back ground
guest7b17ee
 
Christmas 2008
Christmas 2008Christmas 2008
Christmas 2008
jaynswartz
 
云存储: 三分开发,七分运维
云存储: 三分开发,七分运维云存储: 三分开发,七分运维
云存储: 三分开发,七分运维
LI Daobing
 
Copy Global Leadership Bootcamp - Leading Globally The Asia Way - Palan CUCMS
Copy Global Leadership Bootcamp - Leading Globally The Asia Way - Palan CUCMSCopy Global Leadership Bootcamp - Leading Globally The Asia Way - Palan CUCMS
Copy Global Leadership Bootcamp - Leading Globally The Asia Way - Palan CUCMS
Palan Ramanathan
 
Recession And Employment In The Gulf (BAYT.COM &amp; YOUGOV SERVEY REPORT)
Recession And Employment In The Gulf (BAYT.COM &amp; YOUGOV SERVEY REPORT)Recession And Employment In The Gulf (BAYT.COM &amp; YOUGOV SERVEY REPORT)
Recession And Employment In The Gulf (BAYT.COM &amp; YOUGOV SERVEY REPORT)
Atif Masroor
 
The ABC's of Israel
The ABC's of IsraelThe ABC's of Israel
The ABC's of Israel
MrsRoom8
 
CV - S Atif Masroor - Document Control Manager / Specialist
CV - S Atif Masroor - Document Control Manager / SpecialistCV - S Atif Masroor - Document Control Manager / Specialist
CV - S Atif Masroor - Document Control Manager / Specialist
Atif Masroor
 

Viewers also liked (10)

Our facility
Our facilityOur facility
Our facility
 
Spatial Context 151208
Spatial Context 151208Spatial Context 151208
Spatial Context 151208
 
Our facility
Our facilityOur facility
Our facility
 
Our company's back ground
Our company's back groundOur company's back ground
Our company's back ground
 
Christmas 2008
Christmas 2008Christmas 2008
Christmas 2008
 
云存储: 三分开发,七分运维
云存储: 三分开发,七分运维云存储: 三分开发,七分运维
云存储: 三分开发,七分运维
 
Copy Global Leadership Bootcamp - Leading Globally The Asia Way - Palan CUCMS
Copy Global Leadership Bootcamp - Leading Globally The Asia Way - Palan CUCMSCopy Global Leadership Bootcamp - Leading Globally The Asia Way - Palan CUCMS
Copy Global Leadership Bootcamp - Leading Globally The Asia Way - Palan CUCMS
 
Recession And Employment In The Gulf (BAYT.COM &amp; YOUGOV SERVEY REPORT)
Recession And Employment In The Gulf (BAYT.COM &amp; YOUGOV SERVEY REPORT)Recession And Employment In The Gulf (BAYT.COM &amp; YOUGOV SERVEY REPORT)
Recession And Employment In The Gulf (BAYT.COM &amp; YOUGOV SERVEY REPORT)
 
The ABC's of Israel
The ABC's of IsraelThe ABC's of Israel
The ABC's of Israel
 
CV - S Atif Masroor - Document Control Manager / Specialist
CV - S Atif Masroor - Document Control Manager / SpecialistCV - S Atif Masroor - Document Control Manager / Specialist
CV - S Atif Masroor - Document Control Manager / Specialist
 

Similar to 重整工具箱-从开源软件到开放服务

Inner source introduction
Inner source introductionInner source introduction
Inner source introduction
Li Jiansheng
 
Willem Ning Jiang: Getting Started: How to join an Open Source project Apache...
Willem Ning Jiang: Getting Started: How to join an Open Source project Apache...Willem Ning Jiang: Getting Started: How to join an Open Source project Apache...
Willem Ning Jiang: Getting Started: How to join an Open Source project Apache...
jixuan1989
 
拥抱开源-关于程序员的自我提高
拥抱开源-关于程序员的自我提高拥抱开源-关于程序员的自我提高
拥抱开源-关于程序员的自我提高
Yihua Huang
 
瀏覽器開發與開源經驗 SITCON 2018
瀏覽器開發與開源經驗 SITCON  2018瀏覽器開發與開源經驗 SITCON  2018
瀏覽器開發與開源經驗 SITCON 2018
安齊 劉
 
01.python.开发最佳实践
01.python.开发最佳实践01.python.开发最佳实践
01.python.开发最佳实践Na Lee
 
2012,我的技术之选
2012,我的技术之选2012,我的技术之选
2012,我的技术之选
勇浩 赖
 
Ready Programmer One
Ready Programmer OneReady Programmer One
Ready Programmer One
flywindy
 
阿里开源经验分享
阿里开源经验分享阿里开源经验分享
阿里开源经验分享
Joshua Zhu
 
沒有所謂的end user:一個open source project網站的改版計畫
沒有所謂的end user:一個open source project網站的改版計畫沒有所謂的end user:一個open source project網站的改版計畫
沒有所謂的end user:一個open source project網站的改版計畫
Wan Jen Huang
 
該怎麼樣(認真的)部署你的 Python Web 應用程式?
該怎麼樣(認真的)部署你的 Python Web 應用程式?該怎麼樣(認真的)部署你的 Python Web 應用程式?
該怎麼樣(認真的)部署你的 Python Web 應用程式?
Andy Dai
 
GitHub 开源指南深度解读
GitHub 开源指南深度解读GitHub 开源指南深度解读
GitHub 开源指南深度解读
Li Jiansheng
 
SITCON2021 Web Security 領航之路
SITCON2021  Web Security 領航之路SITCON2021  Web Security 領航之路
SITCON2021 Web Security 領航之路
Tzu-Ting(Fei) Lin
 
如何,高效利用搜索引擎+构建网络工具箱
如何,高效利用搜索引擎+构建网络工具箱如何,高效利用搜索引擎+构建网络工具箱
如何,高效利用搜索引擎+构建网络工具箱
84zhu
 
Python First Class
Python First ClassPython First Class
Python First Class
Yao Zuo
 
Php重装上阵
Php重装上阵Php重装上阵
Php重装上阵
Scourgen Hong
 
Douban linguist
Douban linguistDouban linguist
Douban linguist
li luo
 
DAE
DAEDAE
網站製作基礎概念
網站製作基礎概念網站製作基礎概念
網站製作基礎概念
Shengyou Fan
 
Linking error
Linking errorLinking error
Linking error
Ching Yi Chan
 

Similar to 重整工具箱-从开源软件到开放服务 (20)

Inner source introduction
Inner source introductionInner source introduction
Inner source introduction
 
Willem Ning Jiang: Getting Started: How to join an Open Source project Apache...
Willem Ning Jiang: Getting Started: How to join an Open Source project Apache...Willem Ning Jiang: Getting Started: How to join an Open Source project Apache...
Willem Ning Jiang: Getting Started: How to join an Open Source project Apache...
 
拥抱开源-关于程序员的自我提高
拥抱开源-关于程序员的自我提高拥抱开源-关于程序员的自我提高
拥抱开源-关于程序员的自我提高
 
瀏覽器開發與開源經驗 SITCON 2018
瀏覽器開發與開源經驗 SITCON  2018瀏覽器開發與開源經驗 SITCON  2018
瀏覽器開發與開源經驗 SITCON 2018
 
01.python.开发最佳实践
01.python.开发最佳实践01.python.开发最佳实践
01.python.开发最佳实践
 
2012,我的技术之选
2012,我的技术之选2012,我的技术之选
2012,我的技术之选
 
Ready Programmer One
Ready Programmer OneReady Programmer One
Ready Programmer One
 
阿里开源经验分享
阿里开源经验分享阿里开源经验分享
阿里开源经验分享
 
沒有所謂的end user:一個open source project網站的改版計畫
沒有所謂的end user:一個open source project網站的改版計畫沒有所謂的end user:一個open source project網站的改版計畫
沒有所謂的end user:一個open source project網站的改版計畫
 
該怎麼樣(認真的)部署你的 Python Web 應用程式?
該怎麼樣(認真的)部署你的 Python Web 應用程式?該怎麼樣(認真的)部署你的 Python Web 應用程式?
該怎麼樣(認真的)部署你的 Python Web 應用程式?
 
GitHub 开源指南深度解读
GitHub 开源指南深度解读GitHub 开源指南深度解读
GitHub 开源指南深度解读
 
SITCON2021 Web Security 領航之路
SITCON2021  Web Security 領航之路SITCON2021  Web Security 領航之路
SITCON2021 Web Security 領航之路
 
如何,高效利用搜索引擎+构建网络工具箱
如何,高效利用搜索引擎+构建网络工具箱如何,高效利用搜索引擎+构建网络工具箱
如何,高效利用搜索引擎+构建网络工具箱
 
Python First Class
Python First ClassPython First Class
Python First Class
 
Php重装上阵
Php重装上阵Php重装上阵
Php重装上阵
 
Douban linguist
Douban linguistDouban linguist
Douban linguist
 
DAE
DAEDAE
DAE
 
網站製作基礎概念
網站製作基礎概念網站製作基礎概念
網站製作基礎概念
 
20160420 - git intro
20160420 - git intro20160420 - git intro
20160420 - git intro
 
Linking error
Linking errorLinking error
Linking error
 

More from LI Daobing

好东西是聪明人下苦功夫做出来的
好东西是聪明人下苦功夫做出来的好东西是聪明人下苦功夫做出来的
好东西是聪明人下苦功夫做出来的
LI Daobing
 
分布式存储的元数据设计
分布式存储的元数据设计分布式存储的元数据设计
分布式存储的元数据设计
LI Daobing
 
短视频和云存储
短视频和云存储短视频和云存储
短视频和云存储
LI Daobing
 
如何实现登出按钮
如何实现登出按钮如何实现登出按钮
如何实现登出按钮
LI Daobing
 
从开发到上线-实战持续交付
从开发到上线-实战持续交付从开发到上线-实战持续交付
从开发到上线-实战持续交付
LI Daobing
 
HTTP协议相关的若干安全问题
HTTP协议相关的若干安全问题HTTP协议相关的若干安全问题
HTTP协议相关的若干安全问题LI Daobing
 
Debian & Packaging
Debian & PackagingDebian & Packaging
Debian & PackagingLI Daobing
 
OAuth: How And Why?
OAuth: How And Why?OAuth: How And Why?
OAuth: How And Why?LI Daobing
 
如何学习Bash Shell
如何学习Bash Shell如何学习Bash Shell
如何学习Bash ShellLI Daobing
 
glusterfs 文件系统
glusterfs 文件系统glusterfs 文件系统
glusterfs 文件系统LI Daobing
 

More from LI Daobing (11)

好东西是聪明人下苦功夫做出来的
好东西是聪明人下苦功夫做出来的好东西是聪明人下苦功夫做出来的
好东西是聪明人下苦功夫做出来的
 
分布式存储的元数据设计
分布式存储的元数据设计分布式存储的元数据设计
分布式存储的元数据设计
 
短视频和云存储
短视频和云存储短视频和云存储
短视频和云存储
 
如何实现登出按钮
如何实现登出按钮如何实现登出按钮
如何实现登出按钮
 
从开发到上线-实战持续交付
从开发到上线-实战持续交付从开发到上线-实战持续交付
从开发到上线-实战持续交付
 
HTTP协议相关的若干安全问题
HTTP协议相关的若干安全问题HTTP协议相关的若干安全问题
HTTP协议相关的若干安全问题
 
Debian & Packaging
Debian & PackagingDebian & Packaging
Debian & Packaging
 
OAuth: How And Why?
OAuth: How And Why?OAuth: How And Why?
OAuth: How And Why?
 
Git 简介
Git 简介Git 简介
Git 简介
 
如何学习Bash Shell
如何学习Bash Shell如何学习Bash Shell
如何学习Bash Shell
 
glusterfs 文件系统
glusterfs 文件系统glusterfs 文件系统
glusterfs 文件系统
 

重整工具箱-从开源软件到开放服务