Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
CloudNativeなサービス用環境を構築するツールキット Eponaを作った/toolki...
Search
Yuichi Kiri
March 23, 2021
Technology
0
450
CloudNativeなサービス用環境を構築するツールキット Eponaを作った/toolkit to create cloud-native environment for our services
2021/3/19開催のイベント TIS Developers Night(
https://tidev-meetup.connpass.com/event/199990/
)での発表資料です。
Yuichi Kiri
March 23, 2021
Tweet
Share
More Decks by Yuichi Kiri
See All by Yuichi Kiri
自己組織的な開発チームを如何にして作り上げるか / how to build self-organizing team
kiririmode
8
9.3k
なぜぼくがbitcoinに心惹かれるのか
kiririmode
1
1k
このConsulがすごい!/consul is great!
kiririmode
0
470
Other Decks in Technology
See All in Technology
社内お問い合わせBotの仕組みと学び
nish01
0
460
M5製品で作るポン置きセルラー対応カメラ
sayacom
0
160
【Oracle Cloud ウェビナー】クラウド導入に「専用クラウド」という選択肢、Oracle AlloyとOCI Dedicated Region とは
oracle4engineer
PRO
3
120
Exadata Database Service on Dedicated Infrastructure(ExaDB-D) UI スクリーン・キャプチャ集
oracle4engineer
PRO
2
5.5k
From Prompt to Product @ How to Web 2025, Bucharest, Romania
janwerner
0
120
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
11
78k
SOC2取得の全体像
shonansurvivors
1
410
リーダーになったら未来を語れるようになろう/Speak the Future
sanogemaru
0
300
Goに育てられ開発者向けセキュリティ事業を立ち上げた僕が今向き合う、AI × セキュリティの最前線 / Go Conference 2025
flatt_security
0
350
E2Eテスト設計_自動化のリアル___Playwrightでの実践とMCPの試み__AIによるテスト観点作成_.pdf
findy_eventslides
1
490
extension 現場で使えるXcodeショートカット一覧
ktombow
0
220
成長自己責任時代のあるきかた/How to navigate the era of personal responsibility for growth
kwappa
3
290
Featured
See All Featured
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
657
61k
Building a Modern Day E-commerce SEO Strategy
aleyda
43
7.7k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
GitHub's CSS Performance
jonrohan
1032
460k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
Why Our Code Smells
bkeepers
PRO
339
57k
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.7k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.6k
Designing Experiences People Love
moore
142
24k
Thoughts on Productivity
jonyablonski
70
4.9k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
2.6k
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
Transcript
© 2020 TIS Inc. CloudNativeなサービス用環境を構築する ツールキットEponaを作ってみた
© 2020 TIS Inc. 2 自己紹介 • 木利 友一 (@kiririmode)
• 経歴 – 2015年 TIS転職 • 主としてバックエンドのアプリケーションアーキテクトとして、 プロジェクトのリードやスクラムマスター – Java – Golang、Bitcoin、gRPC – 2018年 育児休業(今日は子供の声がBGMとして入ります) – 2020年度よりテクノロジー&エンジニアリングセンターへ異動 • AWS、Terraform • Blog: 理系学生日記
© 2020 TIS Inc. 3 Epona 自社サービス用のCloudNativeなDevOps用環境を オンデマンドで構築できるツールキット • サービスを運用できる本番環境
• 本番環境と同様の構成を持つテスト環境/ステージング環境 • チーム開発が可能な開発環境 ターゲットとするクラウドサービス • Amazon Web Services (AWS) ツールキットの提供する「モジュール」を 組み合わせることで、様々なサービス用環境を実現できます
© 2020 TIS Inc. 4 ターゲット ★開発・運用の中で「DevOps」を行う自社サービス 先進技術・ノウハウを駆使し、ビジネスの革新と市場創造を実現する • ユーザニーズの変化への適応
• 開発・運用の一体化 • オーナーシップを持ったサービス・プロダクトの成⾧ ※
© 2020 TIS Inc. 5 Epona • Epona – Terraformモジュール+
Guide を含むリポジトリ – https://gitlab.com/eponas/epona • Getting Started – Eponaを組み込んだ環境構築スクリプト用リポジトリ • Eponaはモジュール群なので、それを実際に組み込んだ一連のTerraform構成ファイル – https://gitlab.com/eponas/epona_aws_getting_started • Epona AWS Getting Starter (公開予定) – Terraform BackendやEponaの初期適用をサポートするCLIツール – https://gitlab.com/eponas/epona-aws-starter-cli • Fintan – https://fintan.jp/?p=6330
© 2020 TIS Inc. 6 目次 1. Eponaによって何が解決できるのか 2. 具体的なコンテンツのご紹介
3. SIerの中での困難さとやりがい
© 2020 TIS Inc. 7 これまでの課題 • サービスを動かせる環境の調達や構築に時間がかかる • 素早くサービスを立ち上げたいのに、どのようなクラウドリソースを使ったらよい
のか、組み合わせたらよいのかわからない • サービスの調査や環境の立ち上げに時間がかかる • サービスを立ち上げてはみたものの利用者の評価がわからない • システムの状況が把握できない。ログやデータベースを参照する必要があり、 必要な時にタイムリーに確認できない。 • サービスの価値向上に時間を使いたいのに、 セキュリティパッチ適用や監視構築といった 価値に直結しない作業に時間が吸い取られている • 今の環境がどうやってつくられたのか分からず、サービスの 要求に合わせて変更していくのが難しくなる • 環境構築手順が陳腐化しており、テストや検証などのために 新しく環境を用意することが困難
© 2020 TIS Inc. 8 これまでの課題 • サービスを動かせる環境の調達や構築に時間がかかる • 素早くサービスを立ち上げたいのに、どのようなクラウドリソースを使ったらよい
のか、組み合わせたらよいのかわからない • サービスの調査や環境の立ち上げに時間がかかる • サービスを立ち上げてはみたものの利用者の評価がわからない • システムの状況が把握できない。ログやデータベースを参照する必要があり、 必要な時にタイムリーに確認できない。 • サービスの価値向上に時間を使いたいのに、 セキュリティパッチ適用や監視構築といった 価値に直結しない作業に時間が吸い取られている • 今の環境がどうやってつくられたのか分からず、サービスの 要求に合わせて変更していくのが難しくなる • 環境構築手順が陳腐化しており、テストや検証などのために 新しく環境を用意することが困難
© 2020 TIS Inc. 9 Eponaによって何が解決できるのか
© 2020 TIS Inc. 10 サービスの調査や環境の立ち上げに時間がかかる Eponaによって何が解決できるのか • Eponaの提供するモジュールを適用すれば、「データベース」、「CDパイプライン」、「ログ収 集」といったユースケースを実現できます。
ネットワーク データベース コンテナランタイム フロントエンドランタイム Webアプリケーションファイアウォール ログ収集 仮想セキュアルーム VPC RDS ALB+ECS CloudFront+S3+Lambda@Edge WAF Datadog+Lambda Workspaces+Directory Service ユーザ・権限 IAM 提供する モジュール群 (一部) デプロイメントパイプライン CodePipeline+CodeDeploy CodePipeline+CodeBuild どのクラウドリソースを使い組み合わせたらよいのかわからない サービスを動かせる環境の調達や構築に時間がかかる サービスを動かせる環境の調達や構築に時間がかかる
© 2020 TIS Inc. 11 Eponaによって何が解決できるのか 「Amazon QuickSight の新しい API
とテーマ機能で、分析をさらに進化させる」 (https://aws.amazon.com/jp/blogs/news/evolve-your-analytics-with-amazon-quicksights-new- apis-and-theming-capabilities/)2020年11月13日 23時時点の最新版を取得 サービスを立ち上げてはみたものの利用者の評価がわからない システムの状況が把握できない。必要な時にタイムリーに確認できない • KPIやシステムメトリクスを可視化することによって、リアルタイムにサービスやシステム の状態を把握できるようになります
© 2020 TIS Inc. 12 Eponaによって何が解決できるのか 価値に直結しない作業に時間が吸い取られている 価値に直結しない作業に時間が吸い取られている • マネージドサービスやSaaSを積極的に利用することで、セキュリティパッチ適用、
モニタリングシステムの構築といった作業から開発チームを開放します • それにより、顧客満足度に直結する「魅力的品質」の向上に集中できます 「狩野モデルと商品企画」(https://www.juse.or.jp/departmental/point02/08.html) 2020年11月13日 23時時点の最新版を取得 差別化できない当たり前品質は マネージドサービス、SaaSに任せる • 「作り込む」のではなく、マネージドなサービスを 積極採用。開発チームを「お守り」から解放する • SaaSはEponaで基本的な使い方を ガイディング サービス開発で 集中すべき領域
© 2020 TIS Inc. 13 Eponaによって何が解決できるのか 今の環境の構築方法が分からず、サービスの成⾧に合わせた変更が困難 環境構築手順が陳腐化し、新しく環境を用意することが困難 • どのような操作で当該環境が実現されているのかをコードから追うことができます
• コードレビューやバージョン管理等、これまでのソフトウェアエンジニアリングの知見 がインフラ環境にも適用でき、品質向上に貢献します review discussion $ terraform apply
© 2020 TIS Inc. 14 DevOps環境構築キットで実現できることの一例 無停止でデプロイ可能なパイプライン(※1) サービスの状態を可視化するダッシュボード(※2) Single Page
Application (SPA)を ホストできるフロントエンド環境 コンテナベースのバックエンドアプリケーションを ホストできるバックエンド環境
© 2020 TIS Inc. 15 使い方 1. ユースケースに応じ、使いたいモジュールを選ぶ – Eponaはユースケース毎のモジュール集です
2. モジュールの入力パラメータを設定する – ガイド上の入力パラメータをご参照ください 3. 適用する PJのユースケースに 合わせて選択 Epona • CPUは4つ • メモリは1GB • ヘルスチェックのエンドポイントは /health Etc. ガイド $ terraform apply (snip) apply complete! Resources: 2 added, 0 changed, 0 destroyed.
© 2020 TIS Inc. 16 Eponaのコンセプト • Self-Service – サービスチームの自律性を重視し、サービスチーム自らが開発・運用を行う
ための環境を構築する手段を提供します • Operation-Less – 価値提供に直接結びつかないシステム自体の運用に煩わされることのない よう、SaaS、マネージドサービスを積極的に採用します • Switchable – 環境がサポートする機能はできる限り疎結合にし、サービス開発者による無 効化、別手段への切り替えを容易にします
© 2020 TIS Inc. 17 全体アーキテクチャ (AWS) • AWSのマルチアカウント構成を基本とした環境 –
各自社サービスごとにマルチアカウント環境を構成 • Shared型ではない、サービス固有の環境 Runtime環境 本番環境、ステージング環境等のサービスが稼働する 環境。個々の環境がAWSアカウント1つに対応する Delivery環境 Runtime環境に共通するデリバリの仕組み、 IAMユーザ等を配置する環境 SaaS群 GitLab、Slack or Microsoft Teams、 Datadog、PagerDutyと連携
© 2020 TIS Inc. 18 具体的なコンテンツのご紹介
© 2020 TIS Inc. 19 フロントエンドホスト環境(cacheable_frontend) SPAをホストするフロントエンド用ランタイム • Amazon S3に静的コンテンツを配置
• Amazon CloudFront経由でインターネット公開 • Lambda@Edgeでセキュリティ系ヘッダを付与 See: https://gitlab.com/eponas/epona/-/blob/v0.2.1/guide/patterns/aws/cacheable_frontend.md
© 2020 TIS Inc. 20 フロントエンドコンテンツの継続的デリバリ(cd_pipeline_frontend) SPAの継続的デリバリ • Delivery環境のS3への 静的コンテンツ配置をトリガーに起動
• EventBusでRuntime環境にCWE を伝搬させ、CodePipelineをキック • CodePipeline + CodeBuildで OriginのS3バケットに静的コンテンツ を配置 See: https://gitlab.com/eponas/epona/-/blob/v0.2.1/guide/patterns/aws/cd_pipeline_frontend.md
© 2020 TIS Inc. 21 バックエンドホスト環境(public_traffic_container_service) コンテナ化されたアプリケーションのホスト環境 • AWS Fargateでコンテナをホスト
• 前段にALBを配置 • DNSレコードやSSL/TLS証明書への対応 See: https://gitlab.com/eponas/epona/-/blob/v0.2.1/guide/patterns/aws/public_traffic_container_service.md
© 2020 TIS Inc. 22 サポートするアクティビティ DevOpsを実現するため、以下のアクティビティをサポートします – コミュニケーション –
ITS/BTS – VCS Provider – デプロイメントパイプライン – バックアップ – セキュアな本番アクセス – インフラセキュリティ – モニタリング 各アクティビティの詳細は https://eponas.gitlab.io/epona/guide/activities/をご参照ください
© 2020 TIS Inc. 23 Terraformだけで実現できないこと ガイディングする
© 2020 TIS Inc. 24 Terraformだけで実現できないこと 伝えるしかない
© 2020 TIS Inc. 25 SIerの中での困難さとやりがい
© 2020 TIS Inc. 26 SIとDevOps SIer – 受託開発型中心の情報システム開発 –
多重下請構造 我々が直面しているもの(※個人の感想です) • 求められているシステムを確実かつ効率良く完成する価値 • 求められているものがわからない中で、 それを素早く見つけ改善していく価値 「令和元年版 情報通信白書」 (https://www.soumu.go.jp/johotsusintokei/whitepaper/ja/r01/pdf/index.html) どちらの価値を提供するかで 組織構造も戦略も異なる (bi-modal) 双方への対応 【これまでのSIer】 【これからのSIer】
© 2020 TIS Inc. 27 Eponaの持つ可能性 • Eponaの目指すもの: 迅速・オンデマンドな環境構築 –
DevOpsの促進 – クラウドアーキテクチャのテンプレート集 SIer ・たくさんのプロジェクトの経験 ・多種多様な要件に対応したノウハウ 求められているシステムを 確実かつ効率良く完成する価値 求められているものがわからない中で それを素早く見つけ改善していく価値
© 2020 TIS Inc. 28 生まれたばかりのツールキットですが、 あたたかくその成⾧を見守っていただけるとありがたいです