小而美:两步完成从源码到应用的极简交付

作者:花三(王俊)

Serverless 应用引擎 SAE 是阿里云推出的一款零代码改造、极简易用、自适应弹性的容器化应用托管平台,面市以来为几万家企业客户提供服务,运行稳定,广受好评。

SAE 的出现解决了众多企业想用 K8s,但是又上手困难的问题,可以用非常低的门槛享受到 K8s 的技术红利。尤其是 SAE 在应用的构建和发布时的顺滑体验,更是帮助中小企业用户极大地提升了研发效能。

本文将主要介绍,如何通过 SAE 快速实现项目从源码到应用的交付与上线。

SAE 两步完成应用交付

在 SAE 上,从源码到应用的交付部署,仅需要进行两步操作:准备代码仓库和创建应用。 完成这两步后,基于持续部署的能力,就可以愉快地进行应用版本的迭代了。

第一步:准备代码仓库

接下来,将以开源项目 excalidraw 为例进行演示,在无需修改任何代码的前提下,在 SAE 上进行应用的快速部署。首先,需要将 excalidraw 项目的开源仓库 fork 到您的个人仓库,当然您可以使用其他的开源项目。

excalidraw 是 GitHub 上一款开源的手绘风格画板项目,开源热度很高。

GitHub 地址:https://github.com/excalidraw/excalidraw

版权许可:MIT License

第二步:创建应用并绑定源码仓库

创建部署应用,这里需要填写应用名、HTTP 监听端口、请求超时时间这几个配置项,其他配置项采用默认值即可。

  • HTTP 监听端口号,即在线应用对外提供 web 服务的端口号,用于 HTTP 流量全托管场景下的请求转发,这里配置 HTTP 监听端口为 3000(excalidraw 项目中默认使用的端口);
  • 请求超时时间,excalidraw 服务初始化启动时,需要耗费一定的时间,因此配置为 60 秒。

图片

绑定源码仓库,选定部署方式为“从源码仓库持续部署”,而后配置绑定具体的仓库和分支即可。

  • 构建类型配置为“系统自动检测并构建镜像”——无需 Dockerfile;
  • 启动命令,配置启动 excalidraw 服务的命令;
cd ./excalidraw-app && vite --host
  • 配置完成后,选择“跳过高级设置,创建应用”,触发应用创建和应用版本的构建部署。

图片

在这里,可以对 SAE 源码部署的能力,有一个全局性的了解:

  • 仓库类型,支持多种类型的 Git 源,包括 GitHub、Gitee、公网 Gitlab、Codeup;
  • 构建类型,支持基于 Dockerfile 的镜像构建方式,同时支持系统自动检测编译的方式,无需提供 Dockerfile,完全由 SAE 自动检测自动编译,最终自动构建打包成镜像;
  • 触发模式,可满足多样的持续部署需求;
  • 镜像仓库,SAE 默认提供镜像的仓库存储能力,不强要求开通 ACR,当然也支持推送镜像到个人 ACR;
  • 启动命令和工作目录,主要为满足个性化的构建要求,同时更多的可拓展可自定义配置的能力陆续研发中,尽请期待。

可视化流程

在应用版本的构建部署过程中,在具体的构建记录中可以查阅所有的环节,包括各个环节的日志和耗时,全流程可观测。构建部署成功后,会生成一个应用的新版本。此时,手动在版本列表-流量配置中,将流量全切换至新版本即可。

图片

测试验证

流量配置完成后,可以直接通过 SAE 默认提供的测试域名,直接访问应用,方便进行快速验证和调试。至此,应用上线完毕,后续可以利用 SAE 提供的持续部署能力,进行迭代。

图片

代码安全,源码即资产

SAE 通过完全隔离和用完即销毁的运行时环境,保证用户的代码安全。

在每一次构建的生命周期中,资源上,运行时环境之间是完全相互独立的,网络上,运行环境之间是完全互相隔离且安全的;Serverless 的构建环境,每一次构建都是从零拉起一个完整的构建环境,用完即毁,达到真正的一次性;源码仅初始化环境时被拉取一次,构建完成后,随着构建环境一起被销毁,期间不留任何痕迹。

云端构建部署,性能与体验

