开发系列课程 | 云开发平台,轻量化运维监控

本文涉及的产品
云原生 API 网关,700元额度,多规格可选
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
.cn 域名,1个 12个月
简介: 云开发系列课程主要介绍了从入门到精通快速上手Serverless和云开发技术。学习内容涵盖云开发协同、云函数、云数据库、多媒体托管、前后端一体化框架等Serverless Web开发必备知识。希望通过云开发系列课程的学习与实际操作,让大家深入了解Serverless和云开发技术,并加深对阿里云云开发平台和阿里云Serverless产品的理解与认识。

本篇已经是云开发平台的第九篇内容分享,从第一篇到第九篇,大家可以发现,这是从云原生应用诞生、应用创建、开发代码、迁移部署和部署后的运维监控,一整套操作。本篇内容主要分享轻量化运维监控这部分。

 

如何绑定域名、设置泛域名并设置多环境绑定

首先先创建一个香港节点的应用开始,因为后面会涉及到域名的解析。

image001.jpg

 

应用创建后,首先要确保进入到在线的开发环境,然后去部署。部署后复制CNAME域名,然后打开域名管理平台,比如说阿里云的 DNS域名管理,然后添加记录选择记录类型CNAME,主机记录里填写*+自取名称,后缀是主域名workbench.fun。这就意味着,只需要做一次解析,未来*可以用任何域名替代。

 

创建之后,把上述复制的CNAME域名,黏贴到记录值框中,然后点击确认。记录值就把它填写我们这边复制过来的CNAME地址,第一次部署之后得到的CNAME地址复制下来,然后把它填写到记录值里边,填写之后点确认。

image002.jpg

 

确认后再回到云开发平台,点击应用配置并去绑定域名。上文中已经绑定的域名是*company. Workbech.fun, *作为通配符可以用任何内容替换,比如在日常环境下,将*换成test, 那么域名就变成了test.company.workbench.fun;预发环境一般用pre替代*;线上环境不是泛域名,所以这里还需要再解析,这里我们用production的缩写prod来替换*,就成了prod.company.workbench.fun。配置完成后点击确定保存。

 

这样操作下来,我们就可以通过一次域名解析,对一个应用的三个环境同时配置

线上真实域名,这些配置的域名不会变化,每次都可以通过它们去访问。

 

保存后再去云开发平台部署,比如部署日常环境。前提是安装了依赖,部署保存后可以先测试一下。当测试后页面显示日常环境,就可以部署到日常环境,点击继续部署,就可以等它构建、打包、部署直到完成。

image003.jpg

 

部署成功后,在部署成功的消息里可以看到“TEST环境的自定义域名test.company.workbench.fun已经绑定到API网关二级域名上,可以用自定义域名访问了”。

 

打开test的自定义域名,而不是平台分配的临时二级域名,因为临时的二级域名只有30分钟时效,所以在真实的开发环境当中,一般大家都需要绑定一个固定的域名。

 

接下来部署预发环境,理论上讲当日常环境没有问题就可以选择部署预发环境。还是回到云开发平台,选择预发环境,然后勾选“将日常环境发布到预发环境”,然后部署。

 

预发环境部署好了,点开pre.company.workbench.fun的域名,打开预发环境。这样日常和预发两套环境就固定下来了,都没有问题的话,接下来就可以把它部署到线上环境。

 

部署到线上环境的方法也是一样的。线上环境部署成功后,打开自定义域名,与前两个环境是一样的。所以,当我们日常需要一个环境做联合测试,大家可以用日常环境;用预发环境做回归测试;前两者都没问题,再发布到线上环境。

 

如何检查故障并解决故障

 

如何检查线上的故障。在刚刚部署的日常应用页面,可以看到标题是RDS/OTS数据库读取示例,下侧小字提示“以下内容读取自云开发平台todo示例数据库(RDS)”,但是下面的页面并没有loading出具体内容。那么我们可以通过点击右键并点击检查,看看具体问题。

 

发现有错误报警后,我们再次回到云开发平台。在云开发平台可以看到当应用上线后,就会出现“运维监控”和“应用账单”两个入口。运维监控是可以帮助快速查看应用线上运行的日志。那么为了解决上述的问题,我们点开运维监控查看运行日志。

 

