项目梳理系列一

      最近发现在工作中很缺少梳理和总结,决定近期对之前的工作项目做一下梳理和总结,这一篇是开篇之作,主要想介绍一下刚参加工作时的项目。

       我从14年毕业开始进入华为,最开始是分在电信软件BU,14年的时候移动互联网已经是如火如荼了,那个时候对于电信行业来说不是什么好的年份,由于刚经历过一系类互联网社交软件的攻防战,电信行业沦为流量中间商只能收取流量费的时代已经由口号慢慢的走进现实。因此那个时候的华为电信软件BU也不是很好过,每年的营收增长都排到公司的倒数,在内部被戏称为大爷软,规模很大哦,但是增长乏力。

     显然对于一个应届生来说,这些对于当时的我来说还是比较遥远的,因为当时的我第一目标还是好好适应工作。由于我在学校期间用的语言主要是C/C++,面试也面的C++,但是到了具体分配岗位我却被分到了用JAVA的中间件平台部。还记得刚到岗位,见到师父第一面,对我说主要用的语言是JAVA时,是有多么的懵逼。而我用JAVA的室友却被分到用C++的部分,这个也是华为目前还是吐槽的一点。

    我分到的电信软件中间件平台部,当时主要是在做电信领域的PaaS层云平台研究工作,那个时候已经做了好几年了,但是没有得到公司层面的重视,想想当年那个时候阿里云也才起步不久,如果那个时候华为就能把云上升到公司层面,或许也不至于阿里云在国内公有云市场毫无对手了。由于当时的Iaas层openstack已经奠定了自己的霸主地方,成为了iaas层的事实标准,但是paas层还是一个新欣的行业,并没有哪一方占据主导,CF也才刚刚起步,更别说后面的k8s了。

   在PaaS层当时是采用自研的方式,从底层中间件zk,mq,memcache都是自己搭建,不得大感叹当时组内几位大牛的魄力和水平,

这写中间件的详细内容放在后面的章节进行阐述。

     PaaS即平台即服务,把应用服务的运行和开发环境作为一种服务提供的商业模式。Paas层不经提供了对应用的运维能力,更主要的是在平台上提供服务,用户可以直接使用这些服务的实例。

平台的模型设计

项目梳理系列一

平台对应用的管理,主要应用分为解决方案和应用,解决方式是一个复杂的部署单元,可以有多个应用和服务组成。

 solution:  应用解决方案,对于电信领域软件来说,特别是早期的电信软件,都很庞大,都会有多个应用和服务组成。

 application:  单个应用,可以单独部署也可以作为解决方案的一部分

  service : 服务,主要是一些公共的服务,如ZK,MQ等

  Component: 应用组件,用于批量管理虚拟机部署

  VM: 虚拟机,对应于单个虚拟机

  Volume: 挂载卷,虚拟机的外挂卷,用于存储

  NetWork:  网路端口,虚拟机的网路端口

  appunit: 应用部署单元,应用和服务中的部署模块,会关联对应的部署包

 设计工具

      为了方便用户进行包的设计,提供了一套界面化的设计工具,设计工具提供了相应的component,VM,Volume,NetWork ,appunit模型,用户直接根据设计模型进行简单的拖拽即可。

    设计完成之后可以通过设计工具进行校验设计包的正确性,保存之后,会根据TOSCA模型进行文件描述保存,设计包可以多次使用,直接转换为配置文件进行不同的配置操作,然后进行部署。

整体部署架构

项目梳理系列一

部署流程

项目梳理系列一