369 lines
17 KiB
HTML
369 lines
17 KiB
HTML
<h1 id="awesome-microservice">awesome-microservice</h1>
|
||
<p>A curated list of Microservice resources</p>
|
||
<p>Inspired by the <a
|
||
href="https://github.com/sindresorhus/awesome">awesome</a> list thing.
|
||
## Philosophy of Microservice</p>
|
||
<h3 id="origin-of-microservice">Origin of Microservice</h3>
|
||
<ul>
|
||
<li><a
|
||
href="http://martinfowler.com/articles/microservices.html">Microservices
|
||
from Martin Fowler</a></li>
|
||
<li><a
|
||
href="http://blog.csdn.net/wurenhai/article/details/37659335">Microservices
|
||
from Martin Fowler In Chinese</a></li>
|
||
</ul>
|
||
<h3
|
||
id="architectural-patternssimilar-to-book-software-architecture-patterns-from-oreilly">Architectural
|
||
Patterns(similar to book software-architecture-patterns from O`REILLY
|
||
)</h3>
|
||
<h4 id="core-patterns">Core patterns</h4>
|
||
<ul>
|
||
<li><a
|
||
href="http://microservices.io/patterns/monolithic.html">Monolithic
|
||
architecture from Chris Richardson</a></li>
|
||
<li><a
|
||
href="http://microservices.io/patterns/microservices.html">Microservices
|
||
architecture from Chris Richardson</a></li>
|
||
<li><a href="http://microservices.io/patterns/apigateway.html">API
|
||
Gateway from Chris Richardson</a></li>
|
||
<li><a href="http://martinfowler.com/bliki/BoundedContext.html">Bounded
|
||
Context from Martin Fowler</a></li>
|
||
<li><a href="http://martinfowler.com/bliki/CircuitBreaker.html">Circuit
|
||
Breaker from Martin Fowler</a></li>
|
||
<li><a
|
||
href="http://doc.akka.io/docs/akka/snapshot/common/circuitbreaker.html">Circuit
|
||
Breaker ~ netflix</a></li>
|
||
</ul>
|
||
<h4 id="deployment-patterns">Deployment patterns</h4>
|
||
<ul>
|
||
<li><a
|
||
href="http://microservices.io/patterns/deployment/multiple-services-per-host.html">Multiple
|
||
service instances per host</a></li>
|
||
<li><a
|
||
href="http://microservices.io/patterns/deployment/single-service-per-host.html">Service
|
||
instance per host</a></li>
|
||
<li><a
|
||
href="http://microservices.io/patterns/deployment/service-per-vm.html">Service
|
||
instance per VM</a></li>
|
||
<li><a
|
||
href="http://microservices.io/patterns/deployment/service-per-container.html">Service
|
||
instance per Container</a></li>
|
||
</ul>
|
||
<h4 id="service-discovery">Service discovery</h4>
|
||
<ul>
|
||
<li><a
|
||
href="http://microservices.io/patterns/client-side-discovery.html">Client-side
|
||
discovery from Chris Richardson</a></li>
|
||
<li><a
|
||
href="http://microservices.io/patterns/apigateway.html">Server-side
|
||
discovery from Chris Richardson</a></li>
|
||
<li><a href="http://microservices.io/patterns/apigateway.html">Service
|
||
registry from Chris Richardson</a></li>
|
||
<li><a href="http://microservices.io/patterns/apigateway.html">Self
|
||
registration from Chris Richardson</a></li>
|
||
<li><a href="http://microservices.io/patterns/apigateway.html">3rd party
|
||
registration from Chris Richardson</a></li>
|
||
<li><a
|
||
href="https://aws.amazon.com/blogs/compute/service-discovery-via-consul-with-amazon-ecs/">Service
|
||
discovery with consul & etcd</a></li>
|
||
</ul>
|
||
<h3 id="debates-between-advantage-and-disvantage">Debates between
|
||
advantage and disvantage</h3>
|
||
<ul>
|
||
<li><a
|
||
href="http://blog.altoros.com/microservices-architectures-paas-vs-iaas-top-6-differences.html">PaaS
|
||
vs. IaaS for Microservices Architectures: Top 6 Differences</a></li>
|
||
<li><a href="http://weibo.com/p/1001603827173176797988">PaaS与IaaS
|
||
在微服务架构实现方面的6大不同 PaaS vs. IaaS for Microservices
|
||
Architectures: Top 6 Differences in Chinese</a></li>
|
||
<li><a
|
||
href="http://radar.oreilly.com/2015/04/4-reasons-why-microservices-resonate.html">O’Reilly
|
||
Software Architecture Conference大会上对微服务架构的探讨总结</a></li>
|
||
<li><a
|
||
href="http://contino.co.uk/microservices-not-a-free-lunch/">Microservices
|
||
Are Not a free lunch!</a></li>
|
||
<li><a
|
||
href="http://www.stackbuilders.com/news/the-hidden-costs-of-microservices">The
|
||
Hidden Costs of Microservices by Justin Leitgeb</a></li>
|
||
</ul>
|
||
<h2 id="books-about-microservice">Books About Microservice</h2>
|
||
<ul>
|
||
<li><a
|
||
href="https://www.manning.com/books/bootstrapping-microservices-with-docker-kubernetes-and-terraform">Bootstrapping
|
||
Microservices</a> by <a href="https://twitter.com/ashleydavis75">Ashley
|
||
Davis</a>.</li>
|
||
<li><a
|
||
href="https://www.manning.com/books/bootstrapping-microservices-with-docker-kubernetes-and-terraform-second-edition">Bootstrapping
|
||
Microservices with Docker, Kubernetes, and Terraform, Second Edition</a>
|
||
by <a href="https://twitter.com/ashleydavis75">Ashley Davis</a>.</li>
|
||
<li><a href="http://www.amazon.com/gp/product/0812979680">Antifragile:
|
||
Things That Gain from Disorder</a></li>
|
||
<li><a
|
||
href="http://www.amazon.com/The-Black-Swan-Improbable-Robustness/dp/081297381X">The
|
||
Black Swan</a></li>
|
||
<li><a
|
||
href="http://www.amazon.co.uk/Implementing-Domain-Driven-Design-Vaughn-Vernon/dp/0321834577">Implementing
|
||
Domain-Driven Design</a></li>
|
||
<li><a
|
||
href="http://www.amazon.co.uk/Building-Microservices-Sam-Newman/dp/1491950358">Building
|
||
Micro Services - Sam Newman</a></li>
|
||
<li><a
|
||
href="http://nginx.com/wp-content/uploads/2015/01/Building_Microservices_Nginx.pdf">Building
|
||
Micro Services - Sam Newman Downloadable preview edition</a></li>
|
||
<li><a href="https://leanpub.com/antifragilesoftware">Antifragile
|
||
Software - Russ Miles</a></li>
|
||
<li><a
|
||
href="http://www.oreilly.com/programming/free/files/software-architecture-patterns.pdf">software-architecture-patterns
|
||
from O`REILLY in English</a></li>
|
||
<li><a
|
||
href="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">software-architecture-patterns
|
||
from O`REILLY in Chinese</a></li>
|
||
<li><a
|
||
href="http://shop.oreilly.com/product/0636920053675.do">Production Ready
|
||
Microservices - Susan J. Fowler</a></li>
|
||
<li><a
|
||
href="https://www.manning.com/books/microservices-in-net-core-second-edition">Microservices
|
||
in .NET Core</a></li>
|
||
<li><a
|
||
href="http://www.oreilly.com/programming/free/microservices-in-production.csp">Microservices
|
||
in Production - Susan J. Fowler (free ebook)</a></li>
|
||
<li><a href="https://testdriven.io/">Microservices with Docker, Flask,
|
||
and React - Michael Herman</a></li>
|
||
<li><a
|
||
href="https://www.manning.com/books/micro-frontends-in-action">Micro
|
||
Frontends in Action</a></li>
|
||
<li><a
|
||
href="https://www.manning.com/books/unified-logging-with-fluentd">Unified
|
||
Logging with Fluentd</a></li>
|
||
<li><a
|
||
href="https://www.manning.com/books/spring-microservices-in-action-second-edition">Spring
|
||
Microservices in Action, Second Edition</a></li>
|
||
<li><a
|
||
href="https://www.manning.com/books/microservices-in-net-second-edition">Microservices
|
||
in .NET, Second Edition</a></li>
|
||
<li><a
|
||
href="https://www.manning.com/books/designing-microservices">Designing
|
||
Microservices</a></li>
|
||
<li><a
|
||
href="https://www.manning.com/books/the-tao-of-microservices-second-edition">The
|
||
Tao of Microservices, Second Edition</a></li>
|
||
</ul>
|
||
<h2 id="online-videos-and-presentations">Online Videos and
|
||
Presentations</h2>
|
||
<ul>
|
||
<li><a href="https://www.youtube.com/watch?v=wgdBVIX9ifA">Microservices
|
||
- Martin Fowler</a></li>
|
||
<li><a href="https://www.youtube.com/watch?v=nMTaS07i3jk">State of the
|
||
Art in Microservices - Adrian Cockcroft</a></li>
|
||
<li><a href="https://www.youtube.com/watch?v=FotoHYyY8Bo">Deploying And
|
||
Testing Microservices - Sam Newman</a></li>
|
||
<li><a href="https://www.youtube.com/watch?v=I56HzTKvZKc">Microservices
|
||
Anti-Patterns</a></li>
|
||
<li><a href="https://www.youtube.com/watch?v=5NOaUK74Jt4">Practical
|
||
Considerations For Microservice Architectures - Sam Newman</a></li>
|
||
<li><a
|
||
href="http://www.infoq.com/presentations/migration-cloud-native">Migrating
|
||
to Microservices - Adrian Cockcroft</a></li>
|
||
<li><a href="https://www.youtube.com/watch?v=LEcdWVfbHvc">Microservices
|
||
at Netflix</a></li>
|
||
<li><a href="https://www.youtube.com/watch?v=GDVcUM5wbxU">Microservices:
|
||
Adaptive Systems for Innovative Organizations</a></li>
|
||
<li><a
|
||
href="http://www.slideshare.net/stonse/pros-and-cons-of-a-microservices-architecture-talk-at-aws-reinvent">Pros
|
||
and Cons of a MicroServices Architecture talk at AWS ReInvent</a></li>
|
||
<li><a href="https://www.youtube.com/watch?v=9XhBPFjD0hw">Chris
|
||
Richardson: Developing event-driven microservices with event sourcing
|
||
and CQRS</a></li>
|
||
<li><a href="http://www.infoq.com/cn/microservice">微服务
|
||
在InfoQ上的内容</a></li>
|
||
<li><a href="http://www.infoq.com/cn/microservice">Microservices on
|
||
InfoQ website</a></li>
|
||
</ul>
|
||
<h2 id="events">Events</h2>
|
||
<h2 id="best-practises-from-industry">Best Practises from Industry</h2>
|
||
<h3 id="articles-and-blogs">Articles and Blogs</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/Yelp/service-principles">service
|
||
principles from Yelp-A guide to service principles at Yelp for our
|
||
service oriented architecture</a></li>
|
||
<li><a
|
||
href="http://nginx.com/blog/time-to-move-to-a-four-tier-application-architecture/">Adopting
|
||
Microservices at Netflix serial 1: It’s Time to Move to a Four-Tier
|
||
Application Architecture</a></li>
|
||
<li><a
|
||
href="https://github.com/wanghaisheng/wanghaisheng.github.io/issues/65">第一部分:是时候转移到四层架构上来了/</a></li>
|
||
<li><a
|
||
href="http://nginx.com/blog/microservices-at-netflix-architectural-best-practices/">Adopting
|
||
Microservices at Netflix serial 2: Adopting Microservices at Netflix:
|
||
Lessons for Architectural Design</a></li>
|
||
<li><a
|
||
href="https://github.com/wanghaisheng/wanghaisheng.github.io/issues/65">第二部分:微服务架构在Netflix的应用:架构设计的经验教训</a></li>
|
||
<li><a
|
||
href="http://nginx.com/blog/adopting-microservices-at-netflix-lessons-for-team-and-process-design/">Adopting
|
||
Microservices at Netflix serial 3: Adopting Microservices at Netflix:
|
||
Lessons for Team and Process Design</a></li>
|
||
<li><a
|
||
href="">第三部分:微服务架构在Netflix的应用:团队和流程设计相关的经验教训</a></li>
|
||
<li><a
|
||
href="http://capgemini.github.io/architecture/microservices-reality-check/">Microservices
|
||
- A Reality Check(point)by Andrew Harmel-Law — on Development,
|
||
Microservices, Java, Camel, NetflixOSS, Spring 17 Oct 2014</a></li>
|
||
<li><a href="http://queue.acm.org/detail.cfm?id=2187821">Idempotency is
|
||
not a Medical Condition - Pat Helland</a></li>
|
||
<li><a
|
||
href="http://martinfowler.com/bliki/MicroservicePrerequisites.html">Martin
|
||
Fowler - You Must Be This Tall To Use Microservices</a></li>
|
||
<li><a
|
||
href="http://qconlondon.com/dl/qcon-london-2014/slides/AdrianCockcroft_MigratingToMicroservices.pdf">Adrian
|
||
Cockroft - Migrating to Microservices</a></li>
|
||
<li><a
|
||
href="http://www.slideshare.net/justindorfman/stability-patterns-presentation">Michael
|
||
Nygaard - Stability Patterns, and Ant-Patterns…</a></li>
|
||
<li><a
|
||
href="http://www.amazon.co.uk/Domain-driven-Design-Tackling-Complexity-Software/dp/0321125215">Eric
|
||
Evans - Domain Driven Design: Tackling Complexity in the Heart of
|
||
Software</a></li>
|
||
<li><a
|
||
href="http://blog.cleancoder.com/uncle-bob/2014/09/19/MicroServicesAndJars.html">Uncle
|
||
Bob - Microservices and Jars</a></li>
|
||
<li><a
|
||
href="http://service-architecture.blogspot.co.uk/2014/03/microservices-money-for-old-rope-or-re.html">Steve
|
||
Jones - Microservices - Money for old rope or re-badging SOA for the
|
||
cool kids</a></li>
|
||
<li><a
|
||
href="https://www.linkedin.com/pulse/how-build-microservice-sonu-meena">Sonu
|
||
K. Meena - How to build microservice?</a></li>
|
||
<li><a
|
||
href="http://nginx.com/blog/introduction-to-microservices/">Introduction
|
||
to Microservices</a></li>
|
||
<li><a
|
||
href="http://dockone.io/article/394">微服务实战(一):微服务架构的优势与不足</a></li>
|
||
<li><a
|
||
href="http://nginx.com/blog/building-microservices-using-an-api-gateway/">Building
|
||
Microservices: Using an API Gateway</a></li>
|
||
<li><a href="http://dockone.io/article/482">微服务实战(二):使用API
|
||
Gateway</a></li>
|
||
<li><a
|
||
href="https://www.nginx.com/blog/building-microservices-inter-process-communication/">Building
|
||
Microservices: Inter-Process Communication in a Microservices
|
||
Architecture</a></li>
|
||
<li><a
|
||
href="http://dockone.io/article/549">微服务实战(三):深入微服务架构的进程间通信</a></li>
|
||
<li><a
|
||
href="http://dockone.io/article/771">微服务实战(四):服务发现的可行方案以及实践案例</a></li>
|
||
<li><a
|
||
href="https://www.nginx.com/blog/service-discovery-in-a-microservices-architecture/">Service
|
||
Discovery in a Microservices Architecture</a></li>
|
||
<li><a
|
||
href="https://www.nginx.com/blog/event-driven-data-management-microservices/">Event-Driven
|
||
Data Management for Microservices</a></li>
|
||
<li><a
|
||
href="http://dockone.io/article/936">微服务实践(五):微服务的事件驱动数据管理</a></li>
|
||
<li><a
|
||
href="http://nicholasjackson.github.io/microservices/go/building-and-testing-microservices-part1/">0
|
||
to Microservice in 5 minutes with Go, go-microservice-template and
|
||
Minke</a></li>
|
||
<li><a
|
||
href="http://dockone.io/article/1117">5分钟学习基于Go,go-microservice-template,Minke的微服务</a></li>
|
||
<li><a
|
||
href="http://capgemini.github.io/architecture/is-rest-best-microservices/">IS
|
||
REST BEST IN A MICROSERVICES ARCHITECTURE?</a></li>
|
||
<li><a
|
||
href="http://dockone.io/article/952">REST真的完全适合微服务架构吗?</a></li>
|
||
<li><a
|
||
href="http://www.cnblogs.com/loveis715/p/4644266.html">Microservice架构模式简介</a></li>
|
||
<li><a
|
||
href="http://timyang.net/architecture/cell-distributed-system/">单元化与分布式架构的切分问题</a></li>
|
||
<li><a
|
||
href="http://mp.weixin.qq.com/s?__biz=MzI5MDE1NjkyNw==&mid=409213079&idx=1&sn=55326805b08b84d86c4e02bc405d0bbe&scene=2&srcid=041143B6BQTKvXlHVsDGbN1V&from=timeline&isappinstalled=0#wechat_redirect">一个单元化架构的例子</a></li>
|
||
<li><a
|
||
href="http://mp.weixin.qq.com/s?__biz=MzAxMTEyOTQ5OQ==&mid=2650610530&idx=1&sn=acd24986fe42181fcd81496f7a922f33&scene=0#wechat_redirect">Microservice微服务架构两年来在京东咚咚从理论到落地的实践总结</a></li>
|
||
<li><a
|
||
href="https://freecontent.manning.com/learn-the-theory-behind-microservice-based-systems-by-using-them-in-practice/">Richard
|
||
Rodger - Learn the Theory behind Microservice-Based Systems by Using
|
||
Them in Practice</a></li>
|
||
</ul>
|
||
<h3 id="example-projects">Example Projects</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/cer/event-sourcing-examples">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!</a></li>
|
||
<li><a
|
||
href="http://www.developer.com/open/building-microservices-with-open-source-technologies.html">Building
|
||
Microservices with Open Source Technologies by Suresh Balla</a></li>
|
||
<li><a
|
||
href="http://www.juvenxu.com/2014/12/09/real-time-monitoring-with-spring-boot/">如何做实时监控?——
|
||
参考 Spring Boot 实现</a></li>
|
||
<li><a
|
||
href="http://www.infoq.com/cn/articles/microframeworks1-spring-boot">深入学习微框架:Spring
|
||
Boot</a></li>
|
||
<li><a
|
||
href="https://github.com/aspyker/acmeair-netflix/tree/astyanax">NetflixOSS
|
||
Acme Air Sample and Benchmark</a></li>
|
||
<li><a
|
||
href="http://ispyker.blogspot.tw/2014/01/experiments-with-docker-for-acme-air-dev.html">Experiments
|
||
With Docker For Acme Air Dev</a></li>
|
||
<li><a
|
||
href="http://www.programming-free.com/2014/07/spring-data-rest-with-angularjs-crud.html">CRUD
|
||
using Spring Data Rest and AngularJS using Spring Boot</a></li>
|
||
<li><a href="https://github.com/shouldbee/docker-html2pdf">microservice
|
||
of convert html to pdf</a></li>
|
||
<li><a
|
||
href="https://github.com/codescrum/microservice-tests-01">Microservices
|
||
tests with RabbitMQ and Docker</a></li>
|
||
<li><a href="https://github.com/boonen/microservices-demo">A
|
||
demonstration of a Microservices architecture using Spring Boot, Docker
|
||
and Fig.</a></li>
|
||
<li><a href="https://github.com/mboeh/oignon-exp">Experiments with
|
||
microservices and Docker</a></li>
|
||
<li><a href="https://github.com/cer/event-sourcing-examples">Example
|
||
code for my building and deploying microservices with event sourcing,
|
||
CQRS and Docker presentation</a></li>
|
||
<li><a href="https://github.com/criolit/docker-microservices">Some idea
|
||
of how micro-services can be handled using SkyDNS, SkyDock and
|
||
Docker</a></li>
|
||
<li><a href="https://github.com/finn-no/Docker-and-Microservices">This
|
||
is a presentation on Docker held at FINN Architecture Summit - Service
|
||
Orientation on 2015.01.21.</a></li>
|
||
<li><a
|
||
href="https://github.com/jordi-chacon/dummy-dockerized-microservices">Dummy
|
||
project to try out new tools for me like Docker and RabbitMQ</a></li>
|
||
<li><a href="https://github.com/nielskrijger/auth-server">OAuth2
|
||
authentication server designed to work in a docker-based microservices
|
||
architecture.</a></li>
|
||
<li><a
|
||
href="https://learnk8s.io/blog/scaling-spring-boot-microservices">Example
|
||
on how to scale microservices with message queues, Kubernetes and Spring
|
||
Boot</a></li>
|
||
<li><a
|
||
href="https://github.com/mmahmoodictbd/production-ready-microservices-starter">Production
|
||
ready multi-tenant microservices. Business microservice can be built on
|
||
top of it.</a></li>
|
||
</ul>
|
||
<h3 id="library-and-tools">Library and Tools</h3>
|
||
<h2 id="people">People</h2>
|
||
<ul>
|
||
<li>James Lewis</li>
|
||
<li>Sam Newman</li>
|
||
<li>Russ Miles</li>
|
||
<li>Martin Fowler</li>
|
||
<li>Chris Richardson</li>
|
||
<li>Daniel Woods</li>
|
||
</ul>
|
||
<h2 id="discussion-group">Discussion Group</h2>
|
||
<ul>
|
||
<li><a href="https://groups.google.com/forum/#!forum/microservices">Join
|
||
the microservices google group</a></li>
|
||
</ul>
|
||
<p>Many thanks to <a
|
||
href="https://github.com/owainlewis/microservice-design">Owain Lewis</a>
|
||
and <a href="http://microservices.io/index.html">Chris Richardson</a> <a
|
||
href="https://github.com/i5ting">i5ting</a></p>
|
||
<p><a
|
||
href="https://github.com/wanghaisheng/awesome-microservice">microservice.md
|
||
Github</a></p>
|