ねえぶ

猫好きエンジニアのブログ

エンタープライズアジャイル勉強会 2019年5月セミナー レポート

ブログを引っ越ししましたので,5秒後に移動します

5/16(木)に参加したエンタープライズアジャイル勉強会 2019年5月セミナーのメモです.

イベント概要

エンタープライズアジャイル勉強会の紹介

講演: モノリスなアプリからマイクロサービスへ - クラウドネイティブなアプリ開発における CI/CDプロセスとDevOpsツール -

講演者

講演要旨

  • マイクロサービスとは何か?なぜそう設計・実装する必要があるのか?
  • 実装するにはどんなことを考慮する必要があるのか?
  • など基本的な解説をサンプルアプリを通じてご説明し、DevOps ツールで実際に CI/CD のデモなどをご紹介していきます。

FIXERについて

クラウドサービスの需要が高まる背景

  • DXに対応するための,意思決定の高速化やビジネスプロセスの変革
  • プラットフォーム(win2008とか)のEOLに伴う,オンプレのリプレースやマイグレーション
  • 政府の方針(取り組み)
    • 世界最先端デジタル国家創造宣言
    • 官民データ活用推進基本計画
    • デジタルファースト法案
    • クラウドバイデフォルトの推進
    • ディスカッションペーパー at 政府CIOポータル

マイクロサービス

  • 背景
    • レガシーマイグレーションや新規開発をする際は,責任分界点が明確なのでSaaSを推奨しているが,ビジネス要求とのバランスからサービス開発が必要になる
    • 大規模システムをモノリシックに構成する際の問題を解決する必要性が高まる
    • コンテナ技術などの環境が整ってきた
  • 特徴
    • 疎結合APIベースの結合,責任分割,障害の局所化)
    • 開発チームの小規模化による管理の容易化
    • 個別にサービスを更新できる
  • デメリット
    • 運用管理コストは増大
    • データ整合性担保が難しい
    • 結合テストが難しい
  • MSによる例(ホテルのシステムをマイクロサービスで開発)

マイクロサービスを支える技術

  • Docker
    • 資源効率性が高い
    • 移植性が高い
  • 大量コンテナ化に対し,オーケストレーションが必要→k8s
    • オートスケール
    • blue green deployment
    • rollig update
  • k8sは,実際はマネージドサービス使うのがベター
  • 大規模化すると,データ整合性やk8s上のサービスの通信の統制が問題に→Istioなどのサービスメッシュ
  • Windowsだけで開発できる環境が整っている
    • .Net core
    • Docker for Windows
    • VS2019のコンテナサポート
  • Azure DevOpsでコンテナ・マイクロサービスのDevOpsを簡単に管理できる
    • コンテナリポジトリ
    • プルリク,コードレビュー
    • ビルド,テスト
    • デプロイ
  • 他にもAzureにいっぱい便利なサービスがあるので要チェック

(自分がした)QA

  • Q: 「クラウドバイデフォルトの推進」で民間のパブリッククラウド利用を推進しているとのことだが,医療情報のクラウド保存に関する3省2ガイドラインのようなガイドラインもあるのか?
    • A: 「クラウドバイデフォルトの推進」にはないが,他のガイドラインには入ってる.政府CIOポータルをウォッチしておくと,そのあたりの情報が得られる
  • Q: マイクロサービスの特徴で,開発チームの小規模化と管理の容易化が挙げられていたが,コンウェイの法則的に,マイクロサービスを適用する場合は,組織改革を並行させないと問題が起きやすいか?
    • A: チームがそのサービスを全部知っていることが理想的なので,そうあったほうがよい
  • Q: マイクロサービスは,サービスメッシュなどの適用なしに実現できるものなのか?Istio/Envoyとか使わない選択肢もありえるのか?(データ整合性の担保など)
    • 大規模・複雑化していないシステムはマイクロサービスにする効果が薄い
    • 大規模システムのマイクロサービスにおける各サービスの協調は自前管理が難しい
    • ↑この2つにジレンマを感じるが
    • A: まずは小さな規模でもいいので適用してみるのが有用
      • マイクロサービスの感覚をつかむ
      • 特定サービスに投資を集中できる
      • 大規模なものに対しての適用は,サービスメッシュを考えたほうがよいが,規模の大小については,両方からアプローチするのがよい