从毕业到现在已经快20年了,一直在从事Windows平台上的开发工作。刚毕业那会大约是97,98年左右,工作的平台除了Windows平台还有Dos平台,因为在学校学习时,也是从Dos开始的。因此对于从事Dos平台上的DBase程序开发也不需要适应期,后来转向到Foxpro语言。使用Foxpro语言做了差不多2年的数据库开发及维护工作。在这期间Windows95系统在国内越来越主流,因此也开始学习Windows平台上的一些开发工具,最开始时还是从Foxpro的升级版本Visual Foxpro开始的。Foxpro作为一种解释型语言,在Windows平台上没什么优势。相对于BASIC的升级版本Visual Basic来说无论是性能还是UI体验差太多,也因此很快就由Visual Foxpro转向的Visual Basic语言。同时也开始了对Win32API的学习,在学习的过程中对于Windwos系统及Visual Basic都是更加深刻与清晰的认识,对于Visual Basic对 Windows系统严重依赖和Active DLL的工作模式实在是让人恼火。也曾经一度转到Delphi语言进行开发工作,但后来还是因为工作需要的原因又转回到Visual Basic语言。再后来随着.Net的出现,转向了C#。在数据库方面也是算是由Dos平台的Dbase,Foxpro,Access,SQL Server一路走来。因为工作一直围绕着Windows平台上的MIS相关开发工作,所以对于从2000年左右已经开始的Web开发并没有太多实际的接触,当时也只是对于HTML,Javascript,CGI等技术做过一些粗浅的学习,因为当时工作中没有与Web相关的内容,因此就没有继续深入的进行学习。
时间一晃到了2008年,公司的产品方向也开始向Web方向转移,由于公司一直走的是微软系的技术路线。因此选择ASP.Net进行Web产品开发也就变成了理所当然,公司第一款Web产品是一个在线支付平台。由于公司里的人员对于Web开发都不熟悉,当时这个项目还进行了外包,也正是因为公司的人员对于Web开发不熟悉,所以对于产品的一些功能需求定义及功能实现都提出来太具体的内容,也造成了外包公司开发的产品最终并不算成功。也是从那时起公司决心产品还得由自己人来做,但自己做的前是需要现在人员要首先转技术路线,从以往的WinForm程序开发转向Web开发,最开始只指定了2,3个人进行预研,当时的选项有Asp.net、Java及Saleforce。还有当时在国内并不知名的Pythan。最好发现像我们公司这种小公司,还是ASP.net最适合。
一晃10年过去了,我们的产品已经基本全部都转到了Web平台。但最近3,4年云服务的一军突起及移动设备应用的兴起,又让我们公司再一次站到了选择的十字路口。不可否认的国内近10年的发展可以用一日千里来形容,整个中国就是在不停的加速中发展着。我们公司的老板一直在美国,最近一次出差去美国与老板沟通。他也不得不承认,现在在互联网应用这方面,中国比美国走得还要快。在移动支付这方面优势就更加明显,我们在2年前就已经为公司的在线支付平台开发了二维码相关功能,但是由于二维码在国外使用的较少,所以一直没有得到太好的推广,直到Apple的IOS11开始支持QR码并提供扫描功能后,这项功能才开始向客户进行有效的推广。其实没有应用场景也难怪客户无法理解功能。这也从侧面的反应了在金融支付这块已经走的非常前面了。由于公司的产品大部分集中在Web端,公司的人员结构也与10年前有着很大的不同。以前的团队主要是由开发人员与测试人员组成,现在的团队的人员结构则是由开发人员+测试人员+运维人员+技术支持+美工组成。谈到运维,就得谈谈数据中心及服务器,目前我们的服务器主要都托管在美国的数据中心,但运维还是由我们负责,无论硬件还是软件都是由我们进行管理。这对运维人员的要求就比较全面,要对网络协议、服务器硬件、操作系统、数据库系统、工具软件都很熟悉,才能较好的完成相应的运维工作。最近两年比较火的全栈工程,我想是与这方面的需求有关。出于现实的情况是我们是一家规模比较小的公司,我们利润支撑不起太多的人员。同时我们也想把我们的精力集中到我们产品业务功能的改进上,因此我们希望将我们的产品迁移到云上,这样我们就可以不用担心网络维护与硬件维护等相关的工作。所有的起因都是因为要面对现实。在考察了一年的时间后,我们发现现有的云端服务商提供的产品价格还是比较高的,无论的Azure,AWS,Google,阿里,腾讯。这些服务商中性能稍微高一些的虚拟机,每月的使用费都要在¥1000以上。像我们原来基本Windows平台开发的ASP.Net应用,对于性能要求都太高了,同时微软系产品的另一个硬伤(产品许可价格)就更加突显了。这样性价比,对于我们争取客户来说毫无优势。我们在调查过程中发现,Linux平台对于硬件需求都是较低的,而且Linux平台的产品很多都是开源及免费的。性能与安全性并不输微软系产品。因此我们决定将我们的产品再一次的做转型,这一次将全部转向Linux平台。
平台选定后,就是决心了。我初始的想法还是先小范围的测试,搭建一个用于测试的平台,Linux系统的分支很多(FreeBSD , OpenBSD, PCBSD , Mac OS,CentOS, Scientific Linux, Red Hat,Debian, arch linux, Gentoo, Slackware,OpenSuSe, Fedora, Ubuntu)最终选择了CentOS,主要是考虑其是基于RedHat,稳定性高。同时部署Nginx+PostgreSQL服务,并开发一款小型应用,用于测试平台的可行性及性能。因为以前对于Linux平台上的技术真的不太熟悉,所希望借着这次转型好好的学习一下Linux平台下的相并技术。万事开头难,准备选从安装配置CentOS开始。下一篇就讲讲我在安装CentOS过程中遇到的问题及解决方法。