ビッグデヌタの2回目の請求、マヌケットプレむス、サンドボックスクラりドの環境をテストするにはどうすればよいですか







゜フトりェア開発䌚瀟には、実皌働環境に近いテスト環境が必芁です。 これは、リリヌスサむクルが長いボックス版゜フトりェアに特に圓おはたりたす。

テスト環境の構築に関する倚くの問題は、クラりドに配眮するこずで解決されたす。 クラりドベヌスのMail.Ruクラりド゜リュヌション MCSプラットフォヌムでのテストオプションに぀いお説明したす。 しかし、私たちが蚀うこずの䞀郚はどのクラりドにも圓おはたりたす。



テスト環境のセットアップの難しさ



クラりド内のテスト環境の機胜に぀いお説明する前に、゜フトりェアのテストプロセスで䌁業が盎面する困難に぀いお説明したす。



異なるGitブランチ-異なる環境



゜フトりェア開発に関わるほずんどの䌁業は、バヌゞョン管理システムを䜿甚しおいたす。 これらの䞭で最も䞀般的なのはGitで 、87の開発者が䜿甚しおいたすRhodeCode はTwitterで投祚しおいたす 。



Gitのベストプラクティスは、機胜ブランチず呌ばれるもので、新しい機胜ごずに個別のブランチがリポゞトリに割り圓おられたす。 このアプロヌチにより、開発者は「ひじを抌す」こずなく、倉曎をより独立させるこずができたすが、個々の機胜をテストするために倚くの専甚環境を展開する必芁がありたす。



コンピュヌティングリ゜ヌスの十分に掻甚されおいない



物理サヌバヌの25はゟンビであり、電力を消費したすが、䜕の圹にも立ちたせん。 たた、倚くのIT専門家は 、自瀟にむンストヌルされおいるサヌバヌの15〜30が䜕をしおいるのか蚀うこずができたせん 。



だからここに。 ここでのテスト環境甚のオンプレミスハヌドりェアは、他のハヌドりェアず䜕ら倉わりはなく、原則ずしお適切に凊理されおいたせん。 それ以倖の堎合はできたせん。 サヌバヌ機噚のフリヌトを賌入するず、消費量ずテスト環境の数が増えた堎合に、リ゜ヌスによっお再割り圓おされたす。 その結果、テスト環境は「䞇が䞀に備えお」倜間および週末にアむドル状態になり、消費電力ず冷华の費甚を支払うだけです。

プラむベヌトクラりドでの仮想化の単玔なアプリケヌションでは、柔軟性のない拡匵性や機噚の十分に掻甚されおいない問題を解決できたせん。



難易床蚭定



テスト環境ず開発環境は、ほんの数台の仮想マシン以䞊のものです。 通垞、アプリケヌションサヌバヌ、デヌタベヌスサヌバヌ、メッセヌゞキュヌサヌバヌ、キャッシュサヌバヌが含たれたす。



開発者が独自にこのようなむンフラストラクチャを䜜成および構成するこずは困難です。適切な専門知識がない堎合、これには数日かかる堎合がありたす。 経隓豊富な管理者にずっおは、これは簡単ですが、䞀般的には面癜くないです。 さらに、官僚䞻矩が重なっおおり、テスト環境を䜜成するためにリ゜ヌスを割り圓おるプロセスには時間がかかる堎合がありたす。



別の問題は、フルタむムのシステム管理者が特定のテスト環境を展開する専門知識を持たないこずが倚く、䌚瀟が倖郚から高䟡なコンサルタントを匕き付けるこずを䜙儀なくされるこずです。 䟋ずしお、Hadoop、Spark、HDFS、たたはAirflowに基づくビッグデヌタのサンドボックスがありたす。 このような環境の展開には、BigData分野の資栌を持぀スペシャリストから少なくずも1週間、通垞のシステム管理者から少なくずも1か月かかりたす。 Kubernetesクラスタヌに関する同様のストヌリヌ実皌働構成に近いテストクラスタヌの構築には、少なくずも数日かかりたす。



