Home > Store

Oracle Cloud Infrastructure - A Guide to Building Cloud Native Applications

eBook

  • Your Price: $46.39
  • List Price: $57.99
  • Includes EPUB and PDF
  • About eBook Formats
  • This eBook includes the following formats, accessible from your Account page after purchase:

    ePub EPUB The open industry format known for its reflowable content and usability on supported mobile devices.

    Adobe Reader PDF The popular standard, used most often with the free Acrobat® Reader® software.

    This eBook requires no passwords or activation to read. We customize your eBook by discreetly watermarking it with your name, making it uniquely yours.

Also available in other formats.

Register your product to gain access to bonus material or receive a coupon.

Description

  • Copyright 2024
  • Edition: 1st
  • eBook
  • ISBN-10: 0-13-790269-7
  • ISBN-13: 978-0-13-790269-9

Oracle Cloud Infrastructure: A Guide to Building Cloud Native Applications

Cloud native development is a modern approach to designing, building, deploying, and managing applications. This approach takes advantage of the benefits of utility computing from providers, such as Oracle Cloud Infrastructure (OCI), and emphasizes automation, elasticity, and resilience.

OCI is a next-generation cloud designed to run any application faster and more securely for less. It includes the tools used to build new cloud native applications and to run existing enterprise applications without rearchitecting them.

Whether you are new to the cloud or just new to OCI, this book provides an overview of the OCI services needed to build cloud native applications. You will learn

  • OCI concepts and terminology
  • How to manage Infrastructure as Code using modern tools and platforms
  • OCIs breadth of cloud native services
  • How to operate the managed Kubernetes service (Container Engine for Kubernetes) at scale
  • How to configure a cluster for advanced use cases, and use specialized hardware capabilities
  • How to use cloud native application deployment platforms and observability tools
  • How to secure applications, data, and the underlying infrastructure using open-source and OCI native security tools and processes

The culmination of the book is an open-source sample application composed of microservices that incorporates the tools and concepts shared throughout the book and is available on GitHub.

Sample Content

Table of Contents

