Book description
Cloud native development gives you the power to rapidly build, secure, and scale software. But you still need to navigate many potential pitfalls along the way. Through practical examples, this book demonstrates how to use Google Cloud as a laboratory to enable rapid innovation, a factory to automate toil, a resilient, scalable, and secure citadel for running applications, and an observatory to observe them.
Author Daniel Vaughan shows you how to take applications from prototype to production by combining Google Cloud services, a cloud native programming model, and best practices. By following an example project from start to finish, developers, architects, and engineering managers working with the Google Cloud Platform will learn how to build and run cloud native applications on Google Cloud with confidence.
- Understand cloud native development concepts from microservices and containerization to architecture best practices and cost optimization
- Learn Google Cloud services that specifically support this development style: compute, persistence, messaging, DevOps, security and networking, and observability
- Confidently build cloud native applications on Google Cloud
- Learn how to address nonfunctional requirements such as security, observability, and testing
- Successfully make the transition from initial proofs of concept and prototypes to production systems
Publisher resources
Table of contents
- Preface
- I. Cloud Native Google Cloud
-
1. Why Cloud Native and Not Just Cloud?
- Emergence of the Cloud Era
- Navigating the Cloud Migration
- The Pitfalls of an Unplanned Journey
- More Than Just an Online Data Center
- Embracing the Cloud as a Distributed System
- Distinguishing Cloud Hosted from Cloud Native
- Unraveling the Concept of Cloud Native
- Embracing Cloud Native Architecture
- Building a Cloud Native Platform
- Summary
- 2. Why Google Cloud Platform?
-
3. Cloud Native Applications
- Autonomous Components Communicating with Messages
-
Harnessing Cloud Potential with the 12-Factor
App Principles
- I. Codebase: One Codebase Tracked in Version Control, Many Deploys
- II. Dependencies: Explicitly Declare and Isolate Dependencies
- III. Config: Store Config in the Environment
- IV. Backing Services: Treat Backing Services as Attached Resources
- V. Build, Release, Run: Strictly Separate Build and Run Stages
- VI. Processes: Execute the App as One or More Stateless Processes
- VII. Port Binding: Export Services via Port Binding
- VIII. Concurrency: Scale Out via the Process Model
- IX. Disposability: Maximize Robustness with Fast Startup and Graceful Shutdown
- X. Dev/Prod Parity: Keep Development, Staging, and Production as Similar as Possible
- XI. Logs: Treat Logs as Event Streams
- XII. Admin Processes: Run Admin/Management Tasks as One-Off Processes
- Beyond the 12 Factors
- Defining Components with Microservices
- Determining Component Granularity
- Leveraging Domain-Driven Design for Defining Microservice Boundaries
- Intercommunication Between Microservices: APIs and Events
- Harmonizing APIs and Events for Effective Microservice Communication
- Event Storming: A Collaborative Approach to System Design
- Achieving Portability with Containers
- Flexible Running with Container Runtimes
- Avoiding Lock-In with Abstractions
- Responding to Change with Extreme Programming (XP)
- Building Confidence with Testing
- Eliminating Toil with Automation
- Summary
- II. Hands-On Projects
- 4. Preparing Google Cloud
- 5. Project 1: Tag Updater with Cloud Functions
- 6. Project 2: Skill Service with Cloud Run
-
7. Project 3: Fact Service with Spring Boot, Cloud Run, and Cloud SQL
- Requirements
- Solution
- Summary of Services
-
Implementation
- Creating a New Spring Boot Project
- Configuring Identity Platform
- Building the Container
- Creating a Cloud SQL Instance
- Creating a Database and User
- Test Deploying to Cloud Run
- Creating a Secret in Secret Manager
- Creating a Service Account
- Deploying to Cloud Run Connecting to Cloud SQL
- Authentication with Identity Platform
- Improving the Startup Time
- Evaluation
- Summary
- 8. Project 4: Profile Service with Pub/Sub and Firestore
- 9. Project 5: API and User Interface with API Gateway and Cloud Storage
- III. The Facilities
-
10. Laboratory
- The Inner Loop
- Containers in the Inner Loop
- Inside the Laboratory
- Choosing an IDE
- Cloud Code
- Skaffold
- Efficiently Building Containers
- Deploy to a Development Container Runtime
- Choosing a Container Repository
- Choosing an Integration Testing Method
- Comparison of Service Integration Testing
- Building an Example Laboratory
- Summary
- 11. Citadel
- 12. Factory
- 13. Observatory
- IV. Going Further
- 14. Scaling Up
- 15. Going Further
- Appendix. Deploying Skills Mapper
- Index
- About the Author
Product information
- Title: Cloud Native Development with Google Cloud
- Author(s):
- Release date: November 2023
- Publisher(s): O'Reilly Media, Inc.
- ISBN: 9781098145088
You might also like
book
Cloud Native
Developers often struggle when first encountering the cloud. Learning about distributed systems, becoming familiar with technologies …
book
Google Cloud Platform in Action
Google Cloud Platform in Action teaches you to build and launch applications that scale, leveraging the …
book
Cloud Native Spring in Action
Build and deliver production-grade cloud-native apps with Spring framework and Kubernetes. In Cloud Native Spring in …
book
Google Cloud for Developers
Unlock your potential with this ultimate guide to Google Cloud – packed with expert tips, coding …