Full Cloud native apps on google cloud platform use serverless microservices and containers to rapid

Page 1


Cloud Native Apps on Google Cloud Platform Use Serverless Microservices and Containers to Rapidly Build and Deploy Apps on Google Cloud English Edition Gilchrist

Visit to download the full and correct content document: https://textbookfull.com/product/cloud-native-apps-on-google-cloud-platform-use-serv erless-microservices-and-containers-to-rapidly-build-and-deploy-apps-on-google-clou d-english-edition-gilchrist/

More products digital (pdf, epub, mobi) instant download maybe you interests ...

Getting Started with Containers in Google Cloud Platform : Deploy, Manage, and Secure Containerized Applications Shimon Ifrah

https://textbookfull.com/product/getting-started-with-containersin-google-cloud-platform-deploy-manage-and-secure-containerizedapplications-shimon-ifrah/

Getting Started with Containers in Google Cloud Platform Deploy Manage and Secure Containerized Applications 1st Edition Shimon Ifrah

https://textbookfull.com/product/getting-started-with-containersin-google-cloud-platform-deploy-manage-and-secure-containerizedapplications-1st-edition-shimon-ifrah/

Deploy Machine Learning Models to Production: With Flask, Streamlit, Docker, and Kubernetes on Google Cloud Platform Pramod Singh

https://textbookfull.com/product/deploy-machine-learning-modelsto-production-with-flask-streamlit-docker-and-kubernetes-ongoogle-cloud-platform-pramod-singh/

Data Science on the Google Cloud Platform 1st Edition

https://textbookfull.com/product/data-science-on-the-googlecloud-platform-1st-edition-valliappa-lakshmanan/

Scaling Google Cloud Platform Run Workloads Across Compute Serverless PaaS Database Distributed Computing and SRE English Edition Dubey

https://textbookfull.com/product/scaling-google-cloud-platformrun-workloads-across-compute-serverless-paas-databasedistributed-computing-and-sre-english-edition-dubey/

Deploy Machine Learning Models to Production: With Flask, Streamlit, Docker, and Kubernetes on Google Cloud Platform 1st Edition Pramod Singh

https://textbookfull.com/product/deploy-machine-learning-modelsto-production-with-flask-streamlit-docker-and-kubernetes-ongoogle-cloud-platform-1st-edition-pramod-singh/

Build Location Apps on iOS with Swift: Use Apple Maps, Google Maps, and Mapbox to Code Location Aware Mobile Apps Jeffrey Linwood

https://textbookfull.com/product/build-location-apps-on-ios-withswift-use-apple-maps-google-maps-and-mapbox-to-code-locationaware-mobile-apps-jeffrey-linwood/

Pro Google Cloud Automation With Google Cloud Deployment Manager, Spinnaker, Tekton, and Jenkins 1st Edition Navin Sabharwal

https://textbookfull.com/product/pro-google-cloud-automationwith-google-cloud-deployment-manager-spinnaker-tekton-andjenkins-1st-edition-navin-sabharwal/

Pro Google Cloud Automation With Google Cloud Deployment Manager Spinnaker Tekton and Jenkins 1st Edition Navin Sabharwal Piyush Pandey

https://textbookfull.com/product/pro-google-cloud-automationwith-google-cloud-deployment-manager-spinnaker-tekton-andjenkins-1st-edition-navin-sabharwal-piyush-pandey/

FIRST EDITION 2022

Copyright © BPB Publications, India

ISBN: 978-93-55511-232

All Rights Reserved. No part of this publication may be reproduced, distributed or transmitted in any form or by any means or stored in a database or retrieval system, without the prior written permission of the publisher with the exception to the program listings which may be entered, stored and executed in a computer system, but they can not be reproduced by the means of publication, photocopy, recording, or by any electronic and mechanical means.

LIMITS OF LIABILITY AND DISCLAIMER OF WARRANTY

The information contained in this book is true to correct and the best of author’s and publisher’s knowledge. The author has made every effort to ensure the accuracy of these publications, but publisher cannot be held responsible for any loss or damage arising from any information in this book. All trademarks referred to in the book are acknowledged as properties of their respective owners but BPB Publications cannot guarantee the accuracy of this information.

www.bpbonline.com

About the Author

Alasdair Gilchrist is an industry veteran of over 25 years spent in IT, Security, Networking, Mobile Telecoms and lately in Cloud Computing. He is the author of many technical books spanning IT, Google Cloud Platform and Industrial technologies, such as Industry 4.0 and the Industrial Internet of Things. Currently he works fulltime as a Google Cloud Architect and part-time as a technical author.

About the Reviewers

Gopinath Balakrishshnan is a Cloud advisor/Architect, Technical Advisory Board member of a startup, Advisory Council member of California State University, Chico, CA, member of Harvard Business Review Advisory Council, Judge panel for Stevie and CODiE awards, Director of Technical Steering Committee, Moja Global. Specialized in product engineering, distributed systems/cloud platforms, built/managed high performance teams , led large transformation programs. Sales driven system engineering/solution architecting roles, worked with medium/large enterprises for their new application/infrastructure design, delivered proof-ofconcept/pilots, engaged with several C level leaders at early stage startups (Series B to D) and built technology partnerships, support their digital transformation journey and help solve their business and technology challenges by helping build/migrate/modernize the application/infrastructure that can scale with better economics and resilient using Google cloud solutions with a cloud native approach.

Adnan Ahmed Khan has 7 years of experience in Software Development, System Design and Automation. He has been a practitioner of Cloud Technologies from Google and AWS. Adnan has pursued MSc. in Computer Science from the American International University of Bangladesh. He has worked with startups like G&R, Pathao and Deligram. He is currently working as a Software Developer in Red.Digital Limited, Dhaka. His day to day life involves design, development and managing cloud-native applications.

Acknowledgement

I would first like to start with thanking BPB for giving me the opportunity to write this book. But writing the book is a team effort so I would like to thank my team mates.

A huge thank you to my editor for her patience, diligence and professionalism when editing the book. (It could never have been done without you SB).

I also need to thank Mr. Gopinath and Mr. Adnan who worked as the technical reviewers everything they so professionally contributed was a huge value add to the book.

Thank you all at BPB and I hope you the reader enjoy the book.

Preface

The purpose of this book is to demonstrate how to design develop and deploy cloud native apps on the Google Cloud Platform. The book is designed to provide theoretical lessons reinforced by stepby-step hands-on tutorials. The value of this approach is that after reading the book you will know why, where and when to use cloud native applications but most importantly you will also know how to build, test and deploy your own cloud native apps on the Google Cloud Platform.

