TAE2.0(Taobao App Engine)是针对移动互联网场景的定制化PaaS云服务,基于阿里云基础设施,采用Docker容器技术封装应用运行环境,并且针对互联网应用提供系统构建、发布、持续集成、运维管理的一站式解决方案,让中小团队也具备轻松服务海量用户的能力。

  系统构建能力(Build)

  TAE拥有丰富的镜像资源,例如Java、PHP、MySQL、Redis、Zookeeper等镜像;开发者可以利用官方镜像,快速搭建系统,完成在TAE2.0上的架构搭建;若官方镜像无法覆盖架构需求,则开发者可利用自定义镜像轻松搭建系统。

  通过镜像创建容器:

  

  构建自定义镜像:

  

  官方镜像 :TAE提供丰富的官方镜像,供开发者创建各种类型的服务。除了 Java、PHP、Python三种Web服务器镜像外,还提供了其他常用镜像,如存储(MySQL、MongoDB)、缓存(Redis、Memcached)、消息队列(ActiveMQ、RabbitMQ)、大数据计算(Hadoop)、代理服务器(Nginx)、分布式框架(Dubbo、ZooKeeper),内容管理(WordPress)等。开发者通过选择镜像可以一键部署相应的服务,轻松搭建起自己的整套架构。

  自定义镜像: 如果官方提供的镜像不能满足需求,TAE还支持开发者构建自定义Docker镜像,通过自定义Docker镜像开发者可以创建高度个性化的服务,比如各类语言的运行环境(如:ruby、go、node.js等)、各类服务器软件Apache、Lighttpd等等。TAE支持两种构建自定义镜像方式:在线制作自定义镜像、本地制作镜像制作并提交TAE私有仓库。

  公共镜像加速:

  Docker registry在中国既没有部署服务器也没有CDN加速节点,造成国内开发者从Docker registry下载镜像效率低下,TAE利用自身的遍布全国的CDN网络,为开发者提供Docker registry的下载加速服务。

  应用部署能力(Deploy)

  互联网创业项目一般具有周期短、业务爆发快等特点,这使得应用的发布升级非常频繁,TAE提供完善的开发工具和部署发布系统,提升开发部署效率,保障应用平滑发布。

  

  发布管理系统 :

  – 部署发布

  根据不同的使用场景和开发习惯,TAE提供了多种部署发布手段:

  1.上传部署

  开发者在本地将程序编译打包好后,上传到服务的测试环境,上传完毕后TAE将自动执行部署。

  2.编译部署

  开发者使用代码仓库管理应用的源代码,可以通过指定代码仓库分支直接编译部署到测试环境。

  3.回滚部署

  开发者每次部署的程序包会自动备份到历史版本,发布异常时,可以指定回滚部署到某一历史版本。

  4.Beta发布

  发布新版本的程序时,可以选择正式环境中的部分实例进行发布,而其它实例保留运行老版本程序,新版本运行一段时间无异常后,再全部上线,以确保发布稳定 。

  –线上-测试环境模式

  针对应用服务器类的服务,提供了线上环境和测试环境两个运行环境,开发者可以先在测试环境部署验证通过后,再上线到正式环境,确保发布稳定。

  –主-备环境模式

  对于支持主-备部署的服务(如MongoDB、Redis等),支持创建Master和Slave两套运行环境,默认master提供线上服务,一旦Master发生问题,开发者可以将slave切换为Master,以保障线上服务稳定。

  在线IDE:支持单文件热部署以及整体应用的打包部署;支持在线编辑代码、推送仓库等操作。

  运维管理能力(Management)

  据统计,70%的移动互联网应用都曾遭受网络攻击而导致故障,创业团队往往难以应对,TAE提供了多重的安全防护机制,让系统免受基础设施故障和网络攻击的困扰。

  同时,互联网创业团队一般规模较小、资源有限,应用的日常运维工作又耗时耗力,开发专业运维系统又成本高昂,TAE集成了运行环境管理、数据库管理、自动化监控、日志采集分析、压测系统,将开发者从运维工作中解放出来,专注业务实现。

  

  运行环境安全 :应用运行环境数据采用多重备份,并且实现了自动恢复的策略,服务可用性达到99.95%。网络方面采用了硬件防火墙设施,提供四层到七层的全面防护,防护类型包括CC、SYN flood、UDP flood等所有DDoS攻击方式,支持清洗和黑洞机制,还接入了waf防护等功能。

  运行环境管理:

  –弹性管理

  当业务面临突发增长或下降时,开发者可以根据需要对服务的运行实例个数进行调整,TAE会自动完成新增实例的生产、部署和接入负载均衡器进行分流。弹性扩缩过程完全平滑,用户无感知。

  –SSH登录容器

  对于运行中的实例(容器),开发者可以使用TAE提供的Webssh或SSH客户端工具直接登录到Docker容器进行管理,提供linux服务器的原生管理体验。

  –配置管理

  TAE支持对服务的运行环境进行配置修改,对于包括网络接入、日志采集路径、环境变量、高级配置(主要是“网络模式”和“状态模式”)的配置进行修改。

  数据库管理系统:

  –RDS控制台

  对于TAE官方的RDS服务,开发者可以使用RDS控制台对数据库进行日常管理,支持导入SQL文件、数据库备份、数据库连接管理、数据库参数设置、重启实例等功能。

  –iDB工具

  对于TAE官方的RDS服务和通过镜像创建的MySQL服务,还提供阿里自主研发的iDB管理工具,支持对数据库表结构、数据内容、日志进行透出和管理,并提供对实例会话、事务锁、数据库服务器性能等的监控。

  监控系统:

  针对应用和数据库,提供针对关键性能指标的实时监控和告警,提高系统日常运维效率。

  –应用监控

  提供QPS(每秒查询率)、RT(请求响应时间)、PV(页面浏览量)、CPU使用率、访问错误码、自定义URL、日志关键字、应用所使用的数据源性能等进行监控。

  –RDS监控

  提供连接数、存储空间、IOPS(每秒进行读写I/O操作的次数)、QPS(每秒查询率)、每秒SQL执行数、慢SQL、网络流量等指标的监控。

  日志系统:

  –查询日志

  提供日志自动采集和分析,支持对应用日志、访问日志进行格式化展示,支持包括错误码分析、URI日志分析、关键字筛查、慢日志分析在内的多种查询分析手段。

  –实时日志

  支持日志的实时输出展示,为开发者排查问题提供强有力支持。

  在线诊断工具:

  TAE为Java开发者提供了Jstack分析工具,为php开发者提供了xhprof工具,支持开发者进行在线的性能问题排查。

  压测系统:

  服务端程序的自动化压测和分析工具,开发者提交测试任务后,系统自动对应用进行施压并搜集性能表现指标,并输出测试报告,帮助开发者诊断性能瓶颈。

  权限管理系统:

  对于团队作业的开发者,TAE提供针对控制台和代码仓库的分权管理体系,解决不同角色的开发者分工协作的问题,支持子账号创建,角色管理、权限分配等功能。

  

转载于:https://juejin.im/post/5b9b5b3be51d450e7c0d434c