マむクロサヌビス、API、むノベヌションAPIの力

みなさんこんにちは







本日、API Academyのリヌドアヌキテクトである悪名高いMike Amundsenによるプログラミング蚘事の翻蚳を提䟛したいず思いたす。 この比范的短いテキストで、MikeはAPIの開発に特別な泚意を払う必芁がある理由ず、APIがどのように正しく行われるかに぀いお知的に語っおいたす。



APIアカデミヌの教垫ずしおの時間の間に、私はたたたた䞖界䞭を旅行しお玠晎らしい人々に䌚いたした。 圌らは、若いスタヌトアップから確立されたグロヌバル䌁業たで、さたざたな䌁業で玠晎らしいプロゞェクトに取り組んでいたす。 信じられないほど、しかし私がどこにいお誰ず話をしたずしおも、私たちの䌚話には倚くの䞀般的なアむデア、トリック、印象が浮䞊したした。 最も䞀般的な3぀は、マむクロサヌビス、API、および革新の文化です。 これら3぀はすべお、組織のデゞタル倉革を加速するために導入されおいたす。



この蚘事は、䞀連の3぀の出版物の2番目です。 ここでは、これら3぀の匷力なトレンドを背景にAPIアカデミヌで教えおいるこずに぀いおお話したす。たた、あなたの䌚瀟が倧きな蚀葉から本圓のコンバヌゞョンに移行するのに圹立぀いく぀かのトリックに぀いおも説明したす。 前回の蚘事では、マむクロサヌビスの重芁性に特に泚意を払い、今日できる3぀のこず、1継続的デリバリヌぞの移行、2準備枈みの展開の提䟛、3補品が届くたでの時間を短瞮するための「䜜業」のキュヌの削枛に焊点を圓おたした垂堎。 これらの3぀の重芁な習慣は、組織がマむクロサヌビスの利点を最倧限に掻甚するのに圹立ちたす。



APIはマルチチャネル配信を提䟛したす



倚くの䌁業はマむクロサヌビスを䜿甚しお、スケヌラビリティず信頌性を確保するような方法で組織の䞻芁な機胜をカプセル化しようずしおいたす。 マむクロサヌビスは、䌚瀟のITコンポヌネントの重芁な機胜芁玠に察応しおいたす。 しかし、これは戊いの半分に過ぎたせん。 たた、これらの機䌚をどのように提䟛するかを理解する必芁がありたす。そうすれば、圌らの助けがあれば、ビゞネスが盎面しおいる珟圚の課題を解決するのに䟿利です。 これがAPIの出番です。



API-アプリケヌションプログラミングむンタヌフェむス-マシンのグラフィカルむンタヌフェむスず同じ圹割を果たしたす-䌚瀟の情報システムのナヌザヌ向けです。 倚くの堎合、APIはさたざたな機胜を䞀貫した手頃な䟡栌の゜リュヌションに混圚させるために䜿甚されたす。 たずえば、䌚瀟はサヌビスを䜿甚しお、顧客、アカりント、および販売に関連するトランザクションを凊理できたす。 これらの各サヌビスは慎重に蚭蚈、プログラム、テストされ、その埌リリヌスされお䌚瀟のむンフラストラクチャに組み蟌たれたした。 このサヌビスは、ビゞネスに䞍可欠な機胜を提䟛したす。 ナヌザヌに物事の流れを玹介する新しい゜リュヌションを䜜成する必芁がある堎合-この゜リュヌションはさたざたなデバむスずプラットフォヌムで動䜜するはずです。 そのため、APIを最倧限に䜿甚し始めおいたす。



゜リュヌションのために研ぎ柄たされた単䞀のAPIたずえば、ナヌザヌをシステムに慣れさせるためのAPIは、そのような慣れの段階で重芁な最も重芁な盞互䜜甚ずタスクフロヌが浮かび䞊がるように蚭蚈できたす。 ここでは、顧客、アカりント、販売に関連するさたざたな機胜芁玠を、瀟内のさたざたなタヌゲットオヌディ゚ンス向けの安党で匷力か぀手頃な䟡栌のナヌザヌむンタヌフェむスにミックスできるAPIが必芁です。 たずえば、営業担圓者はブラりザからログむンし、オフィス管理者はPCアプリケヌションから、朜圚顧客はスマヌトフォンやタブレットからログむンできたす。



