DevOpsの概要
1 MendixはDevOpsをどのようにサポートしますか?
開発チームはMendixプラットフォームを使って DevOps を採用することができます。つまり、チームはエンタープライズ要件(コンプライアンスや高可用性など)を順守しながら、アプリケーションを開発し、本番環境でアプリケーションを保守やサポートすることができます。
ワンクリックでデプロイしてすぐにアプリケーションを監視することで、Mendixプラットフォームは、 DevOps チームをサポートします。さらに、MendixプラットフォームAPIを使用すると、Mendixプラットフォームの機能をサードパーティの DevOps ツールで補完することができます。
そのAPIを使用して、チームはMendixプラットフォーム上にCI/CDパイプラインを実装して、ビルド、テスト、リリースを含む DevOps プロセスを完全に自動化することができます。最も一般的に使用されるツールのドキュメントとリファレンス実装が可能です(詳細については、下記「Mendixで自分のDevOpsツールを使用できますか?」を参照してください)。
MendixがDevOpsをどのようにサポートするかについては、以下をご覧ください。
2 Mendixが提供するDevOpsツールはどれですか?
DevOps の標準ツールやサービスの多くは、Mendixですぐに使用でき、プラットフォームで完全に自動化されています。たとえば、モデルフェーズでは、アプリモデルの構築中に
モデルの整合性チェックが継続的に行われます。また、展開フェーズでは、Mendix Developer Portal でクリックするだけで、テスト、受け入れ、本番環境へのアプリの構成、展開ができます。
2.1 計画フェーズ
Mendixを使用すると、アプリのさまざまな関係者の要件を簡単に管理することができます。Mendix Developer Portal でプロジェクトの Backlog を設定することができます。DevOps プロセスの一環として、チームは Backlog から User story を作成して定期的にスケジュールを作成し、運用プロセスを改善します。
開発チームが要件とプロジェクト Backlog を管理する際に、Mendixがどのように役立つかについての詳細は、要件管理を参照してください。
2.2 モデルフェーズ
Mendixは、開発チームが高品質のアプリケーションモデルを効率的に開発(モデル化)するのを支援します。ユーザーがMendix Studio Proで作業している間、アプリモデルの整合性エラーを継続的にチェックします。これらの整合性チェックにより、モデルの整合性が保たれ、開発者が陥りがちな間違いを即座に検出できます。
他の開発ツールと比較して、開発の効率が向上し、リグレッションの数が減ります。詳細については、整合性チェックを参照してください。
高品質のアプリモデルを一貫して開発できるように、開発チームはMendix Application Quality Monitor(AQM)を使用してアプリモデルの品質を継続的に監視します。AQMは、アプリモデルの技術的品質に関する情報を提供し、技術的負債の管理ができるようにします。
詳細については、「アプリビルドの作成」の品質監視セクションを参照してください。
Mendixアプリの開発の詳細については、Mendixでの開発を参照してください。
2.3 構築フェーズ
開発者は、アプリモデルに加えた変更をMendix Team Server にCommitします。Mendix Team Server は、Subversionに基づいたバージョン管理システムです。ブランチのCommitから展開パッケージを作成できます。その後、Mendix Deployment Package Repositoryに格納され、開発者はすべての成果物を管理できます。
アプリモデルのバージョン管理、デプロイ可能なアーティファクトの作成、およびそれらのアーティファクトの管理方法の詳細については、「アプリビルドの作成」を参照してください。
2.4 継続的インテグレーション(CI/CD)
継続的インテグレーションと継続的デリバリー(CI/CD)は、Mendix Developer PortalとプラットフォームAPIの両方でサポートされています。プラットフォームAPIを使用すると、JenkinsやSeleniumなどの製品や、Cloud Foundry、Kubernetes、Dockerなどのコンテナーテクノロジーを組み合わせたデリバリーパイプラインを構築することができます。
CIパイプラインの一部として、テストを完全に自動化できます。単体テストを実装するには、Marketplace で入手できるUnitTestingモジュールを使用することができます。さらに、テスターも開発者も、自動UIテスト用のSeleniumベースのテストサービスであるMendix Application Test Suiteを使用することができます。Selenium、JMeter、GatlingなどのサードパーティのテストツールとサービスもCIパイプラインに統合することができます。
詳細については、「継続的インテグレーションとテスト」を参照してください。
また、サードパーティのテストツールの使用については、「テスト自動化と品質保証」の「Mendixはどのようにサードパーティのテストツールをサポートしていますか?」を参照してください。
2.5 展開フェーズ
Mendix Studio Pro を使用して開発すると、新しい機能を開発しながらアプリケーションをローカル実行できます。Mendix Cloudでアプリを公開する前、または、アプリを他の関係者とまだ共有したくない場合に、アプリをローカル実行できます。
Mendix Studio Proから、ワンクリックで簡単にアプリをMendix Cloudに公開できます。
これにより、アプリは開発用に無用アプリとしてすぐに利用できるようになります。
アプリの開発が完了したら、Mendix Developer Portal を使用して、アプリをテスト環境や受け入れ環境にすばやくデプロイし、本番環境にリリースできます。
開発チームは、プラットフォームAPIやJenkins、GitLab-CI、VisualStudio Team ServicesなどのサードパーティCI/CDツールを使用して、展開を簡単に自動化できます。
詳細については、「操作、デプロイ、およびリリース」を参照してください。
2.6 監視フェーズ
Mendixプラットフォームは、Mendix Cloudで実行されているすべてのMendixアプリの健全性とステータスに関する情報を提供する監視機能があります。開発チームは、重要なトレンドグラフ、アラート機能、ライブロギング機能により、展開後のMendixアプリの操作と監視が非常に簡単になります。
開発者は、Mendix Application Performance Monitor(APM)を使用して、Mendixアプリの高度な問題診断とパフォーマンス監視を行うことができます。
開発チームがエンタープライズレベルのサービスレベルでアプリを実行するために使用できる機能の概要については、「監視」を参照してください。
3 自社で持っているDevOpsツールを使用できますか?
特定の機能でサードパーティのツールを使用したい場合は、MendixプラットフォームAPIを使ってMendixプラットフォームに統合することができます。たとえば、VisualStudio Team Services、Jenkins、GitLab-CIなどの継続的統合サービスは、 Mendixプラットフォーム上でCIパイプラインオーケストレーターとして簡単に構成できます。
Datadog、New Relic、AppDynamicsなどのアプリケーションパフォーマンス管理サービスを使用して、Mendixアプリのパフォーマンスを監視/管理することができます。
詳細については、「CI/CDおよびMonitoring Solutions &Alerts」を参照してください。
翻訳元:https://www.mendix.com/evaluation-guide/app-lifecycle/devops-overview