基本环境
TAE Java 环境以 OpenJDK 1.7 和 Tomcat 7 为基础构建,运行在阿里云的的云服务器(ECS)之上。TAE采用多层沙箱保护提供安全运行环境,并且整合多种Web应用开发常用的扩展服务,帮助开发者快速开发和部署应用程序,将开发者从系统运维、技术钻研等工作中解放出来,集中于核心业务的开发和运营。
在平台中可以使用 Java API 标准为 Java 运行时环境开发应用程序。应用程序使用 Java Servlet标准与TAE Java运行时环境进行交互,并且可以使用常用的Web应用程序技术,例如 JavaServer Pages (JSP)。
平台中的Java 运行时环境使用 Java 7。该环境包含 Java SE Runtime Environment (JRE) 7 平台和基本类库。只要不超过沙箱限制,应用程序就可以使用任何JDK库或第三方API功能。当然也可以在应用中使用TAE提供的各种云服务。
平台特点
标准兼容:支持JDK 1.7原生语言,支持Servlet标准,良好的兼容性,开放了几乎所有权限,无移植成本。
安全可靠:Web容器、操作系统、网络多层沙箱立体防护,后台支持多个应用实例负载均衡,消除单点故障。
自动恢复:故障时JVM自动重启,持续故障时,JVM自动漂移,增加可靠性
自动弹性:根据用户需求,JVM可配置成自动伸缩,JVM数量随着应用的访问冷热变化
框架支持:支持流行Java框架,应用迁移成本低
分布Session:完全分布式环境,分布式Session
本地SDK: 完整的本地SDK模拟环境,本地与线上运行效果几乎一致
扩展服务: 提供常用的分布式云服务,开发者可以通过TAE提供的SDK方便地调用。
沙箱隔离
沙箱是Java平台中的用于保护应用数据和代码安全的组件,沙箱对平台中的各应用间做了以下隔离:
代码隔离:应用间不能相互访问且互不影响
CPU隔离:不会出现被其他应用抢占CPU情况
内存隔离:每个应用都是一个单独的Java进程
IO隔离:各应用独享一定量的IO,不受其他应用影响
虽然沙箱拥有以上强大的保护功能,但却未对Java原生库做过多的限制。以下几点除外:
- Java应用不能使用JNI
- Java应用只能在本地目录进行文件读写
- Java应用不能打开端口
网络
由于网络安全考虑,读者只能使用FetchUrl服务进行对外通信。TAE Java 应用中的网络设置采用白名单机制,在白名单以外的网络请求将在网关上被拒绝。
日志系统
Java 平台环境为每个应用提供了一个日志空间,应用的访问日志、运行日志和系统日志能在日志中心中查看。由于云环境与本地环境的区别,用户在日志的阅读习惯上会有一定差异。不过,TAE采取了一系列措施,确保用户的日志信息完备、准确、实时,提供超出本地日志的使用体验。
Session
JAE Java平台中的应用部署在分布式环境中,因此JAE为每个应用提供了分布式Session功能,以保证Session能多节点共享。Session信息使用淘系分布式缓存进行存储,支持标准Memcached协议,读写速度非常快。
分布式Session的使用和Servlet标准一样,用户通过session.setAttribute()的方式来存储数据。需要注意的是,放入session中的对象必须实现序列化接口java.io.Serializable。
FAQ
关于此文档暂时还没有FAQ