写点什么

人少钱少需求多的新项目该怎么带?看到这篇我心里有底了!

发布于: 2020 年 10 月 30 日

摘要:工作啊,就没有一帆风顺的,如果太平稳,你就离被干掉不远了。



上回说道,年底各业务线的开发需求暴增,导致测试团队压力太大集体闹离职,亏得我提出了一个方案,用华为云的云测工具来减轻测试压力(回顾:【API进阶之路】研发需求突增3倍,测试团队集体闹离职),这才度过了难关。谁知忙完了这一阵,又该忙下一阵。于是苦中作乐的我,突然想起来不知道哪位名人曾经说过:工作啊,就没有一帆风顺的,如果太平稳,你就离被干掉不远了。



离职风波总算是“有惊无险”的过去了,在月度总结复盘会上,老板直接发问:“你们研发部门有那么多人,为什么还会出现这种情况呢?”他这一问我立马感觉到有情况,之前我们一起分析过原因了,今天又这么问,怕不只是因为这件事了。



果不其然,老板接着说,公司决定上线一个短视频制作工具,抓住当前短视频风口发展新业务。但现在同类产品比较多,前期试水阶段不会投入太多资源,让我们自己安排人力进行平台开发。



这......本来开发资源就紧张,再做新业务,可能又会有一部分人投进去出不来,之前很多老项目就是这样,探索了一段时间没有大发展,又不能轻易放弃,研发资源被不断占用。做得好的话后期的需求也没法估算,到时候还会面临这种需求突增的情况,开发运维测试的压力也会很大。



那有没有什么办法从项目开始就解决这个问题呢? 会后,我跟研发老大研究了一个新的方案:使用华为云应用管理与运维平台(ServiceStage)来做新项目的开发和管理。



应用管理与运维平台(ServiceStage)是一个应用托管和微服务管理平台,可以简化部署、监控、运维和治理等应用生命周期管理工作。ServiceStage提供了微服务、移动和Web类应用开发的全栈解决方案,不但能够提高开发效率,也减轻了后期管理的压力。



图 ServiceStage功能



这个项目我亲自带,使用ServiceStage的方式也比较简单, ServiceStage提供了各种API接口:包括部署任务、环境管理、应用管理、组件管理、注册发现等,满足开发、部署、托管、运维的需求,通过调用API就可以直接完成以上操作。



环境管理应用管理为例介绍操作步骤。



前提条件



  • 获取IAM的token,调用token认证,并将token值设置为环境变量:export Token={token}

  • 获取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精选手册》



点击关注,第一时间了解华为云新鲜技术~



发布于: 2020 年 10 月 30 日阅读数: 67
用户头像

提供全面深入的云计算技术干货 2020.07.14 加入

华为云开发者社区,提供全面深入的云计算前景分析、丰富的技术干货、程序样例,分享华为云前沿资讯动态,方便开发者快速成长与发展,欢迎提问、互动,多方位了解云计算! 传送门:https://bbs.huaweicloud.com/

评论

发布
暂无评论
人少钱少需求多的新项目该怎么带?看到这篇我心里有底了!