LoginSignup
0
0

More than 1 year has passed since last update.

Dockerの本を読んでみた -4章編-

Posted at

前回までのおさらい

読んでいる本はこちら
Docker/Kubernetes 実践コンテナ開発入門
3章まで読み終わったので、今回は4章編となる。
3章編については以下に記載
Dockerの本を読んでみた -3章編-

章の流れ

これまで学習してきた章の実践として、4章が存在する。
よって、Dockerの基礎なんてもう知ってるよ!っていう方は4章からやるのが良いのかもしれない。
章内の主題としては、「Webアプリケーションを実際に構築してみようー!」というもので、作成フローから順々に説明されている。

Webアプリケーションの仕様

そもそも、アプリケーションを作成のフローとは?

一般的に、Webアプリケーションを作成しよう!となった場合のフローとして、
「企画」→「設計」→「開発」
が主流となる。

それぞれのフローで具体的にどんなことを行うのかということについて、以下にまとめた。
「企画」では、どんな人がいつ使うのかといったターゲット決めを行う
「設計」では、サイトマップ、ワイヤーフレームの作成、データベースの設計を行う
「開発」では、プログラミング言語などを使って設計した仕組みを作っていく

今回は「企画」部分は省略し、「設計」部分から実践演習として問題が定義されていた。

アプリケーションの仕様

実践演習として定義されたものは以下となる。

・TODOを登録・更新・削除できる
・登録されているTODOの一覧を表示できる
・ブラウザから利用できるWebアプリケーションとして構築する
・ブラウザ以外のプラットフォームからでも利用できるように、JSON APIのエンドポイントも作成する

アーキテクチャ(設計図)

作成するアプリケーションはDocker Swarmを使用し、オーケストレーション機能を持たせる。
また、イメージごとに使用するサービスを分ける方式を取っていた。

イメージ名 用途 Service名 Stack名
MySQL データストア mysql_master,mysql_slave MySQL
API データストアを操作するAPIサーバ app_api Application
Web ビューを生成するアプリケーションサーバ frontend_web Frontend
Nginx プロキシサーバ app_nginx,frontend_nginx Application Frontend

Nginx

アプリケーションのフロントエンドサーバ及びAPIの前段として、Nginxを配置し、リバースプロキシとして動作させる。
Nginxを配置するのはキャッシュ利用、バックエンドの柔軟なルーティングやアクセスログの出力を容易にする為とあった。

配置戦略

今回作成するTODOアプリも、Swarmクラスタ上でそれぞれのServiceを展開する方式を取る。

TODOアプリケーションの全体像

作成していくフローとして以下が記載されていた。本の内容を引用する。

1、データストアとなるMaster/Slave構成のMySQL Serviceの構築
2、MySQLとデータのやり取りをする為のAPI実装
3、ウェブアプリケーションとAPI間にリバースプロキシとなるNginxを通じてアクセエスできるように設定
4、APIを利用してサーバ再度レンダリングをするWebアプリケーションを実装
5、フロント側にリバースプロキシ(Nginx)を置く

作っていく

MySQL編

本内では、gitに参考資料が記載されているので、そこから取ってきた上で構築を進める流れとなっている。

API編

APIのイメージを作成出来るファイルがGitに公開されているので、それを見ながら作業を進めていく感じ。

Nginx編

API編と同様でしたね。

Web編

最後に、WebアプリケーションをNode.jsで構築する流れとなっていた。
Node.jsが分からない場合は、以下を参照すると勉強になったので記載する。
Node.jsとはなにか?なぜみんな使っているのか?
この章でも、今までと同様に見本となるgitが公開されているので、作業する環境にgitをcloneして作業する。

次回の話

5章は以下に記載したので、興味がある方はどうぞ。
Dockerの本を読んでみた -5章編-

まとめ

WebアプリケーションをDockerでつくってみよう〜ハンズオン章だったと思う。
そもそもWebアプリの構成部分で理解が進んでないと割ときついと思ったので、これ知らんーってなったらその都度調べつつ実施するのが望ましい。

参考資料

Ruby on Railsで作る!Webアプリケーションを0から開発するフローとは

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0