何処でも言われている、在り来たりな事の様にも思いますが、最も重要なのは、「
解決すべき問題を持っているか?」と言うことのような気がします。なので、「
それに向けてテクノロジという手段を選択し、前進しているか?」というトコロが重要ですよね。これは、
前回の投稿を書いていて感じた次第です。
ということで、改めてマーケティングして、我々が「
現在、注力していること」と、「
将来、注力すべきこと」を改めて分析してみましたが、コレについては、あまり乖離しておらず、以下のようになりました。
- 開発のQCDF向上(高速開発)
- 保守・運用のQCDF向上(DevOps)
- 認証技術によるインテグレーション
「
1.」は自明かと思うので、今回は「
2.」、「
3.」について、より詳細化して説明していきたいと思います。
<2. 保守・運用のQCDF向上(DevOps)>
前回の投稿にも書きましたが、CI/CDなどのDevOps系は、IoT/AI等と比べると、割と直近のニーズのように思っています。しかし、SI界隈で、なかなか浸透しないのは、ザックリ、「
サービス事業とSI事業で大分、前提が異なるので、適用方法も大きく変える必要がある。」ように思います。
そこで、「
使用するツールや方法論を間違えているのかもしれない。」と思い、
ココに書いたような考察を行いました。.NET Core対応で
Open PaaSなどが使えるようになり、DevOps系の橋頭堡になったと思うので、このような最新技術を使用して、やっていきたいと考えていましたが、
Open PaaSや
CIサービスどころか、先ずは、docker-composeだけでも良いかもしれない。もっと言うと、
Windows Serverコンテナのdocker-composeでイイ気がします。
何故なら、現在も全然できていないので、技法の効率を突き詰めるよりも、モット * 2、ハードルを下げて、プロジェクト・メンバ中での適用率を上げる方が先だと考えるからです。過去にUIテスト自動化を可能にすると言う触れ込みのツール等がありましたが、正直、実際のトコロは難しかったので、テスト対象をサーバ側の疎通に絞ったり、テスト自動化よりも、テスト環境準備の高速化にフォーカスした方がイイ気がします。しかし、加えて、ローカルのテスト環境準備なども迅速に行えていない現実があると思うので、リポジトリからダウンロードしてスクリプトでビルド、DB初期化などのテスト環境準備にサーバ側のコンテナを使用する。...などの方法が有効なのではないか?と考えています。
<3. 認証技術によるインテグレーション>
認証技術が重要なのは、当然、「
システム・インテグレーションに必要な技術であるから。」という話もありますが、これ、技術的な取り組みを拡大させていくのにも必須になります。
例えば、認証が無ければ、スマホのエンジニアは、画面とDBの項目移送を書くことぐらいしかできませんが、スマホのアーキテクトがソレではどうしようもなく、例えば、プッシュ通知、WebAPI連携(Microservicesに対しては、
前回ちょっと否定的に書いたので)など、色々やる必要があると思います。
しかし、これらの技術は、ユーザ認証が無ければ実装することができません。スマホ・ネイティブの安全な認証には、OAuth PKCEが必要になります。また、WebAPI連携のために、外部サービスを開発して公開したり、外部サービス(例えば「オンライン決済サービス」など)を利用したりするには、OpenID系(OAuth2 / OIDC)のWebAPI認証が必要になります。
また、これらの認証機能が1つのサービスだけに組み込まれている状態では、他のサービスを立ち上げる際に、サーバ含めて再実装が必要になるので、認証基盤単体のミドルウェア化が必要になります(自作せずとも手頃な基盤を導入してもイイかと思います)。
<参考>