Applications that are designed, developed and deployed by leveraging cloud-based technologies are known as Cloud-Native Applications. Cloud Native apps are built, tested and run using all the advantages of the cloud computing delivery model. However, the term, cloud native application, is not just another buzz-word as these applications have a real design purpose, which is to succeed in today’s fast-paced and competitive software market. As a result, cloud native applications aim to revolutionize software delivery by simultaneously leveraging cloud platform tools, techniques, and technologies whilst also supporting cloud platform operations and DevOps capabilities.

What makes cloud native applications different from traditional web apps is that to be successful in application development today we need to speed up building new applications, optimize existing ones, and find ways to rapidly deploy them into production. Minimizing the time getting the product to market and to profit is critical in business. To this end organizations have developed operational and development strategies that involves methodologies such as DevOps and Agile development, that utilize cloud platform architectures to ensure high quality whilst also delivering continuous improvement and rapid deployment. Devops delivers the functions of continuous integration and continuous deployment pipelines (CI/CD). This is the

technique used in DevOps for automated delivery of the product into production.

Cloud native apps are typically designed around microservices, which amongst their other benefits allow you to create, maintain, improve or scale one component of an application without having to refactor the whole application. Microservices are typically deployed in containers, as this provides mobility through the write once and deploy anywhere, design model as containerized apps can run on any cloud platform. For scalability, resiliency and performance the containers are typically run in Kubernetes clusters, which is a container orchestrator and cluster manager. The cumulative effect of leveraging these techniques and methods in cloud native application development means that the apps can bring tangible value to the organization by delivering products that users need at the pace the business demands.

Overthe13Chaptersofthisbookyouwilllearnthefollowing:

Chapter 1: In this chapter we describe what a cloud native application is and lists its characteristics. You will learn about the modern concepts of Devops and the CI/CD process in particular. We discuss the Google Cloud Platform service model and you will understand the difference between each offered service. Also, through practical hands on learning you will be able to deploy a sample application to Cloud Functions, Google App Engine, and Cloud Run.

Chapter 2: Here you will learn how to download and install the Cloud SDK. Become competent in using the Shell Cloud Terminal and familiar with Cloud Code. You will also be able to build your own custom Cloud Shell Docker image and have a basic grounding in developing apps using Cloud Code. Moreover, you will have had the opportunity to deploy your first serverless app in Cloud Run.

Chapter 3: In this chapter we discuss the architecture associated with cloud native applications. You will also understand the build process and how we create cloud source repositories to store our

code, containers and other artifacts. You will also have had the opportunity to create your own Docker image and push it to the artifact registry using everything you have learned so far.

Chapter 4: In this chapter we describe microservice architecture its benefits and best use cases as well as some caveats where it is best avoided. You will also be able to deploy your microservices into functions that can be run in Cloud Functions or as containers that can be deployed to Google App Engine. You will also have picked up the required practical skills to allow you to handle and deploy microservices using GCP’s Cloud Function and Google App Engine.

Chapter 5: In the chapter we discuss containers and the recent trend of containerization. You will learn through a practical lesson how to create and deploy a container to Cloud Run. You will also learn how to explore and push containers to the Artifact Registry in GCP. As a practical tutorial you will also build your own application using a Google API, hosted your translation app to artifact registry and deployed it to Cloud Run.

Chapter 6: We discuss the component and services you can use to build automated pipelines in GCP. You will learn about Pub/Sub what it is how it works and how you can deploy it in practice. You will also learn how to initiate and schedule automated tasks using both Cloud Task and Cloud Scheduler. In addition, you will learn how to handle streaming data in a pipeline by using Cloud Dataflow and BigQuery.

Chapter 7: The lesson is focused on the underlying issues with managing containers at scale. You will also be introduced to the need for container orchestration and the leading solutionKubernetes. Through practical exercises you will learn how to create a Kubernetes cluster and deploy a cloud native application to it.

Chapter 8: This chapter provides a discussion on cluster design patterns and what designs are best suited to particular scenarios. You will also learn about resource management and how you go about transforming a monolith application into microservices architecture for deployment on a Kubernetes cluster.

Chapter 9: In this chapter we take a deep-five into learning the skills required to optimize your application to run on a Kubernetes Engine. You will learn how to analyze and if necessary, refactor your applications to get the best from Kubernetes performance and scalability. You will also learn how to identify metrics and apply disruption budgets.

Chapter 10: In this chapter you will become familiar with the DevOps practice of continuous integration and continuous delivery, which is also process automation in action. You will learn how to describe each stage in the CI/CD process as well as being able to design and deploy your own pipeline in GCP.

Chapter 11: You will learn the purpose and features of Anthos and how it operates in a hybrid or multi-cloud environment. You will also become familiar with Anthos features and architecture and understand how it is deployed in real world scenarios. In addition, you will learn how to design, configure and deploy a CI/CD solution with Anthos.

Chapter 12: In this chapter you will learn about the Kubernetes technical architecture and how Kubernetes can span multi-cloud and hybrid environments. You will become familiar with Anthos as a multi-cloud, multi-cluster orchestrator and through hands on tutorials be able to connect and explore an Anthos environment.

Chapter 13: We discuss Anthos security and administering identity and access management at the GKE level and understanding the principles of least privilege and how to enforce the policy on a real cluster. You will also become familiar with some Anthos specific security modules such as the Config Controller, Config Sync and through some hands-on work the Policy Controller.

Code Bundle and Coloured Images

Please follow the link to download the CodeBundleand the ColouredImagesof the book: https://rebrand.ly/sw7qdus

The code bundle for the book is also hosted on GitHub at https://github.com/bpbpublications/Cloud-Native-Apps-onGoogle-Cloud-Platform. In case there's an update to the code, it will be updated on the existing GitHub repository. We have code bundles from our rich catalogue of books and videos available at https://github.com/bpbpublications. Check them out!

Errata

We take immense pride in our work at BPB Publications and follow best practices to ensure the accuracy of our content to provide with an indulging reading experience to our subscribers. Our readers are our mirrors, and we use their inputs to reflect and improve upon human errors, if any, that may have occurred during the publishing processes involved. To let us maintain the quality and help us reach out to any readers who might be having difficulties due to any unforeseen errors, please write to us at : errata@bpbonline.com

Your support, suggestions and feedbacks are highly appreciated by the BPB Publications’ Family.

Did you know that BPB offers eBook versions of every book published, with PDF and ePub files available? You can upgrade to the eBook version at www.bpbonline.com and as a print book customer, you are entitled to a discount on the eBook copy. Get in touch with us at: business@bpbonline.com for more details.

At www.bpbonline.com, you can also read a collection of free technical articles, sign up for a range of free newsletters, and receive exclusive discounts and offers on BPB books and eBooks.

