关于IT infra:
IT一直以来是一份传统的工作,大致可以分为硬件和软件两方面,硬件类比如网络工程师、应用运维工程师、桌面运维、数据库管理员、系统管理员等,软件类比如软件开发工程师、软件运维工程师、系统实施工程师、Java工程师、.Net工程师、前/后端等。
IT基础架构的工作可以叫IT工程师或运维工程师,不过这都是一个非常笼统的称呼,不同的技术方向从业者技术水平参差不齐,工作内容也会有很大差异,不同的公司对岗位的技术能力要求也不同,绝大多数的运维工程师技术水平井井停留在基础运维的工作上,属于综合服务型,也就是打杂为主,什么都要做,包括PC,打印机,办公网络,邮件,服务器,信息安全,操作系统,集群管理,广域网,服务器网络,应用程序,基本上一个公司所有跟IT相关的工作都得他们去完成,其实这对于工程师的岗位发展非常不利。
当然在一些大型公司或互联网公司,IT基础架构岗位往往会根据人员的专业性进行细分。简单举例:
按领域来划分
1)桌面运维:PC、打印机、电话、桌面系统,办公软件;
2)基础设施运维:IDC/网络运维、服务器/存储设备运维;
3)系统运维:系统中间件运维、云计算平台运维;
4)数据运维:数据库运维、大数据技术平台运维;
5)应用运维:应用软件系统;
6)云平台运维:云平台运维;
7)容器运维:基于容器服务的运维;
按技术切面来分
1)安全运维;
2)性能运维;
3)数据运维;
4)集成运维;
按流程来划分
1)构建/持续集成、发布;
2)安装部署、升级、迁移、合并、扩展;
3)配置、初始化、配置变更;
4)备份、传输、恢复;
5)日志、监控、预警;
6)诊断排查、优化;
关于芯片公司的IT工作:
一个芯片(IC)设计的生态场景中,需要5个方面的底层技术支撑(来自摩尔精英):
- IT基础架构与技术支持
- IP资源与技术支持
- 晶圆厂工艺库与技术支持
- EDA工具库与技术支持
- CAD技术支持
一个优秀的开发平台,需要将这5个方面的硬件资源、软件资源、数据资源有机整合,高效管理和安全运维,才可以更好地支撑芯片研发设计工作的顺利进行。
在芯片(IC)公司,IT除了需要承担一些基础架构的工作外,大部分还需要担任芯片辅助设计的工作,被称为CAD工程师(Computer Aided Design,计算机辅助设计,指利用计算机及其图形设备帮助设计人员进行设计工作),CAD和IT之间有着千丝万缕的关系,IT基础架构包含了网络、服务器、存储、操作系统、信息安全等,CAD工作涉及到数据的管理、license管理、计算平台管理、EDA工具的管理等,其目标是辅助芯片研发人员更好的完成芯片设计工作。
关于设计环境:
IC设计的基本开发环境一般为Linux,因为绝大部分的EDA软件都只支持运行在linux操作系统,linux操作系统在远程接入方面也有类似vnc轻量且开源的工具,更适用于多人并发的在线使用。
CADer需要精通linux操作系统,能够处理各种复杂的问题,常常需要接触到的脚本语言包括shell/Tcl/Perl/Python。作为CAD工程师常用的shell有bash和csh(tcsh是一种类csh语言),bash是基本上是linux的默认shell,csh则由于历史原因被很多ICer偏爱,所以大部分EDA环境都会使用csh作为用户环境语言。还有可能会用到zsh。
在linux上会涉及到账户的shell环境配置,EDA工具的安装环境,数据的存储交互共享,集群调度软件的环境,设计流程的规则,快捷指令,数据的导入导出等等,所以设计环境与芯片工作有着非常密切的关联;
关于EDA软件:
在芯片设计初期,芯片是由人工进行手绘制CAD图纸,但是在当前7nm,5nm,3nm工艺下,一个指甲盖大小的地方需要布局几十亿颗晶体管,纯靠手动是不可能完成的,这时就需要借助自动化的软件完成芯片的设计布局。
EDA软件全称叫电子设计自动化(Electronic design automation:EDA),是用软件代替大部分的人力进行电子设计。它是一系列软件的统称,并不是某一个具体的软件。目前所有的芯片设计公司都离不开EDA软件的使用,并且目前大部分主流的EDA被cadence,synopsys,mentor这几家国外公司所垄断,国内领先的软件公司有华大九天、概伦电子等,但是市占份额都很小。
在实际工作中,一般一个CAD工程师需要支撑一个或多个IC设计团队的工作,帮助ICer配置EDA工具的基础运行环境,debug EDA工具使用过程中遇到的各种问题(各种随机错误),搭建良好易用的EDA工具使用平台。
一个好的CAD工程师需要了解实际的IC设计流程,了解EDA工具的用法,在此基础上进一步研发更高层级的流程自动化平台,或者研发相关的自动化工具作为商用EDA工具的补充,从而促进IC设计流程更高度的自动化。
关于软件许可:
license是EDA工具最重要的资产,一些大型EDA软件动则几十万美刀,所以管理license资产和合理分配license资源也是尤为重要。
一般会单独选取一台服务器作为license的管理server,搭配flexnet程序来管理运行license,用户在使用EDA工具时会根据shell环境中配置的license server id 到服务器上获取相应的授权。
关于运算集群:
对于稍微有些规模的IC企业而言,由于仿真运算资源消耗量大,用于进行仿真运算的硬件资源较多,服务器集群管理系统是必不可少的,那么什么是集群?集群本质上是相互连接在一起的计算机系统的集合,以提供先进而强大的计算解决方案,允许并行处理计算作业,例如深度学习,仿真等。
现在国内IC业界使用的主流的服务器集群管理系统主要为lsf集群软件。
集群部署的好处:
1)集群中会分为用户登陆服务器、功能服务器、运算服务器等,在服务器需要进行仿真等需要高性能开销时不影响用户服务器的使用;
2)集群可以保证服务器上账户与数据的一致性,更便于管理与数据共享;
3)根据功能划分queues来分配用户的计算任务,确保资源更合理的分配;
关于信息安全:
信息安全包含了网络安全,数据安全,应用安全,系统安全,是对信息系统安全管理工作的一个统称,信息安全往往和满足工作效率相违背,如何做到两者的均衡是也是很多IT工作需要考量的。
对IC企业来说,设计文档,代码,设计数据都是重要的核心资产,数据的泄漏、丢失都可能会造成公司重大损失,但是过于严苛的信息安全管控手段又会影响设计工作效率,如何做好这部分的抉择?
在网络层面:
- 设计环境需要与办公网络及生产网络隔离,用户数据进出需要通过审核,再通过指定ftp进行存取;
- 远程接入设计可以采用vdi(云桌面),确保数据不存放在用户本地;
- 完善的数据备份与数据容灾机制可以确保数据的安全;
在用户层面:
- 运用加密手段,防泄密软件管控PC本地数据;
- 文档及代码的权限审核管理;
关于远程接入:
目前大多IC企业ICer人才分布不均衡,使得一些非一线城市的IC企业需要在北上深甚至海外等地方招聘IC人才,但是IC设计又必须依托于集中使用服务器,再加上疫情之下居家办公盛行,这种种原因决定了IC设计非常依赖远程接入办公。
一般传统的远程办公手段无非是vpn,sslvpn是绝大多数远程接入的解决方案;也有很多企业会考虑使用云桌面,可以起到很好的信息安全管控;对于一些资金充裕的企业,可以通过SDWAN或者ISP专线接入;