写在前面:怎么修改这个项目

Step1. 修改functions/functions.go 文件,复制实例函数,修改为自己的函数

(注意!go采用命名方式来区分函数、变量的可见性,所以请确保函数名首字母是大写的)

Step2. 修改functions/functions_test.go文件,复制实例测试函数,修改为自己的测试函数

Step3. 修改main.go中func main函数体,打印自己编写的函数的返回值

Step4. commit并推送至远程仓库,CI/CD Pipeline自动触发

一、服务器硬件方案

我们的团队项目为FaaS平台,架构考虑采用微服务的方式进行组织。

所需要的服务器分为两类:

  1. 控制台、监控服务实例
  2. 计算实例

我们在Alpha阶段计划使用两台服务器对服务进行部署维护

控制台、监控服务实例

  • 地域:华北-北京四-可用区2
  • 计费方式:包年
  • CPU:2vCPU Arm64架构
  • 内存:4GiB
  • 带宽:1Mbit/s
  • 系统盘与数据盘:40GiB高IO通用型SSD
  • 操作系统:Ubuntu18.04 server 64bit with ARM

计算实例

  • 地域:华北-北京四-可用区2
  • 计费方式:包月
  • CPU:2vCPU x86_64架构
  • 内存:4GiB
  • 带宽:1Mbit/s
  • 系统盘与数据盘:40GiB高IO通用型SSD
  • 操作系统:Ubuntu 22.04 server 64bit

在Alpha阶段完成后,计划将计算实例修改为按需付费模式的相同配置服务器

二、团队沟通协作和代码管理方式

我们的团队沟通协作使用飞书来实现,主要看重其以下优势

  1. 文档内容丰富、共享编辑、交互评论便利
  2. 会议便捷,支持会议同时共享云文档
  3. 日程管理便捷,支持一键添加任务及日程

代码管理平台我们选用Gitlab实现,主要看重其以下优势

  1. 国内也能快速访问,无需进行其它科学配置
  2. 功能齐全,支持Group视图管理团队项目以及CI/CD流水线
  3. Community Edition完全够用,不需要额外付费

三、CI/CD实践

本次,我们使用一个打印小组成员学号的简单的go项目来进行CI/CD实践

(虽然直接推送到master分支很不专业,但是现在先这样吧)

项目目录

.
├── README.md # 简介
├── functions# 函数位置
│   ├── functions.go # 函数
│   └── funtions_test.go # go test 单测文件
├── go.mod # go module 配置文件
└── main.go # 主函数

CI/CD Pipeline 流程

.gitlab-ci.yml文件内容如下,修改自gitlab模板

stages:          # List of stages for jobs, and their order of execution
- build
- test
- deploybuild-job:       # This job runs in the build stage, which runs first.
stage: build
script:- echo "Compiling the code..."- go build *.go- echo "Compile complete."unit-test-job:   # This job runs in the test stage.
stage: test    # It only starts when the job in the build stage completes successfully.
script:- echo "Running unit tests... This will take about 60 seconds."- go test ./functions -coverdeploy-job:      # This job runs in the deploy stage.
stage: deploy  # It only runs when *both* jobs in the test stage complete successfully.
environment: production
script:- echo "Deploying application..."- go run *.go- echo "Application successfully deployed."

分为build/uni-test/deploy三个阶段,runner采用docker运行,基于镜像golang:1.20

最终触发列表

小组成员触发截图

@鲁文澔

@刘骁

@张峻源

@咸永飞

@杜品豪

@徐楚鸥

@孙靖懿

