2015 年 4 月 23 日,为期 3 天的 QCon 全球软件开发大会(北京站)正式拉开帷幕。在『亚马逊 AWS 技术应用实践』专题中,讨论了亚马逊 AWS 热门服务与工具及典型架构,涉及自动化运维、混合云、移动应用开发和 Python 开发,也讨论了 TCL 通讯、猎豹移动、小米在 AWS 上的应用实践。本专题从两个角度来输出价值:
- 以 AWS 的视角,帮助大家更合理的理解云上的服务和工具,以及针对特定的业务和场景将这些服务搭建成自己的架构,并通过 AWS 提供的工具及第三方工具提升技术设施管理、应用部署过程中的效率。
- 猎豹移动、TCL 通讯、小米在 AWS 上的实践经验,包括需求分析、选型、实践及优化成长之路、踩过的坑等。
让我们来详细回顾下本专题的内容:
“基于 AWS 的 DevOps 实践指南”——亚马逊 AWS 解决方案架构师代闻
AWS 提供了实现 DevOps 的平台和工具支持,包括:代码和命令行工具、CloudFormation、CodeDeploy、OpsWorks、ElasticBeanstalk 及第三方服务支持。可以通过三种方式控制 AWS,包括管理控制台、API 和 SDK、命令行接口(CLI),其中后两者可用于 DevOps。
在 AWS 看来,对大规模基础架构实现 DevOps 除了需要 CloudFormation、CodeDeploy、OpsWorks、ElasticBeanstalk 及第三方服务支持,还需要 IAM 安全认证工具。
CloudFormation 可以让基础设施变成一段代码,他带来的好处是:
- 简化 AWS 服务的部署,快速部署一个 Stack
- 模板化基础平台
- CloudFormation 自动解决资源部署的先后和依赖关系
- 版本控制
- 第三方管理工具可以通过 API 集成 CloudFormation
通过 CloudWatch 和 IAM 实现贯彻始终的监控与安全。
“猎豹在 AWS 上的运维自动化实践分享”——猎豹移动海外运维经理王琰
在搬上 AWS 之前,猎豹移动的基础设施为自建方式。在 AWS 上,猎豹移动使用了部分 AWS 工具和第三方工具,ansible 负责操作系统的重启和按装,配置管理,部署,上下游关联。Nagios 和 Zabbix 负责基础监控。CloudWatch 负责监控 http 业务状态,数据库和 cache。
“用 AWS 云平台搭建混合云的最佳实践”——亚马逊 AWS 首席云计算企业顾问张侠
为什么会有混合云,混合云的优势是:
- 继续使用已经建设的设施
- 在投资 CapEx 和运营 OpEx 之间控制支出
- 合规或行业性要求
- 降低单个供应商风险
- 实现独特的功能性能
- 商业授权维护支持的限制
- 兼得私有云和公有云的好处
AWS 提供了工具集来支持混合云:
- VPC
- DirectConnect
- VPN
- Directory 服务
- AWS Import/Export
- AWS Storage Gateway
在 AWS 实现混合云的集中典型的场景:
- 存储扩展
- 备份和存档:冷数据可以从 S3 向 Glacier 备份,充分利用现有的投资
- 使用各种 AWS 的托管服务(EMR 等):灵活快速,弹性,安全,自动维护升级
- 灾难恢复
- 开发与测试验证
小米米粉节案例分析
- AWS 的工程师与小米的员工一起工作
- 针对每 2 个小时一次抢购,提前开启预热实例
- 小米承担了小部分流量,AWS 承担了大部分流量
“AWS 云平台的移动应用服务与移动应用开发最佳实践”——亚马逊 AWS 解决方案架构师、区域主管张荣典
通过 AWS,让移动开发团队拥有:
- 快速:应对新趋势;支持新设备;新的硬件和软件功能(向下兼容,精准定位)
- 市场:全球市场
在具体的功能方面 AWS 提供:
- 认证与授权
- 数据 API
- 消息推送
- 用户分析
具体的服务:
- 认证:Cognito
- 同步数据:DynamoDB
- 搜索:CloudSearch
- 多媒体:S3
- 后端通知:SQS
- 移动应用分析:Mobile Analytics
- 商业智能:Redshift 和 Amazon SNS
“TCL 全球移动平台架构演进”——TCL 通讯云平台技术总监陈峻
TCL 通讯面临的挑战:
- 全球不同国家访问
- 提供全球 app 分发渠道
- 提供付费下载的 app 加速
- 不同国家隐私保护需求
- 海内外数据同步
- Log 统计分析
2008 年 -2012 年的架构:
- 2G/3G 网络
- 只是用 EC2 和 S3
2012 年 -2014 年的架构:
- 智能手机 + 应用商店
- EC2 +S3+RDS+CloudFront
2014 年 -2015 年的架构:
- 增加 VPC + ELB +DynamoDB
未来:
- 增加 Multi-region Route53
Route53 带来的优化可能包括:
- 按 region 来提供目标用户服务,根据 Geo location 来判断
- 根据权重等指标指向,不同的 ELB 或者域名
- 甚至根据不同国家 CDN 检测,情况将请求指向其他 CDN
统计分析
- Flume 插件开发 collector 收集至 HDFS
- MR/Hive/Streaming 方式均有使用
- Oozie 进行调度,sqoop 导入 db 进行 dashboard 展示
日志分析
- CloudFront Raw log 分析,Geoip2 数据统计国家下载耗时
- Nginx/Tomcat 请求耗时分析,判断后台性能瓶颈
- Appcenter log 分析,运营提供支持
海内外的数据同步
- 同步 VPN
- 端口限制
- 新加坡 AWS 代理
DB 数据库的同步
- Otter
HDFS 上的 log 数据
- DistCP/FastCopy
EMR
- 尝试 EMR 的 job 执行方式
- 比对成本
Auto scaling
- 大容量弹性 webserver,如 onetouch stream
“如何利用云开发原生的 Python 应用”——亚马逊 AWS 首席云计算技术顾问费良宏
Python 是一种发展比较平稳的语言:
- 一种通用的、高级程序设计语言
- 一个荷兰人 (Guido van Rossum ) 的设计 / 1991 年
- 一个榜单 (TIBOE ) 上排名第 8 的语言 / 2015 年 4 月
- 一大批公司在使用它
但 Python 充满争议,由于 Python3 并不兼容 Phthon2。
Yelp! 的大数据应对之道:
- 每天产生 250GB 压缩的日志文件,数据库超过 7TB,二级存储达 TB 级
- 通过 EMR 和 mrjob 分析数据
Netflix 的在 AWS 上开发了系列测试工具 https://netflix.github.com/
云计算应用开发利器 BOTO
- 面向 Python 开发的 AWS SDK
- 支持 40+ AWS 服务 (S3, EC2, EMR…)
最后,费良宏分享了自己收藏的 Python 资源:
- 数据分析:iPython,Numpy,Pandas,Scipy,Matplotlib
- 机器学习:Scikit-learn
- web 数据获取:Scrapy
- web 框架:Flask
评论