その結果、䌚瀟はコンサルタントを匕き付けるために第䞉者に頌らざるを埗たせん。 ただし、 ビッグデヌタの専門家を芋぀けるこずは非垞に難しく 、そのようなシステムの管理者はほずんど指先で数えるこずができたす。 はい、DevOps゚ンゞニアはテスト環境を展開するすべおのタスクを凊理できたすが、すべおの䌁業がそれを持っおいるわけではありたせん。 実際、2016幎、求人怜玢サむトIndeed.com は 、䌁業が他のどの専門家よりも長い期間DevOps゚ンゞニアを探しおいるず指摘したした。



クラりドがこれらの問題を解決する方法



消費されたリ゜ヌスの2回目のみの請求ず即時のスケヌリング



クラりドサヌビスの最も明らかなプラスは、任意の期間1぀のサヌバヌたたはクラスタヌ党䜓のクラりドむンフラストラクチャをレンタルできるこずです。 Mail.Ru Cloud Solutions MCSプラットフォヌムでは、課金は1秒あたりです。実際に䜿甚されたコンピュヌティングリ゜ヌスに察しおのみ支払う必芁がありたす。



ベアメタル、プラむベヌトクラりド、およびほずんどのロシアのクラりドプロバむダヌずは異なり、MCSは停止した仮想マシンRAM、CPUに察しおリ゜ヌスを請求したせん。䜿甚枈みのディスク領域のみを支払う必芁がありたす。 たずえば、20個のCPU、40 GBのRAM、1 TBのHDDのテスト構成のコストは24,800â‚œ/月で、ディスクスペヌスのコストは7,000â‚œ/月です。 たずえば、自動化ツヌルを䜿甚しおそのような環境を21:00に停止し、900に展開する堎合、15 900 payを支払うこずになりたす24時間レンタルの堎合の1.5倍。



私たちの経隓では、オンプレミスむンフラストラクチャでのテストず比范しお、クラりドでのテストによる総節玄額は60〜70に達したす。



クラりド内のリ゜ヌスを即座に増枛できるため、適切なタむミングで環境を迅速に展開し、リヌスされた容量をほが100掻甚できたす。 テスト環境の展開時間は、オンプレミスに比べお数日、たたは数か月も短瞮されたす。



開発者自身が割り圓おたリ゜ヌス



開発者は、セルフサヌビスポヌタルを䜿甚しお、管理者に連絡するこずなく、クラりドでテスト環境を構成し、それらにリ゜ヌスを割り圓おるこずができたす。 この単玔なアクションでさえ、補品の垂堎投入たでの時間を数週間短瞮できたす。



テスト環境を自動的に䜜成および砎棄するためのAPI



クラりドを䜿甚するず、 ゞャストむンタむムモデルで短呜の環境を䜜成できたす。 REST APIずCLI を䜿甚しお、テスト環境を䞀括でデプロむし、停止、曎新、削陀できたす。 このようにしお、テスト環境のラむフサむクル党䜓を構成し、数癟の環境を健党に保぀こずができたす。 むンスタントクラりドスケヌリングず秒単䜍の課金により、柔軟性ず運甚コストの削枛が実珟したす。



これが私たちの経隓からの䟋です。
同瀟は150の銀行向けの゜フトりェアを開発しおいたす。 各銀行には、Gitに独自のブランチがあり、ボックス化された゜リュヌション䞊に远加の機胜が組み蟌たれおいたす。 同瀟は、クラむアントごずに2぀たたは3぀の䞊行䜜業テスト環境を䜜成するこずを䜙儀なくされおいたす。珟圚のバヌゞョンでのテスト、新しいバヌゞョンでのテスト、珟圚のバヌゞョンから新しいバヌゞョンぞの曎新のチェックです。 合蚈で、150のクラむアントに察しお、同時に最倧450のテスト環境のみを展開および保守する必芁がありたす-これは、開発環境を考慮しおいたせん。



プラむベヌトクラりドモヌド独自のデヌタセンタヌで仮想化を䜿甚では、利甚可胜なハヌドりェアがすべおの環境の䞊列操䜜に十分でないこずが倚いため、このような負荷で䜜業するこずはほずんど䞍可胜です。 その結果、開発者はテストの順番を埅っおおり、アプリケヌションの新しいバヌゞョンの動䜜をすばやく確認できたせん。



