要不要来试试使用OpenFaaS轻松开启无服务器架构?

对于不想阅读太长的人

有一个OpenFaaS的日本语版本的研讨会。即使是初学者,也可以使用最新的无服务器架构在GitHub上为Bot创建OpenFaaS,并亲自体验OpenFaaS的使用感。请务必尝试一下。

简而言之

你有听说过OpenFaaS吗?如果你一直在关注容器领域的信息,可能会稍微听说过。

OpenFaaS是一个使用容器技术实现FaaS(函数即服务)的框架。虽然这样说可能比较抽象,所以大致来说,它可以被理解为一个”使用Docker实现类似AWS的API Gateway和Lambda”的框架。

“为什么要特意用容器做,不用Lambda就可以了吧?”

这个问题我经常听到,并且从某种角度来看,我可以理解这个疑问(甚至可以说是正确的)。

我认为对于“为什么要使用OpenFaaS?”这个问题有很多种答案,但我在其中特别认为“这里好”的点有以下几个:

    • (厳密にはDockerじゃなくてもいいけど)DockerがあればノートPCでもすぐに始められる

 

    • ノートPCで開発したものは、違うクラスタ上でもそのまま動く(環境にほとんど依存しない)

 

    • プライベートネットワークでも問題なく動く(クラウド側に依存が無い。オンプレでもOK)

 

    • 軽量でRaspberryPiでも動く

 

    • 複数Orchestratorで動く(Kubernetes, Swarm, Nomad, ECSなど)

 

    • 仕組みはいたって簡単で、専用のSDKを使う必要もない

 

    • Developer Experienceを大事にしている(開発者が気持ちよく使える)

 

    • Production事例がちょくちょく増えてきている

 

    コミュニティが活発(GitHubもSlackも)

等等。

云供应商的解决方案非常简单,而且很低成本(有时甚至免费),但由于在开始之前需要繁琐的注册手续,有些人可能会感到麻烦,即使是免费的,也会对注册信用卡感到犹豫。由于人们在不同的情况下面临各种各样的困境,所以我认为OpenFaaS是一种可以轻松开始并进行扩展的服务,在这方面应该存在着一定的需求。

我认为,对于了解OpenFaaS来说,最容易入手的方式是参加日语版的工作坊。这个工作坊分为10个实验室,你可以亲身体验OpenFaaS的能力。

我希望能够在这个工作坊中介绍一下我们将要做什么。

开放式函数即服务工作坊

实验1 – 准备OpenFaaS

首先,我们要做一些准备工作来开始使用OpenFaaS。虽然OpenFaaS可以在各种编排器上运行,但在这个研讨会中,我们将使用Swarm,因此需要准备Swarm集群。一旦集群准备好了,我们就可以快速部署OpenFaaS。

image.png

实验2 – 尝试使用OpenFaaS

在OpenFaaS准备好之后,我们立即在实验2中尝试使用OpenFaaS。OpenFaaS提供了一个简单的用户界面,可以轻松进行试用。我们可以使用它来快速部署函数并试用一下。同时,我们还可以尝试使用Grafana+Prometheus来实现一种炫酷的监控方式。

image.png

实验三 – 第一次的函数

在Playground的试用结束后,现在我们终于可以自己动手创建function了。在Lab3中,我们将从头开始创建实际的function。

image.png

Lab4 – 再深入探索一下function

既然我们已经理解了如何构建函数,那么让我们更深入地探究一下吧。在实验室4中,我们将:

    • function内で使う設定値はどうするべきか?

 

    • functionのログはどうすればいいの?

 

    functionを連鎖させたい場合はどうするの?

我将回答这个问题。

实验五 – 尝试创建GitHub的机器人

在掌握了基本的使用方法后,现在我们将利用之前所学的知识来创建一个GitHub的机器人。我们将制作一个相当实用的机器人。

image.png

实验6 – 尝试创建一个动态Web页面

有时候我们想要从函数中传送动态的Web页面。让我们来看看在Lab6中如何实现这个功能。

image.png
    1. 调用HTML函数

 

    1. 获取HTML页面

 

    1. 从HTML 页面中调用函数

 

    将返回的结果反映到HTML 中

实验7 – 尝试使用function进行异步调用

在Lab7中,您可以异步调用函数。对于函数,您只需发送一个请求“よろしく!”然后学习如何以异步方式处理。

image.png

实验8 – 函数的超时

在OpenFaaS中,我们可以自行决定函数的超时时间。是的,不是由提供者来限制,而是我们自己来决定。让我们在Lab8中学习有关超时的类型。

image.png

参考:https://blog.cloudflare.com/the-complete-guide-to-golang-net-http-timeouts/

实验室9 – 函数的自动缩放

当出现忙碌的函数时,自动扩展是一种分散负载的方法。在OpenFaaS中,默认情况下,Prometheus会监视函数的负载,并触发自动扩展功能。让我们尝试施加压力并观察自动扩展的效果。

image.png

实验室10 – Secret的使用方法

将API密钥暴露在外是危险的。与其通过注入到环境变量中,并暴露给所有人,不如采取使用Secret机制来保护机密信息的方式更安全。让我们在Lab10中学习如何在函数中使用Secret。

image.png

总结

谢谢您读到这里。参加这个工作坊不仅能学到无服务器架构,也会对您的学习有所帮助。如果您觉得有趣的话,欢迎再次使用!同时,不妨进一步为OpenFaaS做出贡献,迈出更大的一步吧!

广告
将在 10 秒后关闭
bannerAds