Piracy

If you come across any illegal copies of our works in any form on the internet, we would be grateful if you would provide us with the location address or website name. Please contact us at business@bpbonline.com with a link to the material.

If you are interested in becoming an author

If there is a topic that you have expertise in, and you are interested in either writing or contributing to a book, please visit www.bpbonline.com. We have worked with thousands of developers and tech professionals, just like you, to help them share their insights with the global tech community. You can make a general application, apply for a specific hot topic that we are recruiting an author for, or submit your own idea.

Reviews

Please leave a review. Once you have read and used this book, why not leave a review on the site that you purchased it from? Potential readers can then see and use your unbiased opinion to make purchase decisions. We at BPB can understand what you think about our products, and our authors can see your feedback on their book. Thank you! For more information about BPB, please visit www.bpbonline.com.

Table of Contents

1. Introducing Cloud Native Apps

Structure

Objectives

About Cloud Native Apps

Cloud-native application architecture

Featuresofacloud-nativeapplication

BenefitsofCloud-nativeapplications

The Dawn of Modern DevOps

CloudNativeDevOps

TheCloudServiceModel

IaaSvsPaaSvsSaaSvsFaaS

GoogleComputeEngine(GCE)—IaaS

TheServerlessParadigm

GoogleKubernetesEngine(GKE)—(CaaS)

GoogleAppEngine(GAE)—(PaaS)

GoogleCloudFunctions—(FaaS)

CloudRun---(CaaS+)

Advantagesofserverlessarchitecture

AdvantagesofFunctions(FaaS)

AdvantagesofaMicroservicesarchitecture

AdvantagesofworkingwithAPIs

Whatisthebestapproach?

Interactivetutorials

Interactive Tutorial 1.1: Deploy Node.js code in Cloud Function

Tutorial 1.2: Deploy a Nodejs App in Google App Engine

Tutorial 1.3: Deploy a Nodejs Container in Cloud Run

Conclusion

2. Developing Cloud Native Apps with Cloud Shell

Structure

Objectives

A Cloud native approach to SDLC

PrinciplesforCloudNativearchitecture

Principle1:Automationbydesign

Principle2:BewaryofPreservingState

Principle3:Favormanagedservices

Principle4:Practicedefenseindepth

Principle5:Alwaysbearchitecting

What is Agile Development

UnderstandingtheCloudNativedevelopmentlifecycle

Cloudnativepatterns

ThefourpillarsofCloudnative

Bestpracticesforcloudnativeapplicationdevelopment

Toolsforcloud-nativeappdevelopment

What is Google Cloud Code?

Selectingadevelopmentandoperationsenvironment

Google Cloud SDK

Thegcloudcommand-linetool

Clientlibraries

Product-specificcommand-linetools

Cloud Shell

Walkthrough 2.1: Cloud Shell setup

LaunchingCloudShellfromtheConsole

Launchingastandalonesession

UsingtheCloudShellTerminal

UsingtheCloudShellEditor

Ephemeralmode

Walkthrough 2.2: Running VScode with Cloud Shell in the browser

InstallingtheCloudSDKlocally

Walkthrough 2.3: Installing Cloud SDK Docker Image

Dockerimageoptions

InstallingaspecifiedDockerimage

Interactive Tutorial 2.1: Developing with Cloud Code using the Cloud Shell Editor

Working with Cloud Run

WorkspacemanagementintheCloudShellEditor

Walkthrough 2.4: Create a new workspace

DebuggingwithCloudShellEditor

Debuggingactions

Settingbreakpoints

AdditionalKubernetesdebuggingsupport

ConfigurationfilesinyourCloudShellhomedirectory tmuxsupport

Containerimagecustomization

CustomizingCloudShellcontainerimages

Interactive tutorial 2.2: Creating a custom Cloud Shell Docker Image

CreatingtheDockerImage

Conclusion

3. Preparing Source Code with Cloud Build Structure

Objectives

A Cloud native approach to DevOps

DevOpslifecycle

Software Configuration Management (SCM)

TypesofVersionControlSystems

VersionControlSystems–BestPractices

CloudSourceRepositories

SimplifiedContinuousIntegration(CI)withContainer Builder

Pre-InstalledtoolsandlanguagesinCloudShellandCloud ShellEditor

CloudSourceRepositoriesandAppEngine

TheSoftwareBuildprocess

WhatisaBuild?

TypesofSoftwareBuild

AutomatingtheBuild

Interactive Tutorial 3.1: Creating a Cloud Repository Cleanup

Disableyourapp

Deletetherepository

Cloud Build

Buildconfigurationandthebuildsteps

Startingbuilds

Viewingbuildresults

Howdobuildswork?

OverviewofArtifactRegistry

Introduction

Artifactregistryandcontainerregistry

CloudBuildandDocker

CloudBuildinterfaces

Runningbuildslocally

DifferencesbetweenthelocalbuilderandCloudBuild

Interactive Tutorial 3.2

Cleanup

Conclusion

4. Create and Deploy Microservices

Structure

Objectives

The case for microservices architecture

Interactive tutorial 4.1: Demonstrating the Monolith and Microservice architectures

MicroservicesdeployedonCloudfunctions

Technicalwalkthrough4.1:UndertheBonnetwithCloud

FunctionMicroservices

Webapp

Howdoesitwork?

MicroservicesarchitectureonGoogleAppEngine

AppEngineServicesasMicroservices

Projectisolation

Versionswithinservices

Serviceisolation

Interactive tutorial 4.2: Build and deploy Microservices in App Engine

Conclusion

5. Building and Deploying Containers in Cloud Build

Structure

Objectives

What are Containers?

Container architecture

DockerHub

RunningaDockerContainer

RollyourownContainer

Containerization–SuitableGCPEngines

Google Artifact Registry (formerly Google Container Registry)

Workingwithrepositoriesandregistries

Exploringartifactregistry

Walkthrough 5.1: Exploring the artifact registry repositories

Aquickguidetosomeessentialtechnologies

HowdoesGitwork?

Accesscontrols

Configuringpermissions

CustomizingCloudShellcontainers

Persistentstoragefor$HOME

Interactive tutorial 5.1: Building a custom Cloud Shell Docker Container

CustomizingCloudShellcontainerimages

Interactive tutorial 5.2: Build and deploy a Container in Cloud Run

Working with APIs

Interactive tutorial 5.3: Running a Google Translate API on Cloud Run

Managing Containers Conclusion

6. Create a Serverless Pipeline with Pub/Sub, Dataflow, and BigQuery

Structure

Objectives

Cloud Pub/Sub

HowdoesPub/Subwork?

Commonusecases

Limitations

