Serverless OpenFaas

原理

技术简介

OpenFaaS是golang编写的一个使用Docker和Kubernetes构建的serveless框架
和Fnproject 有点像,只是 Openfaas 并不是直接抓取容器的标准输出,而是写一个 Function Watchdog 作为容器的启动进程,暴露 http 服务,用于和调度系统交互,然后直接调用进程运行 Function 获取输出。

在这里插入图片描述

Prometheus:监控系统报警框架
watchdog:https://news.ycombinator.com/item?id=15116834
Swarm:提供 Docker 容器集群服务

架构

在这里插入图片描述
当Gateway作为一个入口,当CLI或者web页面发来要部署或者调用一个函数的时候,Gateway会将请求转发给Provider,同时会将监控指标发给Prometheus。AlterManager会根据需求,调用API自动伸缩函数。

结构分析
  • 基本的安全验证
  • 和函数相关的代理转发
    • 同步函数
      • 列出函数
      • 部署函数
      • 删除函数
      • 更新函数
  • 异步函数
  • Prometheus的监控
  • ui
  • 自动伸缩
    • 根据每秒请求数来做伸缩
    • 最小/最大副本数 通过向函数添加标签, 可以在部署时设置最小 (初始) 和最大副本数。
    • 通过内存和CPU的使用量。

性能

社区活跃度
Dec 18, 2016 – Dec 27, 2018

https://kenfdev.o6s.io/github-stats-page#/
在这里插入图片描述
1.社区活动

开发工作量平均每周大约5个commits

2.社区规模

github核心开发人员3名

3.社区表现

issues的平均close周期比较长

5.社区多样性
Pony factor:1

性能表现
环境

非生产环境

Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                2
On-line CPU(s) list:   0,1
Thread(s) per core:    1
Core(s) per socket:    1
Socket(s):             2
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 42
Model name:            Intel Xeon E312xx (Sandy Bridge)
Stepping:              1
CPU MHz:               1999.999
BogoMIPS:              3999.99
Hypervisor vendor:     KVM
Virtualization type:   full
L1d cache:             32K
L1i cache:             32K
L2 cache:              4096K
NUMA node0 CPU(s):     0,1
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
对象

http://192.168.44.204:8080/function/figlet 0.016
http://192.168.44.204:8080/function/nodeinfo 0.2
http://192.168.44.204:8080/function/echoit 0.02

数据

单任务
在这里插入图片描述

#!/bin/bash
rm -rf ab.log  
for i in $(cat url.txt)
do
    if [ "$1" == "" ]
    then 
        echo "is empty" 
    elif [[ "$2" == "" ]]
    then
        if [ "$3" == "" ]
        then
            Echo "c = $1,no t,no n"
            ab -c $1 $i >> ab.log &
            continue
        else
            Echo "c = $1,no t,n = $3 "
            ab -t $2 -n $3 $i >> ab.log &
            continue
        fi

    elif [[ "$3" == "" ]]
    then
        Echo "c = $1,t = $2 ,no n"
        ab -c $1 -t $2 $i >> ab.log &
        continue
    else
        Echo "c = $1,t = $2 ,n = $3 "
        ab  -c $1 -t $2 -n $3 $i >> ab.log &
        continue
    fi
done

在这里插入图片描述
多函数
Figlet/nodeino/echoit
http://192.168.44.204:8080/function/figlet
http://192.168.44.204:8080/function/nodeinfo

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值