ORIST技術セミナーBMB第47回勉強会開催報告

報告が遅くなりましたが、去る11月19日(火)、グランフロント大阪 さくらインターネット株式会社様にセミナールームをお借りして実施したORIST技術セミナーBMB第47回勉強会。
非常にマニアックなテーマでしたが、熱心な23名の参加がありました。

ORIST技術セミナーBMB第47回勉強会

今回は、Webサービスを止めずに継続開発するためのソフトウェア技術について、さくらインターネット株式会社の前佛 雅人様にお話いただきました。

さくらインターネット株式会社の前佛 雅人様

【今回の勉強会の論点】

今回のセミナーはDockerとコンテナの話がメインでしたが、単純にアプリケーションをコンテナ化するだけでは意味がありません。

ソースコードのバージョン管理であったりテスト自動化を行うための、より効率的かつ正確にアプリ開発を行う手段としてのコンテナ化、この文脈をどうか忘れないでください。

そもそも何でこのようなことを行うかというと、従来よりも高品質で持続的なWebサービスの開発・運用を行うためです。逆にいうと、これがメインでないのであれば、コンテナやテスト自動化にこだわる必要は全くありません。この点ご注意ください。

コンテナ化・バージョン管理・テスト自動化

【キーワード】

CI/CD :元々は継続的な開発のためにアジャイルなどの開発手法として注目されてきましたが、最近は運用視点でも継続的に安定して自分たちのサービスを持続的にしたい、継続的にスケールアップ&スケールダウンをしたい、その文脈でDocker(ドッカー)やKubernetes(クバネテス)などのコンテナのオーケストレーションツールが注目を浴びているのが現状です。

ですので、コンテナいいとかクバネテスいいという話が出てくるかもしれませんが、その前にまず順番としてCI/CDを実現するためにバージョン管理とかテストの自動化とかをやっていかなくてはいけないという部分は気をつけておいてください。

 

バージョン管理:バージョン管理にはGit(ギット)と呼ばれるツールがあります。コマンドライン(CLI)のツールです(GUIも用意されています)。自分一人でというよりは複数人からなるグループ、もしくは別々のグループだったり会社と連携して共同作業をする時に力を発揮するバージョン管理ツールです。最近だとグーグルドキュメントやOffice365のようなツールで差分が見れるというのが流行ってきました。仕様書をいつ誰が変更したか分かるように、ソースコードに限らずドキュメントでもバージョン管理という概念は取り入れていくのがいいのかなと思っています。

 

テストの自動化:次に大事なのがテストの自動化ですが、これもソースコードに限らずドキュメントの自動生成プログラムやRPAというツールが世の中にあります。

例えば、HPにあるマニュアルの管理をする場合を例にとると、GitHubを使った編集作業で編集された内容を固めてブランチ(分岐)が出来た状態でGIT上に押すと、自分が反映した内容をテスト的に見れるようになります。ドキュメントの生成をsphinx(スフィンクス)というツールを使って行い、Jenkins(ジェンキンス)が文書の構造が破綻していないかどうかのチェックとサイトの作成を行いDockerコンテナ上にデプロイしてくれます。このようにPUSHすることにより、開発者(この例ではドキュメント編集者)側は本番環境への影響を気にせずに本番環境への反映をテストできるという利点があります。テストの結果はチャットシステム等と連動させて通知共有できます。

 

ーーーーーーーー

前半にGitHubの実演がありました。

 

次にクラウドの説明がありました。

「クラウド化する世界」20世紀の「電力会社」のように、インターネットを通したクラウドコンピューティングが当たり前の社会が到来している。

仮想化からクラウド・ネイティブへ

システム基盤も、サービス側も変わり続ける

 

コンテナの説明です。止められないサービスではコンテナが有効であるという話。

cloud native

導入の順序としては

1.まずコンテナ化しましょう
2.次に自動化してCI/CDをセットアップします
3.最後にオーケストレーションツールに手を出しましょう という話でした。

ーーーーーーーー

後半はDockerの説明と実演がありました。

 

コンテナはchrootに似ている

chroot

コンテナは特別なプロセスの状態

docker-compose

Docker Compose

オーケストレーション

オーケストレーション

ーーーーーーーーー

最後に、

・これからDockerを始める人はまず公式サイトのマニュアルから見ていくのがいいです。

http://docs.docker.jp/get-started/toc.html

・Docker Desktopを利用予定の人は、wls2リリース(来春予定)まで待つといろんな問題が解決されているだろうからオススメです。