Webアプリケヌションを䜜成および公開するためのチェックリスト

最近、独自のりェブアプリケヌションを䜜成するためには、それを開発するだけでは䞍十分です。 重芁な偎面は、アプリケヌションの展開、監芖、およびそれが動䜜する環境の管理のためのツヌルのセットアップです。 手動展開の時代は忘れられ぀぀ありたす。小さなプロゞェクトであっおも、自動化ツヌルは具䜓的なメリットをもたらしたす。 「手動」で展開するず、䜕かを転送するこずを忘れたり、1぀たたは別のニュアンスを考慮に入れたり、忘れられたテストを実行したりするこずがよくありたす。



この蚘事は、Webアプリケヌションの䜜成の基本だけを理解し、基本的な甚語ず芏則に぀いお少し理解したい人に圹立ちたす。



そのため、アプリケヌションの構築は䟝然ずしお2぀の郚分に分割できたす。これは、アプリケヌションコヌドに関連するものず、このコヌドが実行される環境に関連するものです。 アプリケヌションコヌドは、サヌバヌサヌバヌ䞊で実行されるもの、倚くの堎合ビゞネスロゞック、承認、デヌタストレヌゞなどずクラむアントナヌザヌのマシン䞊で実行されるもの倚くの堎合、むンタヌフェむス、および関連するそれにロゞック。



氎曜日から始めたしょう。



コヌド、システム、゜フトりェアの動䜜の基瀎はオペレヌティングシステムです。以䞋では、ホスティング垂堎で最も人気のあるシステムを芋お、簡単に説明したす。



Windows Serverは同じWindowsですが、サヌバヌのバリ゚ヌションが異なりたす。 クラむアントの通垞のバヌゞョンのWindowsで䜿甚できる機胜、たずえば統蚈収集サヌビス、および同様の゜フトりェアはここにはありたせんが、ネットワヌク管理甚のナヌティリティセット、サヌバヌ展開甚の基本゜フトりェアweb、ftpなどがありたす。 䞀般に、Windows Serverは通垞のWindowsのように芋えたすが、通垞のWindowsのように芋えたすが、通垞のWindowsの2倍の費甚がかかりたす。 ただし、専甚/仮想サヌバヌにアプリケヌションを展開する可胜性が最も高いこずを考えるず、最終的なコストは増加する可胜性がありたすが、重芁ではありたせん。 WindowsプラットフォヌムはナヌザヌOSの垂堎で圧倒的な地䜍を占めおいるため、そのサヌバヌ゚ディションはほずんどのナヌザヌにずっお最も銎染みのあるものになりたす。



Unixラむクなシステム。 これらのシステムでの埓来の䜜業は、䜿い慣れたグラフィカルむンタヌフェむスを意味するものではなく、コントロヌル芁玠ずしおコン゜ヌルのみをナヌザヌに提䟛したす。 経隓の浅いナヌザヌにずっお、そのような圢匏での䜜業は難しく、デヌタで非垞に人気のあるVimテキスト゚ディタヌだけが残されたす。これに関連する6幎間の質問は、すでに180䞇ビュヌを超えおいたす。 このファミリヌの䞻なディストリビュヌション゚ディションは次のずおりです。Debian-人気のあるディストリビュヌション、そのパッケヌゞバヌゞョンは䞻にLTS 長期サポヌト -長期間のサポヌトに焊点を圓おおいたす。これはシステムずパッケヌゞのかなり高い信頌性ず安定性に反映されおいたす; Ubuntu-すべおのパッケヌゞのディストリビュヌションが最新バヌゞョンに含たれおいるため、安定性に圱響する可胜性がありたすが、新しいバヌゞョンに付属の機胜を䜿甚できたす。 Red Hat Enterprise Linux-商甚目的で販売されおいるOSは有料ですが、゜フトりェアプロバむダヌ、䞀郚のプロプラむ゚タリおよびドラむバヌパッケヌゞからのサポヌトが含たれおいたす。 CentOS- Red Hat Enterprise Linuxのオヌプン゜ヌス版で、独自のパッケヌゞずサポヌトがないこずを特城ずしおいたす。



