8. 2 months ago
Dive into the microservices world
Crawler
Kinesis
IndexerAnalyzer
Kinesis CloudSearch
9. Why microservices?
• A lot of different types of services are required for us
• crawler, image analyzer, content extractor ...
• Adapt to technical progress / market change
• every system should be replaceable
• Make developers happy :)
• avoid to maintain "legacy" "large" "monolithic"
• enable us to develop any languages
10. A part of microservices
Source A
Analyzer Indexer Search API
A
PhotoqualCaffe
Reporting
API
Gateway
Realtime
feedback
Image
Analysis
Extractor
Content
extraction
Source B
Search API
B
Ranking
algorithm
A/B test
Language
detecter
Crawling
Language
detection
Spark
Streaming
KPI
Dashboard
Admin
Operation
12. Journey into microservices
When you use microservices you have to work on
automated deployment,
monitoring,
dealing with failure,
eventual consistency,
and other factors that a distributed system introduces.
http://martinfowler.com/bliki/MicroservicePremium.html
14. Deployment is not easy
• Manage complexity
• multiple roles
• multiple environments
• auto scaling
• Avoid downtime
• JVM based applications doesn't support hot deploy
• Monitoring
• stop deployment if something wrong
• which instances are succeeded or failed
22. My favorites
• Simple, Fast, Flexible, Free
• Require small changes for current system
• Integration w/ AWS Auto Scaling
• deploy last successful revision to a new instance
• wait for registering ELB until finishing deployment