The Rise of Microservices

Post on 16-Apr-2017

606 views 0 download

Transcript of The Rise of Microservices

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