Book description
Developers often struggle when first encountering the cloud. Learning about distributed systems, becoming familiar with technologies such as containers and functions, and knowing how to put everything together can be daunting. With this practical guide, you’ll get up to speed on patterns for building cloud native applications and best practices for common tasks such as messaging, eventing, and DevOps.
Authors Boris Scholl, Trent Swanson, and Peter Jausovec describe the architectural building blocks for a modern cloud native application. You’ll learn how to use microservices, containers, serverless computing, storage types, portability, and functions. You’ll also explore the fundamentals of cloud native applications, including how to design, develop, and operate them.
- Explore the technologies you need to design a cloud native application
- Distinguish between containers and functions, and learn when to use them
- Architect applications for data-related requirements
- Learn DevOps fundamentals and practices for developing, testing, and operating your applications
- Use tips, techniques, and best practices for building and managing cloud native applications
- Understand the costs and trade-offs necessary to make an application portable
Publisher resources
Table of contents
- Preface
- 1. Introduction to Cloud Native
- 2. Fundamentals
- 3. Designing Cloud Native Applications
- 4. Working with Data
- 5. DevOps
-
6. Best Practices
-
Moving to Cloud Native
- Breaking Up the Monolith for the Right Reasons
- Decouple Simple Services First
- Learn to Operate on a Small Scale
- Use an Anticorruption Layer Pattern
- Use a Strangler Pattern
- Come Up with a Data Migration Strategy
- Rewrite Any Boilerplate Code
- Reconsider Frameworks, Languages, Data Structures, and Datastores
- Retire Code
- Ensuring Resiliency
-
Ensuring Security
- Treat Security Requirements the Same as Any Other Requirements
- Incorporate Security in Your Designs
- Grant Least-Privileged Access
- Use Separate Accounts/Subscriptions/Tenants
- Securely Store All Secrets
- Obfuscate Data
- Encrypt Data in Transit
- Use Federated Identity Management
- Use Role-Based Access Control
- Isolate Kubernetes Pods
-
Working with Data
- Use Managed Databases and Analytics Services
- Use a Datastore That Best Fits Data Requirements
- Keep Data in Multiple Regions or Zones
- Use Data Partitioning and Replication for Scale
- Avoid Overfetching and Chatty I/O
- Don’t Put Business Logic in the Database
- Test with Production-like Data
- Handle Transient Failures
- Performance and Scalability
- Functions
-
Operations
- Deployments and Releases Are Separate Activities
- Keep Deployments Small
- CI/CD Definition Lives with the Component
- Consistent Application Deployment
- Use Zero-Downtime Releases
- Don’t Modify Deployed Infrastructure
- Use Containerized Build
- Describe Infrastructure Using Code
- Use Namespaces to Organize Services in Kubernetes
- Isolate the Environments
- Separate Function Source Code
- Correlate Deployments with Commits
- Logging, Monitoring, and Alerting
- Service Communication
-
Containers
- Store Images in a Trusted Registry
- Utilize the Docker Build Cache
- Don’t Run Containers in Privileged Mode
- Use Explicit Container Image Tags
- Keep Container Images Small
- Run One Application per Container
- Use Verified Images from Trusted Repositories
- Use Vulnerability Scanning Tools on Images
- Don’t Store Data in Containers
- Never Store Secrets or Configuration Inside an Image
- Summary
-
Moving to Cloud Native
- 7. Portability
- Index
Product information
- Title: Cloud Native
- Author(s):
- Release date: August 2019
- Publisher(s): O'Reilly Media, Inc.
- ISBN: 9781492053828
You might also like
book
Cloud Native Go
What do Docker, Kubernetes, and Prometheus have in common? All of these cloud native technologies are …
book
Cloud Native Patterns
Cloud Native Patterns is your guide to developing strong applications that thrive in the dynamic, distributed, …
video
CI/CD in a cloud native world
Systems may be going cloud native, but your CI/CD may not be keeping up. It’s challenging …
book
What Is Cloud Native?
Why are so many companies embracing cloud native development? Getting new features into the hands of …