SlideShare a Scribd company logo
1 of 56
#aadojo
The Twelve-Factor (A|M)pp with C#
2020/02/12 AADojo
@tsubakimoto_s
#aadojo
Yuta Matsumura @tsubakimoto_s
Developer (C#, PHP, Azure)
Microsoft MVP (Development Technologies)
Fukuoka.NET Organizer
Microsoft de:code 2019 Speaker
PHP Conference Fukuoka 2019 Organizer
Currently working for
#aadojo
今日のテーマ
私は The Twelve-Factor App を意識してアプリケーション
アーキテクチャの設計を行っています。
各要素を意識する理由や、 C#/.NET Core を例に各要素の
実装を達成する方法について紹介します。
※ The Twelve-Factor App を「12FA」と表記します。
#aadojo
C# の歴史
バージョン リリース年 主な機能
1.0 2002年 クラス、構造体、インターフェイス
2.0 2005年 ジェネリック、匿名メソッド、null 許容値型
3.0 2007年 自動実装プロパティ、匿名型、LINQ
4.0 2010年 dynamic キーワード
5.0 2012年 非同期 (async, await)
6.0 2015年 自動プロパティ初期化子、文字列補間
7.0 2017年 Tuple、パターンマッチング、ローカル関数
8.0 2019年 null 許容参照型、静的ローカル関数
https://docs.microsoft.com/ja-jp/dotnet/csharp/whats-new/csharp-version-history
#aadojo
C# で使えるフレームワーク
#aadojo
.NET Core
• クロスプラットフォームの実行環境
• Windows, macOS, Linux をサポート
• GitHub で管理されているオープンソースなフレームワーク
• https://try.dot.net/ ←すぐ試せます
#aadojo
.NET Core サポートポリシー
https://qiita.com/tsubakimoto_s/items/73aa31cce1cb662a0de4
※LTS : Long Term Support / 安定版
※Current : 新機能を含むが将来的な変更の可能性あり / 継続的なアップデートが必要
※Maintenance : セキュリティアップデートが提供される
#aadojo
https://12factor.net/ja/
#aadojo
12FA
1. コードベース
2. 依存関係
3. 設定
4. バックエンドサービス
5. ビルド、リリース、実行
6. プロセス
7. ポートバインディング
8. 並行性
9. 廃棄容易性
10.開発/本番一致
11.ログ
12.管理プロセス
#aadojo
なぜ 12FA を意識するのか
拡張性 と 可搬性 を得るため
(Scalability) (Portability)
クラウドを活用した SaaS 開発で
#aadojo
すごく説明しにくいので MindMap にしました
https://github.com/tsubakimoto/12factor
#aadojo
#aadojo
1. コードベース
#aadojo
1. コードベース
• デプロイ対象となるファイルは Git で管理する
• アプリケーションのソースコードや設定ファイル
• 外部サイトの Config ファイル (ex. NuGet.config)
• Infrastructure as Code の構成ファイル、など
#aadojo
Git で設定ファイルを管理するときの注意点
サーバーの接続文字列などの秘匿情報をコミットしない
※特にインターネットでアクセス可能なリポジトリ
#aadojo
Deployment まで繋がる Git サーバー選び
• Git をホスティングできるサービスはたくさんある
• 実行環境への展開まで行うことができるサービスを選定し
たほうが良い
• CI/CD (Continuous Integration, Continuous Delivery)
#aadojo
Deployment まで繋がる Git サーバー選び
サービス CI/CD
GitHub GitHub Actions
GitLab GitLab CI/CD
Bitbucket Bitbucket Pipeline
Azure DevOps Repos Azure DevOps Pipelines
AWS CodeCommit AWS CodePipeline
#aadojo
2. 依存関係
#aadojo
2. 依存関係
• 依存関係を明示的に宣言し分離する
• アプリケーションに必要なライブラリはパッケージ管理シ
ステムを介して利用する
システム全体にインストールされるパッケージが
暗黙的に存在することに依存しない
#aadojo
#aadojo
[C#] .NET Standard でライブラリ共通化
#aadojo
[C#] ライブラリの公開方法
#aadojo
3. 設定
#aadojo
環境ごとに異なる設定値をどこに保管するか
• 環境:開発環境、ステージング環境、本番環境 等
• 環境変数に保管する
• JSON 等のファイルで管理しても良いが、秘匿情報が
コミット対象にならないように注意が必要
• C# では開発環境ではユーザーシークレットに保管し、実行
環境では環境変数に保管し、安全に設定値を管理する
#aadojo
.NET Core のユーザーシークレット機能
<UserSecretsId>MySecret</UserSecretsId>
%APPDATA%¥Microsoft¥UserSecrets¥MySecret¥secrets.json
{ “App:Title”: “AADOJO” }
Secret Manager Configuration["App:Title"]
#aadojo$ dotnet new webapp -n UserSecretSample
$ dotnet user-secrets init
$ dotnet user-secrets set "App:Title" "AADOJO"
// アプリケーション内で設定値を取得する
Console.WriteLine(Configuration["App:Title"]);
$ dotnet run
AADOJO
info: Microsoft.Hosting.Lifetime[0]
Now listening on: https://localhost:5001
...
#aadojo
4. バックエンドサービス
#aadojo
バックエンドサービス
バックエンドサービスをアタッチされたリソースとして扱う。
環境ごとによって接続方法が変わらないようにする。
#aadojo
5. ビルド、リリース、実行
#aadojo
.NET Core CLI
コマンド 機能
dotnet new プロジェクトの新規作成
dotnet restore パッケージの復元
dotnet build プロジェクトのビルド
dotnet run プロジェクトの実行
dotnet test 単体テストの実行
dotnet pack プロジェクトのパッケージ化
dotnet publish
プロジェクトの展開
(=実行形式ファイルの生成)
#aadojo
2種類の展開方法
1. フレームワークに依存する展開方法
• Framework Dependent Deployments (FDD)
• OS にインストール済のランタイムを使って実行する
2. 自己完結型の展開方法
• Self Contained Deployments (SCD)
• 実行に必要なランタイムやライブラリを全て内包する
#aadojo$ dotnet publish --self-contained --configuration Release --runtime win-x64
.NET Core 向け Microsoft (R) Build Engine バージョン 16.4.0+e901037fe
Copyright (C) Microsoft Corporation.All rights reserved.
D:¥tmp¥MyApp¥MyApp.csproj の復元が 414.92 ms で完了しました。
MyApp -> D:¥tmp¥MyApp¥bin¥Release¥netcoreapp3.1¥win-x64¥MyApp.dll
MyApp -> D:¥tmp¥MyApp¥bin¥Release¥netcoreapp3.1¥win-x64¥MyApp.Views.dll
MyApp -> D:¥tmp¥MyApp¥bin¥Release¥netcoreapp3.1¥win-x64¥publish¥
#aadojo
Zipで展開可能
(大半がランタイム)
#aadojo
7. ポートバインディング
#aadojo
ポートバインディング
• ポートバインディングを通してサービスを公開する
• Webアプリケーションとして公開可能な自己完結形式
• ビルトインサーバーがあること
• ASP.NET Core : Kestrel (HTTP(S)/WebSocket/Reverse Proxy)
#aadojo
ASP.NET Core のホスト方式
• Web ホストと 汎用ホストの2種類
• Web ホスト:Web アプリケーションとして実行する構成
• 汎用ホスト:Web 以外のシナリオで同様の初期構成を行う
• ホスト起動時に以下のリソースをカプセル化する
• ミドルウェア、ログプロバイダー、DI、設定値、
HTTP サーバー (Web ホストのみ)
#aadojo
汎用ホスト
#aadojo
Web ホスト
#aadojo
8. 並行性
#aadojo
スケールアウト前提で設計する
• 複数のプロセスで実行する
• PaaS : スケールアウトで複数インスタンス稼働
• Kubernetes : Pod 数を増やす
• ステートフル構成ではデータ不整合が起こる
→データを外部に保管してステートレス構成にする
#aadojo
9. 廃棄容易性
#aadojo
廃棄容易姓
• 廃棄が容易なプロセスとは高速な起動と正確な停止ができ
ること
• コードや設定を素早くデプロイするため
#aadojo
ASP.NET Core での起動と停止のイベント
Microsoft.Extensions.Hosting.IHostApplicationLifetime
イベント トリガー
ApplicationStarted ホストが完全に起動したとき
ApplicationStopped
ホストが正常なシャットダウンを完
了しているとき
ApplicationStopping
ホストが正常なシャットダウンを
行っているとき
#aadojo
ホストが完全に起動したとき
ホストが正常なシャットダウンを完了しているとき
ホストが正常なシャットダウンを行っているとき
#aadojo$ dotnet run
info: Microsoft.Hosting.Lifetime[0]
Now listening on: https://localhost:5001
Application started now...
info: Microsoft.Hosting.Lifetime[0]
Now listening on: http://localhost:5000
info: Microsoft.Hosting.Lifetime[0]
Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
Hosting environment: Development
info: Microsoft.Hosting.Lifetime[0]
Content root path: D:¥tmp¥12factor¥src¥HostApplicationLifetimeSample
Application stopping now...
info: Microsoft.Hosting.Lifetime[0]
Application is shutting down...
Application stopped now...
#aadojo
10. 開発/本番一致
#aadojo
環境ごとのギャップ
• 時間のギャップ
• 開発者が編集したコードが本番に反映されるまで数日、数週間、
時には数ヶ月かかることがある。
• 人材のギャップ
• 開発者が書いたコードを、インフラエンジニアがデプロイする。
• ツールのギャップ
• 本番デプロイではApache、MySQL、Linuxを使うのに、開発者が
Nginx、SQLite、OS Xのようなスタックを使うことがある。
#aadojo
ツールのギャップを埋める
• 開発環境 : PC
• ステージング環境や本番環境 : クラウド
• クラウドのリソースを扱うコードにギャップが出やすい
→エミュレーター等の開発ツールを活用する
⇒異なるのは接続情報(接続文字列)だけにする
#aadojo
Azure のローカル開発ツール
リソース エミュレーター
Storage Account Storage Emulator
Cosmos DB Cosmos Emulator
SQL Database SQL Server Express LocalDB
Bot Service Bot Framework Emulator
#aadojo
11. ログ
#aadojo
ログの出力方法
• ストリームに出力することが好ましい
• 出力先 (コンソールやファイル等) は意識しない
IaaS : 収集~可視化のよくある構成
#aadojo
ASP.NET Core の豊富なログプロバイダー
種別 ログプロバイダー
ビルトイン Microsoft.Extensions.Logging.Console
ビルトイン Microsoft.Extensions.Logging.Debug
ビルトイン Microsoft.Extensions.Logging.EventSource
ビルトイン Microsoft.Extensions.Logging.TraceSource
ビルトイン Microsoft.Extensions.Logging.AzureAppServices
ビルトイン Microsoft.Extensions.Logging.ApplicationInsights
サードパーティ Log4Net
サードパーティ NLog
サードパーティ SeriLog
#aadojo
12. 管理プロセス
#aadojo
管理タスクを1回限りのプロセスとして実行する
• アプリケーションを管理するためのタスク
• DB マイグレーション
• REPL シェル
• dotnet interactive ←New!!
https://devblogs.microsoft.com/dotnet/net-interactive-is-here-net-notebooks-preview-2/
#aadojo
DBマイグレーション
• .NET Core では Entity Framework Core を O/Rマッパーと
して利用できる
• dotnet ef コマンドでマイグレーションファイルの管理や
データベースのマイグレーションを実行できる
#aadojo
まとめ
• 12FA を意識するのは拡張性と可搬性を得るため
• ”ステートレス”を重視する要素が多い
→最低限のステートレス設計となる
• .NET Core の基本機能で実装できることが多い
→クラウドを組み合わせることで品質を高める

More Related Content

What's hot

サーバーレスやマイクロサービスへの"チャレンジ"を後押ししてくれるセッションを紹介
サーバーレスやマイクロサービスへの"チャレンジ"を後押ししてくれるセッションを紹介サーバーレスやマイクロサービスへの"チャレンジ"を後押ししてくれるセッションを紹介
サーバーレスやマイクロサービスへの"チャレンジ"を後押ししてくれるセッションを紹介Yuta Matsumura
 
Xamarinでも有能な .NET Core
 Xamarinでも有能な .NET Core  Xamarinでも有能な .NET Core
Xamarinでも有能な .NET Core Yuta Matsumura
 
Blazor Server テンプレート解説
Blazor Server テンプレート解説Blazor Server テンプレート解説
Blazor Server テンプレート解説Yuta Matsumura
 
オルターブースが実践する .NET Core “ガチ” 開発
オルターブースが実践する .NET Core “ガチ” 開発オルターブースが実践する .NET Core “ガチ” 開発
オルターブースが実践する .NET Core “ガチ” 開発Yuta Matsumura
 
これから始める Bot Builder 開発のコツと舞台裏
これから始める Bot Builder 開発のコツと舞台裏これから始める Bot Builder 開発のコツと舞台裏
これから始める Bot Builder 開発のコツと舞台裏Yuta Matsumura
 
PHPerだってサーバーレスしたい!
PHPerだってサーバーレスしたい!PHPerだってサーバーレスしたい!
PHPerだってサーバーレスしたい!Yuta Matsumura
 
Write slides and books in VSCode + Markdown
Write slides and books in VSCode + MarkdownWrite slides and books in VSCode + Markdown
Write slides and books in VSCode + Markdownロフト くん
 
改めて C# でできることを振り返る
改めて C# でできることを振り返る改めて C# でできることを振り返る
改めて C# でできることを振り返るYuta Matsumura
 
忙しい人のための .NET Conf 2019 まとめ
忙しい人のための .NET Conf 2019 まとめ忙しい人のための .NET Conf 2019 まとめ
忙しい人のための .NET Conf 2019 まとめYuta Matsumura
 
.NET 最新ロードマップと今押さえておきたい技術要素
.NET 最新ロードマップと今押さえておきたい技術要素.NET 最新ロードマップと今押さえておきたい技術要素
.NET 最新ロードマップと今押さえておきたい技術要素Akira Inoue
 
オンライン中心だから地方のコミュニティも見てみませんか? - Fukuoka.NETの紹介
オンライン中心だから地方のコミュニティも見てみませんか? - Fukuoka.NETの紹介オンライン中心だから地方のコミュニティも見てみませんか? - Fukuoka.NETの紹介
オンライン中心だから地方のコミュニティも見てみませんか? - Fukuoka.NETの紹介Yuta Matsumura
 
”試してみた”で終わらない サーバーレスアプリケーションの実践開発
”試してみた”で終わらない サーバーレスアプリケーションの実践開発”試してみた”で終わらない サーバーレスアプリケーションの実践開発
”試してみた”で終わらない サーバーレスアプリケーションの実践開発Yuta Matsumura
 
Introduction to VSCode
Introduction to VSCodeIntroduction to VSCode
Introduction to VSCodeYuki Igarashi
 
デモで楽しむ Visual Studio 2022 & .NET 6 最新アップデート
デモで楽しむ Visual Studio 2022 & .NET 6 最新アップデートデモで楽しむ Visual Studio 2022 & .NET 6 最新アップデート
デモで楽しむ Visual Studio 2022 & .NET 6 最新アップデートAkira Inoue
 
そろそろレガシーな.Net開発をやめなイカ?
そろそろレガシーな.Net開発をやめなイカ?そろそろレガシーな.Net開発をやめなイカ?
そろそろレガシーな.Net開発をやめなイカ?Yuta Matsumura
 
【BS3】Visual Studio 2022 と .NET 6 での Windows アプリ開発技術の紹介
【BS3】Visual Studio 2022 と .NET 6 での Windows アプリ開発技術の紹介 【BS3】Visual Studio 2022 と .NET 6 での Windows アプリ開発技術の紹介
【BS3】Visual Studio 2022 と .NET 6 での Windows アプリ開発技術の紹介 日本マイクロソフト株式会社
 
Dotnetcore30forwindesktop
Dotnetcore30forwindesktopDotnetcore30forwindesktop
Dotnetcore30forwindesktopru pic
 
【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること
【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること 【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること
【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること 日本マイクロソフト株式会社
 

What's hot (20)

サーバーレスやマイクロサービスへの"チャレンジ"を後押ししてくれるセッションを紹介
サーバーレスやマイクロサービスへの"チャレンジ"を後押ししてくれるセッションを紹介サーバーレスやマイクロサービスへの"チャレンジ"を後押ししてくれるセッションを紹介
サーバーレスやマイクロサービスへの"チャレンジ"を後押ししてくれるセッションを紹介
 
Xamarinでも有能な .NET Core
 Xamarinでも有能な .NET Core  Xamarinでも有能な .NET Core
Xamarinでも有能な .NET Core
 
Blazor Server テンプレート解説
Blazor Server テンプレート解説Blazor Server テンプレート解説
Blazor Server テンプレート解説
 
オルターブースが実践する .NET Core “ガチ” 開発
オルターブースが実践する .NET Core “ガチ” 開発オルターブースが実践する .NET Core “ガチ” 開発
オルターブースが実践する .NET Core “ガチ” 開発
 
これから始める Bot Builder 開発のコツと舞台裏
これから始める Bot Builder 開発のコツと舞台裏これから始める Bot Builder 開発のコツと舞台裏
これから始める Bot Builder 開発のコツと舞台裏
 
Azure Functions Tips
Azure Functions TipsAzure Functions Tips
Azure Functions Tips
 
PHPerだってサーバーレスしたい!
PHPerだってサーバーレスしたい!PHPerだってサーバーレスしたい!
PHPerだってサーバーレスしたい!
 
Write slides and books in VSCode + Markdown
Write slides and books in VSCode + MarkdownWrite slides and books in VSCode + Markdown
Write slides and books in VSCode + Markdown
 
改めて C# でできることを振り返る
改めて C# でできることを振り返る改めて C# でできることを振り返る
改めて C# でできることを振り返る
 
忙しい人のための .NET Conf 2019 まとめ
忙しい人のための .NET Conf 2019 まとめ忙しい人のための .NET Conf 2019 まとめ
忙しい人のための .NET Conf 2019 まとめ
 
.NET Coreのいろは
.NET Coreのいろは.NET Coreのいろは
.NET Coreのいろは
 
.NET 最新ロードマップと今押さえておきたい技術要素
.NET 最新ロードマップと今押さえておきたい技術要素.NET 最新ロードマップと今押さえておきたい技術要素
.NET 最新ロードマップと今押さえておきたい技術要素
 
オンライン中心だから地方のコミュニティも見てみませんか? - Fukuoka.NETの紹介
オンライン中心だから地方のコミュニティも見てみませんか? - Fukuoka.NETの紹介オンライン中心だから地方のコミュニティも見てみませんか? - Fukuoka.NETの紹介
オンライン中心だから地方のコミュニティも見てみませんか? - Fukuoka.NETの紹介
 
”試してみた”で終わらない サーバーレスアプリケーションの実践開発
”試してみた”で終わらない サーバーレスアプリケーションの実践開発”試してみた”で終わらない サーバーレスアプリケーションの実践開発
”試してみた”で終わらない サーバーレスアプリケーションの実践開発
 
Introduction to VSCode
Introduction to VSCodeIntroduction to VSCode
Introduction to VSCode
 
デモで楽しむ Visual Studio 2022 & .NET 6 最新アップデート
デモで楽しむ Visual Studio 2022 & .NET 6 最新アップデートデモで楽しむ Visual Studio 2022 & .NET 6 最新アップデート
デモで楽しむ Visual Studio 2022 & .NET 6 最新アップデート
 
そろそろレガシーな.Net開発をやめなイカ?
そろそろレガシーな.Net開発をやめなイカ?そろそろレガシーな.Net開発をやめなイカ?
そろそろレガシーな.Net開発をやめなイカ?
 
【BS3】Visual Studio 2022 と .NET 6 での Windows アプリ開発技術の紹介
【BS3】Visual Studio 2022 と .NET 6 での Windows アプリ開発技術の紹介 【BS3】Visual Studio 2022 と .NET 6 での Windows アプリ開発技術の紹介
【BS3】Visual Studio 2022 と .NET 6 での Windows アプリ開発技術の紹介
 
Dotnetcore30forwindesktop
Dotnetcore30forwindesktopDotnetcore30forwindesktop
Dotnetcore30forwindesktop
 
【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること
【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること 【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること
【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること
 

Similar to The Twelve-Factor (A|M)pp with C#

.NET Coreとツール類の今
.NET Coreとツール類の今.NET Coreとツール類の今
.NET Coreとツール類の今Yuki Igarashi
 
.NET Core と Container, そして Azure Web Apps on Linux による Web アプリ開発最前線
.NET Core と Container, そして Azure Web Apps on Linux による Web アプリ開発最前線.NET Core と Container, そして Azure Web Apps on Linux による Web アプリ開発最前線
.NET Core と Container, そして Azure Web Apps on Linux による Web アプリ開発最前線Akira Inoue
 
[TL04] .NET 15 周年の今こそ考えるクラウドネイティブ アプリケーションと .NET の活用
[TL04] .NET 15 周年の今こそ考えるクラウドネイティブ アプリケーションと .NET の活用[TL04] .NET 15 周年の今こそ考えるクラウドネイティブ アプリケーションと .NET の活用
[TL04] .NET 15 周年の今こそ考えるクラウドネイティブ アプリケーションと .NET の活用de:code 2017
 
WPF & Windows Forms on .NET Core 3.0
WPF & Windows Forms on .NET Core 3.0WPF & Windows Forms on .NET Core 3.0
WPF & Windows Forms on .NET Core 3.0ShinichiAoyagi
 
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Codeどっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio CodeTakashi Okawa
 
Dev camp2012jpn day2special
Dev camp2012jpn day2specialDev camp2012jpn day2special
Dev camp2012jpn day2specialKatsuhito Katoh
 
Developr Camp 2012 Japan Fall Day2 Special Session - Visual Studio 2012 で始める ...
Developr Camp 2012 Japan Fall Day2 Special Session - Visual Studio 2012 で始める ...Developr Camp 2012 Japan Fall Day2 Special Session - Visual Studio 2012 で始める ...
Developr Camp 2012 Japan Fall Day2 Special Session - Visual Studio 2012 で始める ...Developer Camp 2012 Japan Fall
 
2015 0227 OSC-Spring Tokyo NETMF
2015 0227 OSC-Spring Tokyo NETMF2015 0227 OSC-Spring Tokyo NETMF
2015 0227 OSC-Spring Tokyo NETMFAtomu Hidaka
 
.NET Coreから概観する.NETのOSSへの取り組み
.NET Coreから概観する.NETのOSSへの取り組み.NET Coreから概観する.NETのOSSへの取り組み
.NET Coreから概観する.NETのOSSへの取り組みKouji Matsui
 
DEV-002_.NET Core/ASP.NET Core が実現するクロスプラットフォーム .NET の今と未来
DEV-002_.NET Core/ASP.NET Core が実現するクロスプラットフォーム .NET の今と未来DEV-002_.NET Core/ASP.NET Core が実現するクロスプラットフォーム .NET の今と未来
DEV-002_.NET Core/ASP.NET Core が実現するクロスプラットフォーム .NET の今と未来decode2016
 
.NET Core 5 ~ Windows, Linux, OS X そして Docker まで ~
.NET Core 5 ~ Windows, Linux, OS X そして Docker まで ~.NET Core 5 ~ Windows, Linux, OS X そして Docker まで ~
.NET Core 5 ~ Windows, Linux, OS X そして Docker まで ~Akira Inoue
 
OSSコンソーシアム 開発基盤部会 2018年度 活動方針・部会紹介
OSSコンソーシアム 開発基盤部会 2018年度 活動方針・部会紹介OSSコンソーシアム 開発基盤部会 2018年度 活動方針・部会紹介
OSSコンソーシアム 開発基盤部会 2018年度 活動方針・部会紹介Daisuke Nishino
 
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)NTT DATA Technology & Innovation
 
Hardware control by .NET Core 3.1
Hardware control by .NET Core 3.1Hardware control by .NET Core 3.1
Hardware control by .NET Core 3.1Atomu Hidaka
 
【16-D-4】3分ではじめるスマホアプリのビジュアル開発
【16-D-4】3分ではじめるスマホアプリのビジュアル開発【16-D-4】3分ではじめるスマホアプリのビジュアル開発
【16-D-4】3分ではじめるスマホアプリのビジュアル開発hmimura_embarcadero
 
Android studio で行ってみよう!!
Android studio で行ってみよう!!Android studio で行ってみよう!!
Android studio で行ってみよう!!Kazuaki Ueda
 
【de:code 2020】 Build 2020 最新情報 〜 Azure & Visual Studio & .NET 〜
【de:code 2020】 Build 2020 最新情報 〜 Azure & Visual Studio & .NET 〜【de:code 2020】 Build 2020 最新情報 〜 Azure & Visual Studio & .NET 〜
【de:code 2020】 Build 2020 最新情報 〜 Azure & Visual Studio & .NET 〜日本マイクロソフト株式会社
 
新しい Visual Studio & .NET と新時代のアーキテクチャ
新しい Visual Studio & .NET と新時代のアーキテクチャ新しい Visual Studio & .NET と新時代のアーキテクチャ
新しい Visual Studio & .NET と新時代のアーキテクチャ慎一 古賀
 

Similar to The Twelve-Factor (A|M)pp with C# (20)

.NET Coreとツール類の今
.NET Coreとツール類の今.NET Coreとツール類の今
.NET Coreとツール類の今
 
.NET Core と Container, そして Azure Web Apps on Linux による Web アプリ開発最前線
.NET Core と Container, そして Azure Web Apps on Linux による Web アプリ開発最前線.NET Core と Container, そして Azure Web Apps on Linux による Web アプリ開発最前線
.NET Core と Container, そして Azure Web Apps on Linux による Web アプリ開発最前線
 
[TL04] .NET 15 周年の今こそ考えるクラウドネイティブ アプリケーションと .NET の活用
[TL04] .NET 15 周年の今こそ考えるクラウドネイティブ アプリケーションと .NET の活用[TL04] .NET 15 周年の今こそ考えるクラウドネイティブ アプリケーションと .NET の活用
[TL04] .NET 15 周年の今こそ考えるクラウドネイティブ アプリケーションと .NET の活用
 
WPF & Windows Forms on .NET Core 3.0
WPF & Windows Forms on .NET Core 3.0WPF & Windows Forms on .NET Core 3.0
WPF & Windows Forms on .NET Core 3.0
 
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Codeどっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
 
Dev camp2012jpn day2special
Dev camp2012jpn day2specialDev camp2012jpn day2special
Dev camp2012jpn day2special
 
Developr Camp 2012 Japan Fall Day2 Special Session - Visual Studio 2012 で始める ...
Developr Camp 2012 Japan Fall Day2 Special Session - Visual Studio 2012 で始める ...Developr Camp 2012 Japan Fall Day2 Special Session - Visual Studio 2012 で始める ...
Developr Camp 2012 Japan Fall Day2 Special Session - Visual Studio 2012 で始める ...
 
2015 0227 OSC-Spring Tokyo NETMF
2015 0227 OSC-Spring Tokyo NETMF2015 0227 OSC-Spring Tokyo NETMF
2015 0227 OSC-Spring Tokyo NETMF
 
.NET Coreから概観する.NETのOSSへの取り組み
.NET Coreから概観する.NETのOSSへの取り組み.NET Coreから概観する.NETのOSSへの取り組み
.NET Coreから概観する.NETのOSSへの取り組み
 
DEV-002_.NET Core/ASP.NET Core が実現するクロスプラットフォーム .NET の今と未来
DEV-002_.NET Core/ASP.NET Core が実現するクロスプラットフォーム .NET の今と未来DEV-002_.NET Core/ASP.NET Core が実現するクロスプラットフォーム .NET の今と未来
DEV-002_.NET Core/ASP.NET Core が実現するクロスプラットフォーム .NET の今と未来
 
.NET Core 5 ~ Windows, Linux, OS X そして Docker まで ~
.NET Core 5 ~ Windows, Linux, OS X そして Docker まで ~.NET Core 5 ~ Windows, Linux, OS X そして Docker まで ~
.NET Core 5 ~ Windows, Linux, OS X そして Docker まで ~
 
OSSコンソーシアム 開発基盤部会 2018年度 活動方針・部会紹介
OSSコンソーシアム 開発基盤部会 2018年度 活動方針・部会紹介OSSコンソーシアム 開発基盤部会 2018年度 活動方針・部会紹介
OSSコンソーシアム 開発基盤部会 2018年度 活動方針・部会紹介
 
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
 
Hardware control by .NET Core 3.1
Hardware control by .NET Core 3.1Hardware control by .NET Core 3.1
Hardware control by .NET Core 3.1
 
【16-D-4】3分ではじめるスマホアプリのビジュアル開発
【16-D-4】3分ではじめるスマホアプリのビジュアル開発【16-D-4】3分ではじめるスマホアプリのビジュアル開発
【16-D-4】3分ではじめるスマホアプリのビジュアル開発
 
ZendStudioのご紹介
ZendStudioのご紹介ZendStudioのご紹介
ZendStudioのご紹介
 
Android studio で行ってみよう!!
Android studio で行ってみよう!!Android studio で行ってみよう!!
Android studio で行ってみよう!!
 
【de:code 2020】 Build 2020 最新情報 〜 Azure & Visual Studio & .NET 〜
【de:code 2020】 Build 2020 最新情報 〜 Azure & Visual Studio & .NET 〜【de:code 2020】 Build 2020 最新情報 〜 Azure & Visual Studio & .NET 〜
【de:code 2020】 Build 2020 最新情報 〜 Azure & Visual Studio & .NET 〜
 
新しい Visual Studio & .NET と新時代のアーキテクチャ
新しい Visual Studio & .NET と新時代のアーキテクチャ新しい Visual Studio & .NET と新時代のアーキテクチャ
新しい Visual Studio & .NET と新時代のアーキテクチャ
 
Node-RED v2.0新機能紹介
Node-RED v2.0新機能紹介Node-RED v2.0新機能紹介
Node-RED v2.0新機能紹介
 

More from Yuta Matsumura

「自分のとこでは動くけど…」を無くす devcontainer
「自分のとこでは動くけど…」を無くす devcontainer「自分のとこでは動くけど…」を無くす devcontainer
「自分のとこでは動くけど…」を無くす devcontainerYuta Matsumura
 
チーム開発で徐々にコード品質をあげていく取り組み
チーム開発で徐々にコード品質をあげていく取り組みチーム開発で徐々にコード品質をあげていく取り組み
チーム開発で徐々にコード品質をあげていく取り組みYuta Matsumura
 
.NETのサポートポリシーのおさらい #csharptokyo
.NETのサポートポリシーのおさらい #csharptokyo.NETのサポートポリシーのおさらい #csharptokyo
.NETのサポートポリシーのおさらい #csharptokyoYuta Matsumura
 
App Modernization for .NET
App Modernization for .NETApp Modernization for .NET
App Modernization for .NETYuta Matsumura
 
分かったうえではじめるCI/CD
分かったうえではじめるCI/CD分かったうえではじめるCI/CD
分かったうえではじめるCI/CDYuta Matsumura
 
VSCodeで始めるAzure Static Web Apps開発
VSCodeで始めるAzure Static Web Apps開発VSCodeで始めるAzure Static Web Apps開発
VSCodeで始めるAzure Static Web Apps開発Yuta Matsumura
 
Azure の ID 管理サービスに LINE ログインを組み込もう
Azure の ID 管理サービスに LINE ログインを組み込もうAzure の ID 管理サービスに LINE ログインを組み込もう
Azure の ID 管理サービスに LINE ログインを組み込もうYuta Matsumura
 
スタートアップ企業が実践するクラウドネイティブアプリケーションの開発手法
スタートアップ企業が実践するクラウドネイティブアプリケーションの開発手法スタートアップ企業が実践するクラウドネイティブアプリケーションの開発手法
スタートアップ企業が実践するクラウドネイティブアプリケーションの開発手法Yuta Matsumura
 
.NET Conf の歩き方
.NET Conf の歩き方.NET Conf の歩き方
.NET Conf の歩き方Yuta Matsumura
 
PHPカンファレンス福岡2019 閉会式
PHPカンファレンス福岡2019 閉会式PHPカンファレンス福岡2019 閉会式
PHPカンファレンス福岡2019 閉会式Yuta Matsumura
 
PHPカンファレンス福岡2019 開会式
PHPカンファレンス福岡2019 開会式PHPカンファレンス福岡2019 開会式
PHPカンファレンス福岡2019 開会式Yuta Matsumura
 
ASP.NET Core 2.x Identityについて
ASP.NET Core 2.x IdentityについてASP.NET Core 2.x Identityについて
ASP.NET Core 2.x IdentityについてYuta Matsumura
 
イケてる技術で品質を担保しつつスピード感のある開発を実現する冴えたやり方
イケてる技術で品質を担保しつつスピード感のある開発を実現する冴えたやり方イケてる技術で品質を担保しつつスピード感のある開発を実現する冴えたやり方
イケてる技術で品質を担保しつつスピード感のある開発を実現する冴えたやり方Yuta Matsumura
 
サーバーレスの常識を覆す Azure Durable Functionsを使い倒す
サーバーレスの常識を覆す Azure Durable Functionsを使い倒すサーバーレスの常識を覆す Azure Durable Functionsを使い倒す
サーバーレスの常識を覆す Azure Durable Functionsを使い倒すYuta Matsumura
 
娘駆動開発で活躍するAzureのサーバーレスサービス
娘駆動開発で活躍するAzureのサーバーレスサービス娘駆動開発で活躍するAzureのサーバーレスサービス
娘駆動開発で活躍するAzureのサーバーレスサービスYuta Matsumura
 

More from Yuta Matsumura (15)

「自分のとこでは動くけど…」を無くす devcontainer
「自分のとこでは動くけど…」を無くす devcontainer「自分のとこでは動くけど…」を無くす devcontainer
「自分のとこでは動くけど…」を無くす devcontainer
 
チーム開発で徐々にコード品質をあげていく取り組み
チーム開発で徐々にコード品質をあげていく取り組みチーム開発で徐々にコード品質をあげていく取り組み
チーム開発で徐々にコード品質をあげていく取り組み
 
.NETのサポートポリシーのおさらい #csharptokyo
.NETのサポートポリシーのおさらい #csharptokyo.NETのサポートポリシーのおさらい #csharptokyo
.NETのサポートポリシーのおさらい #csharptokyo
 
App Modernization for .NET
App Modernization for .NETApp Modernization for .NET
App Modernization for .NET
 
分かったうえではじめるCI/CD
分かったうえではじめるCI/CD分かったうえではじめるCI/CD
分かったうえではじめるCI/CD
 
VSCodeで始めるAzure Static Web Apps開発
VSCodeで始めるAzure Static Web Apps開発VSCodeで始めるAzure Static Web Apps開発
VSCodeで始めるAzure Static Web Apps開発
 
Azure の ID 管理サービスに LINE ログインを組み込もう
Azure の ID 管理サービスに LINE ログインを組み込もうAzure の ID 管理サービスに LINE ログインを組み込もう
Azure の ID 管理サービスに LINE ログインを組み込もう
 
スタートアップ企業が実践するクラウドネイティブアプリケーションの開発手法
スタートアップ企業が実践するクラウドネイティブアプリケーションの開発手法スタートアップ企業が実践するクラウドネイティブアプリケーションの開発手法
スタートアップ企業が実践するクラウドネイティブアプリケーションの開発手法
 
.NET Conf の歩き方
.NET Conf の歩き方.NET Conf の歩き方
.NET Conf の歩き方
 
PHPカンファレンス福岡2019 閉会式
PHPカンファレンス福岡2019 閉会式PHPカンファレンス福岡2019 閉会式
PHPカンファレンス福岡2019 閉会式
 
PHPカンファレンス福岡2019 開会式
PHPカンファレンス福岡2019 開会式PHPカンファレンス福岡2019 開会式
PHPカンファレンス福岡2019 開会式
 
ASP.NET Core 2.x Identityについて
ASP.NET Core 2.x IdentityについてASP.NET Core 2.x Identityについて
ASP.NET Core 2.x Identityについて
 
イケてる技術で品質を担保しつつスピード感のある開発を実現する冴えたやり方
イケてる技術で品質を担保しつつスピード感のある開発を実現する冴えたやり方イケてる技術で品質を担保しつつスピード感のある開発を実現する冴えたやり方
イケてる技術で品質を担保しつつスピード感のある開発を実現する冴えたやり方
 
サーバーレスの常識を覆す Azure Durable Functionsを使い倒す
サーバーレスの常識を覆す Azure Durable Functionsを使い倒すサーバーレスの常識を覆す Azure Durable Functionsを使い倒す
サーバーレスの常識を覆す Azure Durable Functionsを使い倒す
 
娘駆動開発で活躍するAzureのサーバーレスサービス
娘駆動開発で活躍するAzureのサーバーレスサービス娘駆動開発で活躍するAzureのサーバーレスサービス
娘駆動開発で活躍するAzureのサーバーレスサービス
 

Recently uploaded

Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Hiroshi Tomioka
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 

Recently uploaded (11)

Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 

The Twelve-Factor (A|M)pp with C#