2021 年美东地区 IoT 公司的一次失败面试

这次面试没有获得需要的职位。

download

公司背景

公司也不属于初创型公司了,公司在市场上已经发展了 20 多年了。

主要产品是为小型设备提供监控和管理并且有些特殊的用途。

因为公司前期的产品都是基于本地的,很多时候都是没有办法进行联网的,因此公司想在这方面开发一些基于云服务相关的产品。

职位需求

这个职位需要应聘的人有比较深入的软件开发设计功底,能够实现云平台的设计和开发。

同时这个职位并对语言的选择没有什么要求,可能还是希望使用 Node 或者 Python 这类的轻量型语言吧。

同时这个职位需要能够独立完成云平台的设计,个人感觉要求的东西还是有点多的。

面试过程

在面试的过程中,主要先是介绍了公司的基础架构,在当前的情况下,这个公司的 IT 部门的人几乎是没有的。

这个公司从一个比较大的公司挖来了一个管理人员,希望能够完善整个 IT 的架构和设计等。

负责面试的就是从外面挖来的这个人了,应该是由他来负责组建团队和选择合适的人才等等。

在面试过程中主要考察了 AWS 的设计,因为当前公司的 IT 部门没有任何人,所以至于数据是什么样的,结构是什么样的,需要什么的云计算方案可以说是没有任何方案。

在具体面试的时候他一直在纠结 aws 中 lambda 和 ec2 的对比。

说实在话对这个问题确实没有研究过,所以回答有点绕。

后来经过一些了解和研究就是:

AWS EC2 是IaaS,认为它是在虚拟机上运行还是在云上运行服务器。使用EC2,您可以有更多的控制权,但需要做更多的工作,例如打补丁,维护等。使用ec2时,即使代码可能至少不会执行一次,也必须为运行实例(服务器)付费。

AWS Lambda 是与 EC2不同的技术,后者没有服务器,基本上,您只是在运行代码而未显式运行服务器。认为这只是将代码上传到云,而AWS正在为您运行服务器。您不必为服务器付费,但是无需花费任何时间执行代码。

简单来说 Lambda 使用无服务的方式来完成计算,通常对于一些内部的数据调用,转换,更新使用 Lambda 会更加高效。

因为没有实际的服务器,因此你也不需要为你的服务器去进行任何部署,甚至进行 CI/CD 集成代码了。

另外我的理解是 Lambda 只是实现某一些功能的快速部署,在一些时候,应该还是需要 EC2 本来部署的,比如说 API 的调用等等。

总结

整体来说这次面试的结果还是比较糟糕的。

在面试的过程中,对方提出了一个观点就是我们一直在 Lambda 和 EC2,数据之间绕来绕去。

当我听到这句话的时候,我基本上可以确定没有下文了。个人的感觉就是丢开数据谈方案都是耍流氓,就几百万的数据,随便你怎么折腾都可以。

所以我更多的是在考虑数据量和数据结构,对方考虑的是在没有数据设计的情况下如何选择,感觉这个选择题也是怪怪的。

可能是因为是初创 IT 团队,没有数据模型也很正常,但没有数据模型又如何选择架构呢?也许他只想知道面试的人到底有多了解 AWS 中的几个服务罢了。