我还是那个前浪,很多朋友说看了我的故事后觉得有点励志,在大家都处于“中年危机”、“大龄程序员找不到出路”等各种焦虑的时候,我的故事像一碗鸡汤(这个说法莫名感觉很油腻,能不能换一个???)
其实我认为与其消极焦虑,不如发挥自身优势积极面对。自从公司新项目使用了云服务器之后,我就又开始了继续学习的道路。也正因为不断地学习,从最开始被实习生轻视,到后来的让老板赞赏,无疑是打了一个漂亮的翻身仗。(了解前情请戳:甩锅大会上,我是如何绝地求生的)
上次因为业务量的快速上涨,导致服务器请求量远远超出预估,好在华为云弹性云服务器想要变更规格还是非常方便的,4行代码完美解决问题。
但之后,我也在反思,作为一个资深技术人,我们就只能被动地响应需求,处理问题么?不,不应该这样。
相比起后浪们,我们的优势一方面是对技术原理的理解和实际经验的加持,另一方面,还应该能够通过对公司业务的理解甚至于对行业和商业环境的理解,提前准备一些技术方案。
顺着这个思路往下想,公司的新业务是一个内容社区,现在的日活已经突破了10万用户量级,但从后台数据看,用户增长速度明显有所下降,按照运营部门的套路,这个时候一般要提比较大的需求了。
这个需求会是什么呢?一方面,从业务角度来看,我们新业务的目标用户偏年轻化群体,并且以女性居多;另一方面,从行业角度来看,现在新媒体内容的承载形式已经从图文转变为视频和短视频。
那么,运营部门接下来会不会提出要做短视频了呢?如果做短视频,我应该先做点什么呢?
果不其然,在这周的例会上,运营部门提出,我们要通过发展短视频来进一步提升内容的多样性,从而达到提高用户停留时长与留存率的目的。
老板也点头表示赞同,我们研发老大显然事先没有准备,扭头看向了我,目光中的信任让我感动不已,加上之前我就已经预估到了这个需求,于是我代表研发团队发言:
“我们研发部门已经预判到接下来项目的发展方向会是短视频,所以提前做了预案,例如从服务器的角度来说,由于短视频相比图文内容,对服务器的磁盘空间要求更大。
但我们的服务器部署在华为云弹性云服务器上,我们可以非常方便地将已有磁盘挂载给弹性云服务器,或调用创建云硬盘的接口创建新的磁盘,然后再挂载到弹性云服务器。
为了快速响应业务调整的需求,我们已经将服务器挂载磁盘的操作文档写好了。”
说着,我打开了提前准备好的文档《弹性云服务器挂载磁盘》:
1、 创建云硬盘。
(1)接口相关信息
URI格式:POST /v2/{tenant_id}/volumes
(2)请求示例
POST: https://{endpoint}/v2/74610f3a5ad941998e91f076297ecf27/volumes
Body: { "volume": { "name": "openapi_vol02", "availability_zone":"az_test_01", "description": "create for api test", "volume_type": "SATA", "size": 40 } } 复制代码
(3)响应示例
{ "volume": { "status": "creating", "user_id": "f79791beca3c48159ac2553fff22e166", "attachments": [], "links": [ { "href": "https://xxx/v2/74610f3a5ad941998e91f076297ecf27/volumes/51f45e08-1d4f-44c6-a4a9-84a488e0e8d3", "rel": "self" }, { "href": "https://xxx/74610f3a5ad941998e91f076297ecf27/volumes/51f45e08-1d4f-44c6-a4a9-84a488e0e8d3", "rel": "bookmark" } ], "availability_zone": "az_test_01", "bootable": "false", "encrypted": false, "created_at": "2018-05-16T11:19:33.992984", "description": "create for api test", "updated_at": null, "volume_type": "SATA", "name": "openapi_vol02", "replication_status": "disabled", "consistencygroup_id": null, "source_volid": null, "snapshot_id": null, "shareable": false, "multiattach": false, "metadata": { "__system__volume_name": "openapi_vol02" }, "id": "51f45e08-1d4f-44c6-a4a9-84a488e0e8d3", "size": 40 } } 复制代码
2、 记录响应中“volume”的ID。
步骤2:挂载磁盘。
(1)接口相关信息
URI格式:POST /v2.1/{tenant_id}/servers/{server_id}/os-volume_attachments
(2)请求示例
https://{endpoint}/v2.1/74610f3a5ad941998e91f076297ecf27/servers/9f4d9281-95e7-4915-a126-1ee597101e2e/os-volume_attachments
Body:
{ "volumeAttachment": { "volumeId": "51f45e08-1d4f-44c6-a4a9-84a488e0e8d3", "device": "/dev/sdb" } } 复制代码
(3)响应示例
{ "volumeAttachment": { "id": "51f45e08-1d4f-44c6-a4a9-84a488e0e8d3", "volumeId": "51f45e08-1d4f-44c6-a4a9-84a488e0e8d3", "serverId": "9f4d9281-95e7-4915-a126-1ee597101e2e", "device": "/dev/sdb" } } 复制代码
步骤3:确认挂载磁盘是否成功。
(1)接口相关信息
URI格式:GET /v2.1/{tenant_id}/servers/{server_id}/os-volume_attachments
(2)请求示例
https://{endpoint}/v2.1/74610f3a5ad941998e91f076297ecf27/servers/9f4d9281-95e7-4915-a126-1ee597101e2e/os-volume_attachments
(3)响应示例
{ "volumeAttachments": [ { "volumeId": "4fc0b4cc-9d6c-431c-be70-3dfeec2ff6e0", "id": "4fc0b4cc-9d6c-431c-be70-3dfeec2ff6e0", "device": "/dev/sda", "serverId": "9f4d9281-95e7-4915-a126-1ee597101e2e" }, { "volumeId": "51f45e08-1d4f-44c6-a4a9-84a488e0e8d3", "id": "51f45e08-1d4f-44c6-a4a9-84a488e0e8d3", "device": "/dev/sdb", "serverId": "9f4d9281-95e7-4915-a126-1ee597101e2e" } ] } 复制代码
演示完后,老板对研发团队的超前响应提出了表扬。会议结束后,研发老大(我老板)特意组织了一次部门聚餐,席间他说到:“一个好的研发,不光技术要过硬,还要理解业务,预判业务需求,甚至做到反向去驱动业务,这样我们才不会在面对需求时处于被动。在这方面,你们一定要向你们的老大哥(也就是我)学习,我希望我们每个人都能具备这样的能力,一起加油,奥利给”!
据了解,目前API Explorer平台已开放EI企业智能、计算、应用服务、网络、软件开发平台、视频等70+云服务,共上线2000+个API、6000+个错误码。在前期试运行期间,华为云API Explorer平台上的API接口也已被多家企业成功接入。点击查看详情
华为云API Explorer平台在未来几个月会实现更多功能,比如支持SDK示例代码、CLI等特性,同时也会开放更多的云服务API接口,连接更多开发者实现创新、拓宽创新边界。
点击关注,第一时间了解华为云新鲜技术~