【API进阶之路】因为不会创建云服务器,我被实习生摆了一道(api部署云服务器)
495
2022-05-29
突然想起来不知道哪位名人曾经说过:工作啊,就没有一帆风顺的,如果太平稳,你就离被干掉不远了。
上回说,年底各业务线的开发需求暴增,导致测试团队压力太大集体闹离职,我提出了一个方案,用华为云的云测工具来减轻测试压力。
(回顾:【API进阶之路】研发需求突增3倍,测试团队集体闹离职)
这阵离职风波总算是过去了,在月度总结复盘会上,老板直接发问:“你们研发部门有那么多人,为什么还会出现这种情况呢?”他这一问我立马感觉到有情况,之前我们一起分析过原因了,今天又这么问,怕不只是因为这件事了。
果不其然,老板接着说,公司决定上线一个短视频制作工具,抓住当前短视频风口发展新业务。但现在同类产品比较多,前期试水阶段不会投入太多资源,让我们自己安排人力进行平台开发。
这......本来开发资源就紧张,再做新业务,可能又会有一部分人投进去出不来,之前很多老项目就是这样,探索了一段时间没有大发展,又不能轻易放弃,研发资源被不断占用。做得好的话后期的需求也没法估算,到时候还会面临这种需求突增的情况,开发运维测试的压力也会很大。
那有没有什么办法从项目开始就解决这个问题呢?会后,我跟研发老大研究了一个新的方案:使用华为云应用管理与运维平台(ServiceStage)来做新项目的开发和管理。
应用管理与运维平台(ServiceStage)是一个应用托管和微服务管理平台,可以简化部署、监控、运维和治理等应用生命周期管理工作。ServiceStage提供了微服务、移动和Web类应用开发的全栈解决方案,不但能够提高开发效率,也减轻了后期管理的压力。
(图 ServiceStage功能)
这个项目我亲自带,使用ServiceStage的方式也比较简单, ServiceStage提供了各种API接口:包括部署任务、环境管理、应用管理、组件管理、注册发现等,满足开发、部署、托管、运维的需求,通过调用API就可以直接完成以上操作。
以环境管理和应用管理为例介绍操作步骤。
前提条件
l 获取IAM的token,调用token认证,并将token值设置为环境变量:export Token={token}
l 获取ServiceStage的endpoint。
示例1:环境管理操作步骤
1、调用“创建环境接口”,添加基础资源。
请求示例
curl -k -H "Content-Type:application/json" -H "X-Auth-Token:$Token" -X POST "https://{servicestage_endpoint}/v2/{project_id}/cas/environments" -d '{ "name": "dev-env", "description": "develop environment", "enterprise_project_id": "0", "charge_mode": "provided", "vpc_id": "b9b8f9ad-1a2e-403d-83f1-cb71a3c06df8", "base_resources": [ { "id": "b6862a62-d916-11e9-bdf1-0255ac101fd9", "type": "cce" } ] }'
返回结果如下,得到的id,后续示例中以{environment_id}代替。
{ "id": "ea011e01-2eb5-453f-87bf-874e4a855abe", "name": "dev-env", "alias": null, "description": "develop environment", "project_id": "bf8523d898b64e4eb956e3be3555ca16", "enterprise_project_id": "0", "charge_mode": "provided", "vpc_id": "b9b8f9ad-1a2e-403d-83f1-cb71a3c06df8", "base_resources": [ { "id": "b6862a62-d916-11e9-bdf1-0255ac101fd9", "type": "cce" } ], "creator": "xxx", "create_time": 1578984198394, "update_time": 1578984198394 }
2、调用“修改环境资源接口”,为环境添加其他需要的资源。
根据自己已有的资源和需求,可以将和环境相同vpc下的ecs,cce,elb,cse,eip等多种类型的资源添加到环境中。
请求示例
curl -k -H "Content-Type:application/json" -H "X-Auth-Token:$Token" -X PATCH "https://{servicestage_endpoint}/v2/{project_id}/cas/environments/{environment_id}/resources" -d '{ "add_optional_resources": [{ "id": "default", "type": "cse" }] }'
返回结果
{ "id": "ea011e01-2eb5-453f-87bf-874e4a855abe", "name": "dev-env", "alias": null, "description": "develop environment", "project_id": "bf8523d898b64e4eb956e3be3555ca16", "enterprise_project_id": "0", "charge_mode": "provided", "vpc_id": "b9b8f9ad-1a2e-403d-83f1-cb71a3c06df8", "base_resources": [ { "id": "b6862a62-d916-11e9-bdf1-0255ac101fd9", "type": "cce" } ], "optional_resources": [ { "id": "default", "type": "cse" } ], "creator": "xxx", "create_time": 1578984198394, "update_time": 1578984198394 }
3、调用“根据环境ID获取环境详细信息接口”,去查询环境
请求示例
curl -k -H "Content-Type:application/json" -H "X-Auth-Token:$Token" -X GET "https://{servicestage_endpoint}/v2/{project_id}/cas/environments/{environment_id}"
返回结果
{ "id": "ea011e01-2eb5-453f-87bf-874e4a855abe", "name": "dev-env", "alias": null, "description": "develop environment", "project_id": "bf8523d898b64e4eb956e3be3555ca16", "enterprise_project_id": "0", "charge_mode": "provided", "vpc_id": "b9b8f9ad-1a2e-403d-83f1-cb71a3c06df8", "base_resources": [ { "id": "b6862a62-d916-11e9-bdf1-0255ac101fd9", "type": "cce" } ], "optional_resources": [ { "id": "default", "type": "cse" } ], "creator": "xxx", "create_time": 1578984198394, "update_time": 1578984198394 }
示例2:应用管理操作步骤
1、调用“创建应用接口”,创建应用。
请求示例
curl -k -H "Content-Type:application/json" -H "X-Auth-Token:$Token" -X POST "https://{servicestage_endpoint}/v2/{project_id}/cas/applications" -d '{ "name": "TestApp", "description": "application_description", "enterprise_project_id": "0" }'
返回结果如下,得到的id,后续示例中以{application_id}代替。
{ "id": "06cf2fda-af45-44b4-9e22-6294c4804515", "name": "TestApp", "description": "application_description", "creator": "string", "project_id": "bf8523d898b64e4eb956e3be3555ca16", "enterprise_project_id": "0", "create_time": 1578984171041, "update_time": 1578984171041 }
2、调用“修改应用配置信息接口”,为应用添加环境变量,后续在该应用某环境下部署的组件都会继承该应用的环境变量。
请求示例
curl -k -H "Content-Type:application/json" -H "X-Auth-Token:$Token" -X PUT "https://{servicestage_endpoint}/v2/{project_id}/cas/applications/{application_id}/configuration" -d '{ "environment_id": "0fa75dfe-0d32-4bc1-848b-8008cf3f2567", "configuration": { "env": [ { "name": "app-env", "value": "env" } ] } }'
返回结果
{ "application_id": "06cf2fda-af45-44b4-9e22-6294c4804515", "environment_id": "0fa75dfe-0d32-4bc1-848b-8008cf3f2567", "configuration": { "env": [ { "name": "app-env", "value": "env" } ] } }
3、调用“根据应用ID获取应用详细信息接口”,查询应用详细信息。
请求示例
curl -k -H "Content-Type:application/json" -H "X-Auth-Token:$Token" -X GET "https://{servicestage_endpoint}/v2/{project_id}/cas/applications/{application_id}"
返回结果
{ "id": "06cf2fda-af45-44b4-9e22-6294c4804515", "name": "TestApp", "description": "description", "creator": "xxx", "project_id": "bf8523d898b64e4eb956e3be3555ca16", "enterprise_project_id": "0", "create_time": 1578984171041, "update_time": 1578984171041 }
还可以实现组件管理、注册发现等操作。
了解更多API信息:
“免费下载创新加速利器《华为云API精选手册》
《中国API生态与开发者现状调研报告(2020年)》
【拓展阅读】
【API进阶之路】因为不会创建云服务器,我被实习生摆了一道
【API进阶之路】前浪的绝地反击与自我证明
【API进阶之路】甩锅大会上,我是如何绝地求生的
【API进阶之路】一个技术预案,让老板当场喊出了“奥利给”
【API进阶之路】万万没想到,一个技术方案帮实习生追到了运营妹子!
【API进阶之路】一个技术盲点,差点让整个项目翻车
【API进阶之路】老板给我涨薪30%!如何通过SDK接口搞定千万级流量直播
【API进阶之路】半天搞定百万条手机号归属地查询,竟影响了公司战略方向!
【API进阶之路】无法想象!大龄码农的硬盘里有这么多宝藏
【API进阶之路】高考要考口语?一场10w+刷屏活动是如何用多模态评测API做出来的
【API进阶之路】帮公司省下20万调研费!如何巧用情感分析API实现用户偏好调研
【API进阶之路】逆袭!用关键词抽取API搞定用户需求洞察
【API进阶之路】破圈,用一个API代替10人内容团队
【API进阶之路】用API打造一条自动化内容生产流水线
【API进阶之路】没有AI工程师也能做OCR文字识别
【API进阶之路】太秃然了,老板要我一周内检测并导入一万个小时的视频
【API进阶之路】干掉PPT!现场编码的职级晋升答辩你参加过么?
【API进阶之路】研发需求突增3倍,测试团队集体闹离职
——活动推荐——
华为云已经成为全球主要云服务供应商,在华为云上开放了2400+ API,包括计算、存储、网络、应用服务、软件开发服务、视频、数据库、EI智能等74+产品,如何利用这些丰富强大的API快速开发自己的应用和服务,成为大家关注的热点。
华为云API学习赛,为入门初学者量身定制的学习平台,以赛带学,学以致用。无需代码,只需下载体验模板,按操作文档操作即可完成作品。参赛、邀请都有丰富奖品,还有机会拿P40 5G手机超级激励!!识别下图二维码即可报名参加。
API入门学习赛·AI人脸识别
报名地址
奖项设置
API入门学习赛·探险寻宝之旅
报名地址
奖项设置
API Explorer 微服务 API
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。