我这开发的十年

简介:

2008年,刚开始接触互联网,那时候用的手机还是Windows Mobile,对于iPhone来说根本买不起,当然这一年也是移动互联网的热点之年。第一款真正的安卓手机也随之发布,诺基亚也毫不示弱,Symbian开源了。那时候云计算在国内也不是很流行,我们都在用虚拟主机。这一年MySQL也被收购了,Windows Server 2008也横空出世了,十年前的今天,真的是相当精彩!

那么回顾之前,我们的IDC是一个什么情况呢?那时候是成千上万的物理服务器,每个服务器上需要安装操作系统,比如LinuxWindows Server,然后在其之上部署应用。直到有了虚拟化的出现,可以将一系列操作过程镜像化的批量去做,同时虚拟化可以很好的利用硬件,避免其中的性能浪费。目前整个云计算的时代已经普及,云和虚拟化最大的区别就是云计算赋予了API的能力。

虚拟化是一种技术,允许我们从单个物理硬件系统创建多个虚拟系统,我们管它叫VM 这些VM依赖于VM管理程序将计算机资源与硬件分离。08年正是虚拟化盛行的一年,KVMHyper-VXen等虚拟化技术越来越流行。当时最早还是在Parallels(一家虚拟化软件公司)实习,做技术支持,我们给客户解决在使用Parallels虚拟化产品中遇到的各种问题。

随着虚拟化的流行,后面又刮来了一阵大风,这就是云计算的出现,云给我最大的感触就是,它有了API,可以让我们做更多虚拟化做不到的事情。刚开始最早接触云计算还是在公司中做OpenStackPoC(概念验证),直到支撑着整个生产环境的运行。那时候接触的最早的版本是Havana,当时走了很多弯路,每一次部署都会失败,都会有问题。那时候的OpenStack Bug非常多,没有现在的稳定。那么当时我们是怎么一步一步达到生产级别的?这里面付出了太多的心血。我们为了推向生产的时候保持和测试环境一样的部署架构,包括每个package版本以及配置文件,几乎调研了当时所有可以自动化部署OpenStack的开源软件,比如:Juju solutions for OpenStackAutopilotpuppetlabs-openstackopenstack-ansibleKollaRDO(Packstack)、TripleO等等。但是这里面会有一个通病,就是通过这些软件部署出来的环境并不是我们想要的。而且当时PuppetLabsModule还不支持高可用部署,我们咨询了官方,官方给出的答复是在后面版本会支持这个能力。最后,我们决定重复造轮子,一个真正支持高可用部署的OpenStack Provisioning工具。后来,在GitHub上创建了个项目,开始搞起来,这个项目叫Playback,这个项目的作用正如同它的名字(回放)。Playback可以真正按照用户需求,自定义部署架构,且支持高可用的一个OpenStackProvisioning工具(提供命令行和API)。最后我们通过Playback将整个OpenStack部署到了生产环境,这是一个很大快人心的事情呀!但后面也会存在很多失落感,这就是搞开源的寂寞,几乎没有人用我们的产品,除了我们自己使用。没有任何人发issue,没有任何人fork,没有任何人鸟你。后来我们打算把这个项目进入到OpenStackBig tent里,Big tentOpenStack所有子项目的一个大集合。这个很难进,原因是什么?我们的速度跟不上,因为官方已经有了Playback具备的所有能力。

虽然这个开源项目可以说是搞黄了,但这些经历,这些经验是非常宝贵的。首先,我们一定要明确是否需要重复造轮子?怎么造?造出来怎么运营?这都是技术之外的事情。其次,速度不一定是胜利的必要条件,但速度是最基本的条件。技术发展很快,技术颠覆也很快,我们应该如何把握这之间的时速?最后,无论结果如何,一定要坚持,当你决定要下手干的时候。

