誰でもすぐに試せる初心者向けFIWARE学習コンテンツを作成した話

# 作成したFIWARE学習コンテンツ

※ 2023/1/18： Katacodaが現在はサービス終了してしまったので現在はGithub codespacesの利用を前提としたFIWARE学習コンテンツを公開しております。
Github codespaces FIWARE学習コンテンツhttps://github.com/c-3lab/fiware-learning-handson


<del>Katacodaのアカウント登録をすれば誰でもすぐに試せるのでぜひ使ってみてください。
https://www.katacoda.com/c3lab/courses/fiwarebasic</del>

<del>現在は基礎編として[KatacodaのPart1~Part5](https://www.katacoda.com/c3lab/courses/fiwarebasic)に加え、自由なFIWAREの動作検証環境として[FIWARE Orion Playground](https://www.katacoda.com/c3lab/courses/fiwarebasic/fiware-orion-playground)を公開しております。</del>

# 背景
FIWAREというスマートシティやIoTプラットフォームという文脈で利用されるオープンソースソフトウェアがあります。
キーワードだけ聞くと気軽に試すには少しヘビーなイメージを受けます。また、オープンソースで誰でも試すことができるとは言え、普段からそのようなものを触れていない人からすると環境の準備のハードルがあり尻込みしてしまいます。FIWAREの概要を掴み技術の見極めを行いたい人は必ずしもオープンソースに馴染みのあるエンジニアとは限りません。
そこでFIWAREへの入門として、誰でもすぐに試すことが可能なFIWAREの学習コンテンツを作成することにしました。


# やったこと

今回は[Katacoda](https://katacoda.com/)というサービスを活用しました。

https://katacoda.com/

[Katacoda](https://katacoda.com/)は資料とクラウド環境が同時に提供されるサービスです。
以下のように左側に資料が表示され、それを見ながら右側のターミナルで実行して試すことができます。
![スクリーンショット 2021-09-26 22.28.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/46662/d7b9903f-db70-2def-cdd0-0cf165fae9ea.png)



### コンテンツ作成

[Katacoda](https://katacoda.com/)はmarkdown形式でコンテンツ内容の記述、jsonで様々な設定を行いGitHubにpushすることでページへ反映することができます。

Katacodaにはcliがあり、npmからインストールすることができます。

```
$ npm install -g katacoda-cli
```

Katacodaの構成は以下のようになります。
複数のscenarioをcourseという単位でまとめるような構成になります。
katacoda-cliによって以下のディレクトリの生成や設定ファイルの生成がサポートされます。

```
course1
 |
 | - scenario1
       |
       | - intro.md
       | - step1.md
       | - finish.md
 | - scenario2
 | - scenario3
       ・
　　　　　　　　　　　　　　・
　　　　　　　　　　　　　　・
 | - scenario4

```

具体的な利用方法は以下の記事が日本語で解説されています。参考にさせていただきました。

https://qiita.com/comefigo/items/53574476a2c9bec77a4c

以下のリポジトリに今回作成した本コンテンツのコードがあります。

https://github.com/c-3lab/katacoda-scenarios

### 作成したシナリオ

#### Part1 FIWARE Orion起動
FIWAREの数あるコンポーネントの中でも重要な役割を担っているFIWARE Orionの起動方法を学習します。

https://www.katacoda.com/c3lab/courses/fiwarebasic/fiware-part1

#### Part2 FIWARE Orionにおけるデータの操作

FIWARE Orionにおけるデータの操作およびAPIおよびデータ形式を学習します

https://www.katacoda.com/c3lab/courses/fiwarebasic/fiware-part2

#### Part3 FIWARE Orionによる他システムへの通知

FIWARE OrionのSubscription機能について学習します

https://www.katacoda.com/c3lab/courses/fiwarebasic/fiware-part3

#### Part4 FIWARE Cygnusによる履歴データの作成

FIWARE Cygnusを使った履歴データ作成について学習します

https://www.katacoda.com/c3lab/courses/fiwarebasic/fiware-part4

#### Part5 FIWARE-ServiceとFIWARE-ServicePath

FIWARE におけるマルチてナンシーおよびスコープについて学習します

https://www.katacoda.com/c3lab/courses/fiwarebasic/fiware-part5

#### FIWARE Orion Playground

自由にOrionを利用しNGSIの学習などに活用するPlaygroundです。自動でFIWARE環境(Orion + Cygnus)が立ち上がるので動作検証など自由に使うことができる環境です。

https://www.katacoda.com/c3lab/courses/fiwarebasic/fiware-orion-playground

# コンテンツの活用

本コンテンツを使ってFIWAREハンズオンを行いました。
ハンズオンでは[KatacodaのPart1~Part5](https://www.katacoda.com/c3lab/courses/fiwarebasic)に加えて[FIWARE Orion Playground(FIWAREの学習用環境)](https://www.katacoda.com/c3lab/courses/fiwarebasic/fiware-orion-playground)を活用した演習問題を実施しました。
https://www.katacoda.com/c3lab/courses/fiwarebasic

参加者の技術レベルには若干のばらつきはありましたが、以下の理由からスムーズに進めることができました。

* Katacodaが提供する環境により、参加者のPC環境の差異が無く余計なところで躓かない
* Katacodaの資料を見ながら手を動かせるためスムーズに手順を実行できる
* 講師側がKatacodaの画面をZoomで共有することで説明している場所と実行状況の同期がとりやすい

また、序盤の演習問題で上手くできなかった参加者が、後半の演習問題では理解度が向上し躓かず解答できるようになるようなこともあり、本コンテンツの実効性を感じることができました。



# まとめ
誰でもすぐに試せるFIWAREの学習コンテンツを作成しました。
FIWAREを実際に利活用していくには本コンテンツの知見以外にもインフラやアプリケーションの知識が必要となってきますが、技術の見極めや入門としては本コンテンツでも十分担うことができると考えています。

ぜひ、FIWAREというキーワードを聞いて気になっていた方は本コンテンツを利用してみてください。FIWAREにおける理解の手助けになれば幸いです。

---
FIWAREに関する情報交換をC3Labというコミュニティで行なっております。以下のSlackでコミュニケーションを行なっておりますので、興味がある方はぜひ参加してみてください。
[C3Lab Slack](https://join.slack.com/t/c3lab-hq/shared_invite/zt-v6zz66n9-1VYkVXC4zoQViWSMdzMTLg)

C3Labにおける勉強会などの取り組みは以下のnoteで紹介していく予定です。
https://note.com/c3lab/