ソースコードから理解する技術-UnderSourceCode

手を動かす(プログラムを組む)ことで技術を理解するブログ

GolangでWebアプリ作成〜Docker・Kubernetesで実行するチュートリアルをやってみた

はじめに

GolangでWebアプリを作りDockerで動作を確認し、Kubernetesでデプロイする手順を紹介した
Write a Kubernetes-ready service from zero step-by-step GopherAcademy
をやってみました。

とは言ってもKubernetesは当分使用する予定はないので、Kubernetesでのデプロイを除く部分だけですが・・・。

タイトルにはKubernetesとありますが、GolangでWebアプリを作るチュートリアルとしても良い記事だと思うので紹介します。

記事の目次、学べること

記事で学べることを理解するために、記事内の項目を並べてみたいと思います。

  1. 「Step 1. The simplest service」
  2. 「Step 2. Add a logger」
  3. 「Step 3. Add a router」
  4. 「Step 4. Tests」
  5. 「Step 5. Configuration」
  6. 「Step 6. Makefile
  7. 「Step 7. Versioning」
  8. 「Step 8. Let’s have less dependencies」
  9. 「Step 9. Health checks」
  10. 「Step 10. Graceful shutdown」
  11. 「Step 11. Dockerfile」
  12. 「Step 12. Vendoring」
  13. 「Step 13. Kubernetes」

1〜10でアプリを作成し、11でDockerで動作させ、13でKubernetesで動かします。
私が良いと思ったのは、1〜10のアプリ作成で

  • ヘルスチェックやシャットダウンを含むアプリの実装
  • loggerの実装
  • ユニットテストの実装
  • Makefileによるコマンドの自動化

など、実案件で必要そうなことをチュートリアル形式で学べることです。またURLの効率的な管理方法(Router)などソースを綺麗に保つための工夫にも言及されています。
実際に作ってみたアプリはコンテナで動かし、デプロイさせることもできます。

まとめ

アプリ作成〜コンテナ化、(私はやらなかったが)Kubernetesでのデプロイと、開発〜デプロイまでの一連の流れを学ぶのに良い記事だと思います。
GolangでのWebアプリ作成に興味ある方は、一度やってみてはいかがでしょうか。

以下、私が今回やってみたソースです。
GitHub - SrcHndWng/go-learning-kubernetes