あおやま

Azure Functions で Spring Cloud Function アプリを動かしてみた

こんにちは。サービスデリバリーセンター(SDC)のあおやまです。

つい最近「Azure Functions」で動く「Spring Cloud Function(SpringBoot)」アプリケーションを開発する機会があり、その際に調査した結果をまとめてみました。

Azure Functions とは

「Microsoft Azure」で提供されているイベントトリガー起動のサーバーレス・コンピューティングサービスです。
(参考:Azure Functions

AWSでも同様のサーバーレス・コンピューティングサービスとして「AWS Lambda」が提供されていますが、「Azure Functions」ではアプリの形態(ホスティングプラン)を選択できる特徴があります。

続きを読む

ITアーキテクトのお仕事~システム方式設計~

こんにちは。サービスデリバリーセンター(SDC)のあおやまです。

昨年度まではプロジェクトの技術サポートや開発プロセスの改善活動なと裏方仕事をやっていたのですが、今年度は久しぶりに現場部門に戻ってきて現場プロジェクトに参画しています。

私のプロジェクトでの役割はITアーキテクトになります。
プロジェクトにおいて技術面でプロジェクトをリードする立場です。プロジェクト開始時点でのシステムの全体設計から始まり、アプリケーションの開発方法やテストの実施方法の検討まで多岐にわたります。必要に応じて自分自身の手を動かして主要なフレームワーク・共通機能部分の開発、技術検証も行います。

今回はそのタスクの中で重要な「システム方式設計」についてお話したいと思います。

続きを読む

テスト工程の改善への取り組み

こんにちは。サービスコンピテンシー統括部のあおやまです。

私は普段は、プロジェクトの技術サポートや開発プロセスの改善活動に従事しています。
また技術研究所での自身の過去成果であるフレームワークの現場適用支援やメンテナンスなども行っています。

今回は、複雑化・短納期化していくシステム開発、恒常的な人手不足などの課題への対応として、自身も携わってきたテスト自動化への取り組みについてお話させていただきます。

テスト自動化への取り組み

技術研究所では、2015年度から研究テーマの1つに「開発技術」を挙げており、
作業の自動化や開発業務に適用可能な技術の研究を行ってきました。

その中でも「テスト自動化」は重要なテーマとして取り掛かってきました。
「テスト自動化」に着眼した理由は以下の通りです。

  • テストケースの作成・実施などではパターン化された作業が多くを占めるため自動化と相性が良い
  • 網羅的なテストケースの作成・実施は工数が大きくなるため自動化による工数削減の恩恵が大きい

「テスト自動化」と一言で申し上げてもJUnit/Seleniumなどの手段の自動化など多種多様な自動化手段がありますが、弊社では主にテストケース(テストモジュール含む)作成の自動化を行ってきました。

続きを読む

弊社のSwagger活用方法の紹介

こんにちは、技研のブルマンです。

社内の諸事情により、しばらくブログを書けてなかったのですが久しぶりの執筆です。

今回は開発で最近取り扱っている「Swagger」の活用方法について紹介したいと思います。
※ちなみにこの記事は社内の「CRESCO Advent Calendar 2016」の12/15分の記事です。

「Swagger」って何?

まず始めに「Swagger(http://swagger.io/)」とは何かを簡単に説明します。

SwaggerはWebAPI仕様ドキュメントのフォーマットおよびビューワーなどを提供するフレームワークです。「Swagger Specification(Spec)」と呼ばれるJSON形式のWebAPI仕様を記述すると、Webページで仕様を確認できたり、各種コードを生成できたりします。

主に以下のコンポーネントから構成されています。

Swagger Editor Swagger Specのエディタ
Swagger UI Swagger Spec から動的にAPIドキュメントを生成するツール
Swagger Codegen Swagger Specからクライアントのコードを生成するツール

WebAPI仕様を記述する仕様としてデファクトスタンダードになりつつあり注目の技術です。

RESTful APIの記述標準化を目指す「Open API Initiative」をマイクロソフト、Google、IBMらが立ち上げ。Swaggerをベースに
http://www.publickey1.jp/blog/15/open_api_initiative.html

弊社では外国拠点で開発を行うオフショア開発、地方拠点で開発を行うニアショア開発も積極的に推進しており、スマホアプリはオフショア、サーバサイドは国内で開発のような事例も増えてきています。

続きを読む

Java日記~Apache HttpComponents でクライアント認証②~

こんにちは、技研のブルマンです。

だいぶ間が開いてしまいましたが、前回の投稿
Java日記~Apache HttpComponents でクライアント認証~
からの続きとなります。

前回のおさらい

前回は

ただ情報量が少なすぎて調べきれずに今回はタイムアップです。
この件なんと続きます、、、すみません

と続けてしまいました。

続けた理由は以下の実装の

// サーバー証明書のキーストアとクライアント証明書をコンテキストに設定する
TrustStrategy trustStrategy = new TrustStrategy() {
public boolean isTrusted(X509Certificate[] certificate, String type) {
return true;
}
};
SSLContext sslcontext = SSLContexts.custom()
.loadKeyMaterial(keyStore, keyPass)
.loadTrustMaterial(trustStore, acceptingTrustStrategy).build();

TrustStrategyの実装がセキュリティ的にどうなんだ?と疑問が残ったためです。

TrustStrategyクラスを見た限りでは4.1から導入されていますが、情報量が少なすぎて正しい使い道が分かりません。

続きを読む

Java日記~Apache HttpComponents でクライアント認証~

こんにちは、技術研究所(通称:技研)のブルマンです。

今回は「Apache HttpComponents HttpClient」について書きます。

コトの始まり

技術研究所ではRedmineの環境にAWS・EC2を使用しているのですが、サーバ通信(HTTPS)は自己署名証明書を使用しています。

自己署名証明書(通称:オレオレ証明書)はインターネット上の一般公開で使用するのは厳禁ですが、
クローズドな環境でHTTPS通信をする場合はやはり頼らざるを得ません。
(AWSのFWでのアクセス制限をかけているだけなので厳密にはクローズでありませんが)

今回はEC2側に自己CA認証局を建てて、クライアント証明書を発行、それでクライアント認証をするという仕組みを作りました。これの構築もかなり苦労したのですが、当記事ではJavaからRestAPIでRedmineを叩くため苦労した結果を紹介します。

続きを読む

Java日記~ApachePOIで表計算処理が終わらない~

こんにちは、技術研究所(通称:技研)のブルマンです。

私は社内のJava開発プロジェクトで何か問題があると相談を受けること多いのですが、最近あった「ApachePOIで表計算処理が終わらない」件について書きたいと思います。

続きを読む