Chapter 1, Introduction to Cloud-Native, addresses the what and why of cloud-native applications: what are the drivers of moving to cloud application? Why is cloud development and deployment different from regular applications? What is a 12-factor app?
Chapter 2, Writing Your First Cloud-Native Application, introduces the core concepts of using the microservices approach for application design. It then shows a sample bare-bones product service that will be enhanced as the discussion progresses in the book. You will learn how to use Spring Boot for microservice application development and appreciate the microservice principles that are used to build cloud-native applications.
Chapter 3, Designing Your Cloud-Native Application, covers some of the high-level architecture considerations in designing cloud-native applications. It includes event-driven architecture, decoupling using choreography, and using domain-driven design (DDD) concepts such as Bounded Contexts. You will learn about the architecture patterns and considerations for developing on the cloud and frontending the applications with consumer-friendly APIs instead of a system-centric service definition.
Chapter 4, Extending Your Cloud-Native Application, takes a deep dive into creating an application using various stacks, principles, and supporting components. It covers the patterns while implementing the service. This chapter highlights the differential aspects such as error handling and patterns such as Command Query Response Segregation (CQRS) and caching that have a significant impact on cloud development.
Chapter 5, Testing Cloud-Native Applications, delves into how to test your microservices and how to write tests in behavior-driven development.
Chapter 6, Cloud-Native Application Deployment, delves into the deployment model for the microservice, including how to package your application in a Docker container and setting up the CI/CD pipeline.
Chapter 7, Cloud-Native Application Runtime, covers the runtime aspects of the service. We will cover how configuration can be externalized in a configuration server and frontend by Zuul (Edge). We will look at Pivotal Cloud Foundry and deploying our service on PCF Dev. We will also cover container orchestrations.
Chapter 8, Platform Deployment – AWS, describes the AWS environment and discusses AWS-specific tools to do cloud development using the concepts (registry, configuration, log aggregation, and async messaging) discussed in earlier chapters.
Chapter 9, Platform Deployment – Azure, describes the Azure environment and discusses Azure-specific tools to do cloud development (including Service Fabric and Cloud Functions).
Chapter 10, As a Service Integration, discusses the various types of XaaS, including IaaS, PaaS, iPaaS, and DBaaS, and how to expose infrastructure elements as services. In the cloud-native mode, your application might be integrating with social media APIs or PaaS APIs or you can be hosting services that will be used by other applications. This chapter covers how to connect/use other external services or provide such services.
Chapter 11, API Design Best Practices, discusses how to design consumer-centric APIs that are granular and functionality oriented. It also discusses the various best practices in API design, such as whether to do orchestration at the API level or in service, how to create freemium versions of API, how to address the channel-specific concerns at the API layer so that the service remains channel agnostic, and the security aspects in API design.
Chapter 12, Digital Transformation, covers the impact of cloud development on the existing landscape of an enterprise and how it can achieve the transformation to move toward a digital enterprise.