腾讯TCA一些笔记,只敲了前几章,以官方文档和教学为主

目录:


文章目录


云开发基础

一、传统IT架构的特点

企业信息化建设系统:OA管理系统、ERP管理系统、CRM管理系统、学生档案管理系统、资产管理系统等。

1.软件开发模式:瀑布开发模型

​ 标准化、阶段清晰、环环相扣

​ 1970年W·Royce提出、最早的软件开发模型、给出固定顺序,将生命周期从上一个阶段向下一个阶段逐级过渡。

阶段内容
定义阶段计划、需求分析
开发阶段设计、编码、测试
维护阶段运行维护

2.软件架构:单体架构

​ 单体架构是最简单的软件架构,开发速度快、成本低。

​ 常用于传统的应用软件开发及传统Web应用。

二、业务驱动下的IT架构变革

1.IDC(互联网数据中心Internet Data Center):

​ 分为实体服务器托管和租用两种类型。

2.SAO-面向服务的架构

​ 将重复公用的功能抽取为组件,以服务方式给各个系统提供服务。

三、互联网+带来的挑战

1.互联网+时代的业务特征

​ 用户规模大、接入方式多

​ 集中式访问、流量突增

​ 大数据

​ 市场需求变化大

2.传统基础设施的局限性

​ 服务器设备、机房专人维护、前期投入成本高。

​ 倍数部署,资源利用率差、资源浪费

​ 流量突增难以应付不够灵活

四、云计算简介

​ 云计算是一种新的提供资源按需租用的服务模式,一种新型的IDC业务。

云计算特点
租用资源范围云计算业务租用的资源范围广泛,不局限于服务器和宽带
服务能力云计算提供弹性的按需扩展的资源租用服务
资源透明性用户不需要了解资源的物理信息
运维难度降低较多的沟通和少量的运维

1.云计算的服务模式

云计算服务模式内容
SaaS(Software as a Servicve)软件即服务,通过网络提供软件程序服务
PaaS(Platform as a Servicve)平台即服务,以服务器平台或者开发者环境提供服务
IaaS(Infrastructure as a Servicve)基础设施即服务,注重计算资源的共享,消费者通过网络从资源池中获取IT相关的基础设施资源

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-99Hst8tu-1637999444840)(C:\Users\Lenovo\AppData\Roaming\Typora\typora-user-images\image-20211001163427958.png)]

2.云计算解决的问题:

规模大,按需付费,成本大大降低

弹性,优雅应对流量突增,灵活扩展

可靠,快速故障恢复,保证应用高可用

极速、安全、易用

五、云时代的开发方式

​ 基于云特性进行开发,开发出的软件具有水平扩展、低门槛准入和高度解耦复用等云计算特性

​ 开发模式演变:瀑布模型转变为敏捷开发

​ 传统单体架构转变为微服务架构

​ 无服务器


腾讯云开发入门

一.腾讯云可用区(机房)

·大陆:北上广深

·国际:新加坡、多伦多、硅谷

·创建实例可指定、迁移可用区。

1.优点:

·高可用、容灾

·降低访问时延

·数据管理、保护

·收费低

二、腾讯云开发准备

1.开发接入流程

获取主账号->选择使用方式->创建子账号->获取访问密钥->准备开发环境->开始使用

访问密钥包括Secretld和SecretKey,子用户创建时勾选编程访问自动创建,也可以手动创建

2.实名认证:

·个人实名

·企业实名

3.使用方式

·云控制台

·SDK方式

·API方式:

三、账号使用与安全

1.账号分类

账号类型主账号子用户协作者消息接收者
控制台访问
编程访问
策略授权默认拥有全部策略
消息通知

子用户、协作者、消息接收者统称为子账号

开发可以直接使用主账号,但是不推荐,因为权限过高,一旦泄露所有资源都受影响

2.如何避免安全问题

·开启MFA保护

·使用子账号访问腾讯云

·分子账号管理用户权限和资源

3.访问管理CAM

