HelloKitty • 2022-10-19 15:17
2268
白鲸技术栈举办的直播分享会,我们邀请了氦三科技创始人兼CTO邓洪超来和我们聊聊“云时代的应用开发问题与探索实践”的相关话题。
邓洪超美国卡内基梅隆大学硕士,CoreOS + 阿里云,CNCF 联席主席 + KubeCon 评委会主席,专注于:应用开发与交付,开发者体验。
云为应用开发带来了哪些好处?
云上资源弹性调度,让应用开发按需付费,节省不必要的开支。
. 比如在产品验证阶段,没必要为了上线买了一堆设备,最后发现没人用就浪费了。
云服务让全栈开发省下了 DevOps 时间,更专心于业务。
. 云上有托管 Kubernetes、Postgres、Redis 服务等,省去了底层运维的工作。
云服务甚至能让全栈开发更快速开发功能,交付最核心业务。
. 一些非核心业务像登陆验证、管理订阅邮件等都有对应云服务 (Auth0, Sendgrid),应用开发只需最小量工作即可实现功能,节省时间精力,更专注于核心业务逻辑。
云时代的应用开发会有哪些变化?
. 服务数量会越来越多
. 应用架构和依赖越来越复杂
. 使用资源也越来越多
. 数据量越来越大
. 测试和追踪需要分布式方案
云带来了新问题
应用无法在本地环境正常运行
. 微服务依赖复杂,本地跑不起来
. 数据难以在本地复现
. 云上依赖有各种限制 (比如限制 ip 访问地址等)
. 测试和追踪无法在本地运行
应用开发环境需要跟云上各种 IaaS、PaaS、SaaS 功能和资源做好整合
开发测试环境上云
. 将云直接作为开发测试环境
. 本地的 IDE 只作为编辑器 + 客户端工具
. 服务以及依赖都跑在云上,本地不再需要配置任何工具和环境
. 免去了本地配置的同时,开发环境更贴近生产环境,上线成功率更大
. 开发测试环境按需使用,能够快速创建和销毁,能够一键复制

一个典型的架构
传统的本地测试和追踪工具不再有效
云上测试需要基于云的 API 测试工具
. 网络访问限制
云上测试需要包含整个服务拓扑的追踪体验
. 分布式追踪
. 请求和回复记录
. 方便调查和重现. 远程调试
云时代的测试和追踪

. 一个请求就能展示途径所有服务的拓扑
. 对于出错 (返回 5xx) 的请求,相应的服务都能标记出来
. 出错请求的 request + response 都能记录下来,方便 debug
. 可以远程进入容器开发调试,并 replay 之前的request 来重现问题和 debug
总结
. 云时代的应用开发将无法在本地正常运行
. 云将被直接当做开发测试环境,本地 IDE 只是作为编辑器和客户端
. 开发测试环境按需使用,能够快速创建和销毁,能够一键复制
. 云上环境支持远程开发直接进入容器开发调试
. 云时代的测试和追踪需要适配分布式方案
【本篇文章属于白鲸技术栈原创,如需转载请注明出处】
扫码关注公众号
获取更多技术资讯