我都想回学校了,因为有了这个东西

android studio 教程 | 2018-11-18 01:24

让我一时冲动想回学校的是一款由阿里巴巴面试官设计的云教育一体机。

这位面试官在面了无数的学生之后发现:尽管我们的学生的素质都非常优秀(阿里巴巴校招的,能不优秀么?),但在已掌握的专业技能方面与现在的主流IT技术之间存在较大的脱节,所以就想开发出一款产品来帮助我们的在校大学生能够更快速的获得企业的认可。阿里云教育一体机的特点:

最新的技术、阿里云教育一体机使用的是阿里云的飞天敏捷版容器平台,基于最新的容器平台kubernetes 的运行环境,支持区块链、深度学习等时下最流行应用。

云原生环境、在飞天敏捷版容器平台之上集成了阿里云服务端及移动端的DevOps技术,无缝对接互联网企业的云原生开发实践。如果有人问什么是DevOps和云原生?DevOps 简单的说就是一套高效的软件开发和运维一体化的方法、文化、技术和工具的统称,最终的结果就是快速开发快速迭代,云原生是这样一类应用,能够充分利用云计算的弹性资源实现快速扩容和缩容,正是DevOps和云原生成就了互联网公司的高速发展。

企业级平台、集成了EMAS!EMAS!EMAS!重要的事情说三遍,这是阿里巴巴御用的移动开发平台,如果你使用过过手机淘宝等阿里巴巴移动应用,那么你已经是它的用户了,这个在双11让无数人疯狂的移动开发平台让我们的学生一下子就站上了巨人的肩膀。

阿里云教育一体机提供的教学内容和软硬件如下:

移动开发技术、基于EMAS全面的掌握企业级移动开发的专业技能。

移动端DevOps技术、实现快速的移动应用迭代开发。

Server端DevOps技术、快速开发和运维互联网后台服务系统。

容器技术、掌握最新的Kubernetes容器管理系统的运维和管理技能。

区块链技术、熟悉各种主流共识算法,掌握区块链应用开发技能。

深度学习、学习和掌握Caffe、Tensorflow、Theano等主流深度学习框架和平台。

整个教育一体机的基础平台,阿里云飞天敏捷版的架构(产品清单仅供参考,以实际交付产品为准):

ZStack阿里云版是一套以KVM为基础的IaaS管理平台,为所有的容器集群节点提供虚拟化基础架构计算资源支持。

KMS秘钥管理服务,提供集中的秘钥管理机制,避免秘钥分发带来的安全隐患。

容器服务、Docker企业版容器管理平台,对比社区版的容器平台具备企业级的安全和镜像管理机制。

对象存储、就是阿里云的OSS存储服务,提供海量的非结构化数据存储能力。

文件存储、NAS服务,支持提供SMB/NFS文件存储服务。

表格存储、一个类似于HBASE,DynamoDB 的NoSQL数据库。

块存储、弹性块存储服务,为虚拟机提供可挂载的数据盘。

RDS MySQL、数据库服务,提供结构化数据的存储和管理能力。

DRDS分布式关系型数据库、可以整合多个数据库的能力,实现海量数据的快速查询和管理。

数据传输服务DTS、在线迁移数据库的神器,具体介绍见我之前的文章。

数据管理服务DMS、实现多个数据的集中管理、权限分配,实现用户账号和数据库账号的解耦,实现数据库的DevOps。

DMS的功能逻辑架构图:

从上述架构组件可以看出,这里面用的全是企业级的产品,完全不是开源软件凑出的产品可比的。

应用服务的DevOps主要使用阿里云的CodePipeline 实现,学生通过
Git提交代码,通过webhook触发自动构建和自动集成流程,代码将被自动编译打包,封装为容器镜像,再通过Kubernetes/Docker swarm编排系统完成镜像拉取和运行测试。

App应用的DevOps主要通过阿里巴巴企业级的EMAS实现,EMAS的架构图如下:

EMAS 移动研发平台(Enterprise Mobile Application Studio,简称EMAS),面向企业服务市场,把阿里巴巴近十年在移动互联网行业沉淀的DevOps研发支撑能力、移动APP基础中间件能力开放给客户,帮助传统企业快速完成业务移动化的转型升级目标。EMAS包含:

移动APP全生命周期DevOps工作流管理;

面向研发、测试、发布、运维、运营5个职能域开放了大量的原子粒度的中间件和基础设施服务;

沉淀了包括持续交付、组件化、跨平台开发、泛质量管理、网络统一接入等在内的5大场景解决方案;

