电商行业开发运维之路

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

AWS中国(北京)区域由光环新网运营电商行业开发运维之路田明晶AWS解决方案架构师2017.4.8AWS中国(北京)区域由光环新网运营电商/O2O行业业务特征及技术特征微服务与容器技术DevOps与AWSAWS的容器服务-ECS客户案例分享主要议题AWS中国(北京)区域由光环新网运营电商/O2O行业业务特征及技术特征AWS中国(北京)区域由光环新网运营电商行业的业务特征AWS中国(北京)区域由光环新网运营电商行业的技术特点模式创新业务多用户量大快速迭代覆盖广高度可扩展高并发全球部署快速迭代可管理可监控AWS中国(北京)区域由光环新网运营微服务与容器技术AWS中国(北京)区域由光环新网运营单体式应用持续开发问题模块扩展问题可靠性问题采用新架构和语言非常困难AWS中国(北京)区域由光环新网运营微服务架构易于开发/理解/维护便与使用新开发技术独立的部署/测试易于容错AWS中国(北京)区域由光环新网运营更高效的利用系统资源不需要进行硬件虚拟,不需要运行完整操作系统可以运行更多数量的应用更快速的启动时间(毫秒级)创建新的目录装填文件系统设置网络,文件系统挂载点启动进程一致的运行环境除了内核,运行时环境保持一致持续交付和部署(DevOps)DockerfileCI/CD更轻松的迁移物理机、虚拟机、公有云、私有云,甚至是笔记本更轻松的维护和扩展分层存储以及镜像的技术为什么要用容器AWS中国(北京)区域由光环新网运营DevOps与AWSAWS中国(北京)区域由光环新网运营为什么需要DevOps?因为我们不希望事情是这样的…快速迭代,敏捷开发TimeChange瀑布式开发,版本发布少TimeChange我们希望…AWS中国(北京)区域由光环新网运营一个完整的DevOps开发流程1.提交(Commit):工程师将程式在本地测试过后,提交到版本控制系统,如Git等。2.建置(Build):持续整合系统,如JenkinsCI,侦测到版本更新,便自动从Git里提取出最新的程式,进行建置(Build)。Jenkins以SaltStack的Minion形式架构起来,意味着可以透过SaltStack的Master或其他的Minions取得更多的所需讯息来完成建置。3.单元测试(UnitTest):Jenkins完成配置后,会自动执行指定的单元测试。4.部署到测试环境(DeploytoTestEnvironment):完成单元测试后,Jenkins可将程式部署到跟应用环境(ProductionEnvironment)相近的测试环境进行最后测试。5.最终测试:在测试环境里,可以进行一些最后的自动化测试,例如一些Selenium测试。以及跟实际情况类似的测试,可由开发人员或客户手动进行。6.部署到应用环境(DeploytoProductionEnvironment):通过所有测试后,便可将最新版本部署到实际应用环境里。AWS中国(北京)区域由光环新网运营单体Monolithic开发生命周期开发者releasetestbuild交付渠道appAWS中国(北京)区域由光环新网运营微服务Microservice开发生命周期开发者交付渠道servicesreleasetestbuildreleasetestbuildreleasetestbuildreleasetestbuildreleasetestbuildreleasetestbuildAWS中国(北京)区域由光环新网运营两个比萨饼团队自主负责承担责任定向激励“DevOps”亚马逊开发团队最佳实践AWS中国(北京)区域由光环新网运营=每年5千万次交付数千个团队×微服务架构×持续交付×多环境部署亚马逊开发团队最佳实践•基于2014年•平均1.5次部署/秒AWS中国(北京)区域由光环新网运营怎么实现DevOps?AWS中国(北京)区域由光环新网运营监控准备(Provision)部署测试编译编码ElasticBeanstalkOpsWorksCloudWatchCloudFormationCodeDeployCodeCommit基于AWS的DevOps实践要素CodePipelineCodeBuildAWS中国(北京)区域由光环新网运营ApplicationCopyCopy--在数分钟内将您的应用或应用堆栈复制到全球AWS站点基于模板的快速部署-CloudFormationAWS中国(北京)区域由光环新网运营AWS的容器服务-ECSAWS中国(北京)区域由光环新网运营什么是AmazonECS高效的容器管理灵活的容器部署AWS平台集成为扩展性设计•灵活/可定制的调度算法•广泛的API•开源代理和CLIApplicationLoadBalancingAmazonElasticBlockStoreAmazonVirtualPrivateCloudAmazonCloudWatchAWSIAMAWSCloudTrail•紧凑型•均衡型•亲和型•自定义•简单易用•高性能•大规模•安全性AWS中国(北京)区域由光环新网运营ECS的组成部分ClusterTaskDefinitionTaskDefinition1revisionnContainerDefinitionContainerDefinitionTaskDefinition1revision1,2,3…ECSInstanceAutoScalingService1BaseonTaskDefinition1v3Service1BaseonTaskDefinition1v3ContainerContainerContainerContainerECSInstanceContainerContainerContainerContainerTaskDefinitionTaskDefinition2revisionnContainerDefinitionContainerDefinitionTaskDefinition2revision1,2,3…AWS中国(北京)区域由光环新网运营ECS上的微服务架构AWS中国(北京)区域由光环新网运营构建容器应用的要素3.服务扩展/滚动更新1.容器集群管理5.权限管理4.监控与日志2.服务部署/发现AWS中国(北京)区域由光环新网运营ALBALBAZ1AZ2user/schedulerSchedulerClusterStateServicePlacementEngineEventStream1.容器集群管理AWS中国(北京)区域由光环新网运营置放引擎-置放约束和属性名称示例AMIIDattribute:ecs.ami-id==ami-eca289fbAvailabilityZoneattribute:ecs.availability-zone==us-east-1aInstanceTypeattribute:ecs.instance-type==t2.smallDistinctInstancestype=“distinctInstance”Customattribute:stack==prodAWS中国(北京)区域由光环新网运营默认支持的置放策略BinpackingSpreadAffinityDistinctInstanceAWS中国(北京)区域由光环新网运营置放策略叠加SpreadtasksacrossZonesandBinpackwithineachZoneAWS中国(北京)区域由光环新网运营批量作业ECS任务调度器运行一次批量运行长期运行的应用ECS服务调度器健康管理扩展/缩小跨AZ容器组2.服务部署AWS中国(北京)区域由光环新网运营2.服务注册/发现AmazonCloudWatchEventAWSLambda1.ECS创建服务2.事件流被CloudWatch捕获3.CloudWatch过滤,触发Lambda4.Lambda在Route53中创建DNS记录5.服务通过Route53注册/发现AWS中国(北京)区域由光环新网运营3.服务扩展Task1Task1Task1基于服务(容器)自动扩展基于宿主机自动扩展AWS中国(北京)区域由光环新网运营Deployusingtheleastspace:minimumHealthyPercent=50%,maximumPercent=100%3.服务滚动更新–最小容量更新AWS中国(北京)区域由光环新网运营Deployquicklywithoutreducingservicecapacity:minimumHealthyPercent=100%,maximumPercent=200%3.服务滚动更新–同等规模更新AWS中国(北京)区域由光环新网运营Blue-GreenDeployments•DefinetwoECSservices•Eachserviceisassociatedw/loadbalancer•BothloadbalancersinRoute53recordsetwithweightedroutingpolicy,100%primary,0%secondary•DeploytoblueorgreenserviceandswitchweightsTaskTaskRoute53recordsetwithweightedroutingpolicy0%100%3.服务更新–蓝绿部署AWS中国(北京)区域由光环新网运营4.日志与监控-CloudWatchAWS中国(北京)区域由光环新网运营4.日志与监控-容器日志记录与分析ElasticSearchKinesisFirehoseKinesisLambdaCustomerApplicationEMRHiveRedshiftEMRSparkAWS中国(北京)区域由光环新网运营5.权限与管理过去:基于宿主机的权限控制WebUIContainerClusterInstanceDataInsightsContainerECSTask2ECSTask1IAMrole粗粒度控制…AmazonDynamoDBAmazonS3UndesiredpermissionUndesiredpermissionAWS中国(北京)区域由光环新网运营5.权限与管理现在:基于容器的权限控制WebUIContainerClusterInstanceDataInsightsContainerECSTask2ECSTask1IAMRole1更细粒度控制!IAMRole2AmazonDynamoDBAmazonS3AWS中国(北京)区域由光环新网运营参考架构-持续部署中国(北京)区域由光环新网运营实战问题1–镜像的制作和维护VS优点:应用和镜像合体,便于部署缺点:频繁构建镜像数量猛增改造工作量大不同环境配置文件不同优点:镜像不用重构,配置即时生效缺点:所有宿主机维护应用副本违背了Docker集装箱原则AWS中国(北京)区域由光环新网运营开发时:镜像和应用分离,OPS维护Dockerfile,DEV维护代码部署时:镜像和应用合体多环境不同配置,分布式配置集中管理+配置文件中心解决方案–镜像的制作和维护AWS中国(北京)区域由光环新网运营实战问题2–日志及排障集群(宿主机)日志收集CloudWatchLogs代理•/var/log/dmesg•/var/log/messages•/var/log/docker•/var/log/ecs/ecs-init.log•/var/log/ecs/ecs-agent.log应用日志收集宿主机磁盘卷一对一agent一对多agentAWS中国(北京)区域由光环新网运营实战问题2–日志及排障实时查看日志/状态,安全控制SSH?别把容器当虚机使用!AWS中国(北京)区域由光环新网运营实战问题3–统计数据收集容器级别统计数据应用级别统计数据aws

1 / 52
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功