web-dev-qa-db-ja.com

Github、Cloud9ide、CloudFoundryを使用した新しいクラウド開発ワークフロー

したがって、時間はクラウドの開発/コンピューティングに向かって変化しています。

使用するサービスに基づいて、新しい「クラウド」ワークフローを取得しようとしています。Github、Cloud9ide、CloudFoundryです。

これが私の頭の中にあります:

  • Githubは、昨日のローカルファイルシステムと同じように、中央(メインリポジトリ)のように機能します。すべてのサービスは、このメインリポジトリに基づいてサービスを提供します。

ワークフロー:

  1. Github:プロジェクトのメインリポジトリとして機能する新しいGithubリポジトリを作成します。
  2. Cloud9ide。 Githubリポジトリを開き、テストと実装(BDD/TDD)を記述します。準備ができたら、Githubのメインリポジトリに保存(コミット)します。
  3. X:Jenkinsの実行中のインスタンスは、誰かがコミットしたことを検出し、最新のコミット、ビルド、デプロイ、テスト(yetiまたはSelenium、あるいはその両方)をフェッチし、テストに合格したかどうかを報告します。そうでない場合は、すべてのテストに合格するまで、別のコミットを行います。
  4. X:CloudFoundryコマンドを実行してメインのGithubリポジトリをCloudFoundryのサーバーにプッシュすると、アプリが自動的にデプロイされます。

私がまだ混乱しているのは、このX環境がどこにあるかということです。 Jenkinsをインストールする必要があるローカルサーバーまたは、Cloud9ideにインストールできますか(Javaがサポートされている場合)、または別のクラウドサービスにインストールできますか?また、そのX環境はGithubリポジトリをフェッチ(クローン)して実行できる必要があります)ビルドスクリプト。

また、Cloud9ideの概念は非常に新しく、他に前任者がいないため、ワークフローがどのようになるのか本当に不思議に思っています。私たちは皆、Githubのワークフローを知っています。これで、CloudFoundryのワークフロー(RESTful API /コマンドラインツールを使用したデプロイ/スケーリング)がわかりました。しかし、Cloud9Ideがどのように動作するかは、まだはっきりしていません。 Cloud9ideの誰かが、ワンクリックでデプロイできるようにデプロイのようなボタンがあると述べました。しかし、それは、プロセスを展開するサービスがどのサービスに接続するかなどに依存すると思います。

誰かがこのクラウドワークフローのトピックを啓蒙し、ギャップを埋めることができますか?.

ありがとう。

6
weng

これが完全にオープンソースのプロジェクトである場合、 http://teamcity.codebetter.com がオプションです。

それ以外では、AmazonのEC2を(この時点で)調べて、ビルドエージェントであるhudson/jenkinsサーバーを構築することになるでしょう。

今のところ、Cloud9で遊んでいると、githubリポジトリにコミットするだけで、他には何もしません。ただし、これは将来保留される可能性があります。今のところ、1つの小さなEC2インスタンスは月単位でそれほど高価ではありません。

2
Travis

Jenkinsの実行中のインスタンスは、誰かがコミットしたことを検出し、最新のコミット、ビルド、デプロイ、テスト(yetiまたはSelenium、あるいはその両方)をフェッチして、テストに合格したかどうかを報告します。そうでない場合は、すべてのテストに合格するまで、別のコミットを行います。

これは travis で実行できます。これはセットアップが非常に簡単で、非常に使いやすいです。

1
Dadicool

このギャップを「埋める」ことができるかどうかはわかりませんが、私にとって、最大のギャップの1つはデバッグの領域にあることがわかるかもしれません。開発を計画している環境の種類については実際には言いませんでしたが、サーバー内でJavaコードを起動し、サーバーに接続できる機能に感謝しています。 IDEバグを診断し、複雑なコードが期待どおりに機能することを確認するために、一度に1行ずつステップ実行します(テストで検出されるものとそうでないもの)。

クラウドから抜け出し、コードを引き出してMicro Cloudで実行する以外にログが診断できない問題が発生した場合、それがどのように機能するかはわかりません。

したがって、私にとって、現時点でのこれらすべての大きなギャップは、困難なデバッグ問題に対処することです。

0
John Munsch