大数据存储与Azure应用程序扩展
立即解锁
发布时间: 2025-08-25 00:50:40 阅读量: 1 订阅数: 4 

# 大数据存储与Azure应用程序扩展
## 1. Azure Data Lake安全与数据结构
### 1.1 安全特性
在使用Azure Data Lake Store(ADLS)时,安全方面需注意以下几点:
- **优先使用组而非用户/服务**:起初,为资源或文件夹分配单个用户可能更简单,但当对数据感兴趣的人数迅速增加时,会很快面临问题。因此,最好使用Azure AD组来确定对资源本身的基于角色的访问控制(RBAC),以及对文件和文件夹的POSIX访问控制列表(ACL)。这样做还能提高解决方案的性能,因为检查一个实体是否属于某个组比遍历一长串用户要快。
- **最小权限集**:与其他服务一样,对于访问Azure Data Lake Store实例的用户,始终从所需的最小权限集开始。例如,不要给只读取数据的人分配写入权限,也不要给只读取文件夹中单个文件的服务分配执行权限。
- **启用防火墙**:通常,不希望任何人都能访问存储在ADLS内的数据。为了保护解决方案,使只有一部分IP地址可以访问信息,应启用防火墙,这样不在列表中的任何人都将被拒绝。
### 1.2 弹性与数据冗余
ADLS不支持地理冗余,需要自行实现。可以使用工具来按需求复制数据,文档中提到了三种工具:Distcp、Azure Data Factory和AdlsCopy,当然也可以使用任何能连接到Azure Data Lake Store并与之集成的其他工具。在考虑Azure Data Lake Store的灾难恢复(DR)或高可用性(HA)时,要考虑恢复点目标(RPO)、数据不一致以及故障转移时复杂的数据合并问题。有时,等待服务恢复可能比切换到辅助副本更好。
### 1.3 数据结构
不同的使用场景需要选择不同的数据结构:
- **物联网(IoT)数据**:结构可能非常精细,如`{Vector1}/{Vector2}/{Vector3}/{YYYY}/{MM}/{DD}/{HH}/{mm}`。
- **用户数据**:结构可能完全不同,如`{AppName}/{UserId}/{YYYY}/{MM}/{DD}`。
数据结构在对存储的文件进行分析时极为重要,它直接影响文件的大小和数量,进而影响可能使用的工具集。此外,还需考虑法律要求,如果使用任何敏感数据作为文件夹或文件名,当用户要求被遗忘或删除账户时,必须能够有效地进行清理。
## 2. Azure应用程序扩展概述
### 2.1 扩展的重要性
在云计算中,扩展是创建可靠和稳定应用程序的关键。与传统的基础设施即服务(IaaS)或本地部署相比,Azure提供了多种快速扩展应用程序且无需停机的方法。扩展能使应用程序快速适应新的流量需求,提供更大的灵活性,减少因意外负载高峰和硬件性能不足导致的问题。
### 2.2 扩展类型
#### 2.2.1 自动扩展
许多服务的自动扩展功能可定义为:允许服务、机器或应用程序根据预定义的参数(如CPU利用率、内存使用情况、吞吐量单位或工作线程利用率等)自动向上或向外扩展。自动扩展的过程如下:
```mermaid
graph LR
A[资源接受正常请求] --> B[监控实体检查资源]
B --> C{是否需要扩展?}
C -- 是 --> D[执行扩展操作]
C -- 否 --> A
```
自动扩展有优点也有缺点:
- **优点**:能快速适应流量变化,提高服务稳定性。
- **缺点**:可能使应用程序无响应;扩展时需要额外的负载均衡资源;扩展需要时间,因此在设计阶段就应进行规划;在很多情况下,会使解决方案成本大幅增加。
不同服务的扩展方式不同,例如:
| 服务 | 扩展方式 |
| ---- | ---- |
| Azure Event Hub | 可手动/自动扩展(使用自动膨胀功能),通过分配更多吞吐量单位(TUs)来接受更多消息,不支持自动缩小。 |
| Azure App Services | 可手动和自动扩展(取决于所选层级),有多个不同参数可供选择,也支持自动缩小。 |
| Azure Cosmos DB | 依赖于分配给实例的请求单位(RU)。 |
| Azure SQL | 有不同的扩展模型,可使用数据库事务单位(DTUs)或虚拟核心(vCores)。 |
| Azure Functions | 使用工作线程和扩展控制器的内部机制自动扩展。 |
| Azure Storage | 不支持扩展。 |
#### 2.2.2 向上扩展和向外扩展
在Azure中,有两种不同的扩展类型:
- **向上扩展**:升级硬件或层级,可从单个实例获得更好的性能。适用于代码是顺序执行且无法并行化,或者在单位时间内需要大量计算能力而不是将工作分配到多台机器的情况。
- **向外扩展**:添加服务实例,可并行化工作。适用于能够进行负载均衡,且可以在多台机器上无冲突地执行相同工作的情况。
向外扩展类似于多线程,但规模更大,也会面临类似的问题,常见问题通常由对状态的访问引起,无论是通过某种存储共享状态,还是在多台机器之间分布状态。在使用此功能之前,务必了解这些问题。
## 3. Azure App Services扩展
### 3.1 手动扩展
手动扩展从基本层级开始可用,免费或共享层级不可用。不同层级可使用的实例数量不同,例如B2层级的最大实例数为3,而升级到标准层级后,最大实例数可设置为10,并且可以启用自动扩展;升级到高级层级,最大实例数可设置为20。
### 3.2 自动扩展
对于要求较高的应用程序,如热门的电子商务商店,自动扩展更为合适。启用自动扩展后,有两种选项:
- **基于指标扩展**:允许选择一个指标作为自动扩展的触发条件。例如,可设置当CPU利用率在10分钟内超过70%时触发扩展。添加规则的步骤如下:
1. 点击“+ Add a rule”链接。
2. 在弹出的更复杂表单中选择所需的指标和条件。
3. 设置完成后点击“Save”确认更改。
- **扩展到特定实例数**:默认执行,应与基于指标的扩展一起使用。
此外,在扩展界面还有“JSON”和“Notify”两个部分:
- **JSON**:生成一个JSON模板,可与ARM模板一起用于资源的自动配置,在创建服务时会自动添加扩
0
0
复制全文
相关推荐