Interactive tutorial 6.1: Getting familiar with Cloud Pub/Sub

Anoverview

SettingupPub/Sub

CloudTaskQueues

InteractivetTutorial6.2:WorkingwithCloudtasks

CloudTaskQueues

Interactive tutorial 6.3: Working with Cloud tasks

CloudScheduler

BigQuery

Interactive tutorial 6.4: Building a Serverless Pipeline with Pub/Sub, Functions, and BigQuery CleanUp!

Cloud Dataflow

Interactive tutorial 6.5: Stream processing with Cloud Pub/Sub and Dataflow Cleanup!

Conclusion

7. Container Orchestration with Google Kubernetes Engine

Structure

Objectives

Scaling Containers

Clusteringbasics

Clustermanagementarchitecture

Google Kubernetes

DecomposingtheMonolith

Kubernetesessentials

Kubernetesarchitecture

Deployment

KubernetesControlPlane

KubernetesonGoogleCloud

ClusterorchestrationwithGoogleKubernetesEngine

Interactive tutorial 7.1: Building your first Kubernetes Cluster

Interactive tutorial 7.2: Building your first Kubernetes App

Setdefaultsettingsforthegcloudtool Cleanup!

Differencebetweenimperativeanddeclarative

Interactive tutorial 7.3: A declarative approach to configuring and deploying to Kubernetes

TroubleshootingKubernetes

UsingthekubectlCLIfordebuggingissues CleanUp!

Conclusion

8. Deploying and Managing Kubernetes Applications Structure

Objectives

Cluster Design patterns

Theage-olddilemma

Thesingleclustermodel

Multi-clustermodel

Managing Kubernetes resources

Whatisanamespace?

The“default”namespace

Creatingnamespaces

Viewingnamespaces

Creatingresourcesinthenamespace

Viewingresourcesinthenamespace

Namespacecommunication

Namespacegranularity

Liveness and readiness checks

Readiness

Liveness

TypeofProbes

Exploring some key Kubernetes features

Zero-downtimeupgrades

Upgradingnodeswithzerodowntime

Rollingupdate

Migrationwithnodepools

Tutorial 8.1: Migrating a Monolith to Microservices on Kubernetes

Engine

Introduction

Interactive tutorial 8.1: Running Microservices in Google

Kubernetes Engine (GKE)

Overview

ArchitecturediagramoftheMicroservices

Conclusion

9. Optimizing Kubernetes Cluster and Apps in GKE

Structure

Objectives

Optimization starts with the application

Running Cloud Native apps on GKE

Understandingappsandresources

Settingresourcerequestsandlimitranges

Autoscaling

Poddisruptionbudgets

Livenessandreadinessprobes

Batch and serving applications

Batchapps

Servingapps

Optimizing Kubernetes applications on GKE

Acost-optimizedCluster

GKEcost-optimizationfeaturesandoptions

Four Kubernetes scaling dimensions

HorizontalPodAutoscaler(HPA)

HPAsettingthethresholds

VerticalPodAutoscaler(VPA)

SomebestpracticescommontobothHPAAndVPA

ClusterAutoscaler

Nodeauto-provisioning

PreemptibleVMs

Servingworkloads

Preparecloud-basedKubernetesapplications

Understandyourapplicationcapacity

Makesureyourapplicationcangrowverticallyand horizontally

Setappropriateresourcerequestsandlimits

Makesureyourcontainerisasleanaspossible

Understandthemetricsserver

ConsiderusingAnthosPolicyController

DesignyourCI/CDpipelinetoenforcecost-saving practices

Spreadthecost-optimizationculture

Interactive tutorial 9.1: Autoscaling deployments with GKE workload metrics

Objectives

Beforeyoubegin

QueryingworkloadmetricsusingtheKubernetesCustom MetricsAPI

DeployingaHorizontalPodAutoscalerobject

ObservingHorizontalPodAutoscalerscalingup Cleanup

Summary of optimization's broad steps Conclusion

10. Deploying a CI/CD Pipeline With Kubernetes and Cloud Build Structure

Objectives Why CI/CD? Why Kubernetes?

Simplehealthcheckcapability

Rollingupdatesandnativerollback Resilience

Simplifiedmonitoring

Alignswithbusinessobjectives

LetthesystemengineersimplementCD

KubernetesandCI/CDadivinecombo

Complementarytools

The Promise of GitOps

HowtoimplementCIinGitOps?

ObjectionstoCI

Commonpitfalls

MeasuringCI

GitOps-style continuous delivery with Cloud Build

Implementinganautomateddeploymentprocess

Commonpitfallsindeploymentautomation

Complexity

Dependencies

Notdesignedforautomation

Poorcollaborationbetweenteams

Waystoimprovedeploymentautomation

Waystomeasuredeploymentautomation

Continuous Delivery vs Continuous Deployment

Implementingcontinuousdelivery

Commonpitfallsofimplementingcontinuousdelivery

Measuringcontinuousdelivery

Interactive tutorial 10.1: GitOps-style continuous delivery with Cloud Build

Objectives

Prepare

Creatingthecontinuousdeliverypipeline

GrantingCloudBuildaccesstoGKE

Initializingthehello-cloudbuild-envrepository

Creatingthetriggerforthecontinuousdeliverypipeline

Modifyingthecontinuousintegrationpipelinetotriggerthe continuousdeliverypipeline

Testing the complete pipeline

Testing the rollback

Cleanup!

Conclusion

11. Build a Software Delivery Platform with Anthos Structure

Objectives

Defining Anthos

ThewayAnthosworks

Anthosagent

Anthoshub

AnthosServiceMesh

Anthosoperationssuite

Anthos's business utility

Today'shybridandmulti-cloudecosystems

Anthosfleets

Anthos technical drill-down

Computingenvironment

Multi-clustermanagement

Connectingacrossenvironments

ConnectingtoGoogleservices

Microservicearchitecturesupport

Managedservicemesh

Centralizedconfigmanagement

CloudRunforAnthos

Securesoftwaresupplychain

Consolidatedloggingandmonitoring

Unifieduserinterface

Anthosfordevelopment

Anthosforoperations

Anthosforsecurity

DesigningmodernCI/CDwithAnthos

Softwaredeliveryplatforms

Softwaredeliveryworkflow

Coderepositories

Applicationlandingzones

Operatingmodel

Governance

Platformasaproduct

DeployingCI/CDwithAnthos

Selectingapilotapplication

Developerconsiderations

Operatorconsiderations

Securityteamconsiderations

CI/CD workflow

Architecture

Platforminfrastructure

Coderepositories

Applicationlandingzones

Technical walkthrough 11.1: Building a CI/CD in Anthos

Overview

Objectives

Beforeyoubegin