用户关联用户组->用户组添加用户->用户、用户组关联策略->用户获取身份凭证

4.角色与角色载体

角色类似于腾讯云用户,可以看作是腾讯云的虚拟账号

能够申请角色的载体叫做角色载体,可以是腾讯云账户,也可以是腾讯云产品

5.通过CAM创建子账号

登录CAM->新建子用户->填写用户信息->设置用户权限->审阅信息和权限->开始使用

6.CAM最佳实践

·使用用户组给子账号分配权限

·最小权限原则

·定期轮转身份凭证

·删除不需要的证书和权限

·使用临时密钥

四、开发环境准备

1.本地开发环境(以Java为例):

·网络环境,访问腾讯云,下载依赖包等

·Java开发环境:JDK1.7以上

·Maven版本:3.5

​ ·修改setting配置为国内下载镜像

​ ·Maven编码过程需要下载依赖,需要网络环境

·Eclipse或者IDEA

​ ·字符集编码:utf-8

2.云端开发环境

Cloud Studio:基于浏览器的继承开发环境

网址:

五、云API简介

1.云API是腾讯云开放生态的基石

快速、高效、灵活、兼容性强

2.云API应用场景

功能组合、定制化需求

3.云API基本结构

·请求url(网址)

·请求头部:公共请求参数

​ ·公共参数是用于标识用户和接口鉴权目的的参数

​ ·公共参数根据签名方法分为两类:

​ ·v3:TC3-HMAC-SHA256,公共参数统一放在HTTP Header请求头部中

​ ·v1:HmacSHA1和HmacSHA256签名方法

​ ·地域列表:不同产品支持地域不同

·请求体:接口参数

4.请求方法

·通信协议:

​ ·腾讯云API的所有接口均通过HTTPS进行通信,提供高安全性的通信通道

·支持的HTTP请求方法:

​ ·POST

​ ·GET

·字符编码:

​ ·UTF-8

5.使用v3签名

申请安全凭证->拼接规范请求串->拼接待签名的字符串->计算签名->拼接Authorization->使用完整的信息访问云API

六、API 3.0 Explorer

提供了在线调用、签名验证、SDK代码生成和快速检索接口等能力


本地应用迁移到云端

一、本地应用上云基础

1.基本步骤

本地服务器(前后端应用)迁移到云服务器->本地数据库迁移到云服务器安装数据库->本地储存迁移到到云端储存

2.云服务器CVM是一种弹性计算的服务器

3.CVM最佳实例

·限制访问

·安全登录

·硬件存储

4.迁移流程

新建云虚拟机,安装部署环境->云虚拟机中新建并初始化数据库->上传本地对象存储数据到云虚拟机->修改应用数据库和存储配置->打包并上传应用到云虚拟机->启动应用,提供服务

二.负载均衡(Cloud Load Balancer,CLB)

1.功能

·对多台云服务器进行流量分发的服务

·负载均衡可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可行性

·负载均衡服务会检查云服务器池中服务器实例的建康状态,自动隔离异常状态的实例

·负载均衡服务具备自助管理、自故障修复、防网络攻击等高级功能,适用于企业、社区、电子服务、游戏等多种应用场景

·提供多协议转发

​ 四层负载均衡(TCP UDP)

​ 七层负载均衡(HTTP HTTPS)

·流量分配算法

​ 加权轮询

​ 加权最小连接数

​ 源地址散列调度算法

·跨可用区容灾

​ ·在同一个地域内采取多可用区部署

2.分类

·负载均衡(应用型负载均衡)

​ 支持TCP/UDP/HTTP/HTTPS协议

​ 提供基于域名URL路径的均衡能力

​ 支持灵活转发

·传统型负载均衡

​ 内网不支持HTTP/HTTPS协议,配置方法简单

3.使用步骤

创建负载均衡->配置负载均衡监听器->配置转发规则->配置健康检查->配置会话保持->绑定云服务器->配置重定向(可选)

4.API

