Abstract
Microservice is an architectural pattern that has risen based on the success of Amazon, Netflix, and other digital-native companies. Designing such an architecture requires understanding your business goals and creating a balance between microservices benefits and associated drawbacks. This trade-off is essential in order to successfully migrate your business applications to microservices. In this chapter we aim to drive you through assessing your readiness to microservice and migration to microservice. We will first start by highlighting key microservice concepts and their impact on both your coding and operations practices and your organization. Then we will investigate further to identify how to establish a trade-off between microservices benefits and associated drawbacks. Database per service, API first design, readiness to operate and NoOps on public cloud will be investigated so that you can clearly establish your own design and strategy in adopting a microservice architecture.
Keywords
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
A. Lee. Unicorn (finance) (2018). https://en.wikipedia.org/wiki/unicorn_(finance)
A.M. Glen, Microservices priorities and trends (2018), https://dzone.com/articles/dzone-research-microservices-priorities-and-trends
M. Feathers, Microservice mistakes—complexity as a service (2015), https://iasaglobal.org/microservice-mistakes-complexity-as-a-service/
N. Bohorquez, The complexity of scaling a microservices architecture (2018), https://thenewstack.io/the-complexity-of-scaling-a-microservices-architecture/
D. Kerr, The death of microservice madness in 2018 (2018), https://dwmkerr.com/the-death-of-microservice-madness-in-2018/
C. Posta, The hardest part about microservices: your data (2016), https://blog.christianposta.com/microservices/the-hardest-part-about-microservices-data/
M. Fowler, Microservice trade-offs (2014), https://martinfowler.com/articles/microservice-trade-offs.html
R. Parsons, Microservice in adopt, 2019
Cap Theorem, https://en.wikipedia.org/wiki/cap_theorem
L. Nicolas, The confusing cap and acid wording (2019), http://blog.thislongrun.com/2015/03/the-confusing-cap-and-acid-wording.html
S. Gilbert, N. Lynch, Brewer’s Conjecture and the Feasibility of Consistent, Available, Partition-Tolerant Web Services, vol. 33 (ACM SIGACT News, 2002)
E. Brewer, CAP Twelve Years Later: How the ‘rules’ Have Changed, vol. 45 (Computer 2012)
M. Fowler, Microservices, a definition of this new architectural term (2014), https://martinfowler.com/articles/microservices.html
C. Richardson, Microservices Patterns (Manning, Shelter Island, 2018)
A. Maslow, The Psychology of Science (Harper & Row, New York, 1966)
A. Maslow, The law of the instrument. https://en.wikipedia.org/wiki/law_of_the_instrument
M.M. Ed Bukoski, B. Moyles, How we build code at Netflix (2016), https://medium.com/netflix-techblog/how-we-build-code-at-netflix-c5d9bd727f15
D. Sato, Canary release (2014), https://martinfowler.com/bliki
R. Wilsenach, DevOps culture (2015), https://martinfowler.com/bliki/devopsculture.html
A. Reuter, T. Haerder, Principles of transaction-oriented database recovery. ACM Comput. Surv. 15(4), 287–317 (1983)
G. Hohpe, Your coffee shop doesn’t use two-phase commit (2015), https://www.enterpriseintegrationpatterns.com/docs/ieee_software_design_2pc.pdf
W. Labaj, What starbucks can teach us about software scalability (2016), https://dzone.com/articles/what-starbucks-can-teach-us-about-software-scalabi
P. Kua, N. Ford, R. Parsons, Building Evolutionary Architectures (O’Reilly, Sebastopol, 2017)
T. Clemson, Microservice testing (2014), https://martinfowler.com/articles/microservice-testing/
S. Newman, Building Microservices (O’Reilly, Sebastopol, 2015)
M. Fowler, Microservice prerequesites, 2014
A. Henry, Mainframe batch to microservice (2018), https://aws.amazon.com/fr/blogs/apn/how-to-migrate-mainframe-batch-to-cloud-microservices-with-blu-age-and-aws/
M. Conway, Conway’s law. https://en.wikipedia.org/wiki/conway%27s_law
C. Richardson, Micro service design patterns (2018), https://microservices.io/patterns/index.html
Thoughtworks, Technology radar. https://www.thoughtworks.com/radar
C. Richardson, Database per service pattern (2018), https://microservices.io/patterns/data/database-per-service.html
Two phase commit protocol. https://en.wikipedia.org/wiki/two-phase_commit_protocol
N. Goodman, P.A. Bernstein, V. Hadzilacos, Concurrency Control and Recovery in Database Systems (Addison Wesley, Reading, 1987)
E. Newcomer, P.A. Bernstein, Principles of Transaction Processing, 2nd edn. (Morgan Kaufmann, Los Altos, 2009)
G. Pardon, Transaction management for rest api (2014), https://www.atomikos.com/blog/transactionmanagementapiforresttcc
Base vs. acid, https://www.johndcook.com/blog/2009/07/06/brewer-cap-theorem-base/
C. Richardson, Saga pattern. http://microservices.io/patterns/data/saga.html
A. Cockcroft, Ops and DevOps at Netflix (2012), http://perfcap.blogspot.com/2012/03/ops-devops-and-noops-at-netflix.html
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2020 Springer Nature Switzerland AG
About this chapter
Cite this chapter
Henry, A., Ridene, Y. (2020). Assessing Your Microservice Migration. In: Bucchiarone, A., et al. Microservices. Springer, Cham. https://doi.org/10.1007/978-3-030-31646-4_4
Download citation
DOI: https://doi.org/10.1007/978-3-030-31646-4_4
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-31645-7
Online ISBN: 978-3-030-31646-4
eBook Packages: Computer ScienceComputer Science (R0)