Upgrade to Pro — share decks privately, control downloads, hide ads and more …

eureka Go ~Our Designing of a Microservices Architecture~

eureka Go ~Our Designing of a Microservices Architecture~

- Microservices at eureka
-- Design a Microservices Architecture
-- The Microservices Architecture of pairs
- Project Structure
-- Build up the pairs Project
-- Development Operations
- Web Application Framework

Shintaro Kaneko

December 12, 2015
Tweet

More Decks by Shintaro Kaneko

Other Decks in Programming

Transcript

  1. Shintaro Kaneko (kaneshin) - Photographer and Engineering Manager at eureka,

    Inc. kaneshin kaneshinth shintaro.kaneko Mathematics: Optimization Problems 2010 2012 2011 Quality Assurance Engineer at eureka Real Estate in Vancouver, Canada
  2. Agenda ‣ Microservices at eureka ‣ Design a Microservices Architecture

    ‣ The Microservices Architecture of pairs ‣ Project Structure ‣ Build up the pairs Project ‣ Development Operations ‣ Web Application Framework
  3. Our Designing of a Microservices Architecture ‣ Service-Oriented Architecture ‣

    Separated Data Store from a Specific Layer ‣ Keep Code at a Similar Level ‣ Do a Separate Build for Each Microservice
  4. Our Designing of a Microservices Architecture ‣ Service-Oriented Architecture ‣

    Separated Data Store from a Specific Layer ‣ Keep Code at a Similar Level ‣ Do a Separate Build for Each Microservice
  5. Service-Oriented Architecture ‣ Not Component-Oriented Architecture ‣ Loosely Coupled Elements

    ‣ Updatable one service doesn’t require changing any other services.
  6. Our Designing of a Microservices Architecture ‣ Service-Oriented Architecture ‣

    Separated Data Store from a Specific Layer ‣ Keep Code at a Similar Level ‣ Do a Separate Build for Each Microservice
  7. Our Designing of a Microservices Architecture ‣ Service-Oriented Architecture ‣

    Separated Data Store from a Specific Layer ‣ Keep Code at a Similar Level ‣ Do a Separate Build for Each Microservice
  8. Keep Code at a Similar Level ‣ Actually, we don’t

    but we can do it. ‣ Immutable Infrastructure (Infrastructure As Code) ‣ Tesing: Continuous Integration
  9. Our Designing of a Microservices Architecture ‣ Service-Oriented Architecture ‣

    Separated Data Store from a Specific Layer ‣ Keep Code at a Similar Level ‣ Do a Separate Build for Each Microservice
  10. Each Microservices Responsible For ‣ Payment Service ‣ Already Released

    ‣ Responsible for Payment at eureka ‣ Search Service ‣ Write Code with net/http ‣ Elasticsearch is
  11. Each Microservices Responsible For ‣ Surveillance Service ‣ Word Filtering

    ‣ Monitoring User (like Spam) ‣ Analysis Service ‣ for eureka ‣ Algorithm, Mathematical Analysis, Machine Learning, …
  12. Server-Side Specifications ‣ Internationalization (i18n) ‣ Web Application Framework ‣

    Revel, Goji ‣ Testing Tools ‣ onsi/ginkgo, stretchr/testify/assert ‣ DB Management Tools ‣ xorm (ORM), goose (Migration) I’m not going to talk about tools today.
  13. Integrated Repository ‣ Maintenance of Git Respository ‣ Didn’t Purge

    All Commits (logs) ‣ Throw away useless files (garbage) ‣ Problems of Continuous Integration ‣ All components to run tests
  14. push webhook - Verify Code (Static Analysis) - Documentation -

    JSON Hyper Schema (HTML) - Database Schema (HTML) webhook
  15. push webhook - Verify Code (Static Analysis) - Documentation -

    JSON Hyper Schema (HTML) - Database Schema (HTML) push webhook
  16. So

  17. Agenda ‣ Microservices at eureka ‣ Design a Microservices Architecture

    ‣ The Microservices Architecture of pairs ‣ Project Structure ‣ Build up the pairs Project ‣ Development Operations ‣ Web Application Framework Talk to me after that! :)