但是今天,越来越多的中小企业几乎不在IDC中构建自己的私有云了,更多的企业转而投入了公有云的怀抱中,这是为什么?看我们之前搞OpenStack来说,我们付出了很多人力成本,而中小企业不愿意去投入这个人力成本。这是原因之一。还有就是之前大家都觉得公有云不安全,所有数据都放在公有云上,这样安全吗?但是大家目前都在用公有云环境,从而也慢慢消除了这种概念。我一些朋友所在的公司,几乎也都在用阿里云,这是一种趋势。

目录
相关文章
|
数据采集 监控 数据可视化
Scrapy可视化管理管理工具总结
Scrapy可视化管理管理工具总结
1514 0
Scrapy可视化管理管理工具总结
|
数据采集
在线接受短信验证码进行识别
当我们做爬虫或其他的一些应用的时候,如果需要一些短信验证,但是又没有那么多手机号,又不能放人在那里一直输入的时候?怎么办?
在线接受短信验证码进行识别
|
Go
ChaosBlade 1.7.3 make build_linux 有个报错 不知大家遇到过没
【2月更文挑战第23天】ChaosBlade 1.7.3 make build_linux 有个报错 不知大家遇到过没
101 1
|
XML Java 数据格式
【Spring】全面讲解IOC、AOP、注入方式、bean的生命周期、aop通知应用 spring与web容器整合
Spring是一个开源的轻量级Java应用开发框架,它提供了一种简单、高效、灵活的方式来构建企业级应用程序。Spring框架的核心特点是依赖注入(Dependency Injection)和面向切面编程(Aspect-Oriented Programming),它通过一组模块化的组件提供全面的支持,使开发人员能够快速搭建可扩展、可维护的应用。
|
8月前
|
安全 数据安全/隐私保护
DzzOffice:太完美啦,开源免费Word、Exce、PPT,多人同时协作,最主要还有免费的网盘,将这个项目集成到你的产品里面,项目立刻拥有整套offce解决方案
嗨,大家好,我是小华同学。DzzOffice是一个免费开源的企业协同办公平台,适合中小型企业及团队使用,功能涵盖网盘、文档、表格、演示文稿等,支持企业微信和钉钉移动办公,保障数据私有部署安全。 关注我们,获取更多优质开源项目和高效工作学习方法。
1235 5
|
JSON 算法 数据安全/隐私保护
聊聊 JSON Web Token (JWT) 和 jwcrypto 的使用
本文介绍了 JSON Web Token (JWT) 和 Python 中的 `jwcrypto` 库。JWT 是一种用于安全传输信息的紧凑型令牌,常用于身份验证。它由 Header、Payload 和 Signature 三部分组成,具有紧凑性、自包含和安全性等特点。`jwcrypto` 库提供了 JWT 的生成、验证、加密、解密及签名功能。通过该库,可以使用 RSA 等算法创建和验证 JWT,同时管理密钥对。安装 `jwcrypto` 可用 `pip install jwcrypto`,并示例展示了如何生成签名 JWT 和密钥对。
聊聊 JSON Web Token (JWT) 和 jwcrypto 的使用
【Qt 学习笔记】Qt常用控件 | 显示类控件 | LCD Number的使用及说明
【Qt 学习笔记】Qt常用控件 | 显示类控件 | LCD Number的使用及说明
964 0
|
机器学习/深度学习 Python
删除指定文件夹重复的文件
这是一个Python脚本,用于删除指定文件夹(包括子目录)中的重复图片文件,基于文件的MD5值。程序依赖`NStudyPy`库,可通过`pip install -U NStudyPy`安装。核心函数`delete_repeat_file`接收路径和是否递归参数,调用未展示的`get_repeat_file`函数获取重复文件并删除。
172 1
|
传感器 安全 数据中心
振弦采集仪在桥梁结构监测中的应用研究
振弦采集仪在桥梁结构监测中的应用研究
 振弦采集仪在桥梁结构监测中的应用研究