2018.11.19

ローコード開発とDevOpsが奏でる素敵なハーモニー(後編)

河原﨑剛
OutSystemsジャパン株式会社
ソリューションアーキテクト
このエントリーをはてなブックマークに追加

OutSystemsジャパン株式会社 ソリューションアーキテクトの河原﨑 剛と申します。

前回は「ローコード開発の概要とメリット」をご紹介しました。ローコード開発プラットフォームの利用により、アプリケーションの高速開発と生産性向上を実現できます。

一方、システム開発と運用の俊敏性・提供価値を高める取り組みとして、DevOpsが存在します。DevOpsでは開発と運用をスムーズに連携させることで、ライフサイクル全体のスピード、品質を高めていきます。ローコード開発はその名が示す通り「開発(Dev)」を対象としていますが、ローコード開発をDevOpsと組み合わせることができれば、ビジネス上の効果(スピード・生産性)はさらに高まるはずです。そこで、今回はローコード開発とDevOps連携の可能性について考察していきます。

ローコード開発とDevOpsの出会い

これまでDevOpsとローコード開発が同じ文脈で語られることはほとんどありませんでした。ローコード自体が新しい概念であり、DevOpsにおける「開発」が元々「ハンドコーディング」を前提としていたという背景があります。しかし、今日のローコード開発プラットフォームはハンドコーディングに匹敵する表現力と拡張性を備えつつあります(前回のコラム参照)。そのため現在、ハンドコーディングの代わりに「ローコード」をDevOpsに組み入れる環境が整ったといえるでしょう。

ローコード開発とDevOpsの関係

ローコード開発を採用することで、開発フェーズの生産性は大幅に高まります。しかし、要件定義、設計、開発、テスト、運用という一連のプロセスの中で、開発フェーズの期間だけが短縮されても、プロジェクト全体への効果が限定的なのは確かです。そこで、ローコード開発を採用する場合、ウォーターフォール型の開発プロセスではなく、アジャイル開発を取り入れた方が「スピード向上・期間短縮の効果がより見えやすい」という認識が生まれつつあります。この「アジャイル開発と組み合わせることで、より効果が高まる」という点は、ローコード開発とDevOpsの共通点であるといえます。

また、ローコード開発を単なるソースコード自動生成に利用するだけではなく、DevOpsの継続的インテグレーション(CI)・継続的デリバリー(CD)に組み込むことで、アプリケーション開発全体のスピード・効率はさらに高まります。このように、ローコード開発・DevOps連携にはメリットがあり、ローコード開発プラットフォームに対してDevOpsを前提とした機能が求められています。実際、GartnerやForresterのローコード開発/高生産性開発ソフトウエアに関する評価レポートでは、評価軸の一つとしてDevOps対応があげられています。

ローコード開発とDevOpsの連携

「継続的インテグレーション、継続的デリバリー」のサイクルにおいて、ローコード開発は「ソースコードの生成とビルド」に該当します。しかし、プラットフォームによってはそれ以外のプロセスもカバーしているケースがあり、既存のDevOps基盤やツールと連携可能な場合もあります。このように、DevOps対応のレベルはプラットフォームによって異なるため、何がどこまでできるのか、自社DevOps環境との連携可否などを事前に把握しておくことは重要です。

今回は、ローコード開発プラットフォームの例として、「OutSystems」を取り上げ、ローコード開発がDevOpsとどのように関連しているのかを見てみたいと思います。

181119_outsystems_01.png

OutSystemsの例

OutSystemsは開発実行環境・ツールだけではなく、プラットフォーム単体でDevOps関連の機能も提供しています。以下に、継続的インテグレーション、継続的デリバリーに関する機能を記載します。

継続的インテグレーション

・自動ビルド

開発ツール上でモデルを定義し、パブリッシュすることで、下記一連の処理が自動実行されます(必要に応じて、Testing Frameworkを利用し、ビルド後に単体テストを組み込むことも可能です)。

1)定義したモデル情報(画面、ビジネスロジック、データ)をサーバにチェックイン

2)モデル情報に基づき、アプリケーションのソースコードを自動生成&コンパイル

3)コンパイル済みアプリケーションをアプリケーションサーバに自動デプロイ

・バージョン管理

パブリッシュ済みのモデル情報はサーバ上で自動的にバージョン管理され、必要に応じてロールバック、ロールフォワードが可能です。また、チーム開発時には開発ツール上でモデルのコンフリクトチェック、Diff確認、マージ処理も可能です。

181119_outsystems_02.png

継続的デリバリー

・アプリケーションのデプロイ

開発環境 ⇒ 検証環境 ⇒ 本番環境へのデプロイ時、環境間の差異・モジュールの整合性を自動的にチェックします。チェック結果に基づき、必要なモジュール一式をまとめてデプロイ計画を作成し、任意のバージョンとしてデプロイすることができます。また、デプロイAPIを公開しているため、JenkinsなどのCIツールと連携し、必要に応じて機能テストの実行やデプロイ時に必要なプロセスの自動化が可能です。

181119_outsystems_03.png

OutSystemsの場合、別のツールやプラットフォームを導入せずに上記機能を利用可能であり、導入後すぐにDevOpsの効果を確認できます。また、自動生成されるソースコードは独自言語ではなく、一般的なWebアプリケーション(HTML、JavaScript、CSS、サーバサイドプログラム)であるため、既存ツール・環境との親和性が高いのも特徴です。上記以外にも「利用者フィードバック」や「運用パフォーマンス分析」のような機能を利用して、アプリケーション開発・運用の改善に役立てることができます。

おわりに

今回のコラムでは、ローコード開発とDevOpsを組み合わせることのメリットについて(概略レベルではありますが)ご紹介しました。このような取り組みは、すでに日本でも多くの先進的な企業で始められています。従来の開発と比べると、ある意味パラダイムシフトですが、この新しい波に乗るか、もしくは乗り遅れるかというタイミングがいよいよ迫っています。まずは小さくてもよいので、ローコード開発への取り組みを開始し、その効果を検証してみてはいかがでしょうか。今後も引き続き、ローコード開発・DevOpsのさらに具体的な情報を共有させていただきたいと思います。どうぞよろしくお願いいたします。

追伸: 私が所属するOutSystemsジャパンでは、ローコード開発関連のミーティング開催を目的として、以下のMeetupグループを運営しています。興味のある方はぜひご参加をいただけましたら幸いです。

https://www.meetup.com/Tokyo-OutSystems-Meetup/


関連リンク

ローコード開発とDevOpsが奏でる素敵なハーモニー(前編)
アプリケーションの開発と運用、大変じゃないですか?

この記事の著者:河原﨑剛

OutSystemsジャパン株式会社
ソリューションアーキテクト

複数のシステムインテグレーター・ソフトウエア企業でSE・サポート・テクニカルコンサルタント・プリセールスを担当後、
2018年 OutSystemsジャパンに入社。
この18年間、一貫してJava関連のシステムに関わってきたが、日本企業、ヨーロッパ企業、大・中規模、ベンチャーと
様々な企業で働くことができたのが貴重な経験。現在はOutSystemsというポルトガルの会社で新たなイノベーションを目指して奮闘中。


DevOps Hubのアカウントをフォローして
更新情報を受け取る

  • Like on Feedly
    follow us in feedly

関連記事

このエントリーをはてなブックマークに追加

お問い合わせ

DevOpsに関することなら
お気軽にご相談ください。

Facebook、TwitterでDevOpsに関する
情報配信を行っています。