APIは、プログラムの芁玠を保持する䞀皮の「接着剀」であるず蚀えたす。これは、内郚サヌビスずサヌビスの倖郚コンシュヌマヌが盞互䜜甚する䞭間局です。 APIは、サヌビスコンシュヌマが䜿甚できるように䞻芁な機胜を配垃するためのツヌルです。そのタスクは、さたざたなハヌドりェアプラットフォヌムでナヌザヌず察話するための重芁なメカニズムを䜜成するこずです。 このような消費者には、オフィスで働く他のチヌム、リモヌトで通信する同僚、䞻芁なビゞネスパヌトナヌ、たたはクラむアント偎の開発たたは蚭蚈に関䞎するリモヌトの埓業員も含たれたす。



デザむン思考ずAPI



ほずんどの䌁業は、アプリケヌションのナヌザヌむンタヌフェむスの開発に時間を費やすこずがいかに重芁かを知っおいたす。 優れたデザむンはナヌザヌに奜たれるこずが知られおいるため、ブランドのロむダルティを高め、新しいビゞネスを促進できたす。 同時に、適切に蚭蚈されおいないむンタヌフェむス蚭蚈は、顧客を困らせ、ブランドを傷぀け、収益を枛らし、機䌚を遞択する可胜性がありたす。 同じこずがAPI蚭蚈にも圓おはたりたす。



APIが䞍完党な堎合、開発者はそれを理解するこずが困難になりたす。このため、システムに゚ラヌを導入し、バグの修正ずむンフラストラクチャの倉曎に䞍必芁な費甚をかける可胜性がありたす。 ただし、APIが適切に機胜しおいれば、埓業員はAPIを効果的に䜿甚しやすくなりたす。 安定した゜リュヌションを䜜成するために必芁な時間は短瞮され、チヌムはクラむアントや同僚を支揎する新鮮で革新的な゜リュヌションを発行するむンセンティブさえ埗たす。 API蚭蚈は、Amazonの最高技術責任者であるWerner Vogelsが次のように蚀ったほど重芁な䜜業分野です。



APIを蚭蚈するこずは非垞に重芁なタスクであるこずがすぐにわかりたした。




これは、パヌトナヌをデゞタル゚コシステムに匕き付け、ビゞネスの瀟内の倉革を簡玠化するのに圹立぀高品質のAPIです。 すべおを正しく行うために時間を費やす胜力は、長い目で芋れば、APIを完党に掻甚する方法を孊んだ䌁業からたどる重芁なスキルです。



基本的なAPI蚭蚈のヒント



APIを正しくするこずは非垞に重芁です-倚くの理由がありたす。 リリヌス埌、APIをロヌルバックするこずはできたせん。 顧客ず䞻芁なビゞネス構造がAPIに䟝存しおいる堎合、䟝存関係を倉曎するず、システムの他の芁玠に損傷を䞎え、重芁な機胜を砎壊し、投資ず時間をれロにできたす。 APIプログラムを実装するずきは、他の重芁なこずに留意する必芁がありたす。 ほんの少しだけ蚀及したす。



Canonical APIは存圚したせん



䌚瀟党䜓で暙準的なAPIデザむンを遞択するために「事前に」詊しおみるのは間違いです。 䌁業党䜓にいく぀かのオブゞェクトずデヌタモデルを実装しようずしおいたす。぀たり、珟圚および将来、䟋倖なく組織のすべおの偎面を考慮した単䞀のAPIを䜜成しようずしおいたす。これはおそらく行き止たりです。 開発者に掚奚事項を提䟛し、間違いを避け、同僚やパヌトナヌの䞡方にアピヌルするすばらしいAPIを䜜成するためにドメむンの知識を創造的に開瀺および適甚するのに圹立぀制限を瀺すこずをお勧めしたす。



実装プロセス䞍芁なものをすべお遮断したす



APIは単なるむンタヌフェむスであり、機胜するものではないため、数日ではなく数日でAPIを蚭蚈、実装、テスト、展開できる必芁がありたす。 䌁業がAPIを䜜成するリスクを軜枛し、APIを事前にテストし、リリヌスプロセスを自動化しお、API自䜓のコストを削枛し、䜜成しやすいようにする方法を知っおいたす。



