まちん

主にAndroidアプリを作ってます。

ネクストスキル週次ゼミ(10月のゼミまとめ)

10 月のネクストスキルの週次ゼミのまとめです。

10 月は主に FaaS、BaaS などについて学びました。

10 月に学んだこと

第 1 週

BaaS について学びました。

  • Web アプリケーションの構成パターンの復習
    • 静的サイト、古典的 Web アプリ、Ajax、SPA
  • BaaS とは?Firebase とは?
    • API、認証・認可、サーバの用意、運用、スケーリング
    • Firebase, Amplify, Playhub
    • Firebase
      • hosting
      • authentication
      • storage
      • firstore
  • Firestore の基本
    • コレクション、ドキュメント
    • 2 層アーキテクチャ
      • なぜクライアントから直接データベースにアクセスしないのか
    • なぜ Firestore は 2 層で OK なのか
    • セキュリティルール
  • Firebase と Amplify の構成の比較

Firebase と Amplify の比較を教えてもらえたのはよかったです。サービスの役割の対応などを観れて、どっちか構成したことがあれば、比較しながら学習することができそうです。

第 2 週

AWS Lambda について学びました。

  • AWS Lambda とサーバレスコンピューティングの概要
    • FaaS(Function as a Service)
    • Lambda について
    • トリガー
    • イベントドリブン
    • メリット
      • サーバ管理不要
      • スケールが簡単
      • アイドルコストが無料
    • デメリット
      • 特有の制限
      • 相性の良い言語、FW
    • サーバーレス
      • CNCF Serverless Whitepaper v1.0
      • サーバレスはビジネスロジックの作成に集中できる
      • サーバレスの典型が FaaS, BaaS
  • ツールを活用した実践的な Lambda の管理
    • AWS 公式
      • SAM
      • Amplify
      • CDK
    • サードパーティ OSS
      • Serverless Framework
      • (Serverless Stack)
      • (Apex)
  • Lambda の Tips や発展的な機能の紹介
    • Lambda のインスタンスはコンテナ
    • コールドスタート
    • スロットリング
    • カスタムランタイム
    • Lambda Layer
    • Step Functions
    • Lambda@Edge
      • CDN のエッジロケーションで Lambda 実行
        • リダイレクトなどでちょっとした処理
        • 動的 OGP 生成

Lambda Layer や、Lambda@Edge は知らなかったので、知ることができてよかったです。

やはりサーバ管理不要になるところは Lambda(SaaS)の大きいメリットだなと思いました。

第 3 週

XaaS と、開発環境の整備について学びました。

  • XaaS の紹介
    • IaaS(Infracstructure)
      • AWS EC2, GCE
    • PaaS(Platform)
      • Heroku, GAE
    • SaaS(Software)
      • Google Workspace, freee
    • (m)BaaS(Backend)
      • Firebase, Amplify
    • FaaS(Function)
      • Lambda, CloudFunctions
    • コンテナ系だと CaaS, KaaS
    • DaaS(Desktop as a Service)
      • リモートデスクトップ
      • Amazon workspaces
    • IDaaS(Identity as a Service)
      • Okta
      • Auth0
      • Furebase Auth
      • Cognito
    • iPaaS(Integration Platform)
      • IFTTT(if this then that)
      • Zapier
        • ブログ -> tweet
        • Gmail -> Google Drive
    • MaaS(Mobility as a Service)
  • 各種開発環境の比較
    • macOS, Windows, Linux
    • モバイルアプリ
    • ローカル or クラウド
    • IDE
    • エディタ
  • おすすめのツール紹介
    • シェル: Bash, Zsh, Fish
    • tmux(screen)
    • anyenv
    • asdf
    • dotfiles
    • enthumble

XaaS はたくさん種類があるんだなと思いました。適切に選択していきたいです。

第 4 週

受講生のアンケートへの回答の講義でした。

  • LDAP(Lightweight Directory Access Protocol) の概要
    • ディレクトリサービス
      • OpenLDAP, Active Directory
    • SSO
    • 情シスの管理視点でみると
    • RDB でも良い?
    • DIT(Directory Information Tree)
  • Docker Compose を用いた開発環境の構築
  • Linux における Web アプリケーション環境構築のデモンストレーション
    • Linux 上で、Nginx、FastAPI、MySQL で掲示板アプリの環境を構築
  • 有名企業のエンジニアになるための成長戦略
    • 技術
    • カルチャーフィット
    • どんな仕事したいか
    • ポジション
    • 転職ブログ
    • 共通して必要そうな要素

LDAP はちょうど LinuC レベル 2 の学習をしていたので、ちょうどよかったです。

Linux における Web アプリケーション環境構築のデモについては、実際に構築してみるとハマることがあったりするので、実際にやってみるのは大事だなと思いました。ここどうやるんだっけ?とか、意外と nginx の設定などでつまづいたりします。。

有名企業に入れるかどうか、入るかどうかはなどは別として、求められるスキルはエンジニアとして生きていく上で必要になるスキルだと思うので、基準として、実際に入れるように学習していくのはいいかもしれないと思いました。

まとめ

FaaS、BaaS などに学びましたが、数年前は当たり前じゃなかったことなのに、ここまで当たり前になっているのには改めて技術の進歩は早いなと思いました。

また、FaaS、BaaS を理解する上では、IaaS や PaaS、OS の知識などがあった方が理解しやすいですし、不要なわけではないので、基礎の学習はやはり大事だと思いました。

← ホームへ