这么看来,给的全是大规模杀伤武器,学生能用的起来么?没关系,阿里云团队已经开发好了相关课程和实验,课程大纲和实验安排见文章最后的附录。通过这个课程大纲你会发现:正因为有了阿里巴巴开发团队的加持,即便是很多在职的专业技术人员,也未必能掌握到这个层次的专业技能。集成了这么多的企业级产品,再加上由阿里巴巴面试官定制的课程,阿里云教育一体机一定不便宜吧?非也!阿里云教育一体机正以超低劲爆价格销售,仅限教育行业客户,现在的学生们有福了。怎么样,这下知道我为啥有种想回学校的冲动了吧。如需购买阿里云教育一体机,请通过以下方式联络:

课程大纲介绍(以实际交付为准):移动开发技术:学习曲线:

学员将学习Android的基础UI控件,布局原理及Activity 组件,并透过开发环境的配置,完成您的第一个Android App

学员将进一步学习更多的常用UI控件,Adapter类控件及Android四大组件,并运用所学习的知识,实际动手改造您的第一个Android App。另外我们会介绍如何使用EMAS 来做代码版本管理及云端建构

学员将学习Android的事件处理机制,Fragment及Android网络编程,结合初级及中级课程,学员将能实现一个电商首页应有的基础功能。另外结合EMAS 的发布功能,学员将学习EMAS从版本管理,建构到灰度发布的完整开发管理流程课程大纲(阶段1):

移动开发介绍1.1. Android开发概述与系统架构1.2. iOS开发概述与系统架构1.3. 混合开发概述与系统架构

Android开发环境搭建2.1. JDK 安装2.2. Android Studio安装2.3. 安装Android SDK

Android Activity 介绍

基础的UI控件4.1. TextView4.2. Button4.3. ImageView

Android页面布局基础5.1. 线性布局LinearLayout5.2. 相对布局RelativeLayout

开始第一个App (做一个简单的类淘宝页面)6.1. 创建工程6.2. 第一个Activity页面6.3. 页面布局的选择6.4. 摆放页面控件6.5. 本地编译执行

课程大纲(阶段2):

常用的UI控件1.1. Edit Text.1. CheckBox.2. ScrollView

Adapter类控件2.1. Adapter 基础讲解2.2. ListView2.3. BaseAdapter优化2.4. ListView数据更新

Android 四大组件3.1. Activity3.2. Service3.2.1. Service初涉3.2.2. Service进阶3.3. BroadcastReceiver3.3.1. BroadcastReceiver 基础3.4. ContentProvider3.4.1. ContentProvider初探3.5. Intent3.5.1. Intent的基本使用3.5.2. Intent之复杂数据的传递

代码管理4.1. Git 版本管理概述4.2. Git操作

改造第一个App5.1. 活用EditText 级ScrollView 控件5.2. 活用ListView与Intent (学员用listview作出搜索页面,点击搜寻后,弹出搜索页面)

EMAS 代码管理及云端构建6.1. EMAS 远程代码管理 + 实践6.2. EMAS 代码构建 + 实践

课程大纲(阶段3):

Android 事件处理机制1.1. 基于监听的事件处理机制1.2. 基于回调的事件处理机制1.3. 消息传递机制浅析1.4. 监听EditText的内容变化

Android Fragment2.1. Fragment基本概述2.2. 底部导航栏的实现(方法1)2.3. 底部导航栏的实现(方法2)2.4. 底部导航栏的实现(方法3)2.5. 底部导航栏+ViewPager滑动切换页面

Android网络编程3.1. Http协议介绍3.2. Android Http请求3.2.1. HttpURLConnection3.2.2. HttpClient3.3. 流行的Http 三方库3.3.1. Volley3.3.2. OKHttp3.4. Json 数据格式

进一步优化App (实践)4.1. 获取数据(Okhttp , 后台准备Json 数据)4.2. 底部导航栏实践

EMAS发布5.1. EMAS 代码管理及构建5.2. EMAS App发布

移动DevOps技术学习曲线:

学员将学习DevOps的基础概念及DevOps在移动开发中所面临的挑战,另外学员将学习如何把本地代码透过云上管理,分析及构建移动应用

学员将进一步了解EMAS的移动测试及发布功能,您将透过EMAS 录制您的测试脚本并回放您的测试结果,在测试成功后,您将能透过策略化的配置来随需发布App

学员将进一步学习EMAS 的APM及数据分析功能,另外学员将透过实际演练上报App端的数据,并在数据分析大盘上查看App端的运行数据

课程大纲(阶段1):