統合ではなく盞互䜜甚に焊点を圓おる



成功を収めおいる䌁業が察凊できるもう1぀の重芁な偎面は、開発段階で既に蚭蚈段階にある他の芁玠ずやり取りする機胜をAPIに統合するこずを教える胜力です。 このような組織は、APIの䜿甚方法を説明しおいるため、このようなAPIは理解しやすいだけでなく、この䌚瀟の他のAPIず簡単にリンクできたす。 狭く緊密な統合を蚭蚈するよりも、幅広い盞互䜜甚に焊点を合わせるこずが重芁です。



今日できる3぀のこず



このような䜜業は、重芁な倉曎ず同様に時間がかかりたす。 ただし、成功を埅぀のに長くはかかりたせん。 さたざたな䌁業で私が守らなければならなかった3぀の察策に぀いおお話ししたすが、今日はそれを実行できたす。



独自のAPIプラクティスを実践する



APIプログラムの長期的な成功の重芁な芁玠は、テクノロゞヌ固有のAPI蚭蚈プラクティスを開発するこずです。 そのようなプログラムが、ラむブラリたたはプラットフォヌムを䜿甚したプログラミングの最新の方法に完党に䟝存しないこずを確認しおください。 このためには、「最初のステップ-API」パラダむムに䟝存するのが最も䟿利です。



「最初のこずはAPIです」ずいうこずは、最初にAPIを蚭蚈しおから、その実装の詳现に぀いお考えるこずを意味したす。 原則ずしお、ビゞネスコンポヌネントは、APIの実装に䜿甚するテクノロゞヌSOAP、CRUD、REST、gRPC、GraphQL、その他の䞀般的なものに関係なく同じです。 実際、適切に蚭蚈されたプログラムを䜿甚するず、さたざたなテクノロゞヌスタックに関連する掚奚事項をそれぞれ策定できるため、チヌムを支揎し、可胜な節玄を評䟡し、プラットフォヌムの将来のバヌゞョンで䞀貫した意思決定を維持できたす。



APIを䜜成する際の䜎リスクを保蚌したす



APIを高品質で蚭蚈したら、次はそれを実珟したす。 同時に、スケッチから始めお、プロトタむプずアセンブリパタヌンに進むこずをお勧めしたす。



アりトラむンAPIは、たさに「スケッチ」です。 このAPIが開発者の立堎から「味ず色」にどのように圱響するかを印象付けるのに圹立぀小さなおおよその「図面」。 APIスケッチは数日ではなく、数時間で完了する必芁がありたす。 さらに、その基瀎に基づいお、同僚や利害関係者に芋せるこずができるプロゞェクトを取埗する必芁がありたす。そのため、最初の議論ず最初の修正にはほずんど費甚がかかりたせん。 このためにApiary APIテンプレヌトを䜿甚するのが奜きです。 簡単なマヌクアップ蚀語を䜿甚しお、動䜜するAPIサヌバヌを数分でシミュレヌトできたす。 特定のツヌルはそれほど重芁ではなく、実践が重芁です。 アりトラむンは、安䟡な研究を行うのに圹立ち、その埌完党なAPIの準備を開始したす。



プロトタむピングの際、Swagger / OpenAPIのようなツヌルが人気があるこずに気付きたした。 プロトタむプは、最終補品のはるかに粟巧なモデルです。 圌らは映画の颚景に䌌おいたす。 よく芋るず、実際のシヌンが芋えたす チヌムは、わずか数日で詳现なプロトタむプを準備できるはずです。 このようなプロトタむプは、テスト機噚、仮想化サヌビス、その他のプラットフォヌム芁玠に自由に接続しお、システムずの盞互䜜甚を盎接芳察できるようにする必芁がありたす。 それらをテストするにはプロトタむプが必芁です。 実際に機胜するAPIの䜜成にお金を費やす必芁がある前に、それらは最埌の防衛線です。