在性能方面,为了保证云端构建耗时能与本地相近,带来最好的云端体验。SAE 不仅对运行时环境的快速拉起做了很多优化,同时还综合分析了每一类编程语言在编译时的不同表现和特征,包括编译型语言和解释型语言,设计实现了一套多级缓存的机制,用于加速项目编译构建时获取外部依赖资源的速度。

  • 运行时优化 + 镜像缓存,实现运行环境的迅速拉起,冷启动耗时 3S 内;
  • 高频依赖或资源直接存在运行时环境的镜像中,可直接本地加载,进行复用;
  • 多样化的、中等频度的依赖或资源,以 OSS 作为缓存媒介,高速拉取,无需走外网;
  • 个性化的、低频的依赖或资源,以镜像作为缓存媒介,第一次拉取的时候需走外网,会存在冷拉取的现象。但是二次构建可以直接从缓存中拉取,进行资源复用,无需再走外网,实现加速。

图片

SAE 2.0 能力升级回顾

弹性能力升级: 弹性效率优化到百毫秒级,支持缩容到 0。并提供闲置计费能力,无请求时 CPU 不计费,弹后更省。

开发者体验升级: 零改造迁移,秒级创建应用,一键灰度。提供 S2A 等丰富的平台工程能力,研发提效。

适用场景升级: 除支持开源微服务 /XXL -job、ElasticJob、Spring Task 等无缝迁移外,新增支持 Web 应用类型,从实例托管到流量托管。

图片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/14334.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

运行时异常和编译时异常的区别

Java中的异常被分为两大类:编译时异常和运行时异常。 都是RuntimeException类及其子类异常,如NullPointerException、IndexOutOfBoundsException。这些异常是不检查异常,运行时异常的特点是Java编译器不会检查它,程序中可以选择捕…

纯代码如何实现WordPress搜索包含评论内容?

WordPress自带的搜索默认情况下是不包含评论内容的,不过有些WordPress网站评论内容比较多,而且也比较有用,所以想要让用户在搜索时也能够同时搜索到评论内容,那么应该怎么做呢? 网络上很多教程都是推荐安装SearchWP插…

Spring Web MVC介绍及详细教程

目录 1.什么是Spring Web MVC? 1.1 MVC定义 1.2 Spring MVC与MVC关系 2.为什么要学习Spring MVC 3.项目创建 4.Spring MVC连接 4.1 RequestMapping 4.2 PostMapping和GetMapping 5.Spring MVC参数获取 5.1 获取单个参数 5.2 获取多个参数 5.3 获取普通对…

通用代码生成器应用场景一,项目前期

通用代码生成器是一种自动化编程软件,是一种先进的编译系统。它具有表级抽象。把系统抽象为域对象,枚举,弹性登录模块,复杂版面和图形报表。使用通用代码生成器完成项目前期,比直接使用对应的高级语言快的多&#xff0…

element Notification 消息过多需要折叠

Notification 消息过多太长 希望能折叠 如图下效果 element-plus 可以将dom 插入到具体的元素 结合css :nth-child 来控制样式达到效果 element dom 只能插入到body中 所以无法使用:nth-child 1.Notification需要消息提示时设置class let eleNum 0 // 弹窗的序号 function…

vue+canvas实现逐字手写效果

在pc端进行逐字手写的功能。用户可以在一个 inputCanvas 上书写单个字&#xff0c;然后在特定时间后将这个字添加到 outputCanvas 上&#xff0c;形成一个逐字的手写效果。用户还可以保存整幅图像或者撤销上一个添加的字。 <template><div class"container"…

小红书-社区搜索部 (NLP、CV算法实习生) 一面面经

&#x1f604; 整个流程按如下问题展开&#xff0c;用时60min左右面试官人挺好&#xff0c;前半部分问问题&#xff0c;后半部分coding一道题。 各位有什么问题可以直接评论区留言&#xff0c;24小时内必回信息&#xff0c;放心~ 文章目录 1、自我介绍2、介绍下项目&#xff…

淄博公司商标驳回复审条件及流程

商标是人工审查的&#xff0c;所以不同的人会有不同的想法和意见&#xff0c;导致同一案件的审查结果不同。特别是商标审查周期缩短到5个月&#xff0c;全国平均每个工作日有1万多个商标提交申请&#xff0c;而全国只有一个商标审查单位——国家商标局提交申请。这种情况下&…

Java版工程行业管理系统-提升工程项目的综合管理能力

工程项目管理涉及众多环节和角色&#xff0c;如何实现高效协同和信息共享是关键。本文将介绍一个采用先进技术框架的Java版工程项目管理系统&#xff0c;该系统支持前后端分离&#xff0c;功能全面&#xff0c;可满足不同角色的需求。从项目进度图表到施工地图&#xff0c;再到…

C++_vector操作使用

文章目录 &#x1f680;1.1 vector介绍&#x1f680;1.2 vector的初始化&#x1f680;1.3 vector的常用内置函数&#x1f680;1.4 vector的遍历 &#x1f680;1.1 vector介绍 vector是表示可变大小数组的序列容器。就像数组一样&#xff0c;vector也采用的连续存储空间来存储元…