打开运维监控后,顶部会让我们选择要查看的运维监控环境。我们点开日常环境,这里面有日志查询和函数指标。点击函数指标会切换到函数指标的一个界面,可以看到日常环境函数的调用情况,比如说内存使用情况,执行的时间,出错的情况,然后包括错误率等等这些信息。

 

点开日志查询里有个简单查询,有个高级查询,一般情况下简单查询就足够我们去使用了。在日志查询里,点开每一个请求都可以看到请求背后的信息。这里我们可以点开每一个请求,看到请求背后的日志。

 

那么我们怎么能通过海量的请求日志信息,定位到具体的问题呢?举个例子,比如

default要发起api/db_get的请求,它会引入db_conflict,也就是配置数据库的信息,然后再根据用户使用的数据库来切换不同的代码去执行不同的逻辑。

 

我们看一下 db_config.js,它会去读取不同的数据库配置。我们可以把这些数据库配置录入到我们的系统环境里面,比如说应用环境。我们先在日常环境把这个数据库连接信息这些环境变量添加进去。添加进去之后,再来日常环境测试一下,测试后再重新请求获取信息。这样就成功了。

 

所以大家如果要通过日志去定位问题,可以在你的代码里去输入日志的消息。具体方法,可以打开帮助文档中的快速入门,在运维监控部分里,有教大家怎么在应用里去写日志。大家可以通过这个文档来快速的去了解如何在应用里写日志,如何通过日志定位应用的线上的问题。

 

以上分享的是在开发调试阶段查看日志并定位问题。如果已经部署到线上了,怎么操作呢?部署成功后,可以登录原日常环境自定义域名,打开页面标题提示会由“日常环境“变成”线上环境“,说明部署成功。

 

接下来来看这个部署成功的应用,这个应用既有前端代码也有后端代码,那么这些代码用户在访问的时候就会产生一些流量,有些流量是可以缓存的。那么怎么去缓存获得更高的用户访问性能并降低下行流量呢,推荐的做法是通过给应用做CDN的全站加速来实现。CDN全站加速在帮助页面-快速入门中也有介绍的文档。

 

如何做到CDN的全站加速?

 

首先需要购买资源包。打开CDN控制台,点购买资源包,可以选择 18块钱全国通用包100GB,基本上正常情况下,个人应用都是够用的。购买之后,再到CDN控制台添加一个域名,比如泛域名*.company.workench.fun。

 

资源组不用选,业务类型是动态加速,源站信息选源站域名;然后将应用的CNAME二级域名地址复制到域名栏中;端口选择取决于用什么访问,如果用http访问选择80端口;再选择加速区域,然后点击下一步完成。

 

在实际使用中需要先将域名备案,这样可以在加速区域选择“仅中国内地”或“全球”,否则会有提示去备案。那么我们的课程分享的域名是测试域名,没有备案,所以选择“全球(不包含中国内地)”。

 

提交成功后返回域名列表,这里会出现一个CDN新分配的CNAME地址,这个新地址需要重新做一次解析。复制新的CNAME地址后再次返回DNS域名管理平台,点击添加记录。记录类型选择CNAME,主机记录填写之前的域名地址,在记录值框中,将复制的新的CNAME地址粘贴,然后点击确认完成。

 

用泛域名的好处是,每个环境都可以直接去使用CDN加速服务。

 

当“配置中”变为“正常运行”,表明配置成功。配置成功后,可以通过左侧目录中的资源用量、实时监控、统计分析等,查看配置成功域名具体日志信息。

 

在真正使用CDN的时候,可以通过页面左侧目录工具管理中的“刷新预热”,通过它可以提前把要缓存的地址,URL或目录,添加进来。这部分的操作在帮助文档中也有详细的介绍。

 

点击提交后,可以点击操作记录,可以看到它会帮助针对添加的地址进行刷新,达到提前去除缓存的效果。相当于我们主动的把缓存同步到各个CDN节点,然后用户来访问的时候就可以直接享受到CDN的加速效果。

 

这样做可以有两个好处,第一,用户访问应用性能更快;第二,应用的下行流量的费用会更低。

 

如何用https访问应用

这个在帮助文档中也有详细介绍。用https访问有两种路口,第一种情况是没有配置CDN加速的情况下,是需要到API网关操作的,但前提是需要有https的证书。帮助文档中也有介绍如何申请免费证书的方法。

 

接下来介绍下如何在API网关配置https证书。首先打开API网关的控制台,然后选择应用所在的区域,比如香港节点。然后点开刚刚测试的应用,下拉看到独立域名部分,右侧后面部分可以看到“选择证书”。

 