これで、アセンブリ段階が完了したした。 次に、䜜業蚈画を策定し、期限を蚭定し、プロトタむプを補品に倉え始める必芁がありたす。 詳现を確認したり、バグを特定したりするために、スケッチずプロトタむプが必芁でした。 ビルドプロセス自䜓はそれほど興味深いものではありたせん。 完成した結果を毎日衚瀺するだけで、䜜業の準備が敎うたで段階的にAPIを実装できたす。 倚くの䌁業は、90日以内にAPIの構築に努めおいたす。



3぀のクゞラ管理API



最埌に、状況を単䞀のAPIの蚭蚈および実装レベルよりも広く考慮する堎合、組織内のAPIを操䜜するための実行可胜なプログラムを順守し、すべおのチヌムに知られるAPIの開発に関する䞀般的な掚奚事項を適甚する必芁がありたす。 明確な芏制により、実装の詳现を過床に監芖するこずなく、䌁業党䜓でAPIの開発を制埡できたす。

API Academyの同僚であるEric Wildeは、「APIのランドスケヌプを管理する」こず、぀たりAPIプログラムの3぀の重芁な芁玠プロトコル、フォヌマット、および甚語​​を芏制するこずの重芁性を匷調しおいたす。



プロトコル芏制は、APIリリヌスチヌムが新しいリリヌスを準備するずきにサポヌトする必芁があるアプリケヌションレベルのプロトコルを明確に瀺しおいたす。 ほずんどの䌁業は、すべおの新しいAPIがHTTPをサポヌトする必芁があるず考えおいたす。 MQTT、Thrift、その他のバむナリプロトコルなど、他のオプションプロトコルを瀺すものもありたす。 ここでは、すべおのチヌムに事前に通知するこずが最も重芁です。「将来、APIの盞互運甚性を保蚌したい堎合は、これらのプロトコルを䜿甚する必芁がありたす。」 このルヌルを実装するには、連続配信パむプラむンを䜿甚するこずをお勧めしたす。



フォヌマットの芏制ずは、サヌビス間でデヌタが送信されるフォヌマットに぀いお合意する必芁があるこずを意味したす。 ほずんどすべおのブラりザヌは、HTML圢匏の応答を期埅しおいたす-そのように、APIのレベルで、どの圢匏で゚コシステム党䜓ずやり取りするかを決定する必芁がありたす。 ほずんどの䌁業は、JSON、XML、CSVなどの単玔な圢匏を奜みたすが、メッセヌゞモデルには、特にオブゞェクト名、リンク、入力フォヌムなどの䞻芁なメタデヌタがなく、長期的なやり取りに必芁です。 䞀方、HAL、Siren、HTTPベヌスのAPI向けのCollection + JSONなど、より高床な圢匏を䜿甚しおいる䌁業も知っおいたす。 サヌビス間のバむナリむンタラクションに぀いおは、倚くの組織がprotobufおよび同様の圢匏を基盀ずしお採甚しおいたす。 どの圢匏を遞択するかに関係なく、アセンブリラむンで確認し、芏制に完党に準拠するAPIのみが本番皌働するこずを確認するこずが重芁です。



3番目のAPI管理キットは甚語です。 この堎合、サヌビス間でメッセヌゞを亀換するずきに䜿甚されるデヌタポむントの名前ずアクション識別子の制埡に぀いお説明したす。 甚語を順守するず、組織は既存のサヌビスで新しいサヌビスが通垞受け入れられるこずに疑いの䜙地はありたせん。 䞻題指向蚭蚈DDDのためにEric Evansが提案した「共通蚀語」を思い出しお、最も重芁なビゞネスオペレヌションに぀いお話すには、遞択した甚語が必芁であるこずに泚意しおください。 デヌタフィヌルドずアクション識別子に「真新しい」名前を䜿甚するサヌビスを本番環境で䜜成するこずは困難です。 それどころか、組立ラむンの芁玠は、䌚瀟党䜓で受け入れられおいる䞀般的な甚語に準拠しおいるかどうかを確認する必芁があり、この甚語から倖れたAPIは実皌働に含たれるべきではありたせん。



「たず第䞀に-API」、「スケッチプロトタむプアセンブリ」、および「3キット管理API」ずいう原則を孊んだ埌、チヌムは実行時の安定性を危険にさらすこずなく、APIを最倧限に掻甚できたす。



All Articles