# awesome-microservice
A curated list of Microservice resources

Inspired by the [awesome](https://github.com/sindresorhus/awesome) list thing.
## Philosophy of  Microservice

### Origin of Microservice

* [Microservices from Martin Fowler](http://martinfowler.com/articles/microservices.html)
* [Microservices from Martin Fowler In Chinese](http://blog.csdn.net/wurenhai/article/details/37659335)


### Architectural Patterns(similar to book software-architecture-patterns from O`REILLY )

#### Core patterns

* [Monolithic architecture from Chris Richardson](http://microservices.io/patterns/monolithic.html)
* [Microservices architecture from Chris Richardson](http://microservices.io/patterns/microservices.html)
* [API Gateway from Chris Richardson](http://microservices.io/patterns/apigateway.html)
* [Bounded Context from Martin Fowler](http://martinfowler.com/bliki/BoundedContext.html)
* [Circuit Breaker from Martin Fowler](http://martinfowler.com/bliki/CircuitBreaker.html)
* [Circuit Breaker ~ netflix](http://doc.akka.io/docs/akka/snapshot/common/circuitbreaker.html)

#### Deployment patterns

* [Multiple service instances per host](http://microservices.io/patterns/deployment/multiple-services-per-host.html)
* [Service instance per host](http://microservices.io/patterns/deployment/single-service-per-host.html)
* [Service instance per VM](http://microservices.io/patterns/deployment/service-per-vm.html)
* [Service instance per Container](http://microservices.io/patterns/deployment/service-per-container.html)

#### Service discovery


* [Client-side discovery from Chris Richardson](http://microservices.io/patterns/client-side-discovery.html)
* [Server-side discovery from Chris Richardson ](http://microservices.io/patterns/apigateway.html)
* [Service registry from Chris Richardson](http://microservices.io/patterns/apigateway.html)
* [Self registration from Chris Richardson](http://microservices.io/patterns/apigateway.html)
* [3rd party registration from Chris Richardson](http://microservices.io/patterns/apigateway.html)
* [Service discovery with consul & etcd](https://aws.amazon.com/blogs/compute/service-discovery-via-consul-with-amazon-ecs/)



### Debates between advantage and disvantage

* [ PaaS vs. IaaS for Microservices Architectures: Top 6 Differences](http://blog.altoros.com/microservices-architectures-paas-vs-iaas-top-6-differences.html)
* [PaaS与IaaS 在微服务架构实现方面的6大不同  PaaS vs. IaaS for Microservices Architectures: Top 6 Differences in Chinese](http://weibo.com/p/1001603827173176797988)
* [ O’Reilly Software Architecture Conference大会上对微服务架构的探讨总结](http://radar.oreilly.com/2015/04/4-reasons-why-microservices-resonate.html)
* [Microservices Are Not a free lunch!](http://contino.co.uk/microservices-not-a-free-lunch/)
* [The Hidden Costs of Microservices by Justin Leitgeb](http://www.stackbuilders.com/news/the-hidden-costs-of-microservices)


## Books About Microservice

* [Bootstrapping Microservices](https://www.manning.com/books/bootstrapping-microservices-with-docker-kubernetes-and-terraform) by [Ashley Davis](https://twitter.com/ashleydavis75).
* [Antifragile: Things That Gain from Disorder](http://www.amazon.com/gp/product/0812979680)
* [The Black Swan](http://www.amazon.com/The-Black-Swan-Improbable-Robustness/dp/081297381X)
* [Implementing Domain-Driven Design](http://www.amazon.co.uk/Implementing-Domain-Driven-Design-Vaughn-Vernon/dp/0321834577)
* [Building Micro Services - Sam Newman](http://www.amazon.co.uk/Building-Microservices-Sam-Newman/dp/1491950358)
* [Building Micro Services - Sam Newman Downloadable preview edition](http://nginx.com/wp-content/uploads/2015/01/Building_Microservices_Nginx.pdf)
* [Antifragile Software - Russ Miles](https://leanpub.com/antifragilesoftware)
* [software-architecture-patterns from O`REILLY in English](http://www.oreilly.com/programming/free/files/software-architecture-patterns.pdf)
* [software-architecture-patterns from O`REILLY in Chinese](https://raw.githubusercontent.com/bboyfeiyu/android-tech-frontier/master/software-architecture-patterns/%E8%BD%AF%E4%BB%B6%E6%9E%B6%E6%9E%84%E6%A8%A1%E5%BC%8F.pdf)
* [Production Ready Microservices - Susan J. Fowler](http://shop.oreilly.com/product/0636920053675.do)
* [Microservices in .NET Core](https://www.manning.com/books/microservices-in-net-core-second-edition)
* [Microservices in Production - Susan J. Fowler (free ebook)](http://www.oreilly.com/programming/free/microservices-in-production.csp)
* [Microservices with Docker, Flask, and React - Michael Herman](https://testdriven.io/)
* [Micro Frontends in Action](https://www.manning.com/books/micro-frontends-in-action)
* [Unified Logging with Fluentd](https://www.manning.com/books/unified-logging-with-fluentd)
* [Spring Microservices in Action, Second Edition](https://www.manning.com/books/spring-microservices-in-action-second-edition)
* [Microservices in .NET, Second Edition](https://www.manning.com/books/microservices-in-net-second-edition)
* [Designing Microservices](https://www.manning.com/books/designing-microservices)

## Online Videos and Presentations

* [Microservices - Martin Fowler](https://www.youtube.com/watch?v=wgdBVIX9ifA)
* [State of the Art in Microservices - Adrian Cockcroft](https://www.youtube.com/watch?v=nMTaS07i3jk)
* [Deploying And Testing Microservices - Sam Newman](https://www.youtube.com/watch?v=FotoHYyY8Bo)
* [Microservices Anti-Patterns](https://www.youtube.com/watch?v=I56HzTKvZKc)
* [Practical Considerations For Microservice Architectures - Sam Newman](https://www.youtube.com/watch?v=5NOaUK74Jt4)
* [Migrating to Microservices - Adrian Cockcroft](http://www.infoq.com/presentations/migration-cloud-native)
* [Microservices at Netflix](https://www.youtube.com/watch?v=LEcdWVfbHvc)
* [Microservices: Adaptive Systems for Innovative Organizations](https://www.youtube.com/watch?v=GDVcUM5wbxU)
* [Pros and Cons of a MicroServices Architecture talk at AWS ReInvent](http://www.slideshare.net/stonse/pros-and-cons-of-a-microservices-architecture-talk-at-aws-reinvent)
* [Chris Richardson: Developing event-driven microservices with event sourcing and CQRS](https://www.youtube.com/watch?v=9XhBPFjD0hw)
* [微服务  在InfoQ上的内容](http://www.infoq.com/cn/microservice)
* [Microservices  on  InfoQ website](http://www.infoq.com/cn/microservice)

## Events

## Best Practises from Industry

### Articles and Blogs

* [ service principles from Yelp-A guide to service principles at Yelp for our service oriented architecture](https://github.com/Yelp/service-principles)
* [Adopting Microservices at Netflix serial 1: It’s Time to Move to a Four-Tier Application Architecture](http://nginx.com/blog/time-to-move-to-a-four-tier-application-architecture/)
* [第一部分：是时候转移到四层架构上来了/](https://github.com/wanghaisheng/wanghaisheng.github.io/issues/65)
*  [Adopting Microservices at Netflix serial 2: Adopting Microservices at Netflix: Lessons for Architectural Design](http://nginx.com/blog/microservices-at-netflix-architectural-best-practices/)
* [第二部分：微服务架构在Netflix的应用：架构设计的经验教训](https://github.com/wanghaisheng/wanghaisheng.github.io/issues/65)
* [Adopting Microservices at Netflix serial 3: Adopting Microservices at Netflix: Lessons for Team and Process Design ](http://nginx.com/blog/adopting-microservices-at-netflix-lessons-for-team-and-process-design/)
* [第三部分：微服务架构在Netflix的应用：团队和流程设计相关的经验教训]()
* [Microservices - A Reality Check(point)by Andrew Harmel-Law — on Development, Microservices, Java, Camel, NetflixOSS, Spring 17 Oct 2014](http://capgemini.github.io/architecture/microservices-reality-check/)
*   [Idempotency is not a Medical Condition - Pat Helland](http://queue.acm.org/detail.cfm?id=2187821)
*   [Martin Fowler - You Must Be This Tall To Use Microservices](http://martinfowler.com/bliki/MicroservicePrerequisites.html)
*   [Adrian Cockroft - Migrating to Microservices](http://qconlondon.com/dl/qcon-london-2014/slides/AdrianCockcroft_MigratingToMicroservices.pdf)
*   [Michael Nygaard - Stability Patterns, and Ant-Patterns…](http://www.slideshare.net/justindorfman/stability-patterns-presentation)
*   [Eric Evans - Domain Driven Design: Tackling Complexity in the Heart of Software](http://www.amazon.co.uk/Domain-driven-Design-Tackling-Complexity-Software/dp/0321125215)
*   [Uncle Bob - Microservices and Jars](http://blog.cleancoder.com/uncle-bob/2014/09/19/MicroServicesAndJars.html)
*   [Steve Jones - Microservices - Money for old rope or re-badging SOA for the cool kids](http://service-architecture.blogspot.co.uk/2014/03/microservices-money-for-old-rope-or-re.html)
*   [Sonu K. Meena - How to build microservice?](https://www.linkedin.com/pulse/how-build-microservice-sonu-meena)
*	[Introduction to Microservices](http://nginx.com/blog/introduction-to-microservices/)
*	[微服务实战（一）：微服务架构的优势与不足](http://dockone.io/article/394)
*	[Building Microservices: Using an API Gateway ](http://nginx.com/blog/building-microservices-using-an-api-gateway/)
*	[微服务实战（二）：使用API Gateway](http://dockone.io/article/482)
*   [Building Microservices: Inter-Process Communication in a Microservices Architecture](https://www.nginx.com/blog/building-microservices-inter-process-communication/)
*   [微服务实战（三）：深入微服务架构的进程间通信](http://dockone.io/article/549)
*	[微服务实战（四）：服务发现的可行方案以及实践案例](http://dockone.io/article/771)
*	[Service Discovery in a Microservices Architecture ](https://www.nginx.com/blog/service-discovery-in-a-microservices-architecture/)
*	[Event-Driven Data Management for Microservices](https://www.nginx.com/blog/event-driven-data-management-microservices/)
*	[微服务实践（五）：微服务的事件驱动数据管理](http://dockone.io/article/936)
*	[0 to Microservice in 5 minutes with Go, go-microservice-template and Minke](http://nicholasjackson.github.io/microservices/go/building-and-testing-microservices-part1/)
*	[5分钟学习基于Go，go-microservice-template，Minke的微服务](http://dockone.io/article/1117)
*	[IS REST BEST IN A MICROSERVICES ARCHITECTURE?](http://capgemini.github.io/architecture/is-rest-best-microservices/)
*	[REST真的完全适合微服务架构吗？](http://dockone.io/article/952)
*	[ Microservice架构模式简介 ](http://www.cnblogs.com/loveis715/p/4644266.html)
*	[单元化与分布式架构的切分问题](http://timyang.net/architecture/cell-distributed-system/)
*	[ 一个单元化架构的例子](http://mp.weixin.qq.com/s?__biz=MzI5MDE1NjkyNw==&mid=409213079&idx=1&sn=55326805b08b84d86c4e02bc405d0bbe&scene=2&srcid=041143B6BQTKvXlHVsDGbN1V&from=timeline&isappinstalled=0#wechat_redirect)
*	[ Microservice微服务架构两年来在京东咚咚从理论到落地的实践总结](http://mp.weixin.qq.com/s?__biz=MzAxMTEyOTQ5OQ==&mid=2650610530&idx=1&sn=acd24986fe42181fcd81496f7a922f33&scene=0#wechat_redirect)


### Example Projects

* [Chris Richardson has published the example code for his QCONSF talk on building event-driven microservices. The example microservices-based application is built using event sourcing and command query responsibility separation (CQRS). There are currently two versions of the application - Scala/Spring and Java/Spring - with others to follow. Take a look!](https://github.com/cer/event-sourcing-examples)
* [Building Microservices with Open Source Technologies by Suresh Balla](http://www.developer.com/open/building-microservices-with-open-source-technologies.html)
* [如何做实时监控？—— 参考 Spring Boot 实现](http://www.juvenxu.com/2014/12/09/real-time-monitoring-with-spring-boot/)
* [ 深入学习微框架：Spring Boot ](http://www.infoq.com/cn/articles/microframeworks1-spring-boot)
* [NetflixOSS Acme Air Sample and Benchmark](https://github.com/aspyker/acmeair-netflix/tree/astyanax)
* [ Experiments With Docker For Acme Air Dev](http://ispyker.blogspot.tw/2014/01/experiments-with-docker-for-acme-air-dev.html)
* [CRUD using Spring Data Rest and AngularJS using Spring Boot](http://www.programming-free.com/2014/07/spring-data-rest-with-angularjs-crud.html)
* [ microservice of convert html to pdf](https://github.com/shouldbee/docker-html2pdf)
* [ Microservices tests with RabbitMQ and Docker](https://github.com/codescrum/microservice-tests-01)
* [ A demonstration of a Microservices architecture using Spring Boot, Docker and Fig.](https://github.com/boonen/microservices-demo)
* [ Experiments with microservices and Docker](https://github.com/mboeh/oignon-exp)
* [ Example code for my building and deploying microservices with event sourcing, CQRS and Docker presentation](https://github.com/cer/event-sourcing-examples)
* [ Some idea of how micro-services can be handled using SkyDNS, SkyDock and Docker](https://github.com/criolit/docker-microservices)
* [ This is a presentation on Docker held at FINN Architecture Summit - Service Orientation on 2015.01.21.](https://github.com/finn-no/Docker-and-Microservices)
* [ Dummy project to try out new tools for me like Docker and RabbitMQ](https://github.com/jordi-chacon/dummy-dockerized-microservices)
* [ OAuth2 authentication server designed to work in a docker-based microservices architecture.](https://github.com/nielskrijger/auth-server)
* [ Example on how to scale microservices with message queues, Kubernetes and Spring Boot](https://learnk8s.io/blog/scaling-spring-boot-microservices)
* [Production ready multi-tenant microservices. Business microservice can be built on top of it.](https://github.com/mmahmoodictbd/production-ready-microservices-starter)

### Library and Tools



## People

* James Lewis
* Sam Newman
* Russ Miles
* Martin Fowler
* Chris Richardson
* Daniel Woods

## Discussion Group

* [Join the microservices google group](https://groups.google.com/forum/#!forum/microservices)


Many thanks to [Owain Lewis](https://github.com/owainlewis/microservice-design)
and [Chris Richardson](http://microservices.io/index.html) [i5ting](https://github.com/i5ting)
