Microservices • Martin Fowler • GOTO 2014

preview_player
Показать описание
This presentation was recorded at GOTO Berlin 2014. #gotocon #gotober

Martin Fowler - Author, Speaker, Consultant & General Loud-mouth on Software Development

ABSTRACT
Part 1 of 2: Microservices
In the last decade or so we've seen a number of new ideas added to the mix to help us effectively design our software. Patterns help us capture the solutions and rationale for using them. [...]

TIMECODES
00:00 Intro
00:55 Monolith vs. microservices
02:13 Definition of microservices
03:14 Characteristics of microservices
03:53 Componentization via services
07:56 Organized around business capabilities
09:19 Decentralized data management
11:22 Infrastructure automation
12:12 Design for failure
13:22 Are microservices just SOA?
15:45 How big is a microservice?
17:49 Monolith vs. microservices
24:04 Conclusion

Read the full abstract here:

RECOMMENDED BOOKS

#Microservices #Programming #SOA #ServiceOrientedArchitecture #MartinFowler

CHANNEL MEMBERSHIP BONUS
Join this channel to get early access to videos & other perks:

Looking for a unique learning experience?

SUBSCRIBE TO OUR CHANNEL - new videos posted almost daily.
Рекомендации по теме
Комментарии
Автор

Looking for books & other references mentioned in this video?
Check out the video description for all the links!

Want early access to videos & exclusive perks?

Question for you: What’s your biggest takeaway from this video? Let us know in the comments! ⬇

GOTO-
Автор

01:00 What is a monolithic application (Everything together in one process)
01:16 For Microservices take each capability and put it in separate processes

03:30 Article about *9 Characteristics of Microservices*

Common Characteristics

03:43 *Componentization via services*
04:23 Components should be independently replaceable and independently upgradeable
04:55 2 forms of components
- libraries (needs same plattform)
- services (more independent)
06:28 *Organized around business capabilities*
07:57 *Smart endpoints and dump pipes*
09:19 *Decentralized Data Management*
10:17 Never talk to another services data store directly - only over the services API
11:01 Choice of data persistence, language and tools should totally be at the individual service
11:23 *Infrastructure Automation* is crucial
12:10 *Explicit design for failure*

Usual Questions

13:22 *Are microservices the same as 'Service Oriented Architecture'?*
14:37 'Microservices' = subset of 'SOA'
15:46 *How big is a Microservice?*
17:49 *Microservices vs Monoliths*
- Advantages Monoliths: Simplicity up to some size, Consistency, Inter-module interface refactoring
- Advantages Microservice: Partial Deployment, Availability, Preserve Modularity, Multiple Platforms
24:03 *Basic things to make sure if you do microservices*
Rapid Provisioning, Basic Monitoring, Rapid Application Deployment, Devops Culture

-andymel
Автор

Things I learned from this talk:
- Helpful to think of microservices vs monolith as distributed vs centralised
- Microservices allow greater deployment flexibility and release granularity
- Microservices might not be a good choice if boundaries in a system are poorly defined/understood

CrustyPea
Автор

Very articulate, clear-cut, easy to follow diction. That is a great speaker.

valtih
Автор

Fantastic, concise overview of microservices. My favorite part: @23:30: Use any programming language(s) for microservices except JavaScript, you have to do something to fight back against that monster. 4 years later, rewrites refactoring book with all examples in JavaScript. :)

scoett
Автор

I've worked in organizations where the shift from monolith to microservices was well thought out, planned and executed. I've also worked in organizations where the attempt to make that shift resulted in the most awful mess that created nothing but tech debt and resulted in massive technological silos that no one understood.

It reminds me of the early days of the design pattern movement where developers were picking up the latest cookbook, learning a couple patterns and then shoe-horning every software challenge into them regardless of fit.

I think that as with any other software development fad, microservices are great for specific cases. In most cases it's just not needed and creates complexity rather than enabling solutions.

jeremykaplan
Автор

Finally, I found one meaningful presentation about micro services. I still have so many questions..

mohankumarc.kannangnatt
Автор

Actually a quite good and, now and then, quite humorous story.
I now understand why no-one was laughing though: "This presentation was recorded at GOTO Berlin 2014"

ericoudammerveld
Автор

That Netflix guy talk about microservices doesn't ever get close to the quality of this talk. Thank you, Martin!

TechnologyRules
Автор

Great high-level talk on microservices! Concise and highly informative.

RoryBramwell
Автор

As always, some very valuable, astute and insightful commentary from Martin Fowler - thanks!

goranmatic
Автор

Development in isolation. The key of modularity, and I think a better phrase when discussing the pros and cons of modularity. Development in isolation is impossible in a monolith, but a monolith has the benefit of discovering boundaries and simpler troubleshooting prior to those boundaries being found. Development in isolation is the only option in Microservices, but troubleshooting becomes difficult if your boundaries aren't clear.

The key is that a microservice shouldn't be developed with unclear boundaries. And when you start with a monolith and extract services with clear boundaries, you can then develop and troubleshoot in isolation.

SOME Developers (lol if he reads this) like to run every micro service and the root application(s) simultaneously and locally to troubleshoot. That either means the boundaries aren't clear (which they should be), or it means your mindset is stuck in the monolith and you don't know how to deal with development in isolation.

Long-story-short: Start with monoliths, don't prematurely microptimize (lol?), but try to get to clear boundaries asap, and move to micro-services if you can support the requirements the Master Fowler speaks of toward the end of his talk.

Suamere
Автор

Mircroservices is just Erlang implemented with other languages and runtimes.
Any Erlang programmer can eat two of your American pizzas.

mikhailfranco
Автор

This and the noSql speech have made me a big fan of Martin

westfield
Автор

Smart Ends and Dump Pipes is a good band name

kevinaud
Автор

Summary of this video: American pizzas are very large, americans love shopping, fight back the javascript monster

recoveringheart
Автор

For what it's worth, I've come across another key difference between SOA and microservices. as stated by Mark Richards in the book Software Architecture Patterns published by O'Reilly, the difference is that a microservices do not use any form of service orchestration (which i would rather call composition). when talking about SOA, there are structures where multiple services might work together to deliver one (partial) result.

stenmartens
Автор

Thank you for providing your thoughts on microservices, Martin.

JaysonSunshine
Автор

Thanks for such a wonderful explanation.
Component:Independently Replaceable and Independently up gradable.

Infact this monolithic approach's problem was with Microsoft .Net framework also. That's why they gave MVC as a nuget package instead of integrated with .Net otherwise they would have to wait until the next version

ashishkalra
Автор

Hope he changed his mind about javascript two years later. That monster is becoming stronger and stronger thanks to Node.

hnasr