Part1

Part2:Applyingthedeveloperworkflow

Overview

Objectives

Cleanup!

Conclusion

12. Application Management with Anthos

Structure

Objectives

The rise of Kubernetes

The meta control planes

Monitoring

AnthosCloud

Anthos—Hybridandmulticlouddexterity

KeycomponentsofAnthos

Cloudlogging,monitoring,andobservability

Anthos application security

Serviceaccounts

CloudIdentityandAccessManagement

ZeroTrust

Technical walkthrough 12.1: Launching Anthos using the sample deployment

Yourjourney

Objectives

Costs

Beforeyoubegin

What’sdeployed?

LaunchtheAnthossampledeploymentonGoogleCloud

UsingtheAnthosDashboard

ExploreAnthosclustersresources

Clustermanagement

Clusterworkloads

ServicesandIngress

Observingservices

Observetheservicestableview

Observetheservicestopologyview

ExploringAnthosfurther

SettingupyourCloudShellenvironment

EnforcingmTLSinyourservicemesh

ConfirmAnthosConfigManagementsetup

Updateapolicytoencryptallservicetraffic

Pushyourchangestotherepository

Using Policy Controller to set up guardrails

Applyguardrails

UsePolicyController

Applyapolicyconstraintforprivilegedcontainers

Testyourpolicy

Conclusion

13. Securing Cloud Native Apps in Anthos Structure Objectives

Anthos Identity Service (AIS)

Beyonduseridentity

Kubernetes Engine (GKE) IAM roles

ClarifyingtheGKEpredefinedIAMroles

Potentialrisksandprivilegeelevationpaths

Google Cloud Platform IAM

Groupmembershipoverindividualaccess

Role-basedAccessControl

Anthos: Modernize your security posture

Consistentpolicies

Softwaresupplychainsecurity

Securityofmulti-tenantenvironmentsacrossashared platform

Stage1:Theinfrastructure

Stage2:Guardrailsandpolicy

Stage3:Securingtheworkloads

AnthosServiceMesh

Stage4:Monitoringanddetectingflaws

Anthos: Modernizing security for hybrid and multi-cloud

Enforcingconsistentpoliciesacrossenvironments

AGitOpsapproach

Deployingonlytrustedworkloads

Isolatingworkloadswithdifferentriskprofiles

Anthos under the hood

AnthosConfigController

ManagingAnthosandGoogleCloudwithyourKubernetes tools

Focusonwhatyouwant,ConfigControllertakescareof therest

ConsistencywithGitOps

Policyguardrailsandauditing

Configsyncbenefits

Configuringclusters

PolicyControlleroverview

Constraints

Constrainttemplates

Interactive tutorial 13.1: Validating apps against policy

Overview

Resources

Pipeline

CIpipelineforPolicyController

Objectives

Beforeyoubegin Cleaningup!

Conclusion

Index

Another random document with no related content on Scribd:

as likely to bring about what's wanted as all the anger and bitterness of a strike?"

"Well—that's for another time. You've got to decide now for the present. An offer has come, meeting you half-way. Seems to me, we ought to go the other half to meet 'em. As friend Stuckey says, that's a tolerable fair ending to a struggle, each side yielding half."

"Any way, I'm meaning to be at work again next week. I'd have been sooner, if it wasn't for a lame arm. I hope to see all of you at work too."

CHAPTER XIV.

HOW IT ALL ENDED.

WHILE the men's meeting went on, Martha and the children still sat in the dim firelight. Millie and Bobbie were asleep, leaning against their mother's knee; and Martha, in

a kind of half-dream, had forgotten the passing of time. It was beyond the little ones' hour for bed, and she had not noted the fact.

Somebody came in with a light step, and Sarah Holdfast's pleasant voice asked, "Why, Mrs. Stevens, is this the way you spend your evening?"

Martha sat slowly more upright, wearing a dazed look.

"O dear, I'm tired," she said. "I didn't know it was so late."

"And the children up still?"

"They were so cold, I made a bit more fire, and they didn't seem to want to leave it. I must have been near asleep too," Martha gasped listlessly. "Well, I've got to wake 'em now."

"Wait a minute. I'll light your candle. I've got a loaf of bread here, and some butter and a jug of milk. Poor thing!" as a faint cry escaped Martha. "You're so hungry, aren't you? There's a basket of food come from Mr. Hughes, and I knew John would want you to have a share. Don't you stir yet."

Martha did not move. She sat motionless, staring down at the little head on her arm.

Mrs. Holdfast had already lighted the candle, and pulled down the blind.

"Why, you're as white as a sheet, you poor thing!" she said, stirring quickly about. "There! Give the children something to eat before they go to bed. And it's plain you want it too. Well, my husband's in hopes the strike will soon

be over; and I'm sure I hope the same. It's been a hard time for you all. I'll tell you what—a cup of tea will do you more good than anything. Haven't got any? Never mind, I'll put the kettle on to boil, and get a pinch in from next door."

Martha had not answered save by silence.

She looked strangely pale, and the dazed expression in her eyes had increased. The little child on her knee lay motionless, and when Mrs. Holdfast came near, Martha shielded the tiny face from observation.

"He's off—sound!" she said hoarsely.

"Well, let him be a few minutes," said Sarah cheerfully. "Don't you get up yet. I'm sure you're not fit. Now, Millie, Bobbie—wake up, wake up."

She aroused the two drowsy children; and Bobbie at once broke into fretting sobs. "I'm so hungry! I'm so hungry!" he wailed.

Martha made no response at all, but Sarah took him to the table, and Bobbie's pitiful face changed into smiles at the sight of bread and butter. When he and Millie were supplied, Sarah hastened away for the "pinch of tea."

On her return, she found Martha still in the same position, passive and white as an image, only with a bewildered wildness in her eyes. There was again the shielding motion of both hands to hide baby Harry's face. Mrs. Holdfast noticed it now, and wondered, but said nothing till the tea was ready. Then she poured out a cup, hot and strong, and brought it with a goodly slice of bread and butter to Martha's side.

"That'll do you good," she said. "And you'll let me see to Harry, won't you? It's time he should have something."

"No, he's sound—sound;" repeated Martha in a hollow voice.

"Baby Harry hasn't eaten nothing all day," said Millie.

"Then he oughtn't to wait, I'm sure. Give him to me."

Martha did not resist when Sarah lifted the child from her lap, only her eyes followed him with a strange gaze, and Mrs. Holdfast's own face changed; for the little fair head fell helplessly, and the long lashes lay upon cheeks of waxen whiteness.

Sarah checked the cry which rose to her lips. She turned to the fire, away from Martha.

"He don't wake up, not even for your taking him," said Millie. "He must be dreadful sleepy."

