複数のパッケージを単一リポジトリで管理するMonorepoが注目されている。1つの変更を関連する複数のパッケージに適用できるなどのメリットがあるが、優れたツールがなければ破綻する。
クラウドセキュリティ企業Fugueが興味深い技術を提案している。Fugueは「フュージー」(few-g)と発音する。だが、その名前はバロック時代に人気があった多声部から成る音楽スタイル(フーガ)に由来する。
同社のコア製品は、クラウドアプリケーション開発にセキュリティを組み込んで「Amazon Web Services」(AWS)、「Microsoft Azure」「Google Cloud Platform」の構成ミスをなくし、クラウドの曖昧で未知の要素をソフトウェアエンジニアが制御できるようにすることでコンプライアンスを証明しようとしている。
Fugueの最初のスタックはセキュリティに軸を置くソフトウェアだった。だが、今は「Zim」という「非セキュリティ」分野の新しいオープンソースプロジェクトをリリースしている。
Zimは、Monorepo(モノレポ)を利用するチーム向けのキャッシュビルドシステムだ。
Monorepoとは、多くのプロジェクトのコードを同じリポジトリに格納するソフトウェア開発戦略のことだ。Atlassianのサイトの記載によると、Monorepoのプロジェクトはそれぞれがほぼ無関係か疎結合型で、他の手段(例えば、依存関係管理ツール)によって接続される可能性が高いという。Monorepoは全てのコードと資産が1カ所にあるため、単一ソースの可視性が高い。同じ理由でコラボレーションの助けにもなる。また、開発者が1つのコードに「アトミックな変更」を行うだけで複数のプロジェクト全体に影響を及ぼすことができるため、開発速度も向上する。
では、Zimは何を行うのだろうか。
前述の通り、Zimは多くのコンポーネントや依存関係が含まれるMonorepoを使用する開発者向けに設計されたキャッシュビルドシステムだ。チーム全体に「高速増分並列ビルド」を提供する。「Docker」によるクロスプラットフォームビルド向けの組み込みサポートにより、言語に依存しないビルドシステムを実現する。
Zimは、GitHubでホストされるオープンソースプロジェクトとして入手できる。
「Zimの開発には、『GNU Make』の基本概念と『Buck』(Facebook)、『Bazel』(Google)、『Please』(Thought Machine)が採用するキャッシュ戦略にヒントを得ている。GNU Makeと同様、Zimは入力や出力を定義する新しいルールの簡単な表現方法と、出力の作成に必要なコマンドなどを備えている。ZimではRule Keys(ルールキー)を処理する。ルールの入力と構成を組み合わせたハッシュを基にルールの出力がキャッシュ内に既に存在するかどうかを判断するのに、このルールキーが使用される」と、Fugueの共同設立者でコミュニケーション部門のバイスプレジデントを務めるドリュー・ライト氏は同製品のリリースノートに記載している。
FugueがクラウドセキュリティとコンプライアンスSaaSをAWSに構築するに当たって、最初は「AWS Lambda」と「AWS Fargate」によるサーバレスアプローチを採用した。それは、仮想サーバ(「Amazon EC2」インスタンスなど)の管理を避け、AWSのメカニズムによってセキュリティとジョブを分離して応答性の高い動的なスケーリングできるようにするためだった。
そのため、チームは全コードをMonorepoに格納し、Makefileを使ってタスクのビルドとデプロイを全てスクリプト化することにした。
だが、システムのコンポーネントが数百に増えるとMakefileのアプローチは扱いにくくなり、ビルドと成果物の管理ツールを改善する必要があることが分かってきた。
「Zimとその共有キャッシュにより、多くの一般的なタスクのビルド時間が大幅に短縮された。Zimの共有ビルドテンプレートを再利用すると、Makefileベースのビルドスクリプトのメンテナンスも大幅に減少した。当社のテンプレートライブラリはPython、Go、Node.jsで記述されており、AWS LambdaとAWS Fargate用バイナリの効率的なビルドをサポートする」(ライト氏)
Zimの主な特徴は次の通りだ。詳細については同社のブログを参照してほしい。
入力が変化する場合のみルールが実行され、他の開発者が既にビルドしている場合は共有キャッシュから出力が取り出される。
新しい種類のコンポーネントのビルド方法を数行のYAMLで定義する。
組み込みのDockerサポートを利用。コンポーネントのビルド時に使うDockerイメージを指定するだけだ。
Zimはネイティブなサポート対象リソースとしてファイルとDockerイメージの両方と連携可能。
「AWS CloudFormation」により「Amazon S3」に設定できる。
ZimはGoで記述され、単一のバイナリにビルドされる。そのため、事実上全てのCI/CDパイプラインと互換性がある。
Copyright © ITmedia, Inc. All Rights Reserved.
ビジネスに生成AIを利用するのが当たり前になりつつある中、ローコード開発への活用を模索している組織も少なくない。開発者不足の解消や開発コストの削減など、さまざまな問題を解消するために、生成AIをどう活用すればよいのか。
システム開発を任されても、「何から始めたらよいのか分からない」という担当者は多いだろう。そこで本資料では、システム開発の流れや専門用語といった基礎知識を分かりやすく解説するとともに、システム開発の4つの手法を紹介する。
システムの不具合によるさまざまなリスクを回避するには網羅的なテストを行う必要があるが、自社で行うのは難しい。そこで活用したいのが外部のテスト専門会社だ。本資料ではテスト専門会社を活用するメリットや具体的な流れを解説する。
レガシーシステムからの脱却が叫ばれる中、「ERP×ノーコードツール」のアプローチで基幹システムの刷新に取り組む企業が増加している。その推進に当たっては、「Fit to Company Standard」の概念を頭に入れておくことが必要になる。
迅速なサービスの提供を実現する手段として、「ローコード開発×内製化」が注目されている。エンジニア不足の中でも、非IT部門が開発を担える点がその理由の1つだが、全てが順調に進むわけではない。失敗事例から得た2つの教訓を紹介する。
なぜ、「kintone」が大企業の「Fit to Standard」に効果的なのか (2025/3/7)
ノーコードは、負の遺産であるアナログ業務をなくせるのか (2024/11/12)
手間もコストもかかるGUIのテストはどうすれば自動化できるのか (2024/6/4)
「システム内製化」が失敗しがちなのはなぜ? “従来のやり方”では駄目な理由 (2024/5/15)
金融機関のモダナイゼーション 最適解に導くには (2024/3/29)
「テレワークでネットが遅い」の帯域幅じゃない“真犯人”はこれだ
ネットワークの問題は「帯域幅を増やせば解決する」と考えてはいないだろうか。こうした誤解をしているIT担当者は珍しくない。ネットワークを快適に利用するために、持つべき視点とは。
「サイト内検索」&「ライブチャット」売れ筋TOP5(2025年5月)
今週は、サイト内検索ツールとライブチャットの国内売れ筋TOP5をそれぞれ紹介します。
「ECプラットフォーム」売れ筋TOP10(2025年5月)
今週は、ECプラットフォーム製品(ECサイト構築ツール)の国内売れ筋TOP10を紹介します。
「パーソナライゼーション」&「A/Bテスト」ツール売れ筋TOP5(2025年5月)
今週は、パーソナライゼーション製品と「A/Bテスト」ツールの国内売れ筋各TOP5を紹介し...