Server Less 我的第一个简单的实例。
前言
Serverless 适用场景:
-
1 运算密集 —— 如图片压缩、数据分析。因为使用 Serverless 方案同一秒里可以运行千上万个 Lambda,能轻易实现传统架构无法实现的超强处理能力,并且只在使用时收费。
-
2 为其它服务提供编程支持 —— 例如,当 AWS DynamoDB 数据发生变化时,调用 AWS Lambda 生成 PDF 报表。再如,为 AWS API Gateway 提供自定义权限验证脚本。
-
3 定时任务 —— 以往使用 cron 编写的定时任务可以改用 AWS Lambda 实现,很明显的好处是任务不执行的时候完全不收费。
-
4 瘦容器 —— 因为 AWS Lambda 本身基于 Docker 容器实现,Lambda 方法跑在 Amazon Linux AMI 中,虽然官方支持的编程语言只有 NodeJS、Java、Python,但其实可以用 NodeJS 的 shim 运行大部分能在 Linux 下运行的程序。以至于有人用这个特性做了 LambCI 这种脑洞大开的 Serverless CI 服务。
-
5 无人运维 —— Serverless 的核心优势就是不需要管理服务器,自伸缩的特性如果用传统方案解决会相对复杂很多。如果你需要一个服务为你跑好几年,期间完全不需要担心它的服务器运行情况,Serverless 会是最好的选择。
quick start [fnproject]
- Docker ,fn cli ,nodejs
* 用到以下两个工具 https://github.com/fnproject/fn https://github.com/fnproject/ui * brew install fn # 安装fn command命令行 * 执行fn start 启动 FN_Server ![](/static/demos/574abd7a-5de7-4de3-ba11-84517eb23074.png) * 请求 ![](/static/demos/9b1eb8af-ccb5-415e-bc77-89e72c2dc05d.png) * 请求实例 ![](/static/demos/b8491fa5-4bd1-48ff-ac51-2151a096406a.png) * coder ![](/static/demos/25648265-1603-4516-bab5-21e95b3c47d2.png) * yaml 配置 ![](/static/demos/54eae79d-7c0b-422c-966f-3701f1dc40f2.png) * deploy hello ![](/static/demos/f4c7ebb2-3674-49b5-9848-9f16d4390a73.png)
kubeless [整理中]
- kubeless function1.yaml
```yaml
apiVersion: k8s.io/v1 kind: Function metadata: name: function1 spec: handler: hello.foobar image: registry.timeondata.com/firsh_demo/kubeless_runtime_python:2.7.1 runtime: python2.7 deps: | cowpy function: | import time import random from cowpy import cow def foobar(): # NB: delay will be negative and sleep will raise an error # occasionally. This is a feature for demoing errors. delay = random.normalvariate(0.3, 0.2) time.sleep(delay) msg = "hello world - with a %0.2fs artificial delay" % delay c = cow.get_cow() return c().milk(msg) ```
- 启动
```bash ➜ python git:(master) ✗ kubectl create -f function1.yaml
```
- 检查启动
# 检查启动
➜ python git:(master) ✗ kubeless function ls
NAME NAMESPACE HANDLER RUNTIME TYPE TOPIC DEPENDENCIES STATUS
function1 default hello.foobar python2.7 cowpy 1/1 READY
- 测试调用
kubeless function call function1
- 结果
➜ python git:(master) ✗ kubeless function call function1
_____________________________________________
< hello world - with a 0.42s artificial delay >
---------------------------------------------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
转载请注明出处,本文采用 CC4.0 协议授权