API接口描述
CreateLoadBalancer购买负载均衡实例
CreateListener创建负载均衡监听器
CreateRule创建负载均衡七层监听器转发规则
RegisterTargets绑定后端机器到监听器上

5.最佳实践

·推荐使用负载均衡

·负载均衡开启Gzip配置

​ 开启gzip功能对网页进行压缩可以有效降低网络传输的数据量,提升客户端浏览器的访问速度

·负载均衡算法的使用

​ ·加权轮询算法:无状态、简洁和实用性

​ 用户可知每个请求占用后端时间基本相同,如已知rs处理的都是同类型或者相似请求时

​ ·加权最小连接数:适合长时处理的请求服务,如FTP等应用

​ 处理不同的请求,且请求占用后端时间相差较大

​ ·源地址散列调度算法:ip_hash可以实现部分会话保持的效果,能够记住源IP

​ 适合负载均衡无cookie功能的TCP协议,不支持会话保持的场景进行会话保持

三、弹性伸缩(Auto Scaling,AS)

1.传统方式:

·传统手工操作繁琐,配置繁琐易出错

·资源闲置浪费

·无法及时容错

在这里插入图片描述

2.弹性伸缩

·可以根据业务需求和策略自动调整CVM计算资源

·自动化:自动伸缩实例,无需人工干预

·省成本:适量伸缩实例,节省成本

·容错性:系统自动检测,及时容错

在这里插入图片描述

3.使用流程

创建启动配置->创建伸缩组->创建伸缩策略

4.API

API接口说明
CreateLaunchConfiguration创建启动配置
CreateAutoScalingGroup创建伸缩组
CreateScalingPolicy创建告警触发策略
CreateScheduledAction创建定时任务
CreateNotificationConfiguration创建通知
CreateLifecycleHook创建生命周期挂钩

5.最佳实践

·提前部署扩缩容

​ 提前设置Auto Scaling定时策略,实时响应

·低成本应对业务浪涌

​ 实时自动增加或减少CVM实例,并自动完成负载均衡配置,大量节约成本

·自动替换不健康CVM

定时对CVM进行健康检查,自动替换异常实例,保留操作记录

四、存储扩容

1.传统集中式存储局限性

·横向扩展差,交付周期长

·价格昂贵

·数据联通困难

·专人管理,维护成本高

·手动扩容

2.API

API接口说明
CreateDisks创建云硬盘
AttachDisks挂载云硬盘
ResizieDisk扩容云硬盘
CreateSnapshot创建快照

3.最佳实践

·多块云硬盘构建RAID组

·多块云硬盘构建LVM逻辑卷

4.文件存储CFS

·集成管理、自动扩展、安全可靠、成本低廉

·支持多客户端共享


云数据库

一、云数据库MYSQL

1.数据库简介

·分类:

​ ·按数据组织方式分为关系型数据库和非关系型数据库

​ ·按数据库架构分为集中式数据库和分布式数据库

·集中式数据库:CDB CRS

