ビープラウド社長のブログ

株式会社ビープラウドの社長が、日々の思いなどを綴っていきます。

「プログラマのためのGoogle Cloud Platform入門」は、シンプルで緻密な入門書

「プログラマのためのGoogle Cloud Platform入門」を頂いたので、早速拝読させていただきました。

プログラマのためのGoogle Cloud Platform入門 サービスの全体像からクラウドネイティブアプリケーション構築まで

Google Cloud Platformといえば、全世界に広がったGoogleのデータセンター、ネットワーク、そしてソフトウェア技術をフル活用した、クラウドプラットフォームです。

プラットフォームのスケーラビリティは、技術者がロマンを感じるポイントの一つです。

その技術者のロマンを感じながら、書籍を読み進めました。

この書籍をおすすめしたい人

この書籍をおすすめしたい人は多岐にわたります。

  • GCPを速習したい方(学びたいが、時間がない人)
  • AWSなど他のクラウドプラットフォームをメインに使っていて、GCPについてはあまり知らない人
  • インフラ構築の経験が少ないプログラマー
  • クラウド上で、コンテナ環境、マイクロサービスを構築したい人
  • GoogleのAI/機械学習のAPIを使ってみたい人
  • TensorFlowをスケーラブルな環境で実行したい人
  • システム開発のプロジェクトマネージャー・リーダー

書籍の特徴

以下に、私が感じた書籍の特徴を挙げていきます。

クラウド・コンテナ・マイクロサービス・機械学習など、技術トレンドが満載

書籍全体は、以下のような構成になっています。

※目次とは別にまとめなおしています

  • 1章 GCPの概要

    • 全体像、GCPのコンセプトの説明
    • アカウント、プロジェクトの作成方法
    • 運用、管理ツールの説明、使用方法
  • 2章 GCE(Google Compute Engine)上のWebアプリケーション開発

    • サンプルアプリ:掲示板
    • GCEインスタンス作成
    • Cloud SQL(RDB:MySQL)
    • Cloud Storage(画像データの保存)
  • 3章 GCPのインフラ構築

    • Cloud Load Balancingによるロードバランサーの設定
    • Cloud DNSによる独自ドメインの設定
  • 4章 GKE(Google Container Engine)によるコンテナ、マイクロサービス

    • サンプルアプリ:オンラインゲームの五目並べ
    • Dockerのマルチコンテナ環境構築
    • マイクロサービスのデプロイ
    • サービス無停止のバージョンアップ(ランダム対戦→AI対戦)
  • 5章 機械学習を用いたGAE(Google App Engine)アプリケーション

    • Googleの機械学習と関連サービス説明、APIの呼び出し方法

      • Cloud Vision API:画像認識系API
      • Cloud Translation API:翻訳系API
      • Cloud Speech API:音声ファイルのテキスト化
      • Cloud Natural API:自然言語処理
      • Cloud Machine Learning Engine

        • TensorFlow実行環境
        • 学習済みモデルのAPI化
    • Google App Engine(GAE)説明

      • 概要/機能
      • Cloud DataStore
    • GAEアプリケーションのサンプル

      • 写真アルバムサービス
      • 画像ファイル保存:Cloud Storage
      • 画像タグ付け:Cloud Vision API
      • テキスト翻訳:Cloud Translation API
      • 属性データ保存:Cloud DataStore
    • Cloud Machine Learning Engine による機械学習モデルトレーニング

      • TensorFlowで書いた独自モデル実行
      • MNISTデータセットの手書き数字認識

本書は、クラウドのサーバー環境にとどまらず、マイクロサービス、コンテナ環境、機械学習など、現代のIT技術者なら興味を示す内容が目白押しです。

Googleが次々とリリースしているAI/機械学習系のAPIを紹介するだけでなく、サンプルアプリケーションでしっかり使っているので、読者は活用イメージが湧くことでしょう。

シンプルで分かりやすいサンプルアプリケーション

サンプルアプリケーションがシンプルで、機能やアーキテクチャーをステップバイステップで拡張しているので、つまづかずに理解を進めることができます。

例えば、2章、3章のサンプルは以下のようにすこしずつ拡張させています。

  • ステップ1:Webアプリ+SQLite
  • ステップ2:Webアプリ+Cloud SQL
  • ステップ3:Webアプリ+Cloud SQL+Cloud Storage
  • ステップ4:Webアプリ+Cloud SQL+Cloud Storage+Cloud Load Balancing

4章のDocker上で動かすサンプルアプリケーション(五目並べ)も、GitHubで提供されているのでダウンロードし、コンテナ環境のマイクロサービス実行、DevOpsにとって重要なサービス無停止でのアプリケーションバージョンアップ/デプロイをすぐに体験することができます。

