-
Notifications
You must be signed in to change notification settings - Fork 152
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
129 changed files
with
10,602 additions
and
105 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
Translation request timed out. Translation request timed out. DrupalをDockerで動作させるシステムは存在しますが、ローカルとプロダクションで正確に同じイメージとサービスをテストを許可するものは何もありませんでした。 | ||
|
||
Lagoonは2017年に誕生し、それ以来、プロダクションでDockerを動作させるシステムに進化しました。Lagoonは、我々の第3世代のホスティングプラットフォームを、最先端の全Dockerベースのシステムに置き換えました。 | ||
|
||
### オープンソース | ||
|
||
amazee.ioでは、オープンソースを信じています。Drupalのようなオープンソースコードが専有的なホスティングプラットフォームでホストされていることは常に我々にとって問題でした。ホスティング会社の力と成功は、単にデプロイメントシステムやサービスの設定だけではありません。それはプラットフォームを動かす人々と知識です。 プロセス、スキル、予期しない状況に対応する能力、そして最後に忘れてはならないのは、彼らがクライアントに提供するサポートです。 | ||
|
||
### ライセンス | ||
|
||
Lagoonは、[`Apache 2.0 ライセンス`](https://github.com/uselagoon/lagoon/blob/main/LICENSE)の下で利用可能です。 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,129 +1,51 @@ | ||
# Lagoon | ||
|
||
|
||
# ラグーン | ||
|
||
![](./lagoon-logo.png) | ||
|
||
## ラグーン - Kubernetes向けのオープンソースアプリケーションデリバリープラットフォーム | ||
|
||
ラグーンは開発者が夢見るものを提供します。それは開発者がローカル環境と本番環境でまったく同じコードを実行することを可能にするシステムです。同じDockerイメージ、同じサービス設定、そして同じコード。 | ||
|
||
## Lagoon - Kubernetes用オープンソースアプリケーションデリバリープラットフォーム | ||
|
||
|
||
|
||
Lagoonは開発者が夢見るものを提供します。それは、開発者が自分のローカル環境と本番環境で全く同じコードを実行できるシステムです。同じDockerイメージ、同じサービス設定、そして同じコード。 | ||
|
||
|
||
|
||
## どこから始めればよいですか? | ||
|
||
|
||
|
||
Lagoonを使用してウェブサイトやアプリケーションをホストしたい場合は、[Using Lagoon - The Basics](using-lagoon-the-basics/index.md)にアクセスしてください。 | ||
|
||
|
||
|
||
Lagoonの機能をより深く理解したい場合は、[Using Lagoon - Advanced](using-lagoon-advanced/index.md)にアクセスしてください。 | ||
|
||
|
||
|
||
Lagoonの仕組みについて理解するには、[Lagoon Concepts - The Basics](concepts-basics/index.md)をチェックしてください。 | ||
|
||
|
||
|
||
さらに深い理解を求めるなら、[Lagoon Concepts - Advanced](concepts-advanced/index.md)をご覧ください。 | ||
|
||
|
||
|
||
Lagoonの開発に参加したい場合(機能追加やバグ修正など)、[Developing Lagoon](contributing-to-lagoon/developing-lagoon.md)を参照してください。 | ||
|
||
|
||
|
||
## TL;DR: Lagoonの動作方法 | ||
|
||
|
||
|
||
1. 開発者はYAMLファイル内で必要なサービスを定義・設定します。 | ||
|
||
2. 満足したら、そのコードをGitにプッシュします。 | ||
|
||
3. LagoonはYAMLファイルを解析し、追加で必要な設定を加えます。 | ||
|
||
4. Lagoonは必要なDockerイメージをビルドします。 | ||
|
||
5. LagoonはそれらをDockerレジストリにプッシュします。 | ||
|
||
6. LagoonはKubernetes内で必要なリソースを作成します。 | ||
|
||
7. Lagoonはコンテナのデプロイを監視します。 | ||
## どこから始めればいいですか? | ||
|
||
8. すべてが完了したら、Lagoonは開発者にSlack、メール、ウェブサイトなど様々な方法で通知します。 | ||
あなたがラグーンを使用してウェブサイトやアプリケーションをホストしたい場合は、[ラグーンの基本的な使い方](using-lagoon-the-basics/index.md)を参照してください。 | ||
|
||
ラグーンの機能についてより深く理解するためには、[ラグーンの高度な使い方](using-lagoon-advanced/index.md)をご覧ください。 | ||
|
||
ラグーンの仕組みを理解するためには、[ラグーンの概念 - 基本](concepts-basics/index.md)をチェックしてください。 | ||
|
||
## ヘルプ? | ||
そして、より深い理解のために、[ラグーンの概念 - 高度](concepts-advanced/index.md)をご覧ください。 | ||
|
||
あなたがラグーンを開発したい(機能を追加、バグを修正)場合は、[ラグーンの開発](contributing-to-lagoon/developing-lagoon.md)をご覧ください。 | ||
|
||
## TL;DR: ラグーンの仕組み | ||
|
||
質問やアイデアがありますか?メンテーナーや貢献者と交流しましょう。 | ||
|
||
|
||
|
||
Lagoon Discordでチャットしてください: [https://discord.gg/te5hHe95JE](https://discord.gg/te5hHe95JE) | ||
|
||
|
||
|
||
## Lagoonについてのいくつかのこと | ||
|
||
|
||
|
||
1. **Lagoonはマイクロサービスベースです**。デプロイとビルドのワークフローは非常に複雑です。複数のバージョン管理ソース、複数のクラスター、複数の通知システムが存在します。各デプロイはユニークで、数秒から数時間かかることもあります。柔軟性と堅牢性を念頭に置いて構築されています。マイクロサービスはメッセージングシステムを通じて通信します。これにより、個々のサービスのスケールアップとスケールダウンが可能になります。また、個別のサービスのダウンタイムを乗り切ることができます。さらに、新しいLagoonの部分を本番環境で他の部分に影響を与えずに試すことができます。 | ||
|
||
2. **Lagoonは多くのプログラミング言語を使用しています**。各プログラミング言語には特定の強みがあります。どの言語が各サービスに最も適しているかを判断しようとしています。現在、Lagoonの多くはNode.jsで構築されています。これはNode.jsを最初に使用し始めたからだけでなく、Node.jsがWebhookやタスクの非同期処理を可能にするからです。サービスの一部のプログラミング言語を変更することも検討しています。これはマイクロサービスの素晴らしいところです!他のプラットフォーム部分に影響を与えることなく、単一のサービスを他の言語に置き換えることができます。 | ||
|
||
3. **LagoonはDrupal専用ではありません**。すべてのものは任意のDockerイメージを実行できるように構築されています。Drupal用の既存のDockerイメージやDrushのようなDrupal特有のツールのサポートもありますが、それだけです! | ||
|
||
4. **LagoonはDevOpsです**。開発者が必要なサービスを定義し、必要に応じてカスタマイズできるようにします。これは正しい方法ではなく、開発者に過剰な権限を与えてしまうと考えるかもしれません。私たちはシステムエンジニアとして、開発者をエンパワーメントする必要があると考えています。もし開発者がローカルでサービスを定義し、テストできるようにすれば、彼ら自身でバグや誤りを見つけることができます。 | ||
|
||
5. **LagoonはDockerとKubernetes上で動作します**。(これは当然ですよね?) | ||
|
||
6. **Lagoonは完全にローカルで開発・テスト可能です**。 | ||
|
||
7. **Lagoonは完全に統合テストされています**。これは、Git webhookの受信からDockerコンテナへのデプロイまでの全プロセスをテストできることを意味します。同じGitハッシュがクラスター内にデプロイされます。 | ||
|
||
8. **最も重要なこと: 継続的な作業中であること**。まだ完了していません。amazee.ioでは、ホスティングコミュニティとして協力し、コードを共有することが必要だと考えています。 | ||
|
||
|
||
|
||
Lagoonのインフラストラクチャとサービスがどのように連携しているかを理解してほしいと思っています。以下はそのスキーマです(少し古いものですが、最近追加されたサービスやKubernetesについては含まれていませんので、更新に取り組んでいます!):[Lucid Chart](https://lucid.app/documents/view/cb441054-e04a-4389-b98b-c75bcda8ea0d) | ||
|
||
1. 開発者は必要なサービスをYAMLファイル内で定義し、設定します。 | ||
2. 満足したら、コードをGitにプッシュします。 | ||
3. ラグーンはYAMLファイルを解析し、必要な追加設定を追加します。 | ||
4. ラグーンは必要なDockerイメージをビルドします。 | ||
5. Translation request timed out. Lagoonは主にNode.jsで構築されています。これは最初にNode.jsを使い始めたからだけでなく、Node.jsがwebhooks、タスクなどの非同期処理を可能にするからです。一部のサービスのプログラミング言語を変更することを考えています。これがマイクロサービスの素晴らしいところです!他のプラットフォームの部分を心配することなく、一つのサービスを別の言語で置き換えることができます。 | ||
3. **LagoonはDrupal特有のものではありません**。すべてが任意のDockerイメージを実行できるように構築されています。Drupal用の既存のDockerイメージがあり、DrushのようなDrupal特有のツールもサポートしています。しかし、それだけです! | ||
4. **LagoonはDevOpsです**。開発者が必要なサービスを定義し、必要に応じてカスタマイズすることができます。これが正しい方法でないと思うかもしれませんし、開発者にあまりにも多くの権限を与えていると思うかもしれません。しかし、私たちはシステムエンジニアとして、開発者を強化する必要があると考えています。開発者がローカルでサービスを定義し、それらをローカルでテストすることを許せば、彼ら自身がバグやミスを見つけるでしょう。 | ||
5. **LagoonはDockerとKubernetes上で動作します。** \(それは明らかですよね?\) | ||
6. **Lagoonは完全にローカルで開発・テストが可能です。** | ||
7. **Lagoonは完全に統合テストされています**。これは私たちが 全プロセスをテストできます。Gitウェブフックの受信からDockerコンテナへのデプロイまで、同じGitハッシュがクラスタにデプロイされます。 | ||
8. **最も重要な点: これは進行中の作業です**。まだ完了していません。amazee.ioでは、ホスティングコミュニティとして、可能な限りコードを共有し、協力して作業を進める必要があると考えています。 | ||
|
||
私たちはあなたがLagoonのインフラストラクチャとサービスがどのように連携して動作するかを理解することを望んでいます。ここにスキーマがあります(少し古く、最近追加したサービスやKubernetesをカバーしていないので、更新作業中です!):[Lucid Chart](https://lucid.app/documents/view/cb441054-e04a-4389-b98b-c75bcda8ea0d) | ||
|
||
## Lagoonの歴史 | ||
|
||
説明したように、Lagoonは夢が実現したものです。amazee.ioでは、Drupalを8年以上ホストしてきました。これは私たちのホスティングプラットフォームの4回目の大きな改訂です。3回目の改訂はPuppetとAnsibleを中心に構築されました。プラットフォームの各部分は全て設定管理で行われました。これにより新しいサーバーの設定が非常に速くできましたが、同時に開発者のカスタマイズの余地が不足していました。私たちはいくつかのカスタマイズを実装しましたが、すでにDockerを本番環境で使用していました。しかし、私たちは決して それに完全に満足していました。我々は、既存のプラットフォームだけでは足りないと気づきました。分離型Drupalの台頭、サーバーサイドでのNode.jsの動作要求、Elasticsearchへの要望、異なるSolrバージョンなど、我々はもっと進める必要がありました。 | ||
|
||
同時に、私たちは長年にわたり、ローカル開発のためにDockerを使用してきました。プロダクションで全てをDockerで行うというのは常に考えていました。唯一の問題は、ローカル開発とプロダクション環境間の接続でした。他にも、プロダクションでDrupalをDockerで動作させるシステムが存在します。しかし、ローカルとプロダクションで正確に同じイメージとサービスをテストすることを許可するものは何もありませんでした。 | ||
|
||
前述のように、Lagoonは夢の実現です。amazee.ioでは8年以上Drupalをホスティングしてきました。これは私たちのホスティングプラットフォームの第4世代です。第3世代はPuppetとAnsibleを中心に構築されました。プラットフォームのすべての部分は構成管理によって行われました。これにより、新しいサーバーのセットアップが非常に迅速に行えましたが、同時に開発者にとってのカスタマイズ性が欠けていました。少しはDockerを使用して本番環境でのカスタマイズ性を実現しましたが、完全には満足できませんでした。我々の既存のプラットフォームでは不十分だと感じました。デカップルDrupalの台頭に伴い、サーバーサイドでのNode.jsの実行、Elasticsearchの要求、異なるSolrバージョンなど、より多くのことを行う必要がありました。 | ||
|
||
|
||
|
||
同時に、私たちはローカル開発にDockerを何年も使用してきました。Dockerを本番環境ですべてに使用するというアイデアは常にありました。唯一の問題は、ローカル開発環境と本番環境との間の接続でした。本番環境でDockerを使用してDrupalを実行できるシステムは他にもあります。しかし、同じイメージとサービスをローカルと本番環境でテストできるものはありませんでした。 | ||
|
||
|
||
|
||
Lagoonは2017年に誕生しました。それ以来、Dockerを本番環境で実行するシステムへと発展してきました。Lagoonは第3世代のホスティングプラットフォームに代わり、すべてDockerベースの最新システムになりました。 | ||
|
||
|
||
Lagoonは2017年に誕生しました。それ以来、プロダクションでDockerを動作させるシステムに発展しました。Lagoonは、我々の第3世代のホスティングプラットフォームを、最先端の全Dockerベースのシステムに置き換えました。 | ||
|
||
### オープンソース | ||
|
||
|
||
|
||
amazee.ioでは、オープンソースが重要だと信じています。オープンソースコードであるDrupalがプロプライエタリなホスティングプラットフォームでホストされていることには常に悩まされていました。ホスティング会社の強みと成功は、単なるデプロイシステムやサービス設定だけではありません。プラットフォームを運営する人々とその知識によるものです。プロセス、スキル、予期しない状況に対処する能力、そして最後にですが重要なこととして、クライアントに提供するサポートです。 | ||
|
||
|
||
amazee.ioでは、オープンソースを信じています。Drupalのようなオープンソースコードが独占的なホスティングプラットフォームでホストされていることは常に我々にとって問題でした。ホスティング会社の強さと成功は、単にデプロイメントシステムやサービスの設定だけではありません。それはプラットフォームを動かす人々と知識です。 プロセス、スキル、予期しない状況に対応する能力、そして最後に忘れてはならないのは、彼らがクライアントに提供するサポートです。 | ||
|
||
### ライセンス | ||
|
||
|
||
|
||
Lagoonは[`an Apache 2.0 License`](https://github.com/uselagoon/lagoon/blob/main/LICENSE)の下で提供されています。 | ||
Lagoonは、[`Apache 2.0 ライセンス`](https://github.com/uselagoon/lagoon/blob/main/LICENSE)の下で利用可能です。 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
# 自動更新 | ||
|
||
Lagoonは、Drupalコアやcontribの一部の更新方法と互換性のない方法でアプリケーションをデプロイします。Lagoonは不変のイメージをビルドし、不変のコンテナを稼働させることを期待しています。ランタイムでアプリケーションのコードが変更されると、以下の問題が生じる可能性があります。 | ||
|
||
1. コンテナはKubernetesによって自動的に管理され、いつでも移動、再起動、スケーリングが可能です。これが起こると、元のビルド済みコンテナイメージが実行され、ランタイムで発生した変更はすべて失われます。 | ||
2. タスクやcronjobは、元のビルド済みコンテナイメージで実行され、更新されたコードにアクセスできない可能性があります。 | ||
3. 更新にはファイルシステムへの書き込み権限が必要ですが、読み取り専用のファイルシステムを強制する環境を設定することも可能です。 | ||
4. ベストプラクティスは、それぞれが一つのことを行う小さなコンテナをデプロイすることです。これは、典型的なDrupalプロジェクトでは、`cli`、`php`、`nginx`というコンテナがそれぞれコードのコピーを含むことを意味します。これらのコンテナのうち一つだけを更新すると、コードの不一致による問題が発生します。 | ||
|
||
以下の更新方法はLagoonによって無効化されています。 | ||
|
||
## Drupal 自動更新 | ||
|
||
[自動更新] (https ://www.drupal.org/project/automatic_updates) | ||
contribモジュールは無効化されており、Drupal coreに移行する際も無効化されます。 | ||
|
||
## Drush | ||
|
||
`drush pm-install`または`drush pm-update`は、デフォルトで無効化されています。これは[amazeeio/drupal-integrations](https://github.com/amazeeio/drupal-integrations) | ||
パッケージの一部としてです。 |
Oops, something went wrong.