Chapter 1 Introduction to Oracle Cloud
Infrastructure 1
Realms, Regions, and Availability
Domains 2
Tenancies and Compartments 4
Controlling Access to Resources 5
Cloud Guard and Security Zones 10
Service Limits and Cost Management 11
Getting Started with Your Tenancy 14
Setting Up Users and Groups 14
Setting Up API Keys and Auth Tokens 15
Planning How Your Teams Will Use OCI 16
Summary 18
References 18
Chapter 2 Infrastructure Automation and Management 19
One Set of APIs, Different Ways to Call Them 19
A Quick Terraform Primer 20
A Basic Introduction to the Terraform Language 23
Terraform State Tracking 25
The OCI Terraform Provider 26
Setting Up the OCI Terraform Provider 26
Managing OCI Resources with Terraform 29
Simplifying Infrastructure Management with the Resource Manager Service 31
Helm and Kubernetes Providers 33
Generating Resource Manager Stacks 36
Resource Discovery 36
Drift Detection 38
Generating a User Interface from Terraform Configurations with a Custom Schema 38
Publishing Your Stacks with Deploy Buttons 49
Managing Multiregion and Multicloud Configurations 51
Summary 53
References 54
Chapter 3 Cloud Native Services on Oracle Cloud Infrastructure 55
Oracle Container Image Registry 56
Working with OCIR 58
Image Signing 59
Image Scanning 60
Creating Containers from Images 61
Compute Instances 62
Container Instances 63
Container Engine for Kubernetes 65
Service Mesh 69
Serverless Functions 71
API Gateways 73
Components of an API Gateway 74
Working with the API Gateway Service 75
Messaging Systems 79
Streaming 80
Understanding the Streaming Service 81
Working with the OCI Streaming Service 82
OCI Events Service 88
Summary 91
References 91
Chapter 4 Understanding Container Engine for Kubernetes 93
Monoliths and Microservices 93
Containers 94
Container Orchestration and Kubernetes 95
Oracle Container Engine for Kubernetes 96
OCI-Managed Components and Customer-Managed Components 97
Control Plane 97
Data Plane 98
Billable Components 99
Kubernetes Concepts 100
Cloud Controller Manager 101
Nodes and Node Pools 102
Node Pool Properties 103
Worker Node Images and Shapes 103
Kubernetes Labels 108
SSH Keys 109
Tagging Your Resources 110
Creating a Cluster 110
Quick Create Cluster Workflow 111
Custom Create Cluster Workflow 113
Using the OCI Command-Line Interface 117
Using the Terraform Provider and Modules 122
Automation and Terraform Code Generation 123
Asynchronous Cluster Creation 124
Cluster Topology Considerations 124
Using Multiple Node Pools 124
Scheduling Workloads on Specific Nodes 125
Kubernetes Networking 127
Container Network Interface (CNI) 127
OCI VCN-Native Pod Networking CNI 129
Flannel CNI 130
Kubernetes Storage 130
StorageClass: Flex Volume and CSI Plug-ins 131
Updating the Default Storage Class 131
File System Storage 133
Kubernetes Load Balancer Support 137
Working with the OCI Load Balancer Service 137
SSL Termination with OCI Load Balancer 140
Working with the OCI Network Load Balancer Service 142
Specifying Reserved Public IP Addresses 144
Commonly Used Annotations 144
Understanding Security List Management Modes 146
Using Node Label Selectors 147
Security Considerations for Your Cluster 149
Cluster Topology and Configuration Security Considerations 150
Authorization Using Workload Identity and Instance Principls 156
Securing Access to the Cluster 160
OCI IAM and Kubernetes RBAC 161
Federation with an IDP 162
Summary 162
References 163
Chapter 5 Container Engine for Kubernetes in Practice 165
Kubernetes Version Support 166
Upgrading the Control Plane 167
Upgrading the Data Plane 169
Upgrading an Existing Node Pool 170
Upgrading by Adding a Node Pool 173
Alternative Host OS (Not Kubernetes Version) Upgrade Options 175
Scaling a Cluster 175
Manual Scaling 175
Autoscaling 176
Scaling Workloads and Infrastructure Together 194
Autoscaler Best Practices 195
Cluster Access and Token Generation 196
Service Account Authentication 197
Configuring DNS 199
Configuring Node Local DNS Cache 201
Configuring ExternalDNS 202
Cluster Add-ons 203
Configuring Add-ons 203
Disabling Add-ons 205
Observability: Prometheus and Grafana 205
Monitoring Stack Components 205
Installing the kube-prometheus-stack 205
Operators and OCI Service Operator for Kubernetes 208
Getting Started with Operators on OKE 209
Operators for OCI, Oracle Database, and Oracle WebLogic 210
Troubleshooting Nodes with Node Doctor 214
Configuring SR-IOV Interfaces for Pods on OKE Using Multus 218
Using Bare Metal Nodes 218
Using Virtual Machine Nodes 226
Summary 238
References 239
Chapter 6 Securing Your Workloads and Infrastructure 241
Kubernetes Security Challenges 241
Concepts of Kubernetes Security 242
4Cs of Kubernetes Security 242
Securing Oracle Cloud Infrastructure Container Engine for Kubernetes (OKE) 243
Private Clusters 244
Kubernetes Role-Based Access Control (RBAC) with OCI IAM Groups 248
Data Encryption and Key Management Service 250
Audit Logging 253
Security Zones 255
Network Security Groups (NSGs) 256
Web Application Firewall (WAF) 257
Network Firewall 262
Allowed Registries 264
Cloud Guard 266
Hardening Containers and OKE Worker Nodes 267
Container Scanning 268
Container Image Signing 270
Center for Internet Security (CIS)
Kubernetes Benchmarks 270
Using SELinux with OKE 272
Worker Nodes Limited Access 275
Securing Your Workloads 275
Security Context 275
syscalls and seccomp 278
Open Policy Agent (OPA) 280
OPA Gatekeeper 283
Open Web Application Security Project (OWASP) 285
Supporting Tools 287
External Container Scanning Tools 287
CIS-CAT Pro Assessor 287
Kube-bench 289
AppArmor 291
Falco 293
Tracee 293
Trivy 294
National Institute of Standards and Technology (NIST) Kubernetes Benchmarks 294
NIST Kubernetes Benchmarks 295
National Checklist Program Repository 296
National Vulnerability Database 296
NIST SP 800-190 Application Container Security Guide 296
Summary 296
References 297
Chapter 7 Serverless Platforms and Applications 299
Container Instances 300
Architecture 300
Using Container Instances 301
Serverless Functions 305
OCI Functions 306
Using OCI Functions 306
Building Your First Function 308
Adding an API Gateway 314
Function Logs and Distributed Tracing 315
Service Mesh 319
Using the Service Mesh 320
Adding a Service Mesh to an Application 321
Summary 330
References 330
Chapter 8 Observability 331
OCI Monitoring 331
Alarms 336
OCI Logging 338
Service Logs 340
Custom Logs 341
Audit Logs 343
Auditing OKE Activity 345
Advanced Observability in OCI 347
Logging Analytics 347
Enabling and Using Logging Analytics 349
Prometheus and Grafana with OKE 349
Using the OCI DataSource Plug-ins for Grafana 353
eBPF-Based Monitoring with Tetragon on OKE 353
Tetragon: eBPF-Based Security Observability and Enforcement 354
Running Tetragon on Oracle Container Engine for Kubernetes (OKE) 355
Summary 359
References 360
Chapter 9 DevOps and Deployment Automation 361
OCI DevOps Service 362
Code Repositories 363
Triggers 364
Build Pipelines 364
Artifacts 368
Environments 370
Deployment Pipelines 370
Elastically Scaling Jenkins on Kubernetes 376
Setting Up Jenkins on OKE 377
GitOps with ArgoCD 380
Setting Up Argo CD on OKE 381
Summary 384
References 384
Chapter 10 Bringing It Together: MuShop 385
Architecture 386
Source Code Structure 388
Services 390
Storefront 390
API 391
Catalog 391
Carts 392
User 392
Orders 393
Fulfillment 393
Payment 394
Assets 394
DBTools 394
Edge Router 394
Events 395
Newsletter Subscription 395
Load 395
Building the Services 395
Infrastructure Automation 398
Helm Charts 399
Utilities and Supporting Components 402
Deploying MuShop 403
Summary 405
References 406


