Post on 16-Apr-2017
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
Monolithic
Cross-Team
Tight Coupling
Small Change
Huge Impact
System Retests
2000s
SOA
Coordination
Looser Coupling
System Retests
2010s
Microservices
Decoupled
Independent Dev
Isolated Impact
Why Use Microservices?
Team = ComponentsNo committees
EmpowerBuild MVP quickly
SpeedSimple components
Isolated 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&
Automation
RedundancyFlexibleDataModel
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 Microservicesdepend on for security, resiliency and elasticity.
References
• Enabling Microservices – Containers & Orchestration Explained
https://www.mongodb.com/collateral/microservices-containers-and-
orchestration-explained
• Microservices: The Evolution of Building Modern Applications
https://www.mongodb.com/collateral/microservices-the-evolution-of-
building-modern-applications