为什么要迁移?我们的业务有很多对外提供服务的RESTfulAPI,我们需要完成很多不同的任务,比如将链上ERP中的产品信息同步到美团/饿了么等平台,在线开票等。由于各种API的不确定性和任务执行,服务经常会因为资源不足而无法使用,而盲目扩容又要花很多钱。整个团队每天都陷在不断扩张和收缩中。关键是有时候稍微慢一点,就会影响业务,导致投诉。每天都在督促其他业务部门做新的职能。更难的是我们没有运维经验。作为初创公司的研发团队,我们资源少,人少,经验少。面对稳定、安全和业务的压力,真的很痛苦。被函数计算的前同事安抚后,觉得非常好用!迁移过程非常顺利,迁移效果远超我的预期。以下是我认为函数计算非常适合我们的原因:默认的弹性可以轻松应对大量的API请求和任务,不会出现因扩容不及时导致资源耗尽导致的业务不可用!没有流量时,支持收缩为0,省钱神器,再也不用买虚拟机和负载均衡了。对我们来说,降低成本的效果是很大的!免运维,省去了虚拟机的运维成本!更安全,不能SSH登录,也不会像虚拟机一样一直开着,等着被扫描被黑!无需修改,无需修改代码,之前虚拟机上的JAR包可以直接在函数计算上运行!可以通过三种方式使用迁移步骤。这里我就具体说一下如何在控制台上操作。使用函数计算控制台迁移。使用函数计算提供的S工具,通过命令行+YAML进行部署,详见1[1]。使用函数计算控制台的应用中心,从GitHub等源码仓库自动构建和部署。CICD/GitOps直接可用,太香了!详见文章末尾2[2]1。打开函数计算访问控制台[3],点击“免费注册”跳转到激活页面。2.创建服务,点击“服务和功能”,“创建服务”,输入“名称”,点击“确定”。3.压缩JAR包得到ZIP文件注意!!!这里需要将打包好的JAR包进行压缩,然后上传ZIP包!!!注意:其实也可以直接上传jar包,但是启动命令要写成javaorg.springframework.boot.loader.JarLauncher。我个人不喜欢这种写作方式。我还是喜欢java-jargs-rest-service-0.1.0.jar的写法。如果没有可用的JAR包,请参考SpringBoot官方快速入门文档[4]进行构建。4、创建函数在“函数管理”页面,点击“创建函数”,选择“使用自定义运行时顺利迁移Web服务器”,“运行环境”选择你需要的Java版本,选择“通过ZIP包上传代码”其中“启动命令”是在虚拟机上启动jar包的命令,例如:java-jarrest-service-initial-0.0.1-SNAPSHOT.jar.zip“监听端口”是你的JAVA所连接的端口程序在虚拟机上监听,例如:8080“RequestHandlerType”选择“HandlingHTTPRequest”,点击“Create”5.测试功能,在功能详情页的触发列表中找到“公网访问地址”.注意:由于相关规定,该网址不能直接在浏览器中打开,需要在浏览器中配置自己的域名才能访问,可以用curl命令测试,也可以直接通过功能详情页面的“测试功能”选项卡。6、使用自己的域名接入功能点击“首页”、“域名管理”、“创建域名”、“添加自定义域名”复制页面中的“公网CNAME”,在阿里巴巴上设置云解析DNS控制台【6】为你的域名添加CNAME记录,在路由配置中选择你刚刚搭建的服务和功能,点击“创建”完成!现在您可以通过您自己的域名访问该服务了!7.更高级文档配置NAS文件系统:https://help.aliyun.com/document_detail/87401.html配置HTTPS:https://help.aliyun.com/document_detail/90763.html授权功能访问其他服务:https://help.aliyun.com/document_detail/181589.html访问VPC中的资源:https://help.aliyun.com/document_detail/72959.html访问RDS数据库:https://help.aliyun.com/document_detail/84514.html访问Redis缓存:https://help.aliyun.com/document_detail/148798.html更多快速入门文档:https://fcnext。console.aliyun.com/overview迁移后的效果面对流量高峰,我们不再手忙脚乱,函数计算会自动为我们扩容!解决了我们的API场景,时不时执行各种任务的场景。对于我们这些不懂Docker,不懂Kubernetes,没有运维人员,虚拟机扩缩容困难的小团队来说,真的是一个很大的福利。同时,我们再也不需要购买虚拟机和负载均衡器了!缩小到0,按量付费的方式也大大降低了我们的成本!总的来说,就两个字!闻起来真香!
