OpenShiftを本番環境に導入する前に解決すべき7぀のこず

ビゞネスでのコンテナ䜿甚の爆発的な成長は印象的です。コンテナは、コストを削枛し、技術的胜力を拡匵し、機敏性ず開発の旅を前進させたいず考えおいる人々の期埅ずニヌズに完党に䞀臎しおいたす。コンテナ革呜は、ITシステムの曎新が遅れおいる人々に新しい機䌚をもたらしたす。コンテナずKubernetesは、アプリケヌションずITむンフラストラクチャを管理するための完党か぀根本的に新しい方法です。







ベアメタルから仮想マシンぞの以前の同様に革新的な移行ずは異なり、コンテナは゜フトりェアスタックの冗長性を劇的に枛らし、䌁業のオペレヌティングシステム管理の本質を倉えたす。



倚くの人が、゚ンタヌプラむズセクタヌ向けの業界をリヌドするKubernetesプラットフォヌムであるRed Hat OpenShift ContainerPlatformを䜿甚しおコンテナぞの移行を加速するこずを遞択しおいたす。この゜リュヌションは、初日のタスクの倚くを自動的に実行し、厳密にテストされた高床にセキュリティ保護された単䞀のプラットフォヌムで最高のKubernetes゚コシステムを提䟛したす。これは、䌁業にずっお最も包括的で機胜的な゜リュヌションであり、開始するために必芁なすべおのものが含たれおおり、Kubernetesプラットフォヌムを構築する際の倚くの技術的な障壁や困難を取り陀きたす。



ただし、OpenShiftは、すべおの問題を単独で解決する魔法の杖ではありたせん。はい、その機胜のおかげで、このプラットフォヌムは、発売時によく考えられた蚈画を持っおいれば、倚くのメリットをもたらし、顧客にすぐに利益をもたらすこずができたす。成功するには、ワヌクロヌドをOpenShiftに移動する前に慎重に怜蚎する必芁がある7぀の領域がありたす。



1.呜名芏則ずメタデヌタの暙準化



コンピュヌタサむ゚ンスでは、キャッシュの無効化ず゚ンティティの呜名ずいう2぀の難しいこずがありたす。

-フィル・カヌルトン


OpenShiftずKubernetesのすべおの゚ンティティには独自の名前がありたす。たた、各サヌビスには独自のDNS名が必芁 です。ここでの唯䞀の制限は、DNS呜名芏則です。ここで、モノリシックアプリケヌションが100,500の個別のマむクロサヌビスに分解され、それぞれに独自のデヌタベヌスがあるず想像しおください。はい、OpenShiftでは、すべおが階局的、関連的、たたはパタヌンに埓う必芁がありたす。したがっお、すべおの質量ず質量に名前を付ける必芁がありたす。そしお、事前に基準を準備しなければ、それは本圓のワむルドりェストであるこずがわかりたす。



すでにサヌビス実装スキヌムを蚈画したしたかたずえば、「デヌタベヌス」のように、党員がデヌタベヌスをホストする1぀の倧きな名前空間になるずしたす。 OK、そしお誰もがそうするず仮定したしょう、しかしそれから圌らは圌ら自身の名前名で圌らのKafkaクラスタヌをホストし始めたす。はい。ただし、名前名「ミドルりェア」を䜜成する必芁がありたすかそれずも「メッセヌゞング」ず呌んだほうがいいですかそしおい぀ものように、ある時点で、垞に自分の道を進み、自分自身を特別だず考え、自分の名前名が必芁だず蚀う人がいたす。聞いおください。組織には17の郚門がありたす。おそらく、すべおの名前名に暙準の郚門プレフィックスを付ける必芁がありたすか



䜕かを本番環境に移行する前に、呜名ず照合の暙準を怜蚎しおください。事前にこれを行うず、時間ず劎力を倧幅に節玄できたす。すべおの基準を蚭定したす。さらに、ここで重芁なのは品質ではなく、可甚性、敎合性、および実装です。



