Azure IaaS 概述
云计算
Microsoft Azure
Azure 计算
Azure 存储
Azure 网络
云计算
云计算是基于网络的计算,云计算里面的服务器、存储、应用程序是通过网络传到企业计算机设备的,而不是通过LAN。也就是说,企业的数据中心是由第三方公司托管的。服务器和网络等基础设施不再是本地的了,而是由第三方来托管。
公有云
共有云的服务和基础设施都不是本地提供的,全部通过internet进行访问。比如Microsoft Azure
私有云
私有云的服务和基础设施是在私有内网进行维护的。比如Microsoft Azure Stack
混合云
混合云包括公有云和私有云的功能。比如Azure 和Azure Stack
云计算的优点:
便宜:用多少花多少 pay-as-you-go
灵活:资源无限,随意扩展。(如果是本地硬件资源,总是有限的)
减少管理成本:Vendor来管理硬件,这意味着更少的软件管理开销。
云计算可以应对以上的情况。
云计算服务可以分为三大类: IaaS PaaS SaaS
IaaS可以看作云服务的基础,IaaS由高度自动化和可扩展的计算资源组成。
PaaS提供软件开发和部署的平台。PaaS把与服务器交互的事儿全部简化了,给客户端提供一个运行系统的环境。底下关于硬件服务器和网络基础都不用自己管,这样用户就只有专心进行软件开发和scalability,而不用去管底下的硬件管理。
SaaS是服务器上跑的软件提供一个客户端,让用户可以访问。SaaS是用户最熟悉的一种形式,SaaS把管理和部署软件交给第三方进行管理。比如,最熟悉的SaaS O365.
Microsoft Azure
Azure 在全球64个地区可用,然后12个地区计划实施。选择地理扩张非常重要,因为这直接关系到终端用户可以reach到近的数据中心,这样由更好的性能
Azure全球由200多万台服务器,每个机架(rack)有大约50台服务器,20台机架(rack)构成一个群集(cluster)(或者称为节点node),一个群集可以视为一个容错隔离单位。
在每台rack里面,50台里面有5台服务器是专门用来给 Fabric Controller(FC)
FC是Azure云运维系统的核心,FC负责处理各种任务:数据中心资源的分配,数据中心资源提供,服务生命周期的管理,服务健康检查管理。
其次,对于这种超大型的基础设施,可以使用Software Defined Networking,layer 2,这个功能的好处在于,可以在联机(on the fly)状态下进行scale。
Microsoft Azure 付费原则:
- 用了多少付多少钱
- VM付费是按时间 没秒多少钱
- 对于已经解除分配(deallocated)或停用的VM,是不收钱的,但是VM相关的存储也是要收费的
但是付费方式还是基于合同协议的,比如EA 和非EA(enterprise agreement)
在Azure 付费里面不需要单独去买服务器的license,比如说,你要用Azure SQL database的某些功能,你不需要单独去买一个SQL的license,因为其实License的费用已经加在Azure 功能里面了。但是,如果你自己有license,你也可以用自己的license。
Azure云计算
Azure云计算有9个服务:虚拟机VM,虚机Scale set,Batch(批处理),云服务,Server Fabric,Kubernets服务,容器实例,Azure 功能,Azure App Service。
*Batch(批处理服务):是在管理程序的控制下,对一批作业自动进行处理而不需要人工干预的一种技术,这种技术旨在提高系统的吞吐量和资源利用率。
IaaS:虚拟机VM,虚机Scale set,Batch(批处理服务)
PaaS:云服务,Server Fabric,Kubernets服务,容器实例,Azure 功能,Azure App Service。
- 虚拟机(IaaS)
- VM在底层是由数据中心的Hyper-V进行托管的,VM也是按需去进行扩展的,如果运行虚拟机的话,就不用去买硬件设备,也不用去维护硬件设备。
- VM里面包括虚拟磁盘,这个虚拟磁盘在Azure中是以VHD格式的 page blob进行存储的,这些page blob存在Azure存储账户中。
- VM agents在部署中默认安装的,agent可以视为VM里面一个本地的安全控制服务,这个agent会加载各种拓展功能,用于完善功能,比如杀毒软件阿等等。
- 如果需要VM和其他设备进行通信,就要部署网络,通过部署endpoint终结点去控制访问权限。
- 虚机可以用来干嘛? 比如,部署、测试;在云上跑应用;把本地数据上云;灾难恢复。
- Azure 虚机扩展集
- 扩展集是用来部署和管理一系列一样的虚机的。 Scale set用来自动扩展部署VM,而且这个扩展部署不需要预先部署。原来旧版本的VM,必须要先有这个VM才能进行自动扩展部署。但现在新的scale set版本就没有这个限制。
- Scale set里面集成了负载均衡器和应用网关。如果scale set自动增加了VM数量,相关的负载均衡器就会自动生成,用来确保VM总是能够连接上。Scale set控制入站连接,这样比通过NSG来管理,基于IP地址,控制端口的VM要安全很多。
- 托管很多VM,一般需要高可用性。高可用是集成在Scale set里面的。当你扩展VM数量时,VM 要保证更新和容错域,和最大可用性。同意,当缩小VM数量时,VM 的移除也是要考虑最大可用性的。(maximum availability)?
- 在scale set里面进行 OS 镜像的升级时,没有downtime。也就是说,如果你需要更新VM镜像,你不必关闭scale set,你可以直接更新 model,然后就可以手动更新你想更新的VM。
- 支持Visual studio
- REST API, powershell, azure CLI
- Batch 批处理服务
- 批处理的核心是用调度高扩展的工作的,类似于一种管理服务。相当于跑一大堆相似的task,然后才能得到想要的结果。例如:软件测试、工程压力分析,或者进入风险模型等等。
- 从更高级别来看,Batch批处理的功能是用来创建和管理VM池,然后分配工作给VM去跑。
- Azure Batch可以用Batch API,Batch powershell cmdlets,Azure CLI,.NET来管理通讯。批处理服务允许你的Azure计算资源并行地执行应用。
- Azure 云服务(原来叫Aure托管服务)
- Azure 云服务就像容器一样去存储相关的角色功能。云服务有不同的角色,不同的角色有不同的配置和功能,比如:Web role(IIS),Worker role(Server VM),VM(任何种类的VM)
- 最后一种云服务的组件时“实例”instance,实例就是在角色里面跑着的一个VM。所以总而言之,在一个角色里面会跑着好几个VM实例或者好几个server,然后角色是存在与container里面的,这个container就叫cloud service。
- 所以云服务就像workload里面的计算部分。Web 和Worker 角色是属于PaaS,而VM属于IaaS。
- 所有的角色都可以配置成RDP access
- Azure Service Fabric(PaaS)
- Fabric给软件开发工程师提供一个平台,在平台里面,工程师可以开发一些有微服务组成的应用程序。
- service fabric由一堆组件组成:VM,操作系统,网络,存储等等。这些都是由微软管理的,但是开发人员也可以看到这些组件。
- 微服务在2005就存在的概念,并不是啥新概念。微服务是一队小的,又独立的组件,他们之间可以相互通讯,然后一起组成一个大的复杂的应用程序。微服务转变了原来开发软件的逻辑,原来开发软件都是整体开发,里面的组件都是紧密相连的,但是微服务把应用拆分开成小的独立的组件,这些组件就叫微服务。微服务的优点:易于维护和测试。可以在组件级别进行维护和测试,而不是应用级别。
- Azure Kubernetes Service
- 软件开发要区域容器基准的方法,所以协调管理资源就变得至关重要。K8s就是一个平台,这个平台提供可靠的协调安排服务,从而协调应用工作负载的容错能力。
- AKS 由两个组件构成:cluster master节点提供核心K8s服务,协调应用的工作负载;第二个是节点node,每个节点跑一个应用程序。
- K8s是由Azure管理的,你只能管理和维护agent node
- 托管的K8s是免费的,你只需要给agent node付费,cluster master不收钱。
- Azure container instance
- 如果你由完整的容器编制,比如包括多容易的service discovery,自动扩展,应用程序协同升级,就推荐使用AKS。
- 但是,如果只需要跑一个单独的容器,就推荐用Azure container instance。
- Container比创建虚机有更多优势,container可以几秒内启动,而不像虚机一样部署管理。
- Azure Function
- Azure 公式,是一种计算资源,它允许你按需跑一段代码,而不需要去部署管理基础设施。Azure 公式可以跑一个脚本或一段代码,比如C#,F#,javascript。
- Azure App service
- Azure应用服务是一个托管的web应用服务。
Azure 存储
Azure存储是一种可扩展,持久的,高可用的云存储方案。自动负载均衡可以根据流量的多少来自动分配存储的大小。也就是说,如果你的应用需求增加没那么Azure 存储就会自动分配合适的资源来满足需求。
Azure 存储全世界可用,有三种存储账户类型可供选择:
-
General purpose storage account v1
-
General purpose storage account v2
-
Blob storage account
-
General purpose storage account v1
v1的话,在存储账户里,你可以用table,queue,files,blobs,Azure VM disks。
v1类型的存储账户里面有两个性能tier:tier1 叫标准存储性能层:标准里面可用用table,queue,files,blob,azure VM disk。tier2叫高级存储性能层:高级里面只支持Azure VM disks
standard的意思时用 HDD hardware disk进行存储,存储便宜,访问次数少
premium用SSD存储,延迟小,贵 -
General purpose storage account v2 (建议都用v2)
v2 支持v1的所有功能 + 冷热tier
Hot - Optimized for storing data that is accessed frequently.
Cool - Optimized for storing data that is infrequently accessed and stored for at least 30 days.
Archive - Optimized for storing data that is rarely accessed and stored for at least 180 days with flexible latency requirements (on the order of hours).
- Blob storage account
这个账户专门用来存储非结构的数据,比如blob或者对象。
Blob storage account access tier:冷&热
热:hot tier表示你的数据会频繁进行访问,hot tier让你每次访问便宜点儿。
冷:cool tier表示你的数据不会频繁被访问,cool tier 让你存储数据便宜点儿。
如果你想更换冷热模式,可用随时换。
Azure 存储的类型
Blob storage 用来存储非结构数据,比如文档、视频,.vhd file
有两种blob:1. page blob 专门用来密集读取活动,比如持续读、写活动, VHD
2. block blob 专门用来 传输和存储的,比如SQL backup
table storage 存储结构化的数据集,比如 NoSQL key-atrribute data store
queue storage 是一种可靠的通信系统,messaging system,比如:Azure Service Bus
File storage 向前兼容,之前用标准SMB协议,提供一个共享文件夹功能。(也就是说在Azure上也可以像在本地一样,进行共享文件。
Disk storage 提供VHD disk storage,但不需要管理存储账户的开销。
存储的持久性和高可用
Azure上的存储账户为了满足SLA,克服硬件故障,Azure上的数据就需要总是复制,从而保证持久性和高可用。
一共有四种复制模式:本地冗余存储、区域冗余存储、地理冗余存储、可读地理冗余存储。
- 本地冗余存储(LRS):只能用来克服简单的硬件故障,不能克服一个单一facility的整体故障。
- 区域冗余存储(ZRS):ZRS有三份复制的数据,在一个区域内,将三份数据放在两个或者三个数据中心,比LRS强,但ZRS也只能保障一个区域内的存储高可用。
- 地理冗余存储(GRS):地理冗余存储时默认模式,GRS有六个副本,GRS将其中三个副本存在一个主区域,然后把另外三份存在辅助区域,辅助区域离主区域十万八千里远。看这个怎么转移故障?/???
- 可读地理冗余存储(RA-GRS)这个和GRS一样,3+3模式,但是RA-GRS,在辅助区域里面的数据时可读的,也就是说,主或辅区域一个死掉了以后,另一个都可以用。
Azure网络
Azure网络由很多不同的组件组成,
Virtual Network (Vnet)
Virtual Private Network (VPN)
VPN gateway
VNet peering
Load Balancer
ExpressRoute
Network Security Group
Traffic manager
Azure DNS
Application Gateway
除了 VPN和Traffic manager,其他组件都只能在一个网络区域内使用,不能跨区域使用。
VNet代表在云端属于你自己的网络。在所定义的网络地址空间之间时逻辑隔离的。VNet地址空间也时分为公有地址和私有地址的。
Vnet也还可以分为很多子网,即使VNet被分子网,默认情况下,这些子网都是相通的。
(IKE internt key exchange是IPsec的一部分,用来进行私钥密钥的交换)
(IPsec Internet protocol security,是一系列安全协议,是用来在internet上机密地传输IP packets)
Azure支持四种VPN连接
- Site-to-Site IPsec/IKE VPN
这个连接是连接本地网络和Internet上的Azure虚拟网络 - VNet-to-VNet IPsec/IKE VPN
这个连接是用来连接Azure上的两个虚拟网络(这连个虚拟网络可以位于同一个datacenter,也可以位于不同的datacenter) - Point-to-Site certificate VPN
是用来连接Windows系统的电脑和Azure Virtual Network,这个VNet没有部署专门的软件,所以这个安全通道得基于证书。没懂这里的区别在哪里?2和3? - ExpressRoute
Azure数据中心————本地数据中心,用专线连接,贵!ExpressRoute用哈希加密,加密模式是由客户端决定的。
VPN 网关
Azure VPN网关是在网络之间用来发送流量的,比如:从VNet上发数据给本地网络,或者从Vnet发给Vnet。
由六种网关大小:(每种都有自己规定的最大吞吐量和最大VPN tunnels数量)
- Basic
- standard
- high performance
- VpnGw1
- VpnGw2
- VpnGw3
由两种VPN网关种类: - VPN
- ExpressRoute(本地数据中心–连-
-云上数据中心)
VPN网关路由类型是用来确定VPN网关要专门路由两个网络之间的数据流量。
有两种:policy-based / route-based
这块再看看
policy-based 之前叫静态路由网关,基于策略的VPN网关加密数据包,然后基于IPsec策略进行数据包的转发,IPsec策略是基于本地网络和Azure虚拟网络之间的地址前缀而进行配置的。
基于路由的VPN网关之前叫动态路由网关,用“路由”是因为VPN转发数据包时根据IP转发或者路由表转发,转发发哦相对于的隧道端口。隧道端口进行加密,出隧道进行解密。
VPN还有连接类型可以选择,VPN网关之间有四种VPN连接方式。
IPSec、VNet2VNet、ExpressRoute、VPNClient
IPSec:IPSec要求公有IPv4地址,IPv4是建立连接的基础。
VNet2VNet:没有要求IPv4地址,但是要基于其他的VNet去进行连接
这里再看
VNet Peering (通过Azure 主干网建立的,backbone network)
Peering就是把两个处于同一个区域或不同区域的虚拟网络连接。连接了的虚拟网络,里面的虚机可以直接用私有地址进行通信。
Peering也可以连接本地网络到peered虚拟网络。
Peering和VPN啥区别呢?
Peering走内网,VPN走公网。
Azure负载均衡器
负载均衡大概就是用来分配入站流量的。有两种负载均衡器级别可以选择,基础basic和标准standard。标准比基础功能牛逼。
可以在内网入站流量进行负载均衡,这种均衡有好几种方式:可以均衡一个虚拟网络里面的虚机、也可以均衡云服务里面的虚机,也可以均衡本地计算机和跨地区虚拟网络里面的虚机,还可以配置把流量传给外部指定的虚机。
这里再看
Network Security Group NSG
NSG里面有一系列访问控制表,Access Control List,这些规则控制流量从哪些端口能走,哪些不能走。NSG里的访问规则有两种,一种是入站规则,用来控制入站的流量。另一个是出站规则。
Traffic Manager
Traffic manager可以再全球范围内,不同数据中心进行流量分发,这就像一个全球高级版的负载均衡器一样。Traffic manager可以支持Azure VM, Web 应用,cloud service,也可以外部的非Azure的终结点。
Traffic manager通过DNS把终端请求转发到合适的终结点,转发规则基于配置的流量路由方法和当前的终结点健康状态。这样客户端就可以连接到合适的服务终结点了。
一共有6中路由方式可以选择。
- Priority 优先级,优先把流量专门转发到这个点,当然这个有优先点有backup
- 权重转发
- 基于性能转发:比如低延迟、比较近等等
- 地理位置转发,哪个近转发给哪个
- multivalue 可以得到多个终结点的健康状态值
- 子网,利用子网可以把终端用户的一组IP地址映射到制定的终结点。
Traffic manager也提供连续的终结点健康监控,自动检测终结点故障转移,从而确保终结点的高可用性。
Azure DNS
托管服务,提供域名儿解析。
Azure DNS用Anycast网络,目的是为了让每一个DNS询问都能够被最近的可用的DNS server进行答复。 这样可用更快更高可用。
应用网关 Application gateway
应用程序网关是一个web流量负载均衡,让你可用管理流入web应用程序的流量。传统的负载均衡器工作再传输层(TCP/UDP),并且是基于源IP地址进行流量路由到目标IP地址和目标端口。
那么,应用网关基于HTTP请求里的信息来进行流量路由。比如URI path 或者主机头。比如,应用网关可用把图像流量转发到图像server,可以把视频流量转发到视频server。应用网关的路由时在应用层(第七层),路由是基于URL的。