マイクロサービスをゼロから育ててみる

目的

  • GoCD/Docker による継続的デリバリーのメリットを体得する
  • Spring Bootの主張通りマイクロサービスが素早く作れるかを確認
  • JUnit 5, Mockito, AssertJ の組み合わせを試す
  • その他業務で使っていないライブラリを試す

今後の予定

  • GoCD (1) Hello World
  • GoCD (2) Build / Run integration tests w/ gradle
  • GoCD (3) Build / Deploy a Spring Boot package
  • GoCD (4) サービス分割してみる
  • GoCD (5) 依存先を含めてBuild / Deploy

ライブラリ・ツール

  • Git, Gradle, Docker, GoCD
  • JDK 8, Spring Boot
  • DI: Spring
  • HTTP: retrofit2, OkHttp3, Gson, RxJava, (Hystrix)
  • Log: slf4j, log4j2
  • JUnit 5, Mockito, AssertJ
  • Wiremock

時間があったら

  • Metrics: Codahale Metrics or Servo, zipkin
  • Service Discovery: Eureka
  • Dynamic Configuration: Archaius
  • DB/cache: Couchbase, Aerospike
  • IPC: HTTP, Netty, ZeroMQ
  • ELK (Elasticsearch, Logstash, Kibana)
  • JDK 9, Servlet 4.0, Tomcat 9, HTTP/2