この分野の開発のみを理解しおいる人には、 Windows ServerたたはUbuntuをお勧めしたす 。 Windowsを怜蚎する堎合、これは䞻にシステムの習慣であり、 Ubuntu-曎新に察する耐性が高いため、たずえば、新しいバヌゞョンを必芁ずするテクノロゞヌでプロゞェクトを開始するずきの問題が少なくなりたす。



したがっお、OSを決定したら、アプリケヌションたたはサヌバヌ䞊のその郚分の状態を展開むンストヌル、曎新、および監芖できるツヌルのセットに移りたしょう。



次の重芁な決定は、アプリケヌションずサヌバヌをホストするこずです。 珟時点では、最も䞀般的な3぀の方法がありたす。





遞択されたパスに応じお、事実のみが将来倉曎されたすが、ほずんどの堎合、特定の管理領域に察する責任は誰にありたす。 自分でホストしおいる堎合は、電気、むンタヌネット、サヌバヌ自䜓、そこに展開されおいる゜フトりェアのすべおの䞭断を理解する必芁がありたす。これらはすべおあなたの肩にかかっおいたす。 ただし、トレヌニングずテストに぀いおは、これで十分です。



サヌバヌの圹割を果たすこずができる远加のマシンがない堎合は、2番目たたは3番目の方法を䜿甚したす。 2番目のケヌスは最初のケヌスず同じです。ただし、サヌバヌの可甚性に察する責任ずホストの肩ぞの暩限をシフトしたす。 サヌバヌおよび゜フトりェアの管理は匕き続き管理できたす。



そしお最埌に、クラりドプロバむダヌの力を借りるオプション。 ここでは、技術的なニュアンスをあたり必芁ずせずに、ほずんどすべおの自動制埡を構成できたす。 さらに、1台のマシンの代わりに、耇数のむンスタンスむンスタンスを䞊行しお実行するこずができたす。たずえば、専甚サヌバヌの所有暩ずあたりコストをかけずに、アプリケヌションのさたざたな郚分を担圓できたす。 たた、オヌケストレヌション、コンテナ化、自動展開、継続的むンテグレヌションなどの手段もありたす これらのこずのいく぀かを以䞋で怜蚎したす。



䞀般的に、サヌバヌむンフラストラクチャは次のずおりです。サヌバヌむンスタンスの環境の倉曎を管理するいわゆる「オヌケストレヌタヌ」「オヌケストレヌション」-耇数のサヌバヌむンスタンスを管理するプロセス、アプリケヌションを分割できる仮想化コンテナヌオプションですが、よく䜿甚されたすがありたす分離された論理局、および継続的統合甚の゜フトりェア-ホストされたコヌドを「スクリプト」で曎新できたす。



したがっお、オヌケストレヌションでは、サヌバヌの状態を確認したり、サヌバヌ環境の曎新をロヌルバックたたはロヌルバックしたりできたす。 最初に、この偎面はあなたに関係しそうにありたせん。䜕かずオヌケストレヌションするためには、耇数のサヌバヌが必芁です1぀は必芁ですが、なぜ必芁なのですか、そしお耇数のサヌバヌがあるためにはそれらが必芁です。 この分野のツヌルのうち、ほずんどがGoogleが開発したKubernetesです。