"He is—very sound," Mrs. Holdfast answered in trembling tones, as she pressed the tiny cold form more closely in her arms.

"Give him back to me!" demanded Martha hoarsely.

"No, my dear—take your tea first," said Mrs. Holdfast. "I'll lay him in his cot—just for—"

"No, no—give him to me! I won't have him laid—laid out —nowhere!" cried Martha, in a voice of sharp anguish. "Give my baby back to me!"

"I'll hold him for you. Just a minute or two. You take your tea and bread and butter. You must eat, you know."

Martha obeyed silently, rapidly. It was almost more than Sarah had ventured to hope. Tea and bread and butter alike vanished, and a faint tinge of colour came to Martha's lips. She was able now to stand up, with outstretched hands.

"Not yet," insisted Mrs. Holdfast. "You just put Millie and Bobbie to bed, and I'll see to him. Yes, do, my dear—it's best for you. Take them," pleaded the good woman.

Martha yielded again. She hurried the two children away, and saw them both in bed. Undressing did not take long, but Sarah was busy also during her short absence.

Harry's little cot had been much in the kitchen of late. He had slept away most of the day, often, in his growing weakness. When Martha returned, still with half-wild, halfdreamy eyes, she found Mrs. Holdfast standing beside the cot, and within lay Harry, prepared as if for the night. He had his little night-dress on, and the calm white baby-face rested peacefully on the pillow. The lips, just parted, were rigid in repose, and one wee waxen hand was crossed over the other.

"You've put him to bed," said Martha's hollow voice.

"Yes, my dear; I've put him to bed," said Sarah pityingly.

Martha came nearer, and gasped for breath, gazing upon the fair little image. Then her eyes went with passionate appeal to Sarah's.

"Poor thing!" murmured Sarah.

She hung over the cot, sobbing wildly.

"You think I don't know! But I do!" said Martha bitterly. "I do! I do! He's murdered! If ever anybody was murdered, it's my—" and then she broke into a bitter wail—"O my baby! My baby Harry!"

She hung over the cot, sobbing wildly, and Sarah's arm came round her in support.

"He'll never be hungry again," she whispered. "Think of that, my dear; and don't you want him back. There 'll be no

strikes up there. He's got to the end of all the trouble. Don't you go and say that to your husband when he comes. Stevens 'll have enough to bear!"

Enough indeed! There was not one of his children whom Stevens loved as he loved baby Harry.

An hour later he returned, light-footed and eager with the news which, he felt sure, would gladden Martha's heart. The door was flung open, and he entered briskly.

"I say, Martha, it's all right! We've settled to accept the masters' proposals, and I'll be off to work to-morrow morning. It's all right. Just as you wanted."

A gesture from Mrs. Holdfast checked Roger. She was present still, having persuaded a neighbour to stay with her own little ones for a time.

Martha sat beside the cot, dropping hot quiet tears at intervals, and the desolate look of the mother's eyes, lifted to his, Stevens would not soon forget.

"Too late now!" she whispered.

Roger's glance went from her to the small face on the pillow—the face of his own little Harry, the child who till lately had never failed to greet him with a joyous spring, and cry of "Dadda." Harry had always been the father's especial pet. Even of late, when the child was too weak to spring or cry out, the tiny face had always brightened at the sound of Roger's voice.

It did not brighten now; yet that was no look of common sleep. Roger knew the difference.

"You don't say—What's the matter? Why don't you give him something, eh? Letting him lie there! And the room as cold—! What d'you want for him, Martha? Tell me, sharp, and I'll get it. I can now; we're going to work again, and it'll be all right."

Martha's tears fell faster, and a sound like a sob crept into Roger's rough voice.

"No use," Martha said brokenly; "the strike's done it at last. It's killed him—our baby Harry!"

"He's better off. He'll never know trouble again," said Mrs. Holdfast. "Don't you go and want him back again too much—both of you. He's out of it all now!"

"If I'd known! Why didn't somebody tell me?" demanded Stevens, hoarsely. "I'd have done—anything—if I'd known!"

Sobs came hard and thick from the father's heart. But no sounds of grief could bring back the household darling; no wailing could reach him on that distant shore which he had reached. He was "out of it all now," indeed! The better for little Harry!

So the strike was at an end; and Peter Pope, finding his services no longer required, betook himself elsewhere.

There were some who counted that the working-men of the place owed him much, seeing that by dint of the strike he had won for them an increase of seven and a half per cent. on their wages.

There were others who held that the same increase would have come, probably as soon, without the pressure exerted by the strike.

There were very many who found that the said increase of wages would by no means suffice to repay them for the heavy losses they had suffered through the strike.

There were not a few who maintained that the trade of the town, and its consequent prosperity, had received lasting injury from the strike.

On the whole it may be safely said, that if the strike had done some possible good, it had also done a considerable amount of positive harm. It may be hoped that the workingmen of the town, having learnt wisdom from a success which involved more of loss than of solid gain, would be long before they embarked in another such enterprise.

THE END.

*** END OF THE PROJECT GUTENBERG EBOOK TOO DEARLY BOUGHT ***

Updated editions will replace the previous one—the old editions will be renamed.

Creating the works from print editions not protected by U.S. copyright law means that no one owns a United States copyright in these works, so the Foundation (and you!) can copy and distribute it in the United States without permission and without paying copyright royalties. Special rules, set forth in the General Terms of Use part of this license, apply to copying and distributing Project Gutenberg™ electronic works to protect the PROJECT GUTENBERG™ concept and trademark. Project Gutenberg is a registered trademark, and may not be used if you charge for an eBook, except by following the terms of the trademark license, including paying royalties for use of the Project Gutenberg trademark. If you do not charge anything for copies of this eBook, complying with the trademark license is very easy. You may use this eBook for nearly any purpose such as creation of derivative works, reports, performances and research. Project Gutenberg eBooks may be modified and printed and given away—you may do practically ANYTHING in the United States with eBooks not protected by U.S. copyright law. Redistribution is subject to the trademark license, especially commercial redistribution.

START: FULL LICENSE

THE FULL PROJECT GUTENBERG LICENSE

PLEASE READ THIS BEFORE YOU DISTRIBUTE OR USE THIS WORK

To protect the Project Gutenberg™ mission of promoting the free distribution of electronic works, by using or distributing this work (or any other work associated in any way with the phrase “Project Gutenberg”), you agree to comply with all the terms of the Full Project Gutenberg™ License available with this file or online at www.gutenberg.org/license.

Section 1. General Terms of Use and Redistributing Project Gutenberg™ electronic works