パブリッククラりドでのテスト環境の自動展開ず管理により、テスト速床の制限がなくなり、最終的に垂堎投入たでの時間が短瞮されたす。 さらに、クラりドリ゜ヌスをレンタルする際のコスト管理は予枬しやすく、テストスタンドに独自の専甚機噚を䜿甚する堎合よりもコスト自䜓が䜎くなりたす。



クラりドテスト環境のもう1぀の利点は、CI / CDツヌルずの統合です。 これらの゜リュヌションJenkinsなどには、ビルド䞭にMCSクラりドにテスト環境を動的に䜜成できるプラグむンが含たれおいたす。 機胜テストたたは回垰テストを実行する盎前にテスト環境をアクティブ化できたす。 テストが成功した堎合、䜕かが間違っおいれば、環境は自動的に厩壊したす。開発者が回垰の理由を再接続しお理解できるように、環境は保存されたす。



テスト環境甚のプレハブビルディングブロック



テスト環境をMail.Ru Cloud Solutionsプラットフォヌムにすばやく展開

PaaSは、たずえば、クラりド内のKubernetesコンテナヌおよびデヌタベヌスを支揎したす。 Kubernetesは、数癟のアプリケヌションを含むサヌビスカタログを開発しおいたす。



カタログから、ActiveMQ、RabbitMQ、Kafkaクラスタヌ、ログ監芖および分析システム、さたざたなCMSおよびデヌタベヌスを数分で展開できたす。 カスタマむズされたアプリケヌションテンプレヌトのみを含む䞀般的なDocker Hubずは異なり、 Kubernetes Service Catalogには統合を簡玠化する高レベルのテンプレヌトがありたす。 テンプレヌトから、事前に構成されたアプリケヌションコンポヌネントメッセヌゞキュヌ、サヌビス怜出、デヌタベヌス、アプリケヌションサヌバヌ、CI / CDツヌル、キャッシュサヌバヌ、ブロックチェヌンツヌルなどをデプロむできたす。デプロむされる仮想マシンを構成する必芁はありたせん。





Kubeappsマヌケットプレむスで利甚可胜なアプリケヌション。



ビッグデヌタのサンドボックス



MCSでは、ビッグデヌタアプリケヌション甚のテスト環境を展開できたす。 PaaSサヌビスBig Dataを䜿甚しお、Hadoop、Spark、HBase、およびAirflowのクラスタヌを䜜成できたす。 展開プロセスは完党に自動化されおおり、自己構成に比べお数週間の時間を節玄できたす。



ここでの远加の利点は、秒単䜍の請求ずむンスタントスケヌリングです。 拡匵可胜なテスト環境を短時間で䜜成できるため、分析ITむンフラストラクチャを維持するための䌁業のコストが削枛されたす。 節玄は、オンプレミスず比范しお80に達する可胜性がありたす。



Infrastructure-as-a-Codeずの統合



VMWareベヌスの独自の゜リュヌションずは異なり、MCSクラりドプラットフォヌムは、OpenStackオヌプン゜フトりェアに基づいお構築されおおり、Terraform、Ansible、Puppet、Chefなどのさたざたなツヌルず完党に統合されおいたす。



Terraformは、Infrastructure-as-CodeIaCの粟神に基づいお構築されおおり、むンフラストラクチャをセットアップするプロセスがコヌドを蚘述し、開発者に銎染みのあるものずしお配眮されたす。 TerraformはVMwareず完党に統合されおいないため、プラむベヌトクラりドでの䜿甚は困難です。 MCSクラりドでは、䌁業はTerraformの既補の䟋を䜿甚できたすこれらはGitHubリポゞトリにありたす 。





Terraformを䜿甚しおテスト環境を䜜成したす。



私を芚えお





これらのツヌルはすべお、Mail.Ru Cloud Solutionsプラットフォヌムで無料で詊すこずができたす。 11月末たで、 このリンクをILOVEHABRプロモヌションコヌドずずもに䜿甚しお、1000ルヌブルをアカりントに远加し、test-test-testするこずができたす。



All Articles