次のステップは、OSレベルでの仮想化です。 珟圚、「ドッカヌ化」の抂念は広く普及しおいたす。これは、互いに分離されたコンテナの機胜を提䟛するが、同じオペレヌティングシステムのコンテキストで起動されるDockerツヌルに由来したす。 これが意味するこずこれらのコンテナのそれぞれで、このマシン䞊の他の誰かの存圚を知らなくおも、アプリケヌション、たたはそれらがOS党䜓で唯䞀のものであるず仮定するアプリケヌションのセットを実行できたす。 この機胜は、異なるバヌゞョンの同じアプリケヌションを起動する堎合や、単に競合するアプリケヌションを起動する堎合、およびアプリケヌションの䞀郚をレむダヌに分割する堎合の䞡方に非垞に圹立ちたす。 このレむダヌのキャストは、その埌、たずえばアプリケヌションをデプロむするために䜿甚できるむメヌゞに曞き蟌むこずができたす。 ぀たり、このむメヌゞをむンストヌルし、それに含たれるコンテナヌを展開するず、アプリケヌションを起動するための既補の環境が埗られたす 最初のステップでは、このツヌルを教育目的ずアプリケヌションロゞックを異なるレむダヌに広げるこずで非垞に倧きな利益を埗るために䜿甚できたす。 しかし、誰もがドッキングを必芁ずするわけではなく、垞に必芁ではないこずをここで蚀う䟡倀がありたす。 ドッキングは、アプリケヌションが「断片化」され、小さな郚分に分割され、それぞれが独自のタスク、いわゆる「マむクロサヌビスアヌキテクチャ」を担圓する堎合に正圓化されたす。



環境の提䟛に加えお、あらゆる皮類のコヌド倉換、アプリケヌションに関連するラむブラリずパッケヌゞのむンストヌル、テストの実行、これらの操䜜に関する通知などを含む、アプリケヌションの適切な展開を提䟛する必芁がありたす。 ここでは、「継続的むンテグレヌション」 CI-継続的むンテグレヌション などの抂念に泚意する必芁がありたす。 珟圚、この分野の䞻なツヌルはJenkinsJavaで曞かれたCIの゜フトりェアは最初は少し耇雑に芋えるかもしれたせん、 Travis CI Rubyで曞かれ、䞻芳的にはJenkinsよりもややシンプルですが、展開構成゚リア、 Gitlab CI  Ruby and Goで蚘述。



そのため、アプリケヌションが動䜜する環境に぀いお説明した埌、最終的に、珟代の䞖界がこれらのアプリケヌションを䜜成するためにどのようなツヌルを提䟛しおいるかを確認したす。



基本から始めたしょう バック゚ンド バック゚ンド-サヌバヌ偎。 ここでの蚀語の遞択、基本機胜のセット、および事前定矩された構造フレヌムワヌクは、䞻に個人の奜みによっお決定されたすが、それでも怜蚎のために蚀及する䟡倀がありたす蚀語に぀いおの著者の意芋は、公平な説明に察する䞻匵にもかかわらず、非垞に䞻芳的です





さお、アプリケヌションの最埌の郚分-ナヌザヌにずっお最も具䜓的なもの- フロント゚ンド フロント゚ンド-はアプリケヌションの衚面であり、ナヌザヌが盎接察話するのはこの郚分です。



詳现には觊れたせんが、最新のフロント゚ンドは、ナヌザヌむンタヌフェむスを䜜成するための3぀の柱であるフレヌムワヌクそれほどではありたせんに基づいおいたす。 したがっお、最も人気のある3぀は次のずおりです。





䞊蚘を芁玄するず、アプリケヌションの展開はこのプロセスの進行方法ず根本的に異なるず結論付けるこずができたす。 しかし、「展開」を昔ながらの方法で実行するこずを誰も気にしたせん。 しかし、最初に節玄した時間だけの䟡倀はありたすかこのパスを遞択した開発者が螏たなければならない膚倧な数のレヌキですか 答えはノヌだず思いたす。 これらのツヌルに慣れるのにもう少し時間を費やしたしたそしお、珟圚のプロゞェクトで必芁かどうかを理解する必芁があるため、これ以䞊必芁ありたせん。たずえば、環境に䟝存する幜霊のような゚ラヌのケヌスを倧幅に枛らしお、実動サヌバヌ䞊でのみ珟れ、倜間の解析によりサヌバヌがクラッシュし、なぜ起動しないのか、などなど。



All Articles