|
1 | 1 | ## Title |
2 | 2 |
|
3 | | -サービス vs. ライブラリー |
| 3 | +サービス対ライブラリー |
4 | 4 |
|
5 | 5 | ## Patlet |
6 | 6 |
|
7 | | -DevOps環境のチームは、サービスのダウンタイムに誰が対応するのかが曖昧なため、チームの境界を越えて共通のコードベースで作業することに消極的かもしれません。解決策としては、同じサービスを独立した環境で展開し、サービスダウン時のエスカレーションを別々に行うか、多くの共有コードを1つのライブラリにまとめて、その上でコラボレーションすることが可能な場合が多いことを認識することです。 |
| 7 | +DevOps環境のチームは、サービスのダウンタイムに対応する責任が誰にあるのかが曖昧になるため、チームの境界を越えて共通のコードベースで作業することに消極的になる場合があります。解決策としては、同じサービスを独立した環境で展開し、サービスダウン時のエスカレーション・チェーンを別々に構築するか、多くの共有コードを1つのライブラリに集約し、その上で共同作業を行うことが挙げられます。 |
8 | 8 |
|
9 | 9 | ## 問題 |
10 | 10 |
|
11 | | -DevOps環境で作業しているチームは、開発者が機能のエンドツーエンドに責任を持ちます。顧客からデプロイメント、メンテナンス、サポートに至るまでです。これは、チームの境界を越えて作業する際に課題となります。エスカレーションチェーンは、どちらのチームでも発生するエラーに対して同じであるとは限りません。ソースコードとデプロイメントを結合すると、エラーが発生した場合に誰がオンコールサポートの責任を負うのかという疑問がチームに残ります。その結果、要件に大きな重複がある場合でも、チームは協力し合うことに消極的になる。 |
| 11 | +チームがDevOps環境で作業しているとき、開発者は機能をエンドツーエンドで担当することになります。顧客からデプロイメント、メンテナンス、サポートに至るまでです。このことは、チームの境界を越えて作業する際に課題となります。エスカレーションチェーンは、どちらのチームでも発生するエラーに対して同じではないかもしれません。ソースコードとデプロイメントを結合すると、エラーが発生した場合に誰がオンコールサポートの責任を負うのかという疑問がチームに残ります。その結果、要件に大きな重複がある場合でも、チームは協力し合うことに消極的になってしまいます。 |
12 | 12 |
|
13 | 13 | ## 状況 |
14 | 14 |
|
15 | | -* チームはマイクロサービス環境で働いている。 |
16 | | -* 完全に機能する DevOps チームに編成されている。各チームは、メンテナンス、オンコール、カスタマーサポートを含むエンドツーエンドのコントリビューションに責任がある。 |
17 | | -* あるチームは、他のチームが構築した既存のサービスとよく似たサービスを下流の顧客に提供することを任務としている。 |
| 15 | +* チームはマイクロサービス環境で働いています。 |
| 16 | +* チームは完全に機能する DevOps チームによって編成されています。各チームは、メンテナンス、オンコール、カスタマーサポートを含むエンドツーエンドのコントリビューションに責任があります。 |
| 17 | +* あるチームは、他のチームが構築した既存のサービスとよく似たサービスを下流の顧客に提供することを任務としています。 |
18 | 18 |
|
19 | 19 | ## ブロッカーとなりうるちから (Forces) |
20 | 20 |
|
21 | | -* 組織的なエスカレーション経路は、各チームで異なる可能性がある。 |
22 | | -* 各チームのメンバーは、自分たちの下流顧客に影響を与えないエ ラーについてはオンコールサポートに応じない可能性がある。 |
23 | | -* 同じ種類のエラーでも、チームや顧客との関係によって SLA の定義が異なるため、深刻度レベルが異なる場合がある。 |
24 | | -* チームによって、セキュリティや規制の制約が異なる場合がある。 |
| 21 | +* 組織的なエスカレーション経路は、各チームで異なる可能性があります。 |
| 22 | +* 各チームのメンバーは、自分たちの顧客に影響を与えないエラーのオンコールサポートに応じないことがあります。 |
| 23 | +* 同じ種類のエラーでも、チームや顧客との関係によって SLA の定義が異なるため、深刻度レベルが異なる場合があります。 |
| 24 | +* チームによって、セキュリティや規制の制約が異なる場合があります。 |
25 | 25 |
|
26 | 26 | ## ソリューション |
27 | 27 |
|
28 | | -ソースコードとデプロイの責任を切り離す。両チームは、重複する部分や相乗効果がある部分を正確に特定するよう努力する。 |
| 28 | +ソースコードとデプロイメントの責任を切り離します。両チームは、重複と相乗効果がある場所を正確に特定するために働きます。 |
29 | 29 |
|
30 | | -共有されたソースコードのみが、InnerSourceプロジェクトの一部として、共有された責任で保持されます。共有ソースは、すべてのテストコード(可能であれば統合テストを含む)と、コントリビューションの検証を容易にするために可能な限りCIパイプラインを含むという点で、首尾一貫している必要があります。 |
| 30 | +共有されたソースコードのみが、責任を共有したインナーソースプロジェクトの一部として保持されます。共有ソースは、すべてのテストコード(可能であれば統合テストを含む)と、コントリビューションの検証を容易にするために可能な限りCIパイプラインを含むという点で、首尾一貫している必要があります。 |
31 | 31 |
|
32 | | -設定とデプロイのパイプラインを、実際のビジネスロジックから切り離す。 2番目のチーム用に、サービスの2番目のデプロイメントを確立する。 |
| 32 | +設定とデプロイのパイプラインを、実際のビジネスロジックから切り離します。 |
| 33 | +共有したチーム用に、サービスの2つめのデプロイメントを確立します。 |
33 | 34 |
|
34 | | -共通基盤を、両チームで使用するライブラリとして扱い、コードの所有権を共有する。 |
| 35 | +共通基盤を、両チームで使用するライブラリとして扱い、コードの所有権を共有します。 |
35 | 36 |
|
36 | | -デプロイメント設定は、InnerSourceポートフォリオに別のプロジェクトとして含めることができ、チームが議論/コラボレーションしたり、新しいチームがそれをコピーしたりできるようにすることができます。 |
| 37 | +デプロイメント設定をインナーソースポートフォリオの別プロジェクトとして含めることで、チームが議論/共同作業を行ったり、新しいチームがそれをコピーしたりすることができるようになります。 |
37 | 38 |
|
38 | 39 | ## 結果の状況 |
39 | 40 |
|
40 | | -チームは、ビジネスロジックを実装する作業を共有することで恩恵を受け、コラボレーションすることを望んでいます。 |
| 41 | +チームは積極的に協力し、ビジネスロジックを実装する作業を共有することで利益を得ることができます。 |
41 | 42 |
|
42 | | -元々ある環境で動作するように特別に作られたサービスが、特定のビジネス要件に基づいて、より一般的なソリューションに変換されます。 |
| 43 | +ある環境で動作するように特別に構築されたサービスが、特定のビジネス要件に基づき、より一般的なソリューションに変換されます。 |
43 | 44 |
|
44 | | -両チームは、それぞれのエスカレーションポリシーと展開設定を知ることができ、自分たちの設定に対する改善点を見出すことができる可能性がある。 |
| 45 | +両チームは、それぞれのエスカレーションポリシーと展開設定を知ることができ、自分たちの設定に対する改善点を見出すことができる可能性があります。 |
45 | 46 |
|
46 | 47 | 共有されたソースコードに変更が必要な可能性が高まり、実装を改良、改善、最適化する機会がより頻繁に発生するようになる。 |
47 | 48 |
|
48 | 49 | リリースのパッケージング、遠隔測定、ヘルス/レディネス エンドポイントなど、運用の標準化を段階的に進めることができるようになります。 |
49 | 50 |
|
50 | 51 | ## See also |
51 | 52 |
|
52 | | -Related to this pattern is the [30 Day Warranty](30-day-warranty.md) pattern that takes a different approach to solving the forces described above. |
| 53 | +このパターンに関連するものとして、上記を解決するために異なるアプローチをとる[30日の保証期間](30-day-warranty.md) パターンがあります。 |
53 | 54 |
|
54 | 55 | ## 事例 |
55 | 56 |
|
56 | 57 | * ユーロスペース AG |
57 | | -* Flutter Entertainment: Flutter InnerSourceアプリケーション](https://innersource.flutter.com/start/setup-ci/)は、チーム横断的にコントリビュートする共有コード「サービス」リポジトリと、共有リリース成果物をビルドして公開するCIパイプラインを備えています。各チームは独自のデプロイメントを定義する "デプロイメント設定 "リポジトリを持っています。これは、ビジネスのさまざまな領域におけるさまざまな規制要件、サービスおよびインシデント管理の実践、インフラストラクチャのスキルセットによって駆動されます。 |
| 58 | +* Flutter Entertainment: |
| 59 | +* |
| 60 | +[Flutter インナーソースの応用](https://innersource.flutter.com/start/setup-ci/)には、チーム横断的にコントリビュートする共有コードの"サービスリポジトリ"と、共有リリース成果物をビルドして公開するためのCIパイプラインがあります。各チームは、独自のデプロイメントを定義する"デプロイメント設定"リポジトリを持っています。これは、さまざまな規制要件、サービスおよびインシデント管理の実践、ビジネスの各領域におけるインフラストラクチャのスキルセットによって異なる運用がされています。 |
58 | 61 |
|
59 | 62 | ## ステータス |
60 | 63 |
|
61 | 64 | * Structured |
62 | 65 |
|
63 | | -## 著者(s) |
| 66 | +## 著者 |
64 | 67 |
|
65 | 68 | * Isabel Drost-Fromm |
66 | 69 | * Rob Tuley |
67 | 70 |
|
68 | 71 | ## 謝辞 |
69 | 72 |
|
70 | | -Thank you Tobias Gesellchen for review internal to Europace AG. |
| 73 | +Tobias Gesellchenさん、Europace AGの内部レビューをありがとうございました。 |
71 | 74 |
|
72 | 75 | ## その他の呼び方 |
73 | 76 |
|
74 | | -Service vs. library: It's inner source, not inner deployment |
| 77 | +サービス対ライブラリ: インナーデプロイメントではなくインナー**ソース** |
0 commit comments