2015年10月8日

イマ旬キーワード

マイクロサービス

マイクロサービスの実現を下支えするソフトウエア開発自動化技術は多様化し、適用領域が拡大しています。

第三金融事業本部 正野 勇嗣

マイクロサービスとソフトウエア開発自動化の関係

昨年ころからマイクロサービス参考1、2の注目度が高まってきており、SOAとの違いや適用事例、Spring Boot参考3等の実装技術の提案等さまざまな記事・講演参考4が見られるようになってきました。背景として、もはや当たり前のように用いられるようになってきたソフトウエア開発自動化技術の存在があります。ソフトウエア開発自動化の領域は旧来からのコード自動生成にとどまらず、テストやビルド自動化など多様化してきています参考5。さらに、ChefやPuppetといった基盤構築自動化(Infrastructure as Code)の領域参考6、7や、Jenkinsのワークフロー機能強化参考8によるビルド自動化のジョブ管理領域への拡大といった動きがあります。

なお、アジャイル、クラウド、DevOps等の新しいトレンドが生まれる際には、必ずそれを下支えする技術や背景があります。例えばクラウドの例ですと、マシンリソース(CPU・メモリー・ディスク)が安く・容易に手に入るようになったというのが一つの要因として存在しています。マイクロサービスで語られる9つの特徴の一つに「Infrastructure Automation」があり、上述のソフトウエア開発自動化技術がマイクロサービスの実現を下支えしていると考えられます。

Spring Bootを用いたマイクロサービスの構築イメージ

Spring Bootは、Springプロダクトの一つで、Springフレームワークベースのマイクロサービスアプリケーションを簡易に構築可能です。NetBeans等のIDEにてMavenプロジェクトを作成し、以下2つの作業をするのみで、REST APIを使ったアプリケーションが作成可能です。以下はサンプル実装例です。

1.コントローラクラスの作成


@RestController
@SpringBootApplication
public class SampleBoot {
    
    @RequestMapping("/")
    String hello() {
        return "Hello World!";
    }
    public static void main(String[] args) throws Exception {
        SpringApplication.run(SampleBoot.class, args);
    }
}

2.pom.xml(該当箇所のみ抜粋)の修正


<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.2.5.RELEASE</version>
</parent>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>

コントローラークラスのmainメソッドを起動すると、組み込みTomcat上でSpring Bootアプリケーションが起動します。(ログより一部抜粋)

【図】

ブラウザからhttp://localhost:8080/にアクセスすると以下の通り表示されます。

【画面イメージ】

著者プロフィール

【写真】

第三金融事業本部 正野 勇嗣

2011年まで開発自動化技術のR&Dを3年間担当。最近は、Maven、NEXUS、Jenkins等のビルド自動化や、JsTestDriver等のテスト自動化の技術動向に興味。

イマ旬キーワード

お気軽に
お問い合わせ
ください

ソフトウエア開発自動化技術の多様化とSpring Bootを利用したマイクロサービスの実現に関するお問い合わせ

お問い合わせフォーム

ソフトウエア開発自動化技術の多様化とSpring Bootを利用したマイクロサービスの実現に関連する情報

サービス

システム開発の手順・環境やサポートを一体化したトータルソリューションで、お客様業務の大幅効率化を実現