DevOps概述1.1. 什么是DevOps1.2. DevOps技术栈1.2.1. 开发流程1.2.2. 构建1.2.3. 自动化测试1.2.4. 持续交付1.2.5. 监管1.3. DevOps 的采用现状

移动DevOps2.1. 移动DevOps的挑战2.2. DevOps 的理论和实践2.3. 移动应用程序交付

EMAS DevOps3.1. EMAS 功能概述3.2. EMAS 静态代码检测3.3. EMAS 云端构建

建构第一个App4.1. 创建产品4.2. 创建应用4.3. 创建项目4.4. 构建4.5. 静态代码检测

课程大纲(阶段2):

EMAS移动测试 (内部文档依赖:《MQC专有云系统部署手册.docx》)1.1. 移动测试的难点与挑战1.2. EMAS 移动测试功能概述1.3. APP常见的测试类型介绍1.3.1. 安装测试1.3.2. 卸载测试1.3.3. 功能测试1.3.4. 性能测试1.3.5. 兼容性测试

EMAS移动App发布 (内部文档依赖:《Native研发 业务培训1.0.0 .key》)2.1. 典型场景2.2. 客户端发布2.2.1. 灰度发布条件2.3. 热修复

EMAS 实操3.1. Android 移动测试功能实践3.2. EMAS App 发布功能实践3.2.1. 整体流程操作  

课程大纲(阶段3):

EMAS 数据分析1.1. 数据大盘1.2. 应用全景1.2.1. 今日实时1.2.2. 基本统计1.2.3. 全景分析1.2.4. 应用分析1.2.5. 用户分析1.2.6. 品牌和网络1.3. 自定义报表1.4. 数据管理1.5. 基本配置

EMAS APM2.1. 用户体验2.1.1. 性能监控大盘2.1.2. 性能对比分析2.2. 崩溃分析2.2.1. 实施趋势2.2.2. 聚合日志2.3. 用户日志2.4. 自定义错误

EMAS 实操3.1. 安装EMAS demo App3.2. 查看EMAS 移动数据3.2.1. 今日实时3.2.2. 应用分析3.2.3. 品牌和网络3.3. EMAS APM 发布功能实践3.3.1. 性能监控大盘3.3.2. 崩溃分析

容器技术

容器技术概述1.1 什么是容器1.2 什么是Docker1.3 容器相关技术1.4 容器化的一些原则1.5 什么是容器编排1.6 容器编排的选择1.7 【实验】

Docker入门2.1 容器技术历史2.2 Docker 概念2.3 构建Docker镜像2.4 利用Docker运行应用2.5 上传镜像到镜像仓库2.6 【实验】

Docker技术深入理解3.1 Docker镜像与分层存储3.2 网络3.3 命令行操作3.4 【实验】

应用容器化4.1 容器化流程4.2 利用Dockerfile构建镜像4.3 Dockerfile语法4.4 【实验】

Kubernetes介绍5.1 必备知识5.2 Kubernetes的启源5.3 为什么使用Kubernetes5.4 Kubernetes主要特性5.5 Kubernetes和CNCF5.6 【实验】

Kubernetes架构介绍6.1 Kubernetes架构视图6.2 Master节点6.3 Node节点6.4 网络6.5 存储6.6 【实验】

阿里云容器服务入门7.1 产品概述7.2 快速入门7.3 配置利用命令行访问容器服务7.4 【实验】

阿里云容器服务-应用管理8.1 运行第一个应用程序8.2 查看相关应用配置和信息8.3 运行实体与Master组件的关系8.4 Pod8.5 Label/LabelSelectors8.6 ReplicaSet8.7 Deployment8.8 Namespace8.9 Service8.10 Ingress8.11 Volume8.12 【实验】

阿里云容器服务-系统管理9.1 新增/删除Worker节点9.2 系统升级9.3 用户及权限管理9.4 网络管理9.5 存储管理9.6 安全管理9.7 配置管理9.8 监控管理9.9 日志管理9.10 对外集成9.11 灾备恢复9.12 审计9.13 【实验】

阿里云容器服务-镜像管理10.1 镜像导入导出10.2 镜像Naespace管理10.3 私有镜像的使用10.4 安全扫描10.5 敏捷版镜像服务升级10.6 【实验】

容器技术领域及未来发展11.1 云原生应用11.2 微服务11.3 DevOps11.4 容器技术发展趋势11.5 CaaS,Serverless

实验部分:

容器技术概述1.1 动手安装Docker1.2 阅读Docker文档

Docker入门2.1 构建Docker镜像2.2 利用Docker运行应用2.3 上传镜像到镜像仓库