`分布式数据库:DCDB MongoDB HBase TiDB TData

·传输服务:DTS

·CDB:主要包括云数据库MySQL、SQL Server、TDSQL、PostgreSQL

2.云数据库MySQL

·特点:高性能、容灾、安全检查、易用

·使用步骤:

登录腾讯云平台->购买云数据库MySQL->初始化数据库->本地数据库数据迁移->修改应用配置->部署应用、访问

3.数据迁移

·迁移本地数据到云数据库方案:

​ ·sql文件导入:数据量少(<=2G)

​ ·在线迁移:DTS数据迁移工具迁移(实时不停服同步)

​ ·离线迁移:备份文件还原

·sql文件导入步骤:

进入对应数据库管理实例->选择要导入的sql文件->选择目标数据库->确认数据导入->完成数据导入,访问数据库

4.读写分离

·简介:

​ ·主数据库处理事务增、改、删操作(INSERT UPDATE DELETE)

​ ·从数据库处理SELECT查询操作

​ ·数据库复制把事务性操作导致的变更同步到从数据库

​ ·一个主数据库、多个从数据库

​ ·云数据库MySQL支持用户创建一个或多个只读实例,可显著降低数据库的读负载能力

·实现步骤:

购买云数据库MySQL->创建只读实例->修改应用数据源配置->修改代码支持读写分离->重新编译、部署应用->验证效果

5.云数据库MongoDB

·关系型数据库的瓶颈:

​ ·高并发读写需求

​ ·海量数据和高效率读写

​ ·高扩展性和可用性

​ ·互联网时代关系数据库很多特性不在需要:

​ ·事务的强一致性

​ ·读写强实时性

​ ·多表关联查询弱化

·MongoDB简介:

​ ·基于开源NoSQL数据库

​ ·高性能

​ ·分布式数据存储服务

​ ·完全兼容MongoDB协议

​ ·适用于面向非关系型数据库的场景

·MongoDB和MySQL的区别

MongDBMySQL
类型NoSQL数据库关系型数据库
存储方式文档存储行存储
数据量支持海量数据存储单表数据过大性能下降厉害
事务支持不支持支持
应用场景表结构不明确、经常变化、海量数据结构化查询、事务、一致性要求、关联查询

·使用步骤

进入云数据库MongoDB主页->创建实例->初始化实例->应用添加依赖、配置文件->编写代码,操作实例->验证效果

·云数据库MongoDB数据迁移:

​ ·云服务器CVM自建实例迁移

​ ·外网实例迁移

·云数据库MongoDB使用

​ ·提供多种语言连接方式

​ ·随时调整实例配置,升级

​ ·支持创建一个或多个只读实例

6.云对象存储COS

·文件存储CFS问题:

​ ·直接挂载主机适合文件共享,但是没有直观的web管理界面

​ ·存储能共享但是文件权限很难控制

​ ·只是作为存储,无法直接通过HTTP方式访问

​ ·无CND节点

·COS简介

​ ·对象存储是腾讯云提供的一种存储海量文件的分布式存储服务,用户可通过网络随时存储和查看数据

·COS存储级别:

​ ·标准存储(默认)

​ ·低频存储

​ ·归档存储

·对比:

在这里插入图片描述

·控制台使用步骤

注册登录->创建存储桶->上传对象->下载对象->删除对象->删除存储桶

·操作COS对象存储的工具

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mahYCmPW-1637999444850)(C:\Users\Lenovo\AppData\Roaming\Typora\typora-user-images\image-20211124170753936.png)]
·API
在这里插入图片描述
·Service接口

接口说明
GET Service获取存储桶列表

·Bucket接口
在这里插入图片描述
·Object接口:
在这里插入图片描述

·SDK操作对象存储

·提供丰富多样的SDK

·JAVA SDK访问步骤

添加依赖->初始化密钥信息->初始化COSClient->上传文件->下载文件->关闭客户端


云原生应用设计与开发

一、云原生简介

1.云原生的演进过程:

·系统资源

​ 操作系统->虚拟化->云计算->容器->k8s

·应用架构

​ 单体架构->SOA->微服务架构

·生命周期管理

​ 瀑布开发->CI(持续集成)\CD(持续部署)->CI\CD\CO(持续运营)

2.云原生计算基金会CNCF

·隶属于linux

·诞生与2015年7月

3.什么是云原生

·云原生是一种文化,更是一种潮流,是云计算的一个必然导向

·总结为“适合云的应用”和“好用的云架构”

二、云原生架构

1.Spring Cloud

·核心是服务的注册与发现

·服务提供者:服务的被调用方

·服务消费者:服务的调用方

·只能使用Java开发

2.Service Mesh

·支持多种语言开发

·架构分层:

​ ·数据面

​ ·控制面

.Sidecar模式

​ ·是一种将应用功能从本身剥离出来作为单独进程的方式

​ ·该模式允许我们向应用无侵入添加多种功能,避免了为满足第三方组件需求而额外添加配置代码

·适合场景

​ ·集群中存在多种语言互通

​ ·服务器底层基于非springboot框架进行开发

​ ·遗留系统,不希望因为微服务化而做更多的侵入式变更

​ ·服务运维人员希望服务框架的升级无需业务联动升级

·容器化

​ ·kubernetes是一个开源的管理容器的应用

·DevOps:

​ ·是一组过程、方法与系统的统称

·持续交付

3.云原生机构的技术特征

·采用轻量级的容器

·设计为松耦合的微服务

·通过API进行交互协作

·使用最佳的语言和框架开发

·通过DevOps流程进行管理


TSF介绍与容器化部署

一、腾讯微服务平台TSF

1.功能:

·微服务架构

·DevOps

·服务化能力支持

·数据化运营

·服务治理

2.整体架构

·负载均衡

·API网关

·TSF

·消息队列

·虚拟机

·容器

二、容器介绍

1.云容器TKE介绍

·基于腾讯云容器微服务

·TKE VS kubernetes

特性TKEkubernetes
管理简化集群管理管理复杂
扩展灵活集群托管,集成负载均衡可用性可扩展性差
可靠性资源高度隔离,服务高可用租户设备内核模块隔离性等较差
效率镜像快速部署,业务持续继承网络、容器的创建效率无保证
成本容器服务免费人力成本、硬件成本高

·应用场景

​ ·微服务架构

​ ·持续继承与交付

​ ·弹性伸缩

2.Docker基本使用

·Docker命令

基本命令意义
docker login登录docker仓库
docker images查看系统中的镜像
docker pull/从仓库拉去镜像
docker push/:将自定义的镜像发布到仓库
docker built -t使用当前目录下的Dockerfile构建镜像
docker run使用镜像创建容器
docker image rm删除指定的镜像
docker container Is列出所有运行的容器
docker start<containerid/container-name>启动容器
docker stop<containerid/container-name>停止容器
docker restart<containerid/container-name>重启容器
docker rm<containerid/container-name>删除容器

3.Dockerfile基本使用

·使用流程

制作镜像->推送镜像->拉取镜像

·命令:

命令意义
FROM确定基础镜像
RUN运行镜像
COPY复制镜像
CMD运行容器

4.利用云容器部署TSF

·步骤

创建容器集群->导入云主机->创建容器应用->创建部署组->初始化镜像仓库->创建镜像和推送镜像到仓库->部署应用

三、TSF容器管理

1.配置管理:

·特点

​ ·支持分布化管理(仅SpringCloud)

​ ·配置异构管理系统

​ ·支持文件在控制台上编写YAML格式的配置

·配置管理分类

​ ·应用配置(优先级最高)

​ ·全局配置

​ ·本地配置(优先级最低)

2.应用配置

·步骤

添加依赖->引用配置->TSF应用配置内容填写->发布配置

·应用配置的功能

​ ·创建配置项:一个配置项管理多个版本的配置

​ ·生成新版本:基于历史版本生成新版本

​ ·发布配置:支持发布配置到部署组

​ ·回滚:回滚到上一个版本的配置

3.全局配置概述

·全局配置

​ ·用于动态更新应用代码中的配置

​ ·全局配置可以保证配置内容在某个集群或者命名空间中全局生效

·全局配置包括管理配置和发布配置两部分

​ ·管理配置包括创建配置、生成新版本配置和删除配置

​ ·配置可以发布到命名空间的所有应用

四、TSF服务治理

1.服务治理:

·对用户运行业务的统一管理,包含对线上流量的管控、服务监控与告警、权限的限制、抑制突发情况

·TSF提供了一个统一的入口对线上服务进行管理

·现阶段TSF服务治理包含:

​ ·服务注册与发现

​ ·服务鉴权

​ ·服务路由

​ ·服务限流

·常见服务治理能力实现的功能

​ ·设置服务访问权限控制:白名单黑名单

​ ·设置某些带有标签的请求访问控制

​ ·设置流量最大限制、保护核心服务

​ ·灰度发布、蓝绿服务

​ ·部分用户内测功能

​ ·就近IP访问

​ ·容灾与熔断

​ ·服务API的管理

2.服务发现

·创建服务的服务名和注册中心的服务一致时会认为时一个服务

·服务发现步骤

​ ·Mesh:无需改造代码

​ ·Spring Cloud:pom.xml中添加依赖配置->应用启动类中添加服务发现和注解->修改应用配置->服务发现功能验证

3.服务鉴权

·为了解决微服务间相互访问的权限的解决方案

·鉴权规则:

​ ·基于黑名单的鉴权规则:匹配任意一条规则时拒绝调用,否则允许调用

​ ·基于白名单的鉴权规则:匹配任意一条规则时允许调用,否则拒绝调用

·鉴权规则支持标签形式配置:系统标签,自定义标签

·步骤:

应用配置依赖-配置鉴权规则-切换鉴权规则(黑白相互切换或切换到不启用)

4.服务限流

·保护数据或者节点,防止瞬时流量过大导致数据崩溃造成服务不可用

·限流粒度:

​ ·全局限流:超过QPS限流

​ ·标签限流

·服务限流步骤

​ ·Mesh:无需改造代码,标签限流设置标签

​ ·Spring Cloud:pom.xml中添加依赖配置->应用启动类中添加服务发现和注解->新建限流规则并启动->限流功能验证

·限流效果:

​ ·请求达到限流阈值,任何到达的请求都会被限流模块处理

​ ·如何该服务的配额已经消耗完,会对请求返回HTTP429,否则会正常放行

5.服务路由

·通过特定要求的属性来选择服务的提供者,对服务间流量分配起到掌控的作用

·常见使用场景:

​ ·灰度发布

​ ·部分账号内测

​ ·按照IP流量分配

·配置来源:

​ ·按照权重方式配置路由规则

​ ·按照系统自带标签的方式配置路由规则

​ ·按照自定义标签的方式配置路由规则


·常见服务治理能力实现的功能

​ ·设置服务访问权限控制:白名单黑名单

​ ·设置某些带有标签的请求访问控制

​ ·设置流量最大限制、保护核心服务

​ ·灰度发布、蓝绿服务

​ ·部分用户内测功能

​ ·就近IP访问

​ ·容灾与熔断

​ ·服务API的管理

2.服务发现

·创建服务的服务名和注册中心的服务一致时会认为时一个服务

·服务发现步骤

​ ·Mesh:无需改造代码

​ ·Spring Cloud:pom.xml中添加依赖配置->应用启动类中添加服务发现和注解->修改应用配置->服务发现功能验证

3.服务鉴权

·为了解决微服务间相互访问的权限的解决方案

·鉴权规则:

​ ·基于黑名单的鉴权规则:匹配任意一条规则时拒绝调用,否则允许调用

​ ·基于白名单的鉴权规则:匹配任意一条规则时允许调用,否则拒绝调用

·鉴权规则支持标签形式配置:系统标签,自定义标签

·步骤:

应用配置依赖-配置鉴权规则-切换鉴权规则(黑白相互切换或切换到不启用)

4.服务限流

·保护数据或者节点,防止瞬时流量过大导致数据崩溃造成服务不可用

·限流粒度:

​ ·全局限流:超过QPS限流

​ ·标签限流

·服务限流步骤

​ ·Mesh:无需改造代码,标签限流设置标签

​ ·Spring Cloud:pom.xml中添加依赖配置->应用启动类中添加服务发现和注解->新建限流规则并启动->限流功能验证

·限流效果:

​ ·请求达到限流阈值,任何到达的请求都会被限流模块处理

​ ·如何该服务的配额已经消耗完,会对请求返回HTTP429,否则会正常放行

5.服务路由

·通过特定要求的属性来选择服务的提供者,对服务间流量分配起到掌控的作用

·常见使用场景:

​ ·灰度发布

​ ·部分账号内测

​ ·按照IP流量分配

·配置来源:

​ ·按照权重方式配置路由规则

​ ·按照系统自带标签的方式配置路由规则

​ ·按照自定义标签的方式配置路由规则


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李星且小白blog.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值