如果你是第一次操作,要点击手动添加证书,然后补充证书名称和内容。怎么补充这些内容在帮助文档中都有介绍。全部填写完整后,点击确定证书添加完成。完成后就可以用https访问域名了。

 

第二种情况,如果已经配置了CDN加速,如何绑定https如果配置了CDN加速,CNAME地址是需要改的。打开CDN域名控制台,点击左侧“域名管理”,点击对应域名右侧的“配置”,进入域名详情后点击左侧“https配置”。

 

然后点击“修改配置”,在弹出的配置界面开启“https安全加速”,开启后会弹出一个确认提醒,按照提示勾选“我已了解”,然后点击确认即可。


最后阿里云开发平台为了让用户更好的体验该平台特此准备了10元无门槛代金券:

https://workbench.aliyun.com/activities/coupon

相关文章
|
2天前
|
存储 运维 安全
Spring运维之boot项目多环境(yaml 多文件 proerties)及分组管理与开发控制
通过以上措施,可以保证Spring Boot项目的配置管理在专业水准上,并且易于维护和管理,符合搜索引擎收录标准。
11 2
|
1月前
|
运维 Java Linux
【运维基础知识】掌握VI编辑器:提升你的Java开发效率
本文详细介绍了VI编辑器的常用命令,包括模式切换、文本编辑、搜索替换及退出操作,帮助Java开发者提高在Linux环境下的编码效率。掌握这些命令,将使你在开发过程中更加得心应手。
31 2
|
28天前
|
存储 运维 监控
实时计算Flink版在稳定性、性能、开发运维、安全能力等等跟其他引擎及自建Flink集群比较。
实时计算Flink版在稳定性、性能、开发运维和安全能力等方面表现出色。其自研的高性能状态存储引擎GeminiStateBackend显著提升了作业稳定性,状态管理优化使性能提升40%以上。核心性能较开源Flink提升2-3倍,资源利用率提高100%。提供一站式开发管理、自动化运维和丰富的监控告警功能,支持多语言开发和智能调优。安全方面,具备访问控制、高可用保障和全链路容错能力,确保企业级应用的安全与稳定。
38 0
|
3月前
|
运维 Devops 持续交付
自动化运维之路:从脚本到DevOps探索后端开发:从基础到高级实践
【8月更文挑战第28天】在数字化时代的浪潮中,企业对于IT运维的要求越来越高。从最初的手动执行脚本,到如今的自动化运维和DevOps实践,本文将带你领略运维的演变之旅。我们将探索如何通过编写简单的自动化脚本来提升效率,进而介绍DevOps文化的兴起及其对现代运维的影响。文章将为你揭示,通过持续集成、持续部署和微服务架构的实践,如何构建一个高效、可靠的运维体系。准备好让你的运维工作变得更加智能化和自动化了吗?让我们一起踏上这段旅程。 【8月更文挑战第28天】 本文旨在为初学者和有一定经验的开发者提供一个深入浅出的后端开发之旅。我们将一起探索后端开发的多个方面,包括语言选择、框架应用、数据库设计
|
3月前
|
运维 Kubernetes 监控
|
3月前
|
敏捷开发 运维 Devops
DevOps文化:打破开发与运维之间的壁垒
【8月更文挑战第14天】DevOps文化是现代软件开发和运维的重要趋势之一。通过打破开发与运维之间的壁垒,实现自动化、持续集成/持续部署以及紧密协作等关键实践,可以显著提高软件交付的质量和效率。对于任何希望在数字化时代保持竞争力的企业来说,拥抱DevOps文化无疑是一个明智的选择。
|
3月前
|
Kubernetes 网络协议 Python
运维开发.Kubernetes探针与应用
运维开发.Kubernetes探针与应用
127 2
|
3月前
|
存储 SQL 运维
运维开发.MySQL.范式与反范式化
运维开发.MySQL.范式与反范式化
54 1
|
3月前
|
存储 运维 搜索推荐
运维开发.索引引擎ElasticSearch.倒序索引的概念
运维开发.索引引擎ElasticSearch.倒序索引的概念
51 1
|
4月前
|
API 运维
开发与运维工具问题之开源的大语言模型能够自由与外部工具交互如何解决
开发与运维工具问题之开源的大语言模型能够自由与外部工具交互如何解决
41 2