血と汗となみだを流す

クラウドエンジニアになるための修業の場

Tech-on MeetUp#01「開発現場に効くサーバーレス」に参加しました!

概要

このイベントでGETしてきたもの

  • lambdaのBlueprintsに「slack-echo-command-python」というのがある
  • ServerlessFramework
    • サーバレス関連のリソースを良い感じに管理してくれる
  • ローカルでサーバレスの検証をするため、lambdaのコードをWebサーバでも動くようにラップして可搬性を高める
  • 24/365という無敵のサービス

以下、概要メモ書き

Tech-onとは

  • ホンモノのナレッジは人と人との緩いつながりの中にこそある
  • テーマを特定の技術に限定しない
  • 開発の現場にいる技術者が登壇
  • slideshareで公開されるのでバシャバシャ撮影しなくてよし

NG

  • 製品紹介や広告は原則禁止

資料

明日から始めるちょい足しλ

  • 中丸 良@SUPINFさん
  • 開発現場に効くサーバレス
    • 改善策を探していたら、結果的に
  • AWS Lambdaは想像以上に難しい
  • メンテナンスし続けるコスト、まったくもって無視できない
  • 研究、PoC期間をちゃんと設けて小さめにスタート

社内の情報共有に

  • どこにどんな情報があるか
  • labmdaのBlueprintsに「slack-echo-command-python」というのがある

秘密情報の共有

  • デフォルトのBlueprintsになかったらOSSを探そう

Githubの歩き方

  • 調査段階でawesome-serverlessなどで探すのは有用

lambda@edge

  • AWSのCLoudFront上で動くlambda

運用プロセスも改善したい

  • 開発プロセス全般のソリューションとして使えるサーバレスがawesome-xxxにある
  • 安易に自作しようとしない
  • 新技術を研究する時間は別途とり、かつ成果は義務付けない

おすすめ

  • ks888/LambStatus
  • lambci/lambci
  • prismagraphql/chromeless
  • grycap/scar
    • lambdaでdocker動かす

運用のためのヒント

  • CI/CDパイプラインを組む
  • CloudWatchで監視

社内からの声

  • 「それサーバレスにした理由は?」を確認しよう

ローカル環境で気軽にはじめるサーバーレス

  • TatchNicolasさん

資料

サーバレスを始める時の悩み

  • 各種申請

身近で怒った悲劇

  • 無限ループによる高級請求
  • 定期実行の単位違い
  • ローカルで手軽に試したい・・・

ローカルで動かすには

擬似的なクラウド環境

  • AWS
    • SAM CLI
    • DynamoDB local
  • OSS

    • Serverless Framework
    • localstack
  • 擬似的なクラウド

    • dockerで起動
    • インターネットがないところでもサーバレスが検証可能

可搬性を高めるパターン

  • 任意のWebサーバで受けられるようにする
  • lambdaのコードをWebサーバでも動くようにラップして可搬性を高める
  • ラップする
  • 使えるツール、フレームワーク
    • awsgi
    • Zappa
  • Faas以外にも移動できる
    • ベンダーロックイン回避

QA

  • フレームワークにイベントを擬似的に発行できる機能がある
    • 連続してイベント発行は厳しい

KDDIとCI/CDの歩み

  • 廣田 翼@KDDIさん

概要

  • CI/CDをどのように浸透させて
  • どのような課題があって
  • どのように解決したのか

CI/CI概論

  • Continuous Integration
  • Continuous Delivery

CI/CDの効果

CI

  • 常に出荷可能な品質を維持できる

CD

  • 常にサービス提供/更新できる状態を保てる

導入

  • プロジェクト初期にCI/CD導入を目指す
  • プロジェクト/プロダクトの特性に応じたCI/CDを作っている

課題/対応

  • デプロイ作業が属人化
    • GithubEnterprise + Jenkins
  • CI/CDの設定自体もコード化
    • Jenkinsの設定をコード化
  • CI/CDに詳しい人材の不足
    • 詳しい人材を流動的にした

普及のポイント

  • 成功事例を作る
  • 理解している人材をプロジェクトに参加させる

QA

  • 県境毎にbranchがあり、そこにpushされたらデプロイが走る

StepFunctionsを一撃でデプロイする 〜 ServerlessFrameworkを用いたパッケージング 〜

  • 若松 剛志@アイレットさん

概要

  • サーバ管理サーバのサーバ管理はしたくない

ツール

  • Lambda
  • StepFunctions
  • ServerlessFramework
  • CodeDeploy

内容

とりあえずlambdaでやってみた

  • 制限が厳しい
  • 5分制限で落ちる

StepFunctionsがあるじゃん

  • 複雑に・・・
  • 1lambda1Functionになった
  • コケたポイントがわかる
  • リトライなどの制御が楽
  • JSONが辛い

ServerlessFramework

  • Serverlessに特化した構成管理ツール
  • YAMLで管理
  • 設定/コードが一箇所になった
  • JSONYAML変換が辛い
  • SF自体の改善点が多い
    • Role名で指定できないなど

監視

  • 24/365
  • lambdaのエラーハンドリングが難しい
  • エラーが起きる想定で対応するということで落ち着いた

結果

  • サーバの管理から開放された
  • 運用自体はなくならない
  • 構成管理が見える化した

課題

  • CI/CD
    • deployの均一化