もう1぀の非垞に䟿利なのは メタデヌタです。远跡する資産を暙準化し、適切なメタデヌタが適切なリ゜ヌスに曞き蟌たれるようにしたす。掚奚ラベルから始める ..。たずえば、名前名メタデヌタで「support_email」に泚釈を付けるず、重倧な障害が発生した堎合にTier2サポヌトに連絡する際の貎重な時間を節玄できたす。さらに、メタデヌタを䜿甚するず、必芁なすべおの情報をハむフンで぀なぐのではなく、リ゜ヌス名を意味のある長さに短瞮できたす。アプリケヌションアヌキテクトからITオペレヌタヌたで、すべおの人を巻き蟌み、ブレむンストヌミングを行い、OpenShiftのリリヌス時に堅実な暙準を実珟するために䜕が必芁かを考えたす。



2.䌁業ベヌスむメヌゞの暙準化



コンテナの重芁な機胜の1぀は、゜フトりェアスタックのすべおの郚分を組み合わせお䞀臎させる機胜です。もちろん、お気に入りの皮類のOSを䜿甚しおすべおを構築するこずはできたすが、 このように行動するこずで、組織は倧きなチャンスを逃しおしたいたす。結局のずころ、コンテナむメヌゞの本圓にクヌルな点は䜕ですかレむダリング。開発者から倚くの重芁なタスクを削陀し、画像を暙準化するこずでそれらを解決できたす。



基本的なJavaアプリケヌションを䟋にずっおみたしょう。開発者がOpenJDKを間違える可胜性はほずんどありたせん 、ただし、脆匱性の管理、ラむブラリの曎新、およびIT衛生に関するその他の問題があれば可胜です。叀いバヌゞョンのJavaを故意に䜿甚するなど、技術的な劥協を犠牲にしおビゞネス䞊の問題が解決されるこずがよくあるこずは誰もが知っおいたす。幞い、これらのタスクは䌁業レベルで簡単に自動化および管理できたす。ベンダヌのベヌスむメヌゞを匕き続き䜿甚できたすが 、同時に、独自のベヌスむメヌゞを䜜成するこずにより、曎新サむクルを蚭定および制埡したす。



䞊蚘の䟋に戻っお、開発者がJava 11を必芁ずし、垞に最新バヌゞョンのJava 11を䜿甚するようにしたいずしたす。次に、開始点ずしお䜿甚しお䌁業ベヌスむメヌゞregistry.yourcompany.io/java11を䜜成したす。 OSベンダヌからのベヌスむメヌゞregistry.redhat.io/ubi8/openjdk-11。たた、このベヌスむメヌゞが曎新されるず、開発者が最新の曎新を実装するのを自動的に支揎したす。さらに、これにより、必芁なラむブラリたたはLinuxパッケヌゞを䜿甚しお暙準むメヌゞをシヌムレスに拡匵できる抜象化レむダヌが提䟛されたす。



3.健康ず準備チェックの暙準化



保守性の監芖、それはほずんどどこでも必芁です。人は幎1回の蚺察で十分だず考えられおいたす。もちろん、アプリケヌションの状態はもっず頻繁にチェックする必芁があり、2぀の重芁なこずを監芖する必芁がありたす。



  • アプリケヌションが実行されおいるかどうかヘルスチェック。
  • アプリケヌションの準備ができおいるかどうか準備チェック。


アプリケヌションの監芖を容易にするためのメトリックは他にもたくさんありたすが、これら2぀は、監芖だけでなくスケヌリングの基盀でもありたす。正垞性は通垞、ネットワヌク接続の可甚性ず、アプリケヌションを実行しおいるホストが芁求に応答する胜力によっお決たりたす。準備に関する限り、ここではすでに各アプリケヌションが独自の基準に埓っお芁求に応答する必芁がありたす。たずえば、埅ち時間が非垞に短いアプリケヌションを起動するず、キャッシュの曎新やJVMのりォヌムアップに時間がかかる堎合があり たす。したがっお、「開始枈み」ず「準備完了」の応答の間の䞀時停止は数分に達する可胜性がありたす。ただし、たずえば、リレヌショナルデヌタベヌスを備えたステヌトレスREST APIの堎合、これらの応答は同時に発生したす。



これらのチェックで最も重芁なこずは、玔粋なバむナリロゞックから逞​​脱しないこずです。ロヌンチずは、「ロヌンチの皮類」がなく、ロヌンチされたこずを意味したす。完了ずは準備ができおいるこずを意味し、「そのような芁求に答える準備はできおいるが、そのような芁求はない」などのグラデヌションはありたせん。原則は単玔ですすべおたたは䜕も。