9780137902538 TOC 10/30/2023

Updates

Submit Errata

More Information

InformIT Promotional Mailings & Special Offers

I would like to receive exclusive offers and hear about products from InformIT and its family of brands. I can unsubscribe at any time.

Overview


Pearson Education, Inc., 221 River Street, Hoboken, New Jersey 07030, (Pearson) presents this site to provide information about products and services that can be purchased through this site.

This privacy notice provides an overview of our commitment to privacy and describes how we collect, protect, use and share personal information collected through this site. Please note that other Pearson websites and online products and services have their own separate privacy policies.

Collection and Use of Information


To conduct business and deliver products and services, Pearson collects and uses personal information in several ways in connection with this site, including:

Questions and Inquiries

For inquiries and questions, we collect the inquiry or question, together with name, contact details (email address, phone number and mailing address) and any other additional information voluntarily submitted to us through a Contact Us form or an email. We use this information to address the inquiry and respond to the question.

Online Store

For orders and purchases placed through our online store on this site, we collect order details, name, institution name and address (if applicable), email address, phone number, shipping and billing addresses, credit/debit card information, shipping options and any instructions. We use this information to complete transactions, fulfill orders, communicate with individuals placing orders or visiting the online store, and for related purposes.

Surveys

Pearson may offer opportunities to provide feedback or participate in surveys, including surveys evaluating Pearson products, services or sites. Participation is voluntary. Pearson collects information requested in the survey questions and uses the information to evaluate, support, maintain and improve products, services or sites, develop new products and services, conduct educational research and for other purposes specified in the survey.

Contests and Drawings

Occasionally, we may sponsor a contest or drawing. Participation is optional. Pearson collects name, contact information and other information specified on the entry form for the contest or drawing to conduct the contest or drawing. Pearson may collect additional personal information from the winners of a contest or drawing in order to award the prize and for tax reporting purposes, as required by law.

Newsletters

If you have elected to receive email newsletters or promotional mailings and special offers but want to unsubscribe, simply email information@informit.com.

Service Announcements

On rare occasions it is necessary to send out a strictly service related announcement. For instance, if our service is temporarily suspended for maintenance we might send users an email. Generally, users may not opt-out of these communications, though they can deactivate their account information. However, these communications are not promotional in nature.

Customer Service

We communicate with users on a regular basis to provide requested services and in regard to issues relating to their account we reply via email or phone in accordance with the users' wishes when a user submits their information through our Contact Us form.

Other Collection and Use of Information


Application and System Logs

Pearson automatically collects log data to help ensure the delivery, availability and security of this site. Log data may include technical information about how a user or visitor connected to this site, such as browser type, type of computer/device, operating system, internet service provider and IP address. We use this information for support purposes and to monitor the health of the site, identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents and appropriately scale computing resources.

