+ All Categories
Home > Technology > “Purikura” culturein Japan andour web application architecture

“Purikura” culturein Japan andour web application architecture

Date post: 05-Apr-2017
Category:
Upload: koichi-sakata
View: 134 times
Download: 0 times
Share this document with a friend
49
Koichi Sakata FURYU CORPORATION / KanJava JUG “Purikura” culture in Japan and our web application architecture #DevoxxUS @jyukutyo #purijp
Transcript
Page 1: “Purikura” culturein Japan andour web application architecture

Koichi SakataFURYU CORPORATION /

KanJava JUG

“Purikura” culture in Japan and

our web application architecture

#DevoxxUS @jyukutyo#purijp

Page 2: “Purikura” culturein Japan andour web application architecture

Where is Japan?

Page 3: “Purikura” culturein Japan andour web application architecture

Talk about• Japanese culture– “Purikura”• Products that I’m using– MogileFS– Spring Cloud Contract Stub Runner

Page 4: “Purikura” culturein Japan andour web application architecture

Japan of today• Ninja• Samurai• Anime/Manga• Purikura

Page 5: “Purikura” culturein Japan andour web application architecture

“Purikura”

Page 6: “Purikura” culturein Japan andour web application architecture

Photo sticker machine

Page 7: “Purikura” culturein Japan andour web application architecture

• printed sticker• digital images

Page 8: “Purikura” culturein Japan andour web application architecture

10 years6000 machines in JP$60 million / year

Page 9: “Purikura” culturein Japan andour web application architecture

Japanese culture

Page 10: “Purikura” culturein Japan andour web application architecture

Overview ofour system

Page 11: “Purikura” culturein Japan andour web application architecture
Page 12: “Purikura” culturein Japan andour web application architecture

MogileFS• Distributed filesystem• Open source product• has three components

Page 13: “Purikura” culturein Japan andour web application architecture

RDBMS

tracker

storage node

MogileFS

Page 14: “Purikura” culturein Japan andour web application architecture

15 storage nodes10 billion files480 TB6 years

Page 15: “Purikura” culturein Japan andour web application architecture

MogileFS advantages• No single point of failure

– run on multiple machines• Automatic file replication– replicate between different storage nodes

– 3 replicas

Page 16: “Purikura” culturein Japan andour web application architecture

Problem• disk usage unbalancing– execute rebalancing command

Page 17: “Purikura” culturein Japan andour web application architecture

Sample case

Page 18: “Purikura” culturein Japan andour web application architecture

Originally...

Server1 Server2

80 80

Usage(%)

Page 19: “Purikura” culturein Japan andour web application architecture

Add a server

Server1 Server2 Server3

80 80

0

Usage(%)

same disk space as

Server 1,2

Page 20: “Purikura” culturein Japan andour web application architecture

Increasing

Server1 Server2 Server3

85 85

40

Usage(%)

Page 21: “Purikura” culturein Japan andour web application architecture

Rebalancing

Server1 Server2 Server3

75 7540

10 10

20

Page 22: “Purikura” culturein Japan andour web application architecture

Another problems• Not support Perl 6.• Last commit is in Dec 2014.

Page 23: “Purikura” culturein Japan andour web application architecture

Clouds?• in the process of reviewing– AWS S3• need to transfer 10 billion files...

Page 24: “Purikura” culturein Japan andour web application architecture

MogileFS• capable of managing tera byte data• not active now

Page 25: “Purikura” culturein Japan andour web application architecture

Our applicationarchitecture

Page 26: “Purikura” culturein Japan andour web application architecture

Monolithic...• build time is long• difficult to change code• run tests again

Page 27: “Purikura” culturein Japan andour web application architecture

Microservice

Page 28: “Purikura” culturein Japan andour web application architecture

• eureka– Service Discovery• ribbon– Client Side Load Balancing• Hystrix– Circuit Breaker

Page 29: “Purikura” culturein Japan andour web application architecture

Spring• Spring Boot

• Spring Cloud Netflix

Page 30: “Purikura” culturein Japan andour web application architecture

Problem

Page 31: “Purikura” culturein Japan andour web application architecture

End to end test• How to test the case?– the case that an exception happens in the microservice

Page 32: “Purikura” culturein Japan andour web application architecture

throw an exception and return

500 HTTP status code

Page 33: “Purikura” culturein Japan andour web application architecture

Spring Cloud Contract Stub

Runner

Page 34: “Purikura” culturein Japan andour web application architecture

Spring Cloud Contract Stub Runner

• replaces microservices with stubs

• Stubs are run on WireMock• https://

github.com/spring-cloud/spring-cloud-contract/tree/master/spring-cloud-contract-stub-runner

• http://wiremock.org/

Page 35: “Purikura” culturein Japan andour web application architecture

Stubbing

Page 36: “Purikura” culturein Japan andour web application architecture

How to make and run stubs

• Add maven plugin.• Write stub behavior in Groovy • Deploy stub to a repository• Run a Stub Runner with stubs

Page 37: “Purikura” culturein Japan andour web application architecture

Maven plugin

Page 38: “Purikura” culturein Japan andour web application architecture

<plugin>

<groupId>org.springframework.cloud</groupId>

<artifactId>

spring-cloud-contract-maven-plugin </artifactId>

<version>${spring-cloud-contract.version}</version>

<extensions>true</extensions>

<configuration>

<!-- By default it would search under src/test/resources/ -->

<contractsDirectory>${project.basedir}</contractsDirectory>

</configuration>

</plugin>

Page 39: “Purikura” culturein Japan andour web application architecture

Groovy DSL

Page 40: “Purikura” culturein Japan andour web application architecture

org.springframework.cloud.contract.spec.Contract.make {

    request {

        method 'POST'

        url '/example'

        body([ "id": 12345 ])     }

    response {

        status 201

        body([ “name”: “john” ])

        headers {

            contentType('application/json;charset=UTF-8’)

        }

    }

}

Page 41: “Purikura” culturein Japan andour web application architecture

Maven Deploy

Page 42: “Purikura” culturein Japan andour web application architecture

$ mvn deploy/install[INFO] Installing ... stubs.jar

Page 43: “Purikura” culturein Japan andour web application architecture

Run stub runner

Page 44: “Purikura” culturein Japan andour web application architecture

$ cd to/stubrunner$ java -jar -Dstubrunner.ids=[groupId]:[artifactId] -Dstubrunner.idsToServiceIds. [artifactId]=something stubrunner.jar

Stub runner downloads stubs from repository

Page 45: “Purikura” culturein Japan andour web application architecture

Stub port?

Page 46: “Purikura” culturein Japan andour web application architecture

http://localhost:9001/

stubs

stub app port

Page 47: “Purikura” culturein Japan andour web application architecture

$ cd to/stubrunner$ java -jar -Dstubrunner.ids=[groupId]:[artifactId]-Dstubrunner.idsToServiceIds.

[artifactId]=something stubrunner.jarused to register

in eureka

Page 48: “Purikura” culturein Japan andour web application architecture

Summary• MogileFS is capable of managing tera byte data.• Spring Cloud Contract Stub Runner is useful.• Purikura is Japanese culture.

Page 49: “Purikura” culturein Japan andour web application architecture

Thank youagain

for coming.#DevoxxUS @jyukutyo#purijp

Thank youfor coming


Recommended