s********i 发帖数: 17328 | 1 LOL,干马工也挺长时间了,借云讨论的帖子,回忆记录一下本部门的IT和产品的变迁
,一方面做个纪念,另一方面讲讲技术的变迁,算是个缩影吧。。。普通马工的视角,
盲人摸象,喜欢的就点个赞,各位大牛和CxO们不喜勿喷。。。
我们部门主要做full stack的产品,数据存储,后台服务,前端UI,都要涉及。。。简
单来说,就是把数据收集存储起来,客户通过前端UI分析使用这些数据,数据是时实采
集的,数据量根据用户的不同可能有很大差别。
第一阶段,麻雀虽小五脏俱全
从设备角度来说,基本上开发和测试都是desktop,每个员工配备一台或几台desktop(
比如QE),一般是Windows server,开发、编译、测试都在自己的机器上面,同时有些
相对powerful的Windows Server和Linux Server是共享的,马工可以RDP/SSH到这些机
器上做开发编译。共享的存储主要是netapp。这些机器一般在cube里或公司办公室的机
房里。
重要的机器需要24/7的,租用的是Verizon的机房,比如,domain controller, email
server, source control, production build machine, 和上面提到的共享的开发机器
,netapp等等。Verizon的机房只有authorized的IT才能去。有两个IT,主要是管
Widnows domain,还有个part time的Unix admin。出了问题,IT要大老远的跑去
Verizon的机房处理。
从产品的角度来说,那时候的产品,是client-server,主要是Java,数据存储在
Oracle或者是SQL Server里。InstallShield用来做产品安装,可以选在机器其上装什
么,那时候机器都不够强大,有时候要把processes分配到多台机器上去运行。用户可
以自己提供数据库,我们也bundle Oracle,卖一份产品就给Oracle一份钱。公司雇有
专门的Oracle数据库专家,一方面做数据库相关的开发,另一方面给客户提供些支持。
公司不host产品给客户使用,只卖产品,然后去给客户deploy。客户一般都是单一处理
本公司的数据。 |
g****s 发帖数: 340 | |
s********i 发帖数: 17328 | 3 第二阶段,Virtulization,Web, Search Engine
随着摩尔定律带来的计算机行能的提高,虚拟机开始流行。一方面,不仅desktop上用
上了VMware workstation,方便了local测试,另一方面,ESXi server开始在机房部
署到高性能的server上。虚拟机被广泛使用,首先带来的一个明显的好处就是大大加速
测试的方便程度,不同版本的Windows/Linux操作系统和不同的产品版本的组合可以被
方便的部署和重新部署。其次,开发环境包括Windows和不同版本的Linux基本上都跑在
强大的虚拟机上了。此时Hudson开始流行,continuous integration方便了开发测试流
程。
这时候办公室机房投资了UPS,就把Verizon的机房关掉了。IT慢慢的也走掉了。email
server和Identity & Access Management早就转到母公司的去了。但local保留了
domain contoller,负责我们local office的dhcp和dns。结果就是:办公室的机房
host大量ESXi server和domain controller,在UPS的支持下,基本上提供24/7的开发
测试环境,不再需要专职IT,由engineering自己负责开发环境的维护。
从产品的角度来讲,cliet-sever不时髦了,要Web应用才时髦,产品开始做Web的cliet
。java程序员们自然的选择就开始用gwt做Web应用,后来用JavaScript。search
engine开始普及了,数据不需要存在数据库里了,存在file里就行了,数据库的需求变
成了只存放和产品相关的设置,结果就是不需要oracle和SQL server了,也就不需要数
据库专家了,改为postgres,开发维护由engineering负责。产品不再支持Windows,完
全是Linux应用了,安装也放弃了InstallShield,改为纯rpm安装。
这时候有些中间客户开始用我们的产品给其他终端客户提供服务,这就需要一定程度上
的scalability。某些大客户要求high availability,就要开始做HA。这些对一个老产
品来说,都不是很容易的事情,只能在现有的体系结构里尽量对付出来。慢慢地,产品
也就进入维护阶段。。。企业级的产品维护一般都是赚钱的,可能持续很长时间。 |
s******e 发帖数: 3 | |
b*****c 发帖数: 165 | |
f*******t 发帖数: 7549 | |
o******i 发帖数: 30 | |
g****t 发帖数: 31659 | 8 client-server早先主要都是visual basic之类的吧。java client用的啥?FX?
【在 s********i 的大作中提到】 : LOL,干马工也挺长时间了,借云讨论的帖子,回忆记录一下本部门的IT和产品的变迁 : ,一方面做个纪念,另一方面讲讲技术的变迁,算是个缩影吧。。。普通马工的视角, : 盲人摸象,喜欢的就点个赞,各位大牛和CxO们不喜勿喷。。。 : 我们部门主要做full stack的产品,数据存储,后台服务,前端UI,都要涉及。。。简 : 单来说,就是把数据收集存储起来,客户通过前端UI分析使用这些数据,数据是时实采 : 集的,数据量根据用户的不同可能有很大差别。 : 第一阶段,麻雀虽小五脏俱全 : 从设备角度来说,基本上开发和测试都是desktop,每个员工配备一台或几台desktop( : 比如QE),一般是Windows server,开发、编译、测试都在自己的机器上面,同时有些 : 相对powerful的Windows Server和Linux Server是共享的,马工可以RDP/SSH到这些机
|
s********i 发帖数: 17328 | 9 比FX更古老。。。LOL。。。FX的前身Swing。
【在 g****t 的大作中提到】 : client-server早先主要都是visual basic之类的吧。java client用的啥?FX?
|
g****t 发帖数: 31659 | 10 早先我硕士时候参加过的最ambitions的项目是上海市地理信息系统。
计划是类似于google map。用Delphi做的,结果total failed。超前时代太多了。
【在 s********i 的大作中提到】 : 比FX更古老。。。LOL。。。FX的前身Swing。
|
|
|
s********i 发帖数: 17328 | 11 第三阶段,云时代
公司几经变更,所有的开发测试环境都交由公司总部机房统一管理,本地的小机房基本
上就闲值了。总公司机房vCenter有专人管理,分为IT管理的重要机器,比如各种公司
内部的服务器,要求高的开发环境机器,比如,source control, official build
machine,等等,和开发测试方面不太重要的机器,因为这些设备需要给与最终用户更多
的权限。email不在用自己的服务器,改用微软的office 365了,teaming也摒弃自己的
产品,改用流行的商用软件了。注意,这就意味着公司很多内部软件由自己管理转变为
用第三方商用的产品了,这些基本上都是云服务。到此时人手一个laptop,都可以work
remotely了,疫情一来,办公室就可以关门了。
从产品的角度,要与时俱进就只能另起炉灶,新产品直接以kubernetes为平台,这样
scalability,HA这类问题自然一开始就考虑进去了。数据存储用回Analytical
Database,但也都是cluster。应用做成一个一个的container,增加新功能加
container就行了。新老功能各不干涉,不同公司的产品containerization后也可以集
成进去。一开始还有存储和数据库(存设置的)的支持,慢慢的都改为用户自己提供存
储和数据库。一开始只支持on-premise deployment,后来开始提供public cloud
deployment,再后来开始做SaaS。因为一开始产品就是containerized,进一步支持
public cloud和SaaS是很自然事情。
结尾,以上就是我一个53老帮菜过去十几年软件公司的大致经历,我个人认为基本上是
科技发展带来的变化的一个缩影,根据入职的时间点不同,可能经历的阶段不同,比如
成长于网络时代的人,习惯了web-based的应用,可能对client-server的应用没什么
接触;现在新人入职,直接就上云了。当然,开篇说了,我只是个普通马工,技术有限
,视角有限,但我感觉也不至于太偏。
我这篇只着重技术方面的变化,至于全球化、外包一类的,是另一个话题了。 |
T********i 发帖数: 2416 | 12 Cloud it the new mainframe.
Web front is the new VB.
Nothing changed... |
s********i 发帖数: 17328 | 13 当初刚入职的时候,看到过同事去mainframe里改COBOL程序,那真不是人干的活。。。
【在 T********i 的大作中提到】 : Cloud it the new mainframe. : Web front is the new VB. : Nothing changed...
|
n******t 发帖数: 4406 | 14 你就別扯了。cobol項目的單子不是你這種人能夠even想的,對了,我說的不是技術。
【在 s********i 的大作中提到】 : 当初刚入职的时候,看到过同事去mainframe里改COBOL程序,那真不是人干的活。。。
|
n******t 发帖数: 4406 | 15 這麼說把,你認爲的第三階段想要達到的狀態,20年前懂這行人就已經這麼幹了,僅僅
是你自己不知道而已。
我從98年的開始部署我的程序就從來沒有因爲dependency而頭大過,即使在沒有任何vm
,k8s之類的東西的年代也是一樣。而且我在這事情上面花的時間我可以打賭遠遠比你
們少。原因只有一個,因爲我覺得開餐館不一定要自己種菜,但是一定要知道菜怎麼種
的,佐料該放什麼,而不是到處買熟食然後換個包裝直接賣給用戶。
work
【在 s********i 的大作中提到】 : 第三阶段,云时代 : 公司几经变更,所有的开发测试环境都交由公司总部机房统一管理,本地的小机房基本 : 上就闲值了。总公司机房vCenter有专人管理,分为IT管理的重要机器,比如各种公司 : 内部的服务器,要求高的开发环境机器,比如,source control, official build : machine,等等,和开发测试方面不太重要的机器,因为这些设备需要给与最终用户更多 : 的权限。email不在用自己的服务器,改用微软的office 365了,teaming也摒弃自己的 : 产品,改用流行的商用软件了。注意,这就意味着公司很多内部软件由自己管理转变为 : 用第三方商用的产品了,这些基本上都是云服务。到此时人手一个laptop,都可以work : remotely了,疫情一来,办公室就可以关门了。 : 从产品的角度,要与时俱进就只能另起炉灶,新产品直接以kubernetes为平台,这样
|
s******e 发帖数: 3 | 16 说给大伙听一下,您老部署的是啥金贵程序,让我等民工开开眼
vm
【在 n******t 的大作中提到】 : 這麼說把,你認爲的第三階段想要達到的狀態,20年前懂這行人就已經這麼幹了,僅僅 : 是你自己不知道而已。 : 我從98年的開始部署我的程序就從來沒有因爲dependency而頭大過,即使在沒有任何vm : ,k8s之類的東西的年代也是一樣。而且我在這事情上面花的時間我可以打賭遠遠比你 : 們少。原因只有一個,因爲我覺得開餐館不一定要自己種菜,但是一定要知道菜怎麼種 : 的,佐料該放什麼,而不是到處買熟食然後換個包裝直接賣給用戶。 : : work
|
n******t 发帖数: 4406 | 17 金貴不金貴,我根本沒覺得deploy是一個事。你想說啥?
反正我知道你有一種沒有AWS就裝不了機的感覺,沒了docker裝不了軟件,我也沒搞懂
爲啥這麼難,你能給大家細說一下嗎?
【在 s******e 的大作中提到】 : 说给大伙听一下,您老部署的是啥金贵程序,让我等民工开开眼 : : vm
|
s******e 发帖数: 3 | 18 既然这事对您这么容易,您给介绍一下,千把台物理机,是怎么完成物理安装,用得是
啥管理监控扩容工具,远程电源和温度如何监管的,网络拓扑结构怎么做的,应用部署
,扩容怎么做的。web,数据库,计算节点spec有啥不同。os更新周期是多少,怎么做
的不间断应用更新的,等等。
最后问一句,这么多东西,您有没有从头干到尾,知道这些东西从计划到设置完成要花
多少时间?!
再提醒一下,翻一下我的贴,1、不是aws的饭,2、我从自己配置编译linux内核和
apache一路干过来的,没docker活得累点,既然有方便的为何不用?我现在连dl都用上
docker了
【在 n******t 的大作中提到】 : 金貴不金貴,我根本沒覺得deploy是一個事。你想說啥? : 反正我知道你有一種沒有AWS就裝不了機的感覺,沒了docker裝不了軟件,我也沒搞懂 : 爲啥這麼難,你能給大家細說一下嗎?
|
n******t 发帖数: 4406 | 19 對的,不容易,尤其是考慮到,攢機裝軟件這件事很多人已經不會了。所以我說了AWS
收的錢合理,你想說啥?
但是懂的人這些都是不是回事,而且20年前就不是回事,今天也不是回事。誰要願意學
,也不是回事。我就是告訴新人,不要被一些所謂的經驗之談帶偏了,不對的經驗,還
不如沒有。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
我部署的東西,只有兩種可能,我自己幹的,和我自己能幹的但是讓別人幹的。話說,
你如果上過千把台物理機,恩,就算1000個1U server一台2x12core,兩個10Gb口吧,
你先給我說說你需要多少個AWS instance才能match,一個月要花多少錢。
~~~~~~~~~~~~~~
我明確告訴你如果覺得docker讓你方便了,是因爲你打開方式不對。而且我都差不多知
道你爲啥會覺得docker方便,which exactly是被oracle,M$給害的。
【在 s******e 的大作中提到】 : 既然这事对您这么容易,您给介绍一下,千把台物理机,是怎么完成物理安装,用得是 : 啥管理监控扩容工具,远程电源和温度如何监管的,网络拓扑结构怎么做的,应用部署 : ,扩容怎么做的。web,数据库,计算节点spec有啥不同。os更新周期是多少,怎么做 : 的不间断应用更新的,等等。 : 最后问一句,这么多东西,您有没有从头干到尾,知道这些东西从计划到设置完成要花 : 多少时间?! : 再提醒一下,翻一下我的贴,1、不是aws的饭,2、我从自己配置编译linux内核和 : apache一路干过来的,没docker活得累点,既然有方便的为何不用?我现在连dl都用上 : docker了
|
g****t 发帖数: 31659 | 20 这些都是很轻的活。说着琐碎,专搞一块,996/007培训半年立即就是熟练工。这些琐
碎的事85%以上都能这样解决。
当然,在美国很难这样搞。
: 對的,不容易,尤其是考慮到,攢機裝軟件這件事很多人已經不會了。所
以我說
了AWS
: 收的錢合理,你想說啥?
: 但是懂的人這些都是不是回事,而且20年前就不是回事,今天也不是回事
。誰要
願意學
: ,也不是回事。我就是告訴新人,不要被一些所謂的經驗之談帶偏了,不
對的經
驗,還
: 不如沒有。
: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: 我部署的東西,只有兩種可能,我自己幹的,和我自己能幹的但是讓別人
幹的。
話說,
: 你如果上過千把台物理機,恩,就算1000個1U server一台2x12core,兩
個10Gb
口吧,
: 你先給我說說你需要多少個AWS instance才能match,一個月要花多少錢。
: ~~~~~~~~~~~~~~
【在 n******t 的大作中提到】 : 對的,不容易,尤其是考慮到,攢機裝軟件這件事很多人已經不會了。所以我說了AWS : 收的錢合理,你想說啥? : 但是懂的人這些都是不是回事,而且20年前就不是回事,今天也不是回事。誰要願意學 : ,也不是回事。我就是告訴新人,不要被一些所謂的經驗之談帶偏了,不對的經驗,還 : 不如沒有。 : : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ : 我部署的東西,只有兩種可能,我自己幹的,和我自己能幹的但是讓別人幹的。話說, : 你如果上過千把台物理機,恩,就算1000個1U server一台2x12core,兩個10Gb口吧, : 你先給我說說你需要多少個AWS instance才能match,一個月要花多少錢。
|
|
|
s******e 发帖数: 3 | 21 你这sb,水都灌不好,满身破绽,满身屎。tm到现在都以为搞个数据中心,就是装个机
。你tm连公头母头都分不清楚的傻逼,标签都贴到jb上了
【在 g****t 的大作中提到】 : 这些都是很轻的活。说着琐碎,专搞一块,996/007培训半年立即就是熟练工。这些琐 : 碎的事85%以上都能这样解决。 : 当然,在美国很难这样搞。 : : : 對的,不容易,尤其是考慮到,攢機裝軟件這件事很多人已經不會了。所 : 以我說 : 了AWS : : 收的錢合理,你想說啥? : : 但是懂的人這些都是不是回事,而且20年前就不是回事,今天也不是回事 : 。誰要
|
g****t 发帖数: 31659 | 22 你犯法了?不然紧张个啥。
【在 s******e 的大作中提到】 : 你这sb,水都灌不好,满身破绽,满身屎。tm到现在都以为搞个数据中心,就是装个机 : 。你tm连公头母头都分不清楚的傻逼,标签都贴到jb上了
|
d*******r 发帖数: 3299 | 23 我也好奇, 你和老魏这些老江湖C/C++的dependency是怎么管理的.
如果都是自己的lib, 那是容易.
如果有很多第三方lib/dependency, 如何做到binary级别的rebuild?
早年我在大厂打工写C/C++的时候,
都是building team搞的一堆make/cmake,
我就是用而已,从未精通过.
vm
【在 n******t 的大作中提到】 : 這麼說把,你認爲的第三階段想要達到的狀態,20年前懂這行人就已經這麼幹了,僅僅 : 是你自己不知道而已。 : 我從98年的開始部署我的程序就從來沒有因爲dependency而頭大過,即使在沒有任何vm : ,k8s之類的東西的年代也是一樣。而且我在這事情上面花的時間我可以打賭遠遠比你 : 們少。原因只有一個,因爲我覺得開餐館不一定要自己種菜,但是一定要知道菜怎麼種 : 的,佐料該放什麼,而不是到處買熟食然後換個包裝直接賣給用戶。 : : work
|
s********i 发帖数: 17328 | 24 你看他的态度就知道了:“我從98年的開始部署我的程序就從來沒有因爲dependency而
頭大過,即使在沒有任何vm,k8s之類的東西的年代也是一樣。”
你觉得他能怎么办?LOL。就像一个老头拿着智慧手机发呆,“我98年用Nokia的时候,
就从来没为打电话头大过,那是个没有任何app的年代”。
你从我的回忆录里难道找不到答案吗?还有一个重要技术发展趋势我没有明确提到,但
隐含在内了。。。有兴趣我再讲讲。
【在 d*******r 的大作中提到】 : 我也好奇, 你和老魏这些老江湖C/C++的dependency是怎么管理的. : 如果都是自己的lib, 那是容易. : 如果有很多第三方lib/dependency, 如何做到binary级别的rebuild? : 早年我在大厂打工写C/C++的时候, : 都是building team搞的一堆make/cmake, : 我就是用而已,从未精通过. : : vm
|
n******t 发帖数: 4406 | 25 請您給大家解釋一下啥叫做智慧手機。我都沒見過,恐怕也只能發呆了。
【在 s********i 的大作中提到】 : 你看他的态度就知道了:“我從98年的開始部署我的程序就從來沒有因爲dependency而 : 頭大過,即使在沒有任何vm,k8s之類的東西的年代也是一樣。” : 你觉得他能怎么办?LOL。就像一个老头拿着智慧手机发呆,“我98年用Nokia的时候, : 就从来没为打电话头大过,那是个没有任何app的年代”。 : 你从我的回忆录里难道找不到答案吗?还有一个重要技术发展趋势我没有明确提到,但 : 隐含在内了。。。有兴趣我再讲讲。
|
s********i 发帖数: 17328 | 26 LOL,用繁体字的不都叫“智慧手機”“應用軟體”吗?这会儿不装了?LOL
【在 n******t 的大作中提到】 : 請您給大家解釋一下啥叫做智慧手機。我都沒見過,恐怕也只能發呆了。
|
n******t 发帖数: 4406 | 27 所以你就覺得只有臺灣人才能用繁體字?這腦子也只配成天edit yaml file了。
【在 s********i 的大作中提到】 : LOL,用繁体字的不都叫“智慧手機”“應用軟體”吗?这会儿不装了?LOL
|
s********i 发帖数: 17328 | 28 顾左右而言它是没用的,有本事回答一下dumbCoder的问题啊。。。LOL
【在 n******t 的大作中提到】 : 所以你就覺得只有臺灣人才能用繁體字?這腦子也只配成天edit yaml file了。
|
n******t 发帖数: 4406 | 29 首先最重要的是,你必須要控制第三方lib的數目不必要的lib就別用,每個加進來的
lib都比須是非要不可的,隨意加入dependency你就完了。
我的東西大部分是server端的,一般儘量不用autotools和cmake,plain makefile外加
靜態編譯。
【在 d*******r 的大作中提到】 : 我也好奇, 你和老魏这些老江湖C/C++的dependency是怎么管理的. : 如果都是自己的lib, 那是容易. : 如果有很多第三方lib/dependency, 如何做到binary级别的rebuild? : 早年我在大厂打工写C/C++的时候, : 都是building team搞的一堆make/cmake, : 我就是用而已,从未精通过. : : vm
|
s********i 发帖数: 17328 | 30 这不是一下就露馅了。。。LOL
【在 n******t 的大作中提到】 : 首先最重要的是,你必須要控制第三方lib的數目不必要的lib就別用,每個加進來的 : lib都比須是非要不可的,隨意加入dependency你就完了。 : 我的東西大部分是server端的,一般儘量不用autotools和cmake,plain makefile外加 : 靜態編譯。
|
|
|
n******t 发帖数: 4406 | 31 同學,我的帖子你回得越多,你這輩子只知道打電話叫support的經歷就會越明顯,我
建議你三思。
外加
【在 s********i 的大作中提到】 : 这不是一下就露馅了。。。LOL
|
s********i 发帖数: 17328 | 32 LOL,那你岂不是连我个打电话的都不如啊。。。你这几句话,怎么解决人家的问题?
提供个可行的解决方案。。。能吗?LOL。因为你根本就没有做过长期的产品支持。。
。所以根本就答不出来。
【在 n******t 的大作中提到】 : 同學,我的帖子你回得越多,你這輩子只知道打電話叫support的經歷就會越明顯,我 : 建議你三思。 : : 外加
|
n******t 发帖数: 4406 | 33 53歲了,還指望別人spoon feed自己,你爲啥不找個奶瓶自己吸着呢?還可行方案了,
你能簽合同嗎?技術沒學到,猥瑣到是撲鼻而來。
哦,說得就是你,別人可沒這麼要求。。
【在 s********i 的大作中提到】 : LOL,那你岂不是连我个打电话的都不如啊。。。你这几句话,怎么解决人家的问题? : 提供个可行的解决方案。。。能吗?LOL。因为你根本就没有做过长期的产品支持。。 : 。所以根本就答不出来。
|
d*******r 发帖数: 3299 | 34 所以就是高度自己控制和定制
【在 n******t 的大作中提到】 : 首先最重要的是,你必須要控制第三方lib的數目不必要的lib就別用,每個加進來的 : lib都比須是非要不可的,隨意加入dependency你就完了。 : 我的東西大部分是server端的,一般儘量不用autotools和cmake,plain makefile外加 : 靜態編譯。
|
d*******r 发帖数: 3299 | 35 大过年的你们吵啥... 最近本版火药味为啥这么重 T_T |
n******t 发帖数: 4406 | 36 對的,當我99%的部件的dependency自己都有數的時候,很多事情就不需要了。
autotools,cmake這些不是不能用,但是你需要問自己,這東西我需要portable嗎?如
果需要,沒問題。很多人寫得程序從design到實現揪住定了只能run在一個平臺,連網
卡數目都有要求的,結果搞了一堆複雜的build system,聲稱自己可以portable,這就
是搞笑的。
【在 d*******r 的大作中提到】 : 所以就是高度自己控制和定制
|
n******t 发帖数: 4406 | 37 某些人無意中爆露了自己裝軟件和攢機器心力交瘁的狀況,現在惱羞成怒了。
【在 d*******r 的大作中提到】 : 大过年的你们吵啥... 最近本版火药味为啥这么重 T_T
|
h*i 发帖数: 3446 | 38 都是美国政治害的。入戏太深了。
【在 d*******r 的大作中提到】 : 大过年的你们吵啥... 最近本版火药味为啥这么重 T_T
|
w********m 发帖数: 1137 | 39 赞干货
学习是常态
我每年学一门新语言
就是为了保持状态
廉颇老矣
尚能饭否 |