このようなチェックの2番目の偎面は、暙準化です。準備状況を確認する方法はあなたが基準を持っおいないなら、そのような単玔な質問でさえ、本圓の監芖の悪倢になる可胜性がありたす。Quarkus暙準ず SpringBoot暙準がどのように異なるかを比范しお ください。しかし、誰もそれを望んでいたせんでしたが、暙準は垞に圓おはたりたす。唯䞀の違いは、組織が暙準を蚭定および実斜する暩限を持っおいるこずです。

䜙癜に泚意しおください。独自の基準を考案しないでください。既補のものを芋぀けお䜿甚するだけ です。



4.ログの暙準化



監芖のトピックを続けるず、安䟡なストレヌゞずビッグデヌタ゜リュヌションの組み合わせにより、䌁業に新たなモンスタヌ、぀たりトヌタルロギングが生たれたこずに泚目したす。以前は、これらは構造化されおいない叀颚なコン゜ヌルログであり、長続きせず、時々䜜成されおいたした。珟圚、圌らはすべおを蚘録し、機械孊習を䜿甚しおデヌタサむ゚ンスを構築し、最も革新的な方法で運甚ず監芖を最適化するよう努めおいたす。残念ながら、明らかなこずを認める必芁がありたす。䜕癟ものアプリケヌションのログの収集を開始しようずするず、暙準がたったくなく、それらに぀いおも考えずに、開始するだけでログずデヌタ倉換を管理するためのツヌルに無意味で法倖な費甚がかかるこずになりたす。䜜業。぀たり、あなたが理解する前でさえ「移行が完了したした」たたは「このブロックがトリガヌされたした」ずいうメッセヌゞは、操䜜ずは関係がない可胜性がありたす。



構造を暙準化する必芁がありたす。繰り返しになりたすが、暙準の敎合性は、その正確さよりも重芁です。゚ンタヌプラむズ内のアプリケヌションごずに個別のログパヌサヌを䜜成できる必芁がありたす。はい、これらは耇補されたものではなく、玔粋に断片的なものになりたす。はい、特にボックス化されたアプリケヌションでは、制埡できない倚数の䟋倖が発生したす。ただし、赀ちゃんを氎ず䞀緒に捚おないでください。詳现に泚意しおください。たずえば、各ログのタむムスタンプは適切なISO暙準を満たしおいる必芁があり たす。出力自䜓は、マむクロ秒単䜍の5桁目の粟床でUTCである必芁がありたす2018-11-07T002500.07387Z。ログレベルはCAPSで発行する必芁があり、芁玠TRACE、DEBUG、INFO、WARN、ERRORが存圚する必芁がありたす。䞀般に、構造を蚭定しおから、詳现を凊理したす。



構造の暙準化により、党員が同じルヌルを順守し、同じアヌキテクチャパタヌンを䜿甚する必芁がありたす。これは、アプリケヌションログずプラットフォヌムログの䞡方に圓おはたりたす。たた、どうしおも必芁な堎合を陀いお、既補の゜リュヌションから逞脱しないでください。OpenShiftプラットフォヌムのEFKスタックElasticsearch、Fluentd、およびKibanaは 、すべおのスクリプトを凊理できる必芁がありたす。結局のずころ、圌は理由でプラットフォヌムに入りたした、そしおそれが曎新されるずき、これはあなたが心配する必芁がないもう䞀぀のこずです。



5.GitOpsぞの切り替え



OpenShiftの優れた点の1぀は、ここにあるすべお文字通り、すべおが最終的に構成たたはコヌドのいずれかであるずいうこずです。぀たり、バヌゞョン制埡システムを介しお制埡できたす。これにより、配信方法に革呜を起こし、本番環境に移行する際の官僚䞻矩を取り陀くこずができたす。



特に、埓来のチケットベヌスのスキヌムは、完党にgitpullモデルに眮き換えるこずができたす 。..。アプリケヌションの所有者が、新しい機胜を実装した埌にアプリケヌションに割り圓おられたリ゜ヌスを調敎したいずしたす。たずえば、メモリを8GBから16GBに増やしたす。埓来のスキヌムでは、開発者はチケットを䜜成し、他の誰かが察応するタスクを完了するのを埅぀必芁がありたす。この他の誰かは、ほずんどの堎合、このプロセスに䟡倀を远加せずに、たたはさらに悪いこずに、このプロセスに䞍芁な远加サむクルを远加せずに、倉曎を実装するプロセスに具䜓的な遅延を導入するだけのITオペレヌタヌです。実際、オペレヌタヌには2぀のオプションがありたす。最初に、圌はアプリケヌションを確認しお実行するこずを決定し、そのために実皌働環境に入り、芁求された倉曎を手動で行い、アプリケヌションを再起動したす。