怎么取名都不队-DevOps相关推荐

  1. 什么是DevOps?为大家都在用DevOps

    摘要:什么是DevOps?为大家都在用DevOps,随着市场竞争的加剧,对企业的软件交付速度提出了更高的要求.像大家熟悉的大厂也不例外,落地DevOps.实现高效交付成为了企业共同的追求. 现阶段企业 ...

  2. 都在用DevOps,linux基础命令要是还没掌握就out了

    前言 最近公司在大力推广DevOps开发运维一体化,作为一名开发人员,不熟悉linux怎么做运维呢,我们虽然是开发,但是基本的linux命令还是要懂得一点的,文章中命令给开发人员部署上线绝对是没问题的 ...

  3. 为什么大厂都用DevOps呢?我来告诉你

    目前很多大厂如阿里.腾讯.百度.头条.滴滴.美团等公司内部都在做DevOps,那么 DevOps是什么 ? 为什么大厂都对其趋之若鹜 ? DevOps到底应该怎么做 ?刚好我也负责我们公司的DevOp ...

  4. DevOps的这些经典著作,你都看过了吗?

    2019独角兽企业重金招聘Python工程师标准>>> 2017年DevOpsDays首度来华,继3月北京站之后,本月18日又在上海成功举办,DevOps智能运维在国内的影响变得越来 ...

  5. 华为精益敏捷专家:DevOps转型中的那些坑

    陈军–原腾讯高级项目经理.华为精益敏捷专家 DevOps是现在非常流行的一个词,很多人都在提DevOps,在往那个方向去转,但转的时候坑特别多. 现实是很理想的,大家都觉得做了DevOps之后就会非常 ...

  6. [DevOps] 认识一下

    大家都在说DevOps(Develop Operation),大概知道就是开发和运维沟通交流,一条线,然后使产品能够顺利的.短时间内上线.维稳什么的. 今天特意看了下 DockOne里面的一篇文章,再 ...

  7. “安全即代码”:整合安全团队和DevOps团队

    随着云计算开发和部署变得越来越快且越来越灵活,安全团队意识到,保护云应用和系统部署的唯一有效方法是开发可整合到部署管道的安全控制,以及尽可能自动化.安全社区很多人将这种方法称为安全即代码,这是采用基础 ...

  8. 终于明白了 DevOps 与 SRE 的区别!

    原文链接:https://www.javacodegeeks.com/2018/07/devops-vs-sre-difference.html DevOps和SRE似乎是同一枚硬币的两个面.他们都旨 ...

  9. 到底该如何理解DevOps这个词

    炒了8年的概念,到底该如何理解DevOps这个词? 转载本文需注明出处:EAII企业架构创新研究院,违者必究.如需加入微信群参与微课堂.架构设计与讨论直播请直接回复公众号:"EAII企业架构 ...

最新文章

  1. 股票交易应用系统的性能分析工具介绍(一)
  2. 北大博士的论文发表经验:快写、细改、慢投
  3. jQuery实现一个优雅的返回顶部
  4. python什么是数据结构_python算法与数据结构-数据结构介绍(38)
  5. 如何使用CSS为文本或图像提供透明背景?
  6. Sino Global Capital CEO:Robinhood暂停GME股票交易凸显了DeFi的重要性
  7. 设计模式学习之---Facade(外观)模式
  8. python控制台动画,如何使用Python 3.x在控制台应用程序中创建ASCII动画?
  9. 12-Python3 元组
  10. 阶段5 3.微服务项目【学成在线】_day04 页面静态化_02-freemarker介绍
  11. java运行环境安装及配置教程
  12. html5拖放详解,HTML5拖拽/拖放(drag drop)详解
  13. Aptana Studio3汉化方式
  14. //我一次黑别人的电脑时的技术经过!
  15. 华为服务器进入系统怎么退出安全模式,华为手机安全模式怎么解除 华为手机安全模式解除办法...
  16. docker images 导入导出
  17. [转]《Python编程金典》读书笔记
  18. vux组件的cell组件上下箭头图标显示问题,cell必须放在groud内才会显示
  19. jsp分页技术用oracle实现,Oracle Rownum的使用与JSP分页显示的实现
  20. det曲线_Winform中设置ZedGraph的曲线符号Symbol以及对应关系

热门文章

  1. 扩展系统功能——装饰模式(四):透明与半透明装饰模式,装饰模式注意事项,装饰模式总结
  2. Mysql学习总结十二:系统变量、用户变量、定义条件和处理程序
  3. 嵌入式操作系统判断题
  4. 【stm32f407】时钟树以及SystemInit剖析
  5. 微信小程序页面竖向滚动逻辑
  6. 图片裁剪为特定形状 ppt
  7. tableFooterView中的按钮点击没反应
  8. 策略模式与工厂模式的区别
  9. JAVA的内存回收机制(快速入门版)
  10. mysql触发器优缺点_MySQL 的触发器