東京工科大学 コンピュータサイエンス学部 BLOG

東京工科大学
  • 3/26にオープンキャンパスを開催します

« 経営情報学会2020年全国研究発表大会に発表・運営参加 | トップページ | アグレッシブな起業イベント『Startup Weekend』に参加しました! »

「Cloud Native Dojo 2021」 を開催しました

クラウド・分散システム研究室の小山です. 2021年8月25日と26日の2日間で学内の学部2年生を対象にイベント「Cloud Native Dojo 2021」 を開催しました.

Cndj2021

はじめに

Cloud Nativeは,クラウド技術を使用したモダンなアプリケーションの開発を促進する技術の総称です*.特徴的な技術には,クラウドやコンテナ,サービスメッシュやマイクロサービスがあります.すばやい変化が求められている現代のビジネスにおいて,柔軟かつ高速な開発を実現するためにCloud Nativeが注目されています.

* https://github.com/cncf/foundation/blob/master/charter.md

Cloud Native Dojoは,クラウド技術への理解と習得を目的としたワークショップです.対象とする参加者は,学部2年生に設定しました.これは2年生が基礎的な知識がある一方,研究室との接点がなく学ぶ機会が少ないためです.

スケジュール

2日間のイベントは,次のスケジュールで行いました. 講師はクラウド・分散システム研究室に所属する大学院生の小山,髙木です.

日程 プログラム
Day 1 AM 環境構築
Day 1 PM PythonによるWebアプリケーション開発
Day 2 AM Dockerによるコンテナ操作
Day 2 PM Kubernetesによるコンテナ管理

プログラムの内容

Day2 AMのDockerを高木が担当し,他を小山が担当しました.

[Day1] 環境構築とWebアプリ作成

環境構築では,必要なソフトウェアを参加者のマシンへインストールしました.全体の環境を揃えるため,WSL2 + Docker for Desktop + Python3.8 on WSLの組み合わせを採用しました.

Webアプリ作成では,Webアプリケーションフレームワークである Flask を使い簡単なWebアプリケーションを作りました.以下は実際に作成したフォームです.名前を入力し「送信」を押すと,次のページに入力した名前が表示されます.

Cndj2021b Cndj2021c

[Day2] DockerとKubernetes

AMはDockerコンテナの基礎について説明を行いました. Dockerコンテナのメリットを物流で使用されるコンテナの歴史を交えながら理解を深めました. ソフトウェアの開発では,開発環境の土台が安定しなければなりません.私たちが日頃使用しているOSSライブラリは日々更新され,これらの管理を人力で行うのは実質不可能です.この問題を解決したのがDockerコンテナであり,Dockerfileと呼ばれるコンテナ仕様書を使用します.OSカーネルライブラリ・SWパッケージ・ミドルウェア・アプリケーションを一纏めにすることで,前述のような更新の影響を受けることがなくなります.

実際にflaskのコンテナ仕様書からイメージをビルドし,コンテナを作成しました.

FROM python:3.8-slim
EXPOSE 5000 COPY flask-study/ /work WORKDIR /work RUN pip install --no-cache-dir Flask ENV FLASK_APP=form
CMD ["flask", "run", "--host=0.0.0.0"]

また,dockerに関するコマンドを学習し,作成したイメージをdocker hubへpushしました. PMではAMに覚えたdockerコマンドを駆使して1日目の続きを行いました.

作成したDockerイメージを学部のサーバ上に構築したKubernetes上にデプロイしました.以下の図はKubernetesクラスタに配備されたコンテナ(Pod)の一覧をkubectlコマンドで表示しています.

Cndj2021a

KubernetesではPodとServiceを作成し,外部へコンテナを公開しました.設定は,以下のYAMLファイルとよばれる形式で記述します.使用した設定ファイルは,GitHubに公開してあります.

apiVersion: v1
kind: Pod
metadata:
name: demo-pod
labels:
app: MySample
spec:
containers:
- name: demo-container
image: nginxdemos/hello

おわりに

参加者の皆さんは,二日間を通じて授業だけでは学べないより実践的な知識を得られたのではないかと思います.実際の感想やアンケートでも「授業の内容が実際にどう使われているか理解が深まった」や「丁寧に対応してもらえ楽しく理解できた」といったフィードバックがあり開催の目的を満たせたと思います.また,講師として教える事は,参加者の理解度にあわせて適切な情報量や説明が必要であると改めて学べました.今後もこうした取り組みを通じて,やる気のある学部生の皆さんをサポートしていきます.

2021年9月11日 (土)

« 経営情報学会2020年全国研究発表大会に発表・運営参加 | トップページ | アグレッシブな起業イベント『Startup Weekend』に参加しました! »

 
  • コンピュータサイエンス学部の情報はこちら
  • 入試情報はこちら
  • 資料請求はこちら(大学案内、募集要項等)
カレンダー
2023年3月
日 月 火 水 木 金 土
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  

カテゴリー

  • CS学部のイベント
  • その他
  • オープンキャンパス情報
  • プロジェクト実習
  • 人工知能
  • 卒業生の活躍
  • 学生の学会発表
  • 学生の就職活動
  • 学生活躍編
  • 戦略的教育プログラム
  • 教員の執筆情報
  • 映像紹介
  • 松下的コンピュータゲームの世界
  • 研究室の研究紹介
  • 研究編
  • 講義紹介

最近の記事

  • 3/26にオープンキャンパスを開催します
  • ネットワーク処理道場の活動内容を紹介します
  • カナダで開催されたワークショップで発表しました
  • Cloud Native Dojo と IoT Dojo の活動を紹介します
  • 多摩地域マイクロツーリズムプロジェクトで優秀賞を獲得しました!
  • 12月4日に来場型でプレ入試解答解説講座を開催
  • 11月入試説明会+受験対策講座(来場型)&バーチャルオープンキャンパスのご案内
  • 8月のオープンキャンパスについてお知らせします
  • アイルランドで開催された国際会議で発表しました!
  • 7月17日にオープンキャンパスを開催します
  • 東京工科大学の情報はこちら
RSSを表示する