Web Analytics

Pearson may use third party web trend analytical services, including Google Analytics, to collect visitor information, such as IP addresses, browser types, referring pages, pages visited and time spent on a particular site. While these analytical services collect and report information on an anonymous basis, they may use cookies to gather web trend information. The information gathered may enable Pearson (but not the third party web trend services) to link information with application and system log data. Pearson uses this information for system administration and to identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents, appropriately scale computing resources and otherwise support and deliver this site and its services.

Cookies and Related Technologies

This site uses cookies and similar technologies to personalize content, measure traffic patterns, control security, track use and access of information on this site, and provide interest-based messages and advertising. Users can manage and block the use of cookies through their browser. Disabling or blocking certain cookies may limit the functionality of this site.

Do Not Track

This site currently does not respond to Do Not Track signals.

Security


Pearson uses appropriate physical, administrative and technical security measures to protect personal information from unauthorized access, use and disclosure.

Children


This site is not directed to children under the age of 13.

Marketing


Pearson may send or direct marketing communications to users, provided that

  • Pearson will not use personal information collected or processed as a K-12 school service provider for the purpose of directed or targeted advertising.
  • Such marketing is consistent with applicable law and Pearson's legal obligations.
  • Pearson will not knowingly direct or send marketing communications to an individual who has expressed a preference not to receive marketing.
  • Where required by applicable law, express or implied consent to marketing exists and has not been withdrawn.

Pearson may provide personal information to a third party service provider on a restricted basis to provide marketing solely on behalf of Pearson or an affiliate or customer for whom Pearson is a service provider. Marketing preferences may be changed at any time.

Correcting/Updating Personal Information


If a user's personally identifiable information changes (such as your postal address or email address), we provide a way to correct or update that user's personal data provided to us. This can be done on the Account page. If a user no longer desires our service and desires to delete his or her account, please contact us at customer-service@informit.com and we will process the deletion of a user's account.

Choice/Opt-out


Users can always make an informed choice as to whether they should proceed with certain services offered by InformIT. If you choose to remove yourself from our mailing list(s) simply visit the following page and uncheck any communication you no longer want to receive: www.informit.com/u.aspx.

Sale of Personal Information


Pearson does not rent or sell personal information in exchange for any payment of money.

While Pearson does not sell personal information, as defined in Nevada law, Nevada residents may email a request for no sale of their personal information to NevadaDesignatedRequest@pearson.com.

Supplemental Privacy Statement for California Residents


California residents should read our Supplemental privacy statement for California residents in conjunction with this Privacy Notice. The Supplemental privacy statement for California residents explains Pearson's commitment to comply with California law and applies to personal information of California residents collected in connection with this site and the Services.

Sharing and Disclosure


Pearson may disclose personal information, as follows:

  • As required by law.
  • With the consent of the individual (or their parent, if the individual is a minor)
  • In response to a subpoena, court order or legal process, to the extent permitted or required by law
  • To protect the security and safety of individuals, data, assets and systems, consistent with applicable law
  • In connection the sale, joint venture or other transfer of some or all of its company or assets, subject to the provisions of this Privacy Notice
  • To investigate or address actual or suspected fraud or other illegal activities
  • To exercise its legal rights, including enforcement of the Terms of Use for this site or another contract
  • To affiliated Pearson companies and other companies and organizations who perform work for Pearson and are obligated to protect the privacy of personal information consistent with this Privacy Notice
  • To a school, organization, company or government agency, where Pearson collects or processes the personal information in a school setting or on behalf of such organization, company or government agency.

Links


This web site contains links to other sites. Please be aware that we are not responsible for the privacy practices of such other sites. We encourage our users to be aware when they leave our site and to read the privacy statements of each and every web site that collects Personal Information. This privacy statement applies solely to information collected by this web site.

Requests and Contact


Please contact us about this Privacy Notice or if you have any requests or questions relating to the privacy of your personal information.

Changes to this Privacy Notice


We may revise this Privacy Notice through an updated posting. We will identify the effective date of the revision in the posting. Often, updates are made to provide greater clarity or to comply with changes in regulatory requirements. If the updates involve material changes to the collection, protection, use or disclosure of Personal Information, Pearson will provide notice of the change through a conspicuous notice on this site or other appropriate way. Continued use of the site after the effective date of a posted revision evidences acceptance. Please contact us if you have questions or concerns about the Privacy Notice or any objection to any revisions.

Last Update: November 17, 2020