Docker技术深入理解3.1 配置网络3.2 管理存储与应用数据3.3 运行应用3.4 配置容器3.5 配置Docker daemon

应用容器化4.1 构建NodeJS应用容器镜像4.2 构建Java应用容器镜像

Kubernetes介绍5.1 动手安装minikube5.2 阅读Kubernetes文档

Kubernetes架构介绍6.1 minikube lab6.1.1 部署应用6.1.2 查看deployment,service信息,访问应用6.1.3 删除应用

阿里云容器服务入门7.1 登陆阿里云容器服务(敏捷版)7.2 部署应用7.3 配置

阿里云容器服务(敏捷版)-应用管理8.1 运行第一个应用程序8.2 查看相关应用配置和信息8.3 运行实体与Master组件的关系8.4 Pod8.5 Label/LabelSelectors8.6 ReplicaSet8.7 Deployment8.8 Namespace8.9 Service8.10 Ingress8.11 Volume

阿里云容器服务(敏捷版)-系统管理9.1 用户及权限管理9.2 网络管理9.3 存储管理9.4 安全管理9.5 配置管理9.6 监控管理9.7 日志管理

阿里云容器服务(敏捷版)-镜像管理10.1 镜像导入导出10.2 镜像Naespace管理10.3 私有镜像的使用10.4 安全扫描10.5 权限管理

后台DevOps技术

DevOps介绍1.1 软件开发流程的演变1.1.1 Waterfall1.1.2 Agile1.1.3 DevOps

DevOps是什么?

DevOps的核心价值和原则3.1 为什么我们需要DevOps3.2 DevOps核心价值3.3 DevOps原则

DevOps和传统IT的不同

DevOps概览5.1 DevOps生命周期5.2 DevOps与Agile的区别

持续开发6.1 概览6.2 版本控制系统6.2.1 Subversion6.2.2 Git6.3 构建工具

持续测试7.1 概览7.2 自动化测试工具

持续集成8.1 概览8.2 Jenkins

持续部署9.1 概览9.2 配置管理工具9.3 容器化工具

持续监控10.1 概览10.2 工具

DevOps工程师11.1 谁是DevOps工程师11.2 DevOps工程师的角色、职责和技能

深度学习技术

深度学习技术概览1.1 什么是深度学习?1.2 Deep learning VS machine learning 从机器学习到深度学习1.3 什么是神经网络?1.4 深度学习为何如此流行?

深度学习系统TensorFlow2.1 What’s TensorFlow? 什么是TensorFlow?2.2 TensorFlow Basics. TensorFlow基础2.3 创建神经网络模型(neural network model)2.4 TensorFlow模型开发2.5 TensorFlow分布式模型训练2.6 TensorFlow模型预测

神经网络 neural networks3.1 训练基本神经网络3.2 训练卷积神经网络convolutional neural networksLab1、模型开发2、模型训练3、预测

区块链技术

基本介绍部分1.1 区块链基本概念1.2 区块链的诞生和演进1.2.1 区块链v1.0:数字货币1.2.2 区块链v2.0:智能合约1.2.3 区块链v3.0:万物互联

区块链的分类2.1 公有链2.2 联盟链2.3 私有链

区块链的商业价值

区块链业务应用介绍4.1 供应链金融4.1.1 贸易管理(e.g. 商品溯源)4.1.2 权属管理(e.g. 数字内容版权)4.1.3 资源共享(e.g. 数据交易)4.2 房地产行业的应用

区块链常用算法5.1 一致性问题5.2 共识算法5.2.1 FLP不可能性原理5.2.2 CAP原理5.2.3 ACID原理5.2.4 Paxos与Raft5.2.5 拜占庭算法5.3 加密算法

区块链主流实现技术6.1 超级账本Hyperledger(开源)6.2 以太坊Ethereum(开源)6.3 Corda(开源)6.4 Ripple(开源)

Hyperledger Fabric架构和工作机制简介体系架构7.1 交易流程7.2 账本及存储7.3 隐私及安全7.3.1 证书及验证体系7.3.2 Fabric CA及MSP7.3.3 加密、权限控制7.4 部署、配置及管理7.4.1 节点配置7.4.2 身份配置7.4.3 通道配置7.4.4 智能合约管理7.5 智能合约开发7.5.1 运行原理7.5.2 接口说明7.5.3 示例讲解

区块链的未来8.1 与AI和IoT技术的融合8.2 与企业信息系统的整合8.3 数字隐私 (digital privacy)

实验部分:• Lab: 在Kubernetes创建部署区块链网络• Lab: 开发chaincode• Lab: 开发Client SDK应用程序• Lab: 监控区块链