Upload
joe-drumgoole
View
59
Download
0
Embed Size (px)
Citation preview
The Rise of Microservices
Jim BlackhurstSenior Solutions Architect
Anyone recognise her?
Margret Hamilton, being awarded the Presidential Medal of freedom – November 2016
Punch Cards and Paper
Margaret Hamilton, (Director of S.Eng) with the source code to the Apollo Guidance Computer
• Computer programming used to be done individually or in small teams.
• Programs could only be as big as one person could understand.
The Software Crisis
• 1965 - 1985 is known as the time of the Software Crisis.
• Quality of Software was appalling. Bugs and Crashes everywhere.
• Creating reliable software was very hard
Source Control
• Enabled Monolithic Architecture.
• Quality went through the roof!
• But software quickly grew beyond the ability for any one developer to understand it all.
The Monolithic Folly
• Expensive to Build • Difficult to Maintain
• Risky to extend
• Software is only safe and reliable if it can be understood at the human scale.
1990s & Earlier
MonolithicCross-TeamTight Coupling
Small Chan
ge
Huge Impac
t
System
Retests
2000sSOA
CoordinationLooser
CouplingSystem Retests
2010sMicroservice
sDecoupled
Independent DevIsolated
Impact
Why Use Microservices?
Team = Components
No committees
EmpowerBuild MVP quickly
SpeedSimple
componentsIsolated impact
MaintainRapid iterationsReact to market
ChangeProductTeam
Scale
The Persistence Layer
• Data access patterns have changed
• No time for slow ETL processes
• Flexibility of deployment
Why MongoDB is a Good Fit For Microservices
ScalabilityMonitoring&
AutomationRedundancyFlexible
DataModel
Simplicity
Microservice Architectures Built on Containers
Containers prevent your Ops team from going postal.
• Well defined APIs• Independent languages &
libraries• Modular: easy maintenance
+ reuse• Fault tolerant• Scaling, upgrading
Container Security
Opportunities
• Isolation• Constrain resources• Narrow roles• Keep images/containers
current
Orchestration
Automated deployment, connecting, and maintenance of multiple containers
• Provision hosts• Containers
• Instantiate• Reschedule• Link• Scale Out/In
• Expose services
In Conclusion• Monolithic application development is
no longer a relevant, reliable or safe architecture.
• Microservices lower risk, increase developer productivity, and provide a faster time to market.
• MongoDB powers the data layer that Microservices depend on for security, resiliency and elasticity.
References
• Enabling Microservices – Containers & Orchestration Explainedhttps://www.mongodb.com/collateral/microservices-containers-and-orchestration-explained
• Microservices: The Evolution of Building Modern Applicationshttps://www.mongodb.com/collateral/microservices-the-evolution-of-building-modern-applications