目录:
企业信息化建设系统:OA管理系统、ERP管理系统、CRM管理系统、学生档案管理系统、资产管理系统等。
标准化、阶段清晰、环环相扣
1970年W·Royce提出、最早的软件开发模型、给出固定顺序,将生命周期从上一个阶段向下一个阶段逐级过渡。
阶段 | 内容 |
---|---|
定义阶段 | 计划、需求分析 |
开发阶段 | 设计、编码、测试 |
维护阶段 | 运行维护 |
单体架构是最简单的软件架构,开发速度快、成本低。
常用于传统的应用软件开发及传统Web应用。
分为实体服务器托管和租用两种类型。
将重复公用的功能抽取为组件,以服务方式给各个系统提供服务。
用户规模大、接入方式多
集中式访问、流量突增
大数据
市场需求变化大
服务器设备、机房专人维护、前期投入成本高。
倍数部署,资源利用率差、资源浪费
流量突增难以应付不够灵活
云计算是一种新的提供资源按需租用的服务模式,一种新型的IDC业务。
云计算 | 特点 |
---|---|
租用资源范围 | 云计算业务租用的资源范围广泛,不局限于服务器和宽带 |
服务能力 | 云计算提供弹性的按需扩展的资源租用服务 |
资源透明性 | 用户不需要了解资源的物理信息 |
运维难度降低 | 较多的沟通和少量的运维 |
云计算服务模式 | 内容 |
---|---|
SaaS(Software as a Servicve) | 软件即服务,通过网络提供软件程序服务 |
PaaS(Platform as a Servicve) | 平台即服务,以服务器平台或者开发者环境提供服务 |
IaaS(Infrastructure as a Servicve) | 基础设施即服务,注重计算资源的共享,消费者通过网络从资源池中获取IT相关的基础设施资源 |
规模大,按需付费,成本大大降低
弹性,优雅应对流量突增,灵活扩展
可靠,快速故障恢复,保证应用高可用
极速、安全、易用
基于云特性进行开发,开发出的软件具有水平扩展、低门槛准入和高度解耦复用等云计算特性
开发模式演变:瀑布模型转变为敏捷开发
传统单体架构转变为微服务架构
无服务器
·大陆:北上广深
·国际:新加坡、多伦多、硅谷
·创建实例可指定、迁移可用区。
·高可用、容灾
·降低访问时延
·数据管理、保护
·收费低
获取主账号->选择使用方式->创建子账号->获取访问密钥->准备开发环境->开始使用
访问密钥包括Secretld和SecretKey,子用户创建时勾选编程访问自动创建,也可以手动创建
·个人实名
·企业实名
·云控制台
·SDK方式
·API方式:
账号类型 | 主账号 | 子用户 | 协作者 | 消息接收者 |
---|---|---|---|---|
控制台访问 | 是 | 是 | 是 | 否 |
编程访问 | 是 | 是 | 是 | 否 |
策略授权 | 默认拥有全部策略 | 是 | 是 | 否 |
消息通知 | 是 | 是 | 是 | 是 |
子用户、协作者、消息接收者统称为子账号
开发可以直接使用主账号,但是不推荐,因为权限过高,一旦泄露所有资源都受影响
·开启MFA保护
·使用子账号访问腾讯云
·分子账号管理用户权限和资源
用户关联用户组->用户组添加用户->用户、用户组关联策略->用户获取身份凭证
角色类似于腾讯云用户,可以看作是腾讯云的虚拟账号
能够申请角色的载体叫做角色载体,可以是腾讯云账户,也可以是腾讯云产品
登录CAM->新建子用户->填写用户信息->设置用户权限->审阅信息和权限->开始使用
·使用用户组给子账号分配权限
·最小权限原则
·定期轮转身份凭证
·删除不需要的证书和权限
·使用临时密钥
·网络环境,访问腾讯云,下载依赖包等
·Java开发环境:JDK1.7以上
·Maven版本:3.5
·修改setting配置为国内下载镜像
·Maven编码过程需要下载依赖,需要网络环境
·Eclipse或者IDEA
·字符集编码:utf-8
Cloud Studio:基于浏览器的继承开发环境
网址:
快速、高效、灵活、兼容性强
功能组合、定制化需求
·请求url(网址)
·请求头部:公共请求参数
·公共参数是用于标识用户和接口鉴权目的的参数
·公共参数根据签名方法分为两类:
·v3:TC3-HMAC-SHA256,公共参数统一放在HTTP Header请求头部中
·v1:HmacSHA1和HmacSHA256签名方法
·地域列表:不同产品支持地域不同
·请求体:接口参数
·通信协议:
·腾讯云API的所有接口均通过HTTPS进行通信,提供高安全性的通信通道
·支持的HTTP请求方法:
·POST
·GET
·字符编码:
·UTF-8
申请安全凭证->拼接规范请求串->拼接待签名的字符串->计算签名->拼接Authorization->使用完整的信息访问云API
提供了在线调用、签名验证、SDK代码生成和快速检索接口等能力
本地服务器(前后端应用)迁移到云服务器->本地数据库迁移到云服务器安装数据库->本地储存迁移到到云端储存
·限制访问
·安全登录
·硬件存储
新建云虚拟机,安装部署环境->云虚拟机中新建并初始化数据库->上传本地对象存储数据到云虚拟机->修改应用数据库和存储配置->打包并上传应用到云虚拟机->启动应用,提供服务
·对多台云服务器进行流量分发的服务
·负载均衡可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可行性
·负载均衡服务会检查云服务器池中服务器实例的建康状态,自动隔离异常状态的实例
·负载均衡服务具备自助管理、自故障修复、防网络攻击等高级功能,适用于企业、社区、电子服务、游戏等多种应用场景
·提供多协议转发
四层负载均衡(TCP UDP)
七层负载均衡(HTTP HTTPS)
·流量分配算法
加权轮询
加权最小连接数
源地址散列调度算法
·跨可用区容灾
·在同一个地域内采取多可用区部署
·负载均衡(应用型负载均衡)
支持TCP/UDP/HTTP/HTTPS协议
提供基于域名URL路径的均衡能力
支持灵活转发
·传统型负载均衡
内网不支持HTTP/HTTPS协议,配置方法简单
创建负载均衡->配置负载均衡监听器->配置转发规则->配置健康检查->配置会话保持->绑定云服务器->配置重定向(可选)
API | 接口描述 |
---|---|
CreateLoadBalancer | 购买负载均衡实例 |
CreateListener | 创建负载均衡监听器 |
CreateRule | 创建负载均衡七层监听器转发规则 |
RegisterTargets | 绑定后端机器到监听器上 |
·推荐使用负载均衡
·负载均衡开启Gzip配置
开启gzip功能对网页进行压缩可以有效降低网络传输的数据量,提升客户端浏览器的访问速度
·负载均衡算法的使用
·加权轮询算法:无状态、简洁和实用性
用户可知每个请求占用后端时间基本相同,如已知rs处理的都是同类型或者相似请求时
·加权最小连接数:适合长时处理的请求服务,如FTP等应用
处理不同的请求,且请求占用后端时间相差较大
·源地址散列调度算法:ip_hash可以实现部分会话保持的效果,能够记住源IP
适合负载均衡无cookie功能的TCP协议,不支持会话保持的场景进行会话保持
·传统手工操作繁琐,配置繁琐易出错
·资源闲置浪费
·无法及时容错
·可以根据业务需求和策略自动调整CVM计算资源
·自动化:自动伸缩实例,无需人工干预
·省成本:适量伸缩实例,节省成本
·容错性:系统自动检测,及时容错
创建启动配置->创建伸缩组->创建伸缩策略
API | 接口说明 |
---|---|
CreateLaunchConfiguration | 创建启动配置 |
CreateAutoScalingGroup | 创建伸缩组 |
CreateScalingPolicy | 创建告警触发策略 |
CreateScheduledAction | 创建定时任务 |
CreateNotificationConfiguration | 创建通知 |
CreateLifecycleHook | 创建生命周期挂钩 |
·提前部署扩缩容
提前设置Auto Scaling定时策略,实时响应
·低成本应对业务浪涌
实时自动增加或减少CVM实例,并自动完成负载均衡配置,大量节约成本
·自动替换不健康CVM
定时对CVM进行健康检查,自动替换异常实例,保留操作记录
·横向扩展差,交付周期长
·价格昂贵
·数据联通困难
·专人管理,维护成本高
·手动扩容
API | 接口说明 |
---|---|
CreateDisks | 创建云硬盘 |
AttachDisks | 挂载云硬盘 |
ResizieDisk | 扩容云硬盘 |
CreateSnapshot | 创建快照 |
·多块云硬盘构建RAID组
·多块云硬盘构建LVM逻辑卷
·集成管理、自动扩展、安全可靠、成本低廉
·支持多客户端共享
·分类:
·按数据组织方式分为关系型数据库和非关系型数据库
·按数据库架构分为集中式数据库和分布式数据库
·集中式数据库:CDB CRS
`分布式数据库:DCDB MongoDB HBase TiDB TData
·传输服务:DTS
·CDB:主要包括云数据库MySQL、SQL Server、TDSQL、PostgreSQL
·特点:高性能、容灾、安全检查、易用
·使用步骤:
登录腾讯云平台->购买云数据库MySQL->初始化数据库->本地数据库数据迁移->修改应用配置->部署应用、访问
·迁移本地数据到云数据库方案:
·sql文件导入:数据量少(<=2G)
·在线迁移:DTS数据迁移工具迁移(实时不停服同步)
·离线迁移:备份文件还原
·sql文件导入步骤:
进入对应数据库管理实例->选择要导入的sql文件->选择目标数据库->确认数据导入->完成数据导入,访问数据库
·简介:
·主数据库处理事务增、改、删操作(INSERT UPDATE DELETE)
·从数据库处理SELECT查询操作
·数据库复制把事务性操作导致的变更同步到从数据库
·一个主数据库、多个从数据库
·云数据库MySQL支持用户创建一个或多个只读实例,可显著降低数据库的读负载能力
·实现步骤:
购买云数据库MySQL->创建只读实例->修改应用数据源配置->修改代码支持读写分离->重新编译、部署应用->验证效果
·关系型数据库的瓶颈:
·高并发读写需求
·海量数据和高效率读写
·高扩展性和可用性
·互联网时代关系数据库很多特性不在需要:
·事务的强一致性
·读写强实时性
·多表关联查询弱化
·MongoDB简介:
·基于开源NoSQL数据库
·高性能
·分布式数据存储服务
·完全兼容MongoDB协议
·适用于面向非关系型数据库的场景
·MongoDB和MySQL的区别
MongDB | MySQL | |
---|---|---|
类型 | NoSQL数据库 | 关系型数据库 |
存储方式 | 文档存储 | 行存储 |
数据量 | 支持海量数据存储 | 单表数据过大性能下降厉害 |
事务支持 | 不支持 | 支持 |
应用场景 | 表结构不明确、经常变化、海量数据 | 结构化查询、事务、一致性要求、关联查询 |
·使用步骤
进入云数据库MongoDB主页->创建实例->初始化实例->应用添加依赖、配置文件->编写代码,操作实例->验证效果
·云数据库MongoDB数据迁移:
·云服务器CVM自建实例迁移
·外网实例迁移
·云数据库MongoDB使用
·提供多种语言连接方式
·随时调整实例配置,升级
·支持创建一个或多个只读实例
·文件存储CFS问题:
·直接挂载主机适合文件共享,但是没有直观的web管理界面
·存储能共享但是文件权限很难控制
·只是作为存储,无法直接通过HTTP方式访问
·无CND节点
·COS简介
·对象存储是腾讯云提供的一种存储海量文件的分布式存储服务,用户可通过网络随时存储和查看数据
·COS存储级别:
·标准存储(默认)
·低频存储
·归档存储
·对比:
·控制台使用步骤
注册登录->创建存储桶->上传对象->下载对象->删除对象->删除存储桶
·操作COS对象存储的工具
接口 | 说明 |
---|---|
GET Service | 获取存储桶列表 |
·SDK操作对象存储
·提供丰富多样的SDK
·JAVA SDK访问步骤
添加依赖->初始化密钥信息->初始化COSClient->上传文件->下载文件->关闭客户端
·系统资源
操作系统->虚拟化->云计算->容器->k8s
·应用架构
单体架构->SOA->微服务架构
·生命周期管理
瀑布开发->CI(持续集成)\CD(持续部署)->CI\CD\CO(持续运营)
·隶属于linux
·诞生与2015年7月
·云原生是一种文化,更是一种潮流,是云计算的一个必然导向
·总结为“适合云的应用”和“好用的云架构”
·核心是服务的注册与发现
·服务提供者:服务的被调用方
·服务消费者:服务的调用方
·只能使用Java开发
·支持多种语言开发
·架构分层:
·数据面
·控制面
.Sidecar模式
·是一种将应用功能从本身剥离出来作为单独进程的方式
·该模式允许我们向应用无侵入添加多种功能,避免了为满足第三方组件需求而额外添加配置代码
·适合场景
·集群中存在多种语言互通
·服务器底层基于非springboot框架进行开发
·遗留系统,不希望因为微服务化而做更多的侵入式变更
·服务运维人员希望服务框架的升级无需业务联动升级
·容器化
·kubernetes是一个开源的管理容器的应用
·DevOps:
·是一组过程、方法与系统的统称
·持续交付
·采用轻量级的容器
·设计为松耦合的微服务
·通过API进行交互协作
·使用最佳的语言和框架开发
·通过DevOps流程进行管理
·微服务架构
·DevOps
·服务化能力支持
·数据化运营
·服务治理
·负载均衡
·API网关
·TSF
·消息队列
·虚拟机
·容器
·基于腾讯云容器微服务
·TKE VS kubernetes
特性 | TKE | kubernetes |
---|---|---|
管理 | 简化集群管理 | 管理复杂 |
扩展 | 灵活集群托管,集成负载均衡 | 可用性可扩展性差 |
可靠性 | 资源高度隔离,服务高可用 | 租户设备内核模块隔离性等较差 |
效率 | 镜像快速部署,业务持续继承 | 网络、容器的创建效率无保证 |
成本 | 容器服务免费 | 人力成本、硬件成本高 |
·应用场景
·微服务架构
·持续继承与交付
·弹性伸缩
·Docker命令
基本命令 | 意义 |
---|---|
docker login | 登录docker仓库 |
docker images | 查看系统中的镜像 |
docker pull/ | 从仓库拉去镜像 |
docker push/: | 将自定义的镜像发布到仓库 |
docker built -t | 使用当前目录下的Dockerfile构建镜像 |
docker run | 使用镜像创建容器 |
docker image rm | 删除指定的镜像 |
docker container Is | 列出所有运行的容器 |
docker start |
启动容器 |
docker stop |
停止容器 |
docker restart |
重启容器 |
docker rm |
删除容器 |
·使用流程
制作镜像->推送镜像->拉取镜像
·命令:
命令 | 意义 |
---|---|
FROM | 确定基础镜像 |
RUN | 运行镜像 |
COPY | 复制镜像 |
CMD | 运行容器 |
·步骤
创建容器集群->导入云主机->创建容器应用->创建部署组->初始化镜像仓库->创建镜像和推送镜像到仓库->部署应用
·特点
·支持分布化管理(仅SpringCloud)
·配置异构管理系统
·支持文件在控制台上编写YAML格式的配置
·配置管理分类
·应用配置(优先级最高)
·全局配置
·本地配置(优先级最低)
·步骤
添加依赖->引用配置->TSF应用配置内容填写->发布配置
·应用配置的功能
·创建配置项:一个配置项管理多个版本的配置
·生成新版本:基于历史版本生成新版本
·发布配置:支持发布配置到部署组
·回滚:回滚到上一个版本的配置
·全局配置
·用于动态更新应用代码中的配置
·全局配置可以保证配置内容在某个集群或者命名空间中全局生效
·全局配置包括管理配置和发布配置两部分
·管理配置包括创建配置、生成新版本配置和删除配置
·配置可以发布到命名空间的所有应用
·对用户运行业务的统一管理,包含对线上流量的管控、服务监控与告警、权限的限制、抑制突发情况
·TSF提供了一个统一的入口对线上服务进行管理
·现阶段TSF服务治理包含:
·服务注册与发现
·服务鉴权
·服务路由
·服务限流
·常见服务治理能力实现的功能
·设置服务访问权限控制:白名单黑名单
·设置某些带有标签的请求访问控制
·设置流量最大限制、保护核心服务
·灰度发布、蓝绿服务
·部分用户内测功能
·就近IP访问
·容灾与熔断
·服务API的管理
·创建服务的服务名和注册中心的服务一致时会认为时一个服务
·服务发现步骤
·Mesh:无需改造代码
·Spring Cloud:pom.xml中添加依赖配置->应用启动类中添加服务发现和注解->修改应用配置->服务发现功能验证
·为了解决微服务间相互访问的权限的解决方案
·鉴权规则:
·基于黑名单的鉴权规则:匹配任意一条规则时拒绝调用,否则允许调用
·基于白名单的鉴权规则:匹配任意一条规则时允许调用,否则拒绝调用
·鉴权规则支持标签形式配置:系统标签,自定义标签
·步骤:
应用配置依赖-配置鉴权规则-切换鉴权规则(黑白相互切换或切换到不启用)
·保护数据或者节点,防止瞬时流量过大导致数据崩溃造成服务不可用
·限流粒度:
·全局限流:超过QPS限流
·标签限流
·服务限流步骤
·Mesh:无需改造代码,标签限流设置标签
·Spring Cloud:pom.xml中添加依赖配置->应用启动类中添加服务发现和注解->新建限流规则并启动->限流功能验证
·限流效果:
·请求达到限流阈值,任何到达的请求都会被限流模块处理
·如何该服务的配额已经消耗完,会对请求返回HTTP429,否则会正常放行
·通过特定要求的属性来选择服务的提供者,对服务间流量分配起到掌控的作用
·常见使用场景:
·灰度发布
·部分账号内测
·按照IP流量分配
·配置来源:
·按照权重方式配置路由规则
·按照系统自带标签的方式配置路由规则
·按照自定义标签的方式配置路由规则
·常见服务治理能力实现的功能
·设置服务访问权限控制:白名单黑名单
·设置某些带有标签的请求访问控制
·设置流量最大限制、保护核心服务
·灰度发布、蓝绿服务
·部分用户内测功能
·就近IP访问
·容灾与熔断
·服务API的管理
·创建服务的服务名和注册中心的服务一致时会认为时一个服务
·服务发现步骤
·Mesh:无需改造代码
·Spring Cloud:pom.xml中添加依赖配置->应用启动类中添加服务发现和注解->修改应用配置->服务发现功能验证
·为了解决微服务间相互访问的权限的解决方案
·鉴权规则:
·基于黑名单的鉴权规则:匹配任意一条规则时拒绝调用,否则允许调用
·基于白名单的鉴权规则:匹配任意一条规则时允许调用,否则拒绝调用
·鉴权规则支持标签形式配置:系统标签,自定义标签
·步骤:
应用配置依赖-配置鉴权规则-切换鉴权规则(黑白相互切换或切换到不启用)
·保护数据或者节点,防止瞬时流量过大导致数据崩溃造成服务不可用
·限流粒度:
·全局限流:超过QPS限流
·标签限流
·服务限流步骤
·Mesh:无需改造代码,标签限流设置标签
·Spring Cloud:pom.xml中添加依赖配置->应用启动类中添加服务发现和注解->新建限流规则并启动->限流功能验证
·限流效果:
·请求达到限流阈值,任何到达的请求都会被限流模块处理
·如何该服务的配额已经消耗完,会对请求返回HTTP429,否则会正常放行
·通过特定要求的属性来选择服务的提供者,对服务间流量分配起到掌控的作用
·常见使用场景:
·灰度发布
·部分账号内测
·按照IP流量分配
·配置来源:
·按照权重方式配置路由规则
·按照系统自带标签的方式配置路由规则
·按照自定义标签的方式配置路由规则