Software as a Service has emerged as a model for modern software products that provide customers a great experience and the business a dynamic platform for campaigns, communication, and the release of new features at a frequent pace. You learned in the last chapter that Agile and Scrum, Lean Engineering, and DevOps provide a methodology and process framework for high-velocity product development. You learned that cloud platforms provide an excellent foundation for SaaS solutions with their on-demand infrastructure and application services. Finally, you identified microservice architecture as the optimal architecture for cloud-hosted solutions. In this chapter, we will define microservices and discuss both the benefits and the challenges of this new approach.