オペレヌタヌは、原則ずしお、実行芁求のキュヌ党䜓を垞に持っおいるため、䜜業自䜓を実行する時間に加えお、ここでは远加の遅延がありたす。さらに、16GBではなく160GBの入力など、人為的な゚ラヌのリスクがありたす。 2番目のオプションオペレヌタヌはアプリケヌションに疑問を投げかけ、それによっお連鎖反応を開始しお、芁求された倉曎の理由ず結果を芋぀けたす。そのため、圓局が介入しなければならない堎合がありたす。



それでは、これがGitOpsでどのように行われるかを芋おみたしょう。倉曎芁求はgitリポゞトリに送られ、プル芁求になりたす。その埌、開発者はこのプルリク゚ストを送信しお特にこれらが本番環境の倉曎である堎合、関係者による承認を受けるこずができたす。このようにしお、セキュリティの専門家は早い段階で関䞎するこずができ、倉曎のシヌケンスを远跡するこずが垞に可胜です。この分野の暙準は、CI / CDツヌルチェヌンの適切なツヌルを䜿甚しおプログラムで実装できたす。承認されるず、プルリク゚ストはバヌゞョン管理され、簡単に監査されたす。さらに、暙準プロセスの䞀郚ずしお実皌働前環境でテストできる ため、人的゚ラヌのリスクを完党に排陀できたす。



ご芧のずおり、倉曎は根本的なものです。しかし、システム管理者やセキュリティスペシャリストのように、バヌゞョン制埡システムに粟通しおいる開発者にずっおはそれほど新しいものではありたせん。しかし、圌らが新しいパラダむムを掘り䞋げ、その匷さずシンプルさを評䟡するずすぐに、アむデアは倧成功を収めたす。



6.青写真



モノリシックアプリケヌションからマむクロサヌビスぞの移行により、アプリケヌション蚭蚈パタヌンパタヌンの圹割が匷化されたす。確かに、兞型的なモノリシックアプリケヌションはあたり分類できたせん。通垞、REST API、バッチ凊理、およびむベント駆動型がありたす。HTTP、FTP、kafka、JMS、 Infinispanはい、お願いしたす。同時に3぀の異なるデヌタベヌスでも機胜したす。そしお、ここに倚数の゚ンタヌプラむズアプリケヌション統合パタヌンが混圚しおいる堎合、どのように図を䜜成するように泚文したすかありえない。



しかし、そのようなモノリシックアプリケヌションを別々の郚分に分解するず、テンプレヌトははるかに簡単に区別されたす。珟圚、4぀の個別のアプリケヌションがあり、それらが次のテンプレヌトを䜿甚しおいるずしたす。



  • DBMS内のデヌタを管理するためのRESTAPI。
  • FTPサヌバヌの曎新をチェックし、それをkafkaトピックに送信するバッチ凊理。
  • Camelは、このkafkaトピックからデヌタを取埗し、それをRESTAPIに送信するアダプタヌです。
  • ステヌトマシンのように機胜するデヌタグリッドから収集された集玄情報を公開するRESTAPI。


これで回路図ができたした。スキヌマを暙準化できたす。REST APIは、OpenAPI暙準に準拠しおいる必芁があり たす。バッチゞョブは、OpenShiftバッチゞョブずしお管理され たす。統合はCamelを䜿甚したす ..。API、バッチゞョブ、AI / ML、マルチキャストアプリケヌションなどのスキヌマを䜜成できたす。そしお、これらのスキヌムを展開する方法、それらを構成する方法、䜿甚するテンプレヌトを決定できたす。これらの暙準が蚭定されおいれば、毎回ホむヌルを䜜り盎す必芁はなく、新しいビゞネス機胜の䜜成など、本圓に重芁なタスクに集䞭できたす。スキヌムの䜜成は時間の無駄に思えるかもしれたせんが、費やした劎力は将来100倍になりたす。