1.A. By reading or using any part of this Project Gutenberg™ electronic work, you indicate that you have read, understand, agree to and accept all the terms of this license and intellectual property (trademark/copyright) agreement. If you do not agree to abide by all the terms of this agreement, you must cease using and return or destroy all copies of Project Gutenberg™ electronic works in your possession. If you paid a fee for obtaining a copy of or access to a Project Gutenberg™ electronic work and you do not agree to be bound by the terms of this agreement, you may obtain a refund from the person or entity to whom you paid the fee as set forth in paragraph 1.E.8.

1.B. “Project Gutenberg” is a registered trademark. It may only be used on or associated in any way with an electronic work by people who agree to be bound by the terms of this agreement. There are a few things that you can do with most Project Gutenberg™ electronic works even without complying with the full terms of this agreement. See paragraph 1.C below. There are a lot of things you can do with Project Gutenberg™ electronic works if you follow the terms of this agreement and help preserve free future access to Project Gutenberg™ electronic works. See paragraph 1.E below.

1.C. The Project Gutenberg Literary Archive Foundation (“the Foundation” or PGLAF), owns a compilation copyright in the collection of Project Gutenberg™ electronic works. Nearly all the individual works in the collection are in the public domain in the United States. If an individual work is unprotected by copyright law in the United States and you are located in the United States, we do not claim a right to prevent you from copying, distributing, performing, displaying or creating derivative works based on the work as long as all references to Project Gutenberg are removed. Of course, we hope that you will support the Project Gutenberg™ mission of promoting free access to electronic works by freely sharing Project Gutenberg™ works in compliance with the terms of this agreement for keeping the Project Gutenberg™ name associated with the work. You can easily comply with the terms of this agreement by keeping this work in the same format with its attached full Project Gutenberg™ License when you share it without charge with others.

1.D. The copyright laws of the place where you are located also govern what you can do with this work. Copyright laws in most countries are in a constant state of change. If you are outside the United States, check the laws of your country in addition to the terms of this agreement before downloading, copying, displaying, performing, distributing or creating derivative works based on this work or any other Project Gutenberg™ work. The Foundation makes no representations concerning the copyright status of any work in any country other than the United States.

1.E. Unless you have removed all references to Project Gutenberg:

1.E.1. The following sentence, with active links to, or other immediate access to, the full Project Gutenberg™ License must appear prominently whenever any copy of a Project Gutenberg™ work (any work on which the phrase “Project Gutenberg” appears, or with which the phrase “Project Gutenberg” is associated) is accessed, displayed, performed, viewed, copied or distributed:

This eBook is for the use of anyone anywhere in the United States and most other parts of the world at no cost and with almost no restrictions whatsoever. You may copy it, give it away or re-use it under the terms of the Project Gutenberg License included with this eBook or online at www.gutenberg.org. If you are not located in the United States, you will have to check the laws of the country where you are located before using this eBook.

1.E.2. If an individual Project Gutenberg™ electronic work is derived from texts not protected by U.S. copyright law (does not contain a notice indicating that it is posted with permission of the copyright holder), the work can be copied and distributed to anyone in the United States without paying any fees or charges. If you are redistributing or providing access to a work with the phrase “Project Gutenberg” associated with or appearing on the work, you must comply either with the requirements of paragraphs 1.E.1 through 1.E.7 or obtain permission for the use of the work and the Project Gutenberg™ trademark as set forth in paragraphs 1.E.8 or 1.E.9.

1.E.3. If an individual Project Gutenberg™ electronic work is posted with the permission of the copyright holder, your use and distribution must comply with both paragraphs 1.E.1 through 1.E.7 and any additional terms imposed by the copyright holder. Additional terms will be linked to the Project Gutenberg™ License for all works posted with the permission of the copyright holder found at the beginning of this work.

1.E.4. Do not unlink or detach or remove the full Project Gutenberg™ License terms from this work, or any files containing a part of this work or any other work associated with Project Gutenberg™.

1.E.5. Do not copy, display, perform, distribute or redistribute this electronic work, or any part of this electronic work, without prominently displaying the sentence set forth in paragraph 1.E.1 with active links or immediate access to the full terms of the Project Gutenberg™ License.

1.E.6. You may convert to and distribute this work in any binary, compressed, marked up, nonproprietary or proprietary form, including any word processing or hypertext form. However, if you provide access to or distribute copies of a Project Gutenberg™ work in a format other than “Plain Vanilla ASCII” or other format used in the official version posted on the official Project Gutenberg™ website (www.gutenberg.org), you must, at no additional cost, fee or expense to the user, provide a copy, a means of exporting a copy, or a means of obtaining a copy upon request, of the work in its original “Plain Vanilla ASCII” or other form. Any alternate format must include the full Project Gutenberg™ License as specified in paragraph 1.E.1.

1.E.7. Do not charge a fee for access to, viewing, displaying, performing, copying or distributing any Project Gutenberg™ works unless you comply with paragraph 1.E.8 or 1.E.9.

1.E.8. You may charge a reasonable fee for copies of or providing access to or distributing Project Gutenberg™ electronic works provided that:

• You pay a royalty fee of 20% of the gross profits you derive from the use of Project Gutenberg™ works calculated using the method you already use to calculate your applicable taxes. The fee is owed to the owner of the Project Gutenberg™ trademark, but he has agreed to donate royalties under this paragraph to the Project Gutenberg Literary Archive Foundation. Royalty payments must be paid within 60 days following each date on which you prepare (or are legally required to prepare) your periodic tax returns. Royalty payments should be clearly marked as such and sent to the Project Gutenberg Literary Archive Foundation at the address specified in Section 4, “Information about donations to the Project Gutenberg Literary Archive Foundation.”

• You provide a full refund of any money paid by a user who notifies you in writing (or by e-mail) within 30 days of receipt that s/he does not agree to the terms of the full Project Gutenberg™ License. You must require such a user to return or destroy all

copies of the works possessed in a physical medium and discontinue all use of and all access to other copies of Project Gutenberg™ works.

• You provide, in accordance with paragraph 1.F.3, a full refund of any money paid for a work or a replacement copy, if a defect in the electronic work is discovered and reported to you within 90 days of receipt of the work.

• You comply with all other terms of this agreement for free distribution of Project Gutenberg™ works.

1.E.9. If you wish to charge a fee or distribute a Project Gutenberg™ electronic work or group of works on different terms than are set forth in this agreement, you must obtain permission in writing from the Project Gutenberg Literary Archive Foundation, the manager of the Project Gutenberg™ trademark. Contact the Foundation as set forth in Section 3 below.

1.F.

