Webインターフェイスからアプリケーションの複雑なITインフラストラクチャを管理しますか? かんたん

急成長中のプロジェクトで作業している場合、管理されたITインフラストラクチャが必要であることがわかります。 テストホストを作成し、常に何かを展開し、ソースを更新し、リソースを追加し、負荷を分散する必要があります。 これらはすべて、DevOpsスペシャリストの日常的なタスクであり、運が悪ければ開発者自身が行います。


一般に、アプリケーションのITインフラストラクチャを操作するには、専門家にとって多くの時間がかかります。 これは私たちを喜ばせず、複雑な操作を数回のマウスクリックに減らすプラットフォームを思い付きました。



作成したプラットフォームはD2Cと呼ばれます。 サーバーアーキテクチャの構成とスケーリング、およびアプリケーションの展開に関する開発者の日常的なタスクを自動化するのに役立ちます。


私たちに最も近い類似サービスは、おそらくHerokuです。 しかし、私たちをアナログと呼ぶことは困難です。同じ問題を完全に異なる方法で解決しますが。 特に、Webインターフェースを介した作業に重点を置いており、独自のサーバーまたはクラウドプロバイダーのサーバーを使用することもできます。



ホストをバインドするには、サーバーでコマンドを実行する必要があります。 また、サーバーは要件を満たしている必要があります



クラウドプロバイダーをバインドするには、Amazonの場合、秘密キーでAPIトークンまたはアクセスIDを指定するだけです。


ちょっとした発言
一般に、Herokuの「わずかに改善された」類似体を作成しようとはしませんでした。 彼らは単に、「クラウド」で自分のサーバーとホストを管理するための多くのルーチンがあるプロジェクトを実行しました。そして、チームの手と金銭的な機会の数は厳しく制限されました。 示された理由により、ほとんどのソリューションは私たちにまったく適しておらず、私たちは独自のソリューションを作成し、それをPaaSサービスに仕上げました。

D2Cが解決するタスクとできること


基本的に、D2CはITインフラストラクチャの管理に関連する7つの主なタスクの解決に役立ちます。


1.アプリケーションの作業環境を上げる
たとえば、アプリケーションはサイトです。 Webサーバーとデータベースを持ち上げる必要があります。 D2Cでは、このために必要なサービスを選択し、ホストを指定し、依存関係を指定するだけで十分です。 以下の例ではAmazonホストを使用していますが、他のクラウドプロバイダーまたは独自のサーバーを使用できます。



この図では、ユーザーはNGINXをフロントエンドとして追加し、NodeJSに「バインド」します。 ベースはMongoDBです。




2.ソースからアプリケーションをデプロイおよび更新します
たとえば、ソースからGitリポジトリにアプリケーションを直接デプロイできます。 一度設定すれば十分であり、変更を加えて更新するだけで済みます。



この場合、アプリケーションはSSH経由でGitlabからデプロイされますが、ソースへのFTP / HTTPリンクを指定するか、アップロード経由でアップロードできます。




3.システムを構成する
ほとんどの場合、デフォルト設定は機能しますが、特定のアーキテクチャと負荷に合わせて最適化できます。



スクリーンショットでは、編集モードでPHPを操作するためのNGINX設定




4.インフラストラクチャを拡張する
D2Cでは、アプリケーションを垂直方向と水平方向の両方にスケーリングできます。 前者の場合、プラットフォームはクラウドプロバイダーからリソースを追加できます。 水平スケーリングの場合は、[スケーリング]をクリックするだけで、プラットフォームは新しいホスト上のコンテナーを取得します。その後、ロードバランサーを追加できます。 更新中、アプリケーションは関連するすべてのホストにデプロイされます。



ロードバランサーを追加した水平スケーリングのデモンストレーション




5.構成の移行
たとえば、すべてのレプリカと設定を含むデータベース全体をAmazonホストからDigital Oceanに転送する必要がありました。 私たちのプラットフォームでは、これは迅速に行われます。





6.システム全体を監視する
システム全体のリソースを使用するためのすべてのログとスケジュール、個々のホスト、さらにはコンテナが1つのパネルにマージされます。 したがって、問題がどこかに現れた場合、簡単に見つけることができます。





7.既製のスタックを使用して、典型的な環境をすばやく展開します。
典型的な設定環境を作成するために、yamlスタックを作成できます。 したがって、頻繁なタスクの場合、毎回ゼロからサービスを構成する必要はありません。 ファイルをインポートすれば十分であり、最小限のアクションでアプリケーションの完成した環境を作成できます。


また、定期的にStackhubターンキーソリューションを補充しています。 それらも使用できます。



典型的な環境の展開例




どこから始めるか


D2Cを知るために最初にできることは、サービス登録することです 。 無料で、自分の手でサービスをテストできます。


オンライン製品デモも実施しています。 生きている人に質問を見せ、伝え、答えてもらいたい場合は、デモ登録する必要があります。 リソースを使用してプレゼンテーションを個別に実施できるため、これをできるだけ早く行うことをお勧めしますが、常にそうなるとは限りません。


ドキュメントにアクセスして、D2Cでできることとできないことを技術的な詳細で確認してください。


ITインフラストラクチャを構築するための既製のレシピでナレッジベースお読みください 。 今ではそれほど多くの記事はありませんが、それらは常に追加されます。 Habréで何かを公開しますが、すべてではありません。


追記として:D2Cがまだ何もできない場合


D2Cはまだすべてを行うことはできませんが、すぐに学習します。 計画に従うのを便利にするために、ロードマップを作成しました。 何か提案があれば、Trelloで説明してください 。 これを追加することはできますが、正確ではありません。



Source: https://habr.com/ru/post/J342436/


All Articles