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