mindset, infrastructural and …...2017/11/01  · integration tests are a lot more important...

19
MINDSET, INFRASTRUCTURAL AND ORGANIZATIONAL CHANGES TO ADAPT TO MICROSERVICES Armagan Amcalar DevOps Pro Moscow November 16th, 2017

Upload: others

Post on 30-May-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: MINDSET, INFRASTRUCTURAL AND …...2017/11/01  · Integration tests are a lot more important Controversy: decrease unit and functional tests and increase automated user acceptance

MINDSET, INFRASTRUCTURAL ANDORGANIZATIONAL CHANGES

TO ADAPT TO MICROSERVICES

Armagan AmcalarDevOps Pro MoscowNovember 16th, 2017

Page 3: MINDSET, INFRASTRUCTURAL AND …...2017/11/01  · Integration tests are a lot more important Controversy: decrease unit and functional tests and increase automated user acceptance

SUMMARY

Your team wants to adopt microservices.

Is your organization ready for the challenge?

dashersw

Page 4: MINDSET, INFRASTRUCTURAL AND …...2017/11/01  · Integration tests are a lot more important Controversy: decrease unit and functional tests and increase automated user acceptance

WHAT IS NOT A MICROSERVICE?

Async operations with queue (and other) systemsHaving 50 different queue consumers (for notifications,logging, reconciliation services, e-mailing etc) doesn’t

mean you have 50 microservices

Multiple programs running on a single machine andcommunicating over HTTP

dashersw

Page 5: MINDSET, INFRASTRUCTURAL AND …...2017/11/01  · Integration tests are a lot more important Controversy: decrease unit and functional tests and increase automated user acceptance

WHAT IS A MICROSERVICE?

If you are breaking down the fulfillment of a clientrequest into multiple collaborating services that run in

their own memory space, then you are doingmicroservices.

THE BASELINE

dashersw

Page 6: MINDSET, INFRASTRUCTURAL AND …...2017/11/01  · Integration tests are a lot more important Controversy: decrease unit and functional tests and increase automated user acceptance

MICROSERVICES CTD.

Bounded contexts in domain driven design (at worst)

Request–response flow breakdown with

preferably many smaller pieces (with separate codebase)

A bug in a service doesn't bring down the whole app

Scales well, needs minimal additional resources

Supports event-driven architecture

Single responsibility, API interface

dashersw

Page 7: MINDSET, INFRASTRUCTURAL AND …...2017/11/01  · Integration tests are a lot more important Controversy: decrease unit and functional tests and increase automated user acceptance

BEST PRACTICES

Clear interfaces between servicesAuto discovery

Dynamic (or zero) configurationHigh availability

Scale and update single servicesFavor cattle over pets

dashersw

Page 8: MINDSET, INFRASTRUCTURAL AND …...2017/11/01  · Integration tests are a lot more important Controversy: decrease unit and functional tests and increase automated user acceptance

PITFALLS

Wrong domain modelError handling & circuit breaking

Fault-toleranceMonitoring

Multiple points of failureHard to get the big picture

dashersw

Page 9: MINDSET, INFRASTRUCTURAL AND …...2017/11/01  · Integration tests are a lot more important Controversy: decrease unit and functional tests and increase automated user acceptance

CHANGE

IS THE ESSENCE OF THEGAME

dashersw

Page 10: MINDSET, INFRASTRUCTURAL AND …...2017/11/01  · Integration tests are a lot more important Controversy: decrease unit and functional tests and increase automated user acceptance

Code will rapidly change

Dependencies will change

Deployment & release processes will change

WHAT WILL CHANGE?

dashersw

Page 11: MINDSET, INFRASTRUCTURAL AND …...2017/11/01  · Integration tests are a lot more important Controversy: decrease unit and functional tests and increase automated user acceptance

HOW CAN YOU ADAPT?

dashersw

Page 12: MINDSET, INFRASTRUCTURAL AND …...2017/11/01  · Integration tests are a lot more important Controversy: decrease unit and functional tests and increase automated user acceptance

MINDSET CHANGES

Prepare for and own the changeDefer responsibilities

Increase visibility on dependencies and interfacesbetween software components

Architectural documents are backDevOps movement

Integration tests are a lot more importantControversy: decrease unit and functional tests and

increase automated user acceptance tests.

dashersw

Page 13: MINDSET, INFRASTRUCTURAL AND …...2017/11/01  · Integration tests are a lot more important Controversy: decrease unit and functional tests and increase automated user acceptance

BENEFITS

Increase in code ownershipAwareness of impact

Increase in communicationReduced stress due to automation

Architecture is straightforward; reduces ambiguity forwhat implementation belongs in what class

DDD is more important, more straightforward

dashersw

Page 14: MINDSET, INFRASTRUCTURAL AND …...2017/11/01  · Integration tests are a lot more important Controversy: decrease unit and functional tests and increase automated user acceptance

INFRASTRUCTURAL CHANGES

Freedom to use the best tool for the jobInvest in a solid CI/CD process

Pipelined builds with several stagesContainerize your applicationInvest heavily in monitoring

dashersw

Page 15: MINDSET, INFRASTRUCTURAL AND …...2017/11/01  · Integration tests are a lot more important Controversy: decrease unit and functional tests and increase automated user acceptance

BENEFITS

No vendor lock inNo secret sauce

No surprisesMigration is damn easy

Adopting new technologies is lightning fast

dashersw

Page 16: MINDSET, INFRASTRUCTURAL AND …...2017/11/01  · Integration tests are a lot more important Controversy: decrease unit and functional tests and increase automated user acceptance

ORGANIZATIONAL CHANGES

Team structure completely changesScrum teams will get an update

Release management becomes a first-class citizenHierarchy is eliminated

Find other ways to keep a consistent vision within theteam

dashersw

Page 17: MINDSET, INFRASTRUCTURAL AND …...2017/11/01  · Integration tests are a lot more important Controversy: decrease unit and functional tests and increase automated user acceptance

BENEFITS

Increased agilitySmaller teams lead to easier decisions

Helps with planning for impediments and dependencies;“blocked-by hell”

Increased happinessIncreased productivity

Fit for distributed teams!

dashersw

Page 18: MINDSET, INFRASTRUCTURAL AND …...2017/11/01  · Integration tests are a lot more important Controversy: decrease unit and functional tests and increase automated user acceptance

CONCLUSION

MICROSERVICES WILL SUPERCHARGE YOURORGANIZATION.

THE FUTURE IS BRIGHT AND THE GAME IS AFOOT!

dashersw

Page 19: MINDSET, INFRASTRUCTURAL AND …...2017/11/01  · Integration tests are a lot more important Controversy: decrease unit and functional tests and increase automated user acceptance

THANK YOU!

LET'S KEEP IN TOUCH!

Armagan Amcalar

[email protected]

get these slides at:

https://slides.com/armaganamcalar/devopspro-microservices