1.F.1. Project Gutenberg volunteers and employees expend considerable effort to identify, do copyright research on, transcribe and proofread works not protected by U.S. copyright law in creating the Project Gutenberg™ collection. Despite these efforts, Project Gutenberg™ electronic works, and the medium on which they may be stored, may contain “Defects,” such as, but not limited to, incomplete, inaccurate or corrupt data, transcription errors, a copyright or other intellectual property infringement, a defective or damaged disk or other medium, a computer virus, or computer codes that damage or cannot be read by your equipment.

1.F.2. LIMITED WARRANTY, DISCLAIMER OF DAMAGES - Except for the “Right of Replacement or Refund” described in paragraph 1.F.3, the Project Gutenberg Literary Archive Foundation, the owner of the Project Gutenberg™ trademark, and any other party distributing a Project Gutenberg™ electronic work under this agreement, disclaim all liability to you for damages, costs and

expenses, including legal fees. YOU AGREE THAT YOU HAVE NO REMEDIES FOR NEGLIGENCE, STRICT LIABILITY, BREACH OF WARRANTY OR BREACH OF CONTRACT EXCEPT THOSE PROVIDED IN PARAGRAPH 1.F.3. YOU AGREE THAT THE FOUNDATION, THE TRADEMARK OWNER, AND ANY DISTRIBUTOR UNDER THIS AGREEMENT WILL NOT BE LIABLE TO YOU FOR ACTUAL, DIRECT, INDIRECT, CONSEQUENTIAL, PUNITIVE OR INCIDENTAL DAMAGES EVEN IF YOU GIVE NOTICE OF THE POSSIBILITY OF SUCH DAMAGE.

1.F.3. LIMITED RIGHT OF REPLACEMENT OR REFUND - If you discover a defect in this electronic work within 90 days of receiving it, you can receive a refund of the money (if any) you paid for it by sending a written explanation to the person you received the work from. If you received the work on a physical medium, you must return the medium with your written explanation. The person or entity that provided you with the defective work may elect to provide a replacement copy in lieu of a refund. If you received the work electronically, the person or entity providing it to you may choose to give you a second opportunity to receive the work electronically in lieu of a refund. If the second copy is also defective, you may demand a refund in writing without further opportunities to fix the problem.

1.F.4. Except for the limited right of replacement or refund set forth in paragraph 1.F.3, this work is provided to you ‘AS-IS’, WITH NO OTHER WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PURPOSE.

1.F.5. Some states do not allow disclaimers of certain implied warranties or the exclusion or limitation of certain types of damages. If any disclaimer or limitation set forth in this agreement violates the law of the state applicable to this agreement, the agreement shall be interpreted to make the maximum disclaimer or limitation permitted by the applicable state law. The invalidity or unenforceability of any provision of this agreement shall not void the remaining provisions.

1.F.6. INDEMNITY - You agree to indemnify and hold the Foundation, the trademark owner, any agent or employee of the Foundation, anyone providing copies of Project Gutenberg™ electronic works in accordance with this agreement, and any volunteers associated with the production, promotion and distribution of Project Gutenberg™ electronic works, harmless from all liability, costs and expenses, including legal fees, that arise directly or indirectly from any of the following which you do or cause to occur: (a) distribution of this or any Project Gutenberg™ work, (b) alteration, modification, or additions or deletions to any Project Gutenberg™ work, and (c) any Defect you cause.

Section 2. Information about the Mission of Project Gutenberg™

Project Gutenberg™ is synonymous with the free distribution of electronic works in formats readable by the widest variety of computers including obsolete, old, middle-aged and new computers. It exists because of the efforts of hundreds of volunteers and donations from people in all walks of life.

Volunteers and financial support to provide volunteers with the assistance they need are critical to reaching Project Gutenberg™’s goals and ensuring that the Project Gutenberg™ collection will remain freely available for generations to come. In 2001, the Project Gutenberg Literary Archive Foundation was created to provide a secure and permanent future for Project Gutenberg™ and future generations. To learn more about the Project Gutenberg Literary Archive Foundation and how your efforts and donations can help, see Sections 3 and 4 and the Foundation information page at www.gutenberg.org.

Section 3. Information about the Project Gutenberg Literary Archive Foundation

The Project Gutenberg Literary Archive Foundation is a non-profit 501(c)(3) educational corporation organized under the laws of the state of Mississippi and granted tax exempt status by the Internal Revenue Service. The Foundation’s EIN or federal tax identification number is 64-6221541. Contributions to the Project Gutenberg Literary Archive Foundation are tax deductible to the full extent permitted by U.S. federal laws and your state’s laws.

The Foundation’s business office is located at 809 North 1500 West, Salt Lake City, UT 84116, (801) 596-1887. Email contact links and up to date contact information can be found at the Foundation’s website and official page at www.gutenberg.org/contact

Section 4. Information about Donations to the Project Gutenberg Literary Archive Foundation

Project Gutenberg™ depends upon and cannot survive without widespread public support and donations to carry out its mission of increasing the number of public domain and licensed works that can be freely distributed in machine-readable form accessible by the widest array of equipment including outdated equipment. Many small donations ($1 to $5,000) are particularly important to maintaining tax exempt status with the IRS.

The Foundation is committed to complying with the laws regulating charities and charitable donations in all 50 states of the United States. Compliance requirements are not uniform and it takes a considerable effort, much paperwork and many fees to meet and keep up with these requirements. We do not solicit donations in locations where we have not received written confirmation of compliance. To SEND DONATIONS or determine the status of compliance for any particular state visit www.gutenberg.org/donate.

While we cannot and do not solicit contributions from states where we have not met the solicitation requirements, we know of no

prohibition against accepting unsolicited donations from donors in such states who approach us with offers to donate.

International donations are gratefully accepted, but we cannot make any statements concerning tax treatment of donations received from outside the United States. U.S. laws alone swamp our small staff.

Please check the Project Gutenberg web pages for current donation methods and addresses. Donations are accepted in a number of other ways including checks, online payments and credit card donations. To donate, please visit: www.gutenberg.org/donate.

Section 5. General Information About Project Gutenberg™ electronic works

Professor Michael S. Hart was the originator of the Project Gutenberg™ concept of a library of electronic works that could be freely shared with anyone. For forty years, he produced and distributed Project Gutenberg™ eBooks with only a loose network of volunteer support.

Project Gutenberg™ eBooks are often created from several printed editions, all of which are confirmed as not protected by copyright in the U.S. unless a copyright notice is included. Thus, we do not necessarily keep eBooks in compliance with any particular paper edition.

Most people start at our website which has the main PG search facility: www.gutenberg.org.

This website includes information about Project Gutenberg™, including how to make donations to the Project Gutenberg Literary Archive Foundation, how to help produce our new eBooks, and how to subscribe to our email newsletter to hear about new eBooks.

Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.