MySQL主从复制(docker搭建)

文章目录 1.MySQL主从复制配置1.主服务器配置1.拉取mysql5.7的镜像2.启动一个主mysql&#xff0c;进行端口映射和目录挂载3.进入/mysql5.7/mysql-master/conf中创建my.cnf并写入主mysql配置1.进入目录2.执行命令写入配置 4.重启mysql容器&#xff0c;使配置生效5.进入主mysql&a…

2024年电工杯高校数学建模竞赛(B题) 建模解析| 大学生平衡膳食食谱的优化设计 |小鹿学长带队指引全代码文章与思路

我是鹿鹿学长&#xff0c;就读于上海交通大学&#xff0c;截至目前已经帮200人完成了建模与思路的构建的处理了&#xff5e; 本篇文章是鹿鹿学长经过深度思考&#xff0c;独辟蹊径&#xff0c;实现综合建模。独创复杂系统视角&#xff0c;帮助你解决电工杯的难关呀。 本题&…

面试八股之MySQL篇5——主从同步原理篇

&#x1f308;hello&#xff0c;你好鸭&#xff0c;我是Ethan&#xff0c;一名不断学习的码农&#xff0c;很高兴你能来阅读。 ✔️目前博客主要更新Java系列、项目案例、计算机必学四件套等。 &#x1f3c3;人生之义&#xff0c;在于追求&#xff0c;不在成败&#xff0c;勤通…

IP地址的风险画像及其应用

在现代互联网环境中&#xff0c;IP地址不仅是设备在网络中的唯一标识符&#xff0c;还是分析网络安全和风险管理的重要工具。IP地址的风险画像通过分析IP地址的行为和相关数据&#xff0c;揭示潜在的安全威胁&#xff0c;为企业和组织提供有效的风险管理方案。本文将探讨IP地址…

齐业成工程行业数字化预算费控方案:编制、执行、数据分析全过程闭环管理

工程建设企业具备项目周期长、业务复杂的特点&#xff0c;预算费控涉及内部管理、项目、客户、收支等&#xff0c;账目多、且难控。 在工程企业日常预算费控过程中存在着诸多挑战&#xff1a; • 数据核对难&#xff1a;涉及数据多&#xff0c;需多部门协同填写&#xff0c;需…

人工智能的阴暗面:犯罪分子如何利用 AI 进行欺诈

在当今数字化时代&#xff0c;人工智能&#xff08;AI&#xff09;正迅速成为推动各行各业生产力和创新的关键力量&#xff0c;而一些不法分子也开始探索如何将这些先进的工具用于他们自己的非法目的。从网络钓鱼到深度伪造&#xff0c;再到人肉搜索、越狱服务和身份验证系统的…

【动态维护树的直径】【HBCPC2023】I. Colorful Tree

题目 https://codeforces.com/gym/105139/problem/I 思路 其实相当于是分别求黑色点和白色点所构成的树的直径。 当两个连通块连在了一起&#xff0c;假设它们的直径是 ( u 1 , v 1 ) &#xff0c; ( u 2 , v 2 ) (u_1,v_1)&#xff0c;(u_2,v_2) (u1​,v1​)&#xff0c;(u…

一个开源的工具类轮子是怎么造出来的

心路历程 为什么要做 在22年9月的某一天&#xff0c;在公司开需求评审时&#xff0c;接到了一个给PDF、图片添加水印的需求。做为一个刚工作的CURD程序员&#xff0c;在遇到这些问题时&#xff0c;第一反应是去github上找找有没有类似的开源框架。但是&#xff0c;出乎我意料…

2024年 电工杯 (B题)大学生数学建模挑战赛 | 大学生平衡膳食食谱的优化设计 | 数学建模完整代码解析

DeepVisionary 每日深度学习前沿科技推送&顶会论文&数学建模与科技信息前沿资讯分享&#xff0c;与你一起了解前沿科技知识&#xff01; 本次DeepVisionary带来的是电工杯的详细解读&#xff1a; 完整内容可以在文章末尾全文免费领取&阅读&#xff01; 问题1&…

快手二面准备【面试准备】

快手二面准备【面试准备】 前言版权快手二面准备秋招一面中的问题实习一面中的问题计算机网络和操作系统论坛项目登录注册ThreadLocal代替session存储用户秒杀项目登录注册->阿里验证码->rpcsession为什么改为token实现&#xff0c;redis存储用户信息由binlog的用法->…