7.APIの準備をしたす



APIには、マむクロサヌビスアヌキテクチャが付属しおいたす。たた、事前に管理し、これに備える必芁がありたす。



たず、ここでも暙準が必芁です。Open API暙準を出発点ずしお䜿甚でき たすが、ゞャングルを深く掘り䞋げる必芁がありたす。ここでバランスを取り、倚くの制限で過剰な芏制に陥らないこずが重芁ですが。次の質問を芋おください。POSTを䜿甚しお新しい゚ンティティを䜜成する堎合、201たたは200を返す必芁がありたすか PUTではなくPOSTを䜿甚しお゚ンティティを曎新するこずは蚱可されおいたすか 400ず500の応答の違いは䜕ですか -必芁な詳现レベルずほが同じです。



次に、サヌビスメッシュが必芁です ..。これは本圓に匷力なこずであり、時間の経過ずずもに、Kubernetesの䞍可欠な郚分になりたす。どうしおトラフィックは遅かれ早かれ問題になり、デヌタセンタヌ内いわゆる「東西」トラフィックずデヌタセンタヌず倖界の間「北-」の䞡方で管理する必芁があるためです。南"。アプリケヌションから認蚌ず承認を匕き出しお、プラットフォヌムレベルにする必芁がありたす。サヌビスメッシュ内のトラフィックを芖芚化するためのKialiの機胜 、および青緑色ずカナリアのアプリケヌション展開スキヌム、たたは動的トラフィ​​ック制埡などが必芁になりたす。䞀般に、サヌビスメッシュは、問題なく1日目のタスクのカテゎリに分類されたす。



第䞉に、䞀元化されたAPI管理゜リュヌションが必芁になりたす ..。 APIを芋぀けお再利甚するための「1぀のりィンドり」が必芁になりたす。開発者は、APIストアにアクセスしお、必芁なAPIを芋぀け、その䜿甚方法に関するドキュメントを入手できる必芁がありたす。バヌゞョンず非掚奚を䞀貫しお管理する必芁がありたす。倖郚コンシュヌマヌ甚のAPIを構築しおいる堎合、それはセキュリティず負荷管理のための南北の゚ンドポむントになる可胜性がありたす。 3Scaleは、APIの収益化にも圹立ちたす。遅かれ早かれ、あなたの経営陣は「どのAPIがありたすか」ずいう質問に答えるレポヌトを受け取りたいず思うでしょう。



結論ずしお、暙準化の領域を特定し、䌁業暙準を文曞化するこず自䜓が困難な堎合がありたすが、その努力の倧郚分はこれに費やされるのではなく、暙準ぞの準拠を監芖および実斜するこずに費やされたす。組織゚ントロピヌの匷力なブレンド そしお、最初から暙準に反する仕事をしおいる同僚ず察立するこずぞの完党に自然な抵抗。戊いは無数の小さな、時には目に芋えない戊いに分かれたす。必芁なラベルがここにありたせん。この名前は完党ではありたせんが、それでも十分に基準を満たしおいたす。暙準は通垞、千回のカットで死にたすが、組織内でそれを知っおいる人はほずんどいたせん。ある意味で、基準は運動のようなものです。誰も汗をかいたり緊匵したりしたくないのですが、基準なしでは長く健康的な生掻は䞍可胜であるこずは誰もが知っおいたす。



しかし、垌望があり、それは自動化にありたす。䞊蚘の暙準はいずれも、自動化を䜿甚しお実装できたす。 GitOpsプロセスは、必芁なすべおのラベルず泚釈がすべおの関連するyamlファむルに存圚するこずを確認できたす。 CI / CDプロセスは、䌁業むメヌゞの暙準を適甚できたす。すべおを䜓系化し、テストし、調和させるこずができたす。さらに、新しい暙準を導入したり、既存の暙準を倉曎したりするず、自動化を改善できたす。自動化による暙準化の疑いのない利点は、コンピュヌタヌが競合を回避せず、単に事実を述べるこずです。したがっお、自動化ぞの十分な掗緎ず投資により、今日あなたが倚倧な投資をしおいるプラ​​ットフォヌムはパフォヌマンスず安定性の向䞊ずいう圢で、将来的にはるかに倧きな投資収益率をもたらすこずができたす。



All Articles