[站長開講] iThome #Serverless All-Star (上傳簡報及影片)



活動簡介

Serverless 已是近期廣為討論及應用的熱門架構模式,越來越多的企業導入它,降低運營成本,並用以簡設備的運維;更多開發團隊利用它,加快開發的速度及提升可維護性,將維運的重擔由服務商承擔,讓開發團隊能將大多數時間用於開發真正有價值的企業商業應用。

就像一隻強而有力的手臂在背後支撐著,並引領著未來的趨勢,iThome #Serverless All-Star 將聚焦在這個熱門的架構模式,邀請大大及社群們,從應用案例、深度技術議題探討,讓技術、應用及商務合作的催化之下,產生更多的化學效應,創造更多的變化。

公司想轉型?專案想更快速?  有在考慮 Serverless 但卻不知道如何下手? Serveless All-Star 是一場全明星的技術盛會,廣邀各大廠商,讓您在一天內了解趨勢現況,快速上手。 並透過案例應用、體驗實做、技術導覽,立即找到最適合您的工具和方法。



活動資訊




活動內容

大會議程講師陣容Workshop、站長議程「OpenFaaS - 快速打造你的 Serverless 平台」。






站長議程簡報檔




站長議程展示影片

下列為當天實際展示的錄影影片 (怕 Live Demo 完全出不來時,預先錄好的影片就可以派上用場了 😝)。

Demo01 - OpenFaaS on Docker Swarm

下列為這個展示影片的相關指令及操作步驟:
### Demo01 - OpenFaaS on Docker Swarm (https://labs.play-with-docker.com)
PWD > 5 Manager Node Docker Swarm
    /etc/os-release
    docker run -d -p 80:80 nginx
    netstat -tunpl Docker Swarm Port (2377, 4789, 7946)
    docker network ls (docker_gwbridge, ingress)
docker info
docker node ls
    docker node promote worker1/worker2

## Deploy OpenFaaS and Install FaaS-Cli
git clone https://github.com/openfaas/faas && \
cd faas && \
git checkout 0.7.1 && \
./deploy_stack.sh && \
curl -sL cli.openfaas.com | sh
    docker service ls
    Port 8080 API Gateway and OpenFaaS UI Portal
    Port 9090 Prometheus Endpoint (open-source systems monitoring and alerting toolkit)
    docker network ls //func_functions
    docker service ps func_faas-swarm
    docker stack ls
    docker stack ps func (func_*, Default 1 Replicas)



Demo02 - OpenFaaS on Kubernetes

下列為這個展示影片的相關指令及操作步驟:
### Demo02 - OpenFaaS on Kubernetes (https://labs.play-with-k8s.com/)
PWD > Add New Instalnce (Max 10)
## Initializes Cluster Master Node and vNetwork
kubeadm init --apiserver-advertise-address $(hostname -i)
kubectl apply -n kube-system -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 |tr -d '\n')"

## Install K8S Dashboard
curl -L -s https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml  | sed 's/targetPort: 8443/targetPort: 8443\n  type: LoadBalancer/' | kubectl apply -f -
kubectl create -f https://gist.githubusercontent.com/figaw/17dc8ed72c8d2fe1a12682beb9c1e57e/raw/e2c472cab2aa2ffb410999bcdbd158aa7617d9a3/service-account.yaml
kubectl get services kubernetes-dashboard -n kube-system

## Deploy OpenFaaS and Install FaaS-Cli
yum -y install git && \
git clone https://github.com/openfaas/faas-netes && \
cd faas-netes && \
kubectl apply -f ./namespaces.yml,./yaml
    kubectl get namespace
    Port 31112 API Gateway and OpenFaaS UI Portal
    Port 31119 Prometheus Endpoint (open-source systems monitoring and alerting toolkit)



Demo03 - Invoke Function

下列為這個展示影片的相關指令及操作步驟:
### Demo03 - Invoke function
## HTTP POST request
faas-cli list
curl -X POST http://localhost:8080/function/func_markdown -d '# Serverless All-Star'

## FaaS-CLI
faas-cli list
echo "# Serverless All-Star"| faas-cli invoke func_markdown

## OpenFaaS UI Portal
    ## func_markdown - # Serverless All-Star
    ## func_echoit - Serverless All-Star
    ## func_wordcount - Serverless All-Star
    ## func_nodeinfo - manager1
    ## func_hubstats - weithenn
    ## func_base64 - Serverless All-Star
    ## Prometheus



Demo04 - Auto-Scaling

下列為這個展示影片的相關指令及操作步驟:
### Demo04 - Auto-Scaling

## Manager1
for i in {1..5000}; do echo $i | faas-cli invoke func_base64; done

## Manager2
for i in {1..5000}; do curl -X POST http://127.0.0.1:8080/function/func_echoit -d "Serverless All-Star $i"; done

## Manager3
watch docker service ls

## Prometheus



Demo05 - Deploy Function from Store

下列為這個展示影片的相關指令及操作步驟:
### Demo05 - Deploy Function from Store/Manually

## OpenFaaS UI Portal - from Store
Deploy A New Function > QR Code Generator - Go > Deploy / Download > weithenn.org
Deploy A New Function > YouTube Video Downloader > Deploy / Download > https://www.youtube.com/watch?v=zLBdodQ6SMg

## FaaS-Cli - from Manually
git clone https://github.com/weithenn/figlet && \
cd figlet && \
docker stack deploy -c docker-compose.yml func && \
faas-cli list
echo "Serverless All-Star"| faas-cli invoke func_figlet
curl -X POST http://localhost:8080/function/func_figlet -d 'Serverless All-Star'

## OpenFaaS UI Portal - from Manually
weithenn/figlet
func_figlet
figlet
func_functions //OpenFaaS default vNetwork