基礎技術の丁寧な説明

書籍のサンプル通りに手を動かしてみたものの、裏で何がどのように動作しているのか分からないということになりがちです。

この書籍では、Webアプリケーションやインフラについての基礎技術を、紙面を割き、丁寧に説明しています。これは他の書籍にあまりない特徴です。

以下が説明されている基礎技術です。

  • WEBアプリケーションの基礎

  • Webアプリケーションとネイティブアプリケーションの違い

  • リクエストとレスポンス
  • HTTP通信

  • データベースの基礎

    • データベースの種類
    • データベース操作言語
    • トランザクション
  • サーバー仮想化技術

    • ホスト型仮想化
    • パイパーバイザー型仮想化
    • コンテナ型仮想化
  • インフラ環境構築

    • 物理ネットワークと仮想ネットワーク
    • IPアドレス
    • ネットワークの階層と通信プロトコル
    • ファイアウォールとルーター
    • DNSの基礎
    • 負荷分散の基礎
    • 仮想ネットワークの基礎

クラウドプラットフォーム技術の進展により、サーバー、ネットワーク周りのインフラ系技術者の仕事と、プログラマーの仕事の垣根が低くなり、インフラ環境をプログラマーが担当する場面がここ数年で増えました。

インフラ環境を構築した経験がないプログラマーの方は、この基礎技術の説明を読みながら、本書のサンプルを動かしてみることで、インフラ環境への理解を深めてみると良いでしょう。

図・イラスト、表が豊富に使われ、アーキテクチャーを理解しやすい

わかりやすい図やイラストが要所要所で使われているので、直感的に理解することが出来て、理解の迷子にならないように手助けしてくれています。

クラウド技術は、複数の技術要素が連携して動作するので、アーキテクチャーを頭に入れながら理解する必要があります。そのアーキテクチャーをわかりやすい図で表現してくれていて、とても助かりました。

実績ある著者が執筆

書籍は、内容もさることながら、誰が書いたかということが重要です。

技術の入門書は数多く世の中にありますが、著者のバックグランドでその書籍の深み、価値は変わってきます。

著者の阿佐志保さんは、わかりやすいと定評のプログラマのためのDockerの教科書Amazon Web Servicesではじめる新米プログラマのためのクラウド超入門を執筆されています。

技術書籍執筆者の登竜門といわれているWINGSプロジェクトで鍛えられ、磨かれたのでしょう*1、特に第4章「コンテナ実行環境で、マイクロサービスを体験しよう」は、よくまとまっていて、この章だけでも、この書籍を買う価値はあると思える内容でした。

また共著者・監修の中井悦司さんは、Google のCloud Solutions Architectをされていて、弊社の社内読書会でも使わせていただいた、ITエンジニアのための機械学習理論入門や、TensorFlowで学ぶディープラーニング入門などを執筆されていて、クラウド技術、機械学習については、第一人者といえるでしょう。

この2人の共著であれば、この書籍のレベルの高さは納得がいきます。

まとめ

GCPの全体像の把握や、GCP習得が短時間で済むように、書籍全体の構成やサンプルアプリケーションの構成・内容がシンプルで緻密に良く練られている印象を受けました。

著者が、構成や内容を練るのに時間を使ってくれている分、読者はGCPを学ぶ時間を節約できることでしょう。

時間は一番貴重な資源なので、とても有り難いことです。

また、スケーラブルなWebサービス環境、コンテナ環境を使ったマイクロサービス、GAE、AI/機械学習というように、Google のクラウド技術全体を網羅しているので、GCPを活用する際のインデックスとしても使える書籍であると感じました。

この書籍で、GCPについてのインデックスを頭の中に構築し、あとは実践やWeb上のドキュメントを読むことによって知識を肉付けしていけばよいでしょう。

書籍内の説明を読みながらサンプルを試していけば、4時間〜8時間で、GCP上のWebアプリケーション実行、インフラの設定から、マイクロサービス、GAE、GoogleのAI/機械学習のAPIを体験できるのではないでしょうか。

仕事の業務時間で言えば半日〜1日なので、新人研修等の教科書・参考書としても使えそうです。

GCPをこれから学ぼうという方におすすめの一冊です。

プログラマのためのGoogle Cloud Platform入門 サービスの全体像からクラウドネイティブアプリケーション構築まで

プログラマのためのGoogle Cloud Platform入門 サービスの全体像からクラウドネイティブアプリケーション構築まで

*1:私も2004年からWINGSプロジェクトに参画し、2010年頃まで技術記事を書かせていただき、主催の山田祥寛さん、山田奈美さんには執筆記事を何度もレビューしていただきました(2007年にWINGSプロジェクトについて書いたブログ記事)。ここ6、7年は忘年会にしか参加していませんが。。