100% found this document useful (1 vote)
657 views

Beginning Cloud Native Development with MicroProfile, Jakarta EE, and Kubernetes 1st Edition Tarun Telang pdf download

The document promotes the book 'Beginning Cloud Native Development with MicroProfile, Jakarta EE, and Kubernetes' by Tarun Telang, which focuses on developing cloud-native applications using Java technologies. It covers essential topics such as MicroProfile specifications, Jakarta EE, Docker, and Kubernetes, aimed at Java developers without prior knowledge of Kubernetes. The book also includes practical examples and best practices for building and deploying microservices-based applications.

Uploaded by

qorecdullin
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
657 views

Beginning Cloud Native Development with MicroProfile, Jakarta EE, and Kubernetes 1st Edition Tarun Telang pdf download

The document promotes the book 'Beginning Cloud Native Development with MicroProfile, Jakarta EE, and Kubernetes' by Tarun Telang, which focuses on developing cloud-native applications using Java technologies. It covers essential topics such as MicroProfile specifications, Jakarta EE, Docker, and Kubernetes, aimed at Java developers without prior knowledge of Kubernetes. The book also includes practical examples and best practices for building and deploying microservices-based applications.

Uploaded by

qorecdullin
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 71

Visit https://ebookmass.

com to download the full version and


browse more ebooks or textbooks

Beginning Cloud Native Development with


MicroProfile, Jakarta EE, and Kubernetes 1st
Edition Tarun Telang

_____ Press the link below to begin your download _____

https://ebookmass.com/product/beginning-cloud-native-
development-with-microprofile-jakarta-ee-and-kubernetes-1st-
edition-tarun-telang/

Access ebookmass.com now to download high-quality


ebooks or textbooks
We believe these products will be a great fit for you. Click
the link to download now, or visit ebookmass.com
to discover even more!

Beginning Cloud Native Development with MicroProfile,


Jakarta EE, and Kubernetes: Java DevOps for Building and
Deploying Microservices-based Applications 1st Edition
Tarun Telang
https://ebookmass.com/product/beginning-cloud-native-development-with-
microprofile-jakarta-ee-and-kubernetes-java-devops-for-building-and-
deploying-microservices-based-applications-1st-edition-tarun-telang/

Pro Jakarta EE 10: Open Source Enterprise Java-based


Cloud-native Applications Development Peter Späth

https://ebookmass.com/product/pro-jakarta-ee-10-open-source-
enterprise-java-based-cloud-native-applications-development-peter-
spath/

Beginning Helidon: Building Cloud-Native Microservices and


Applications 1st Edition Dmitry Kornilov

https://ebookmass.com/product/beginning-helidon-building-cloud-native-
microservices-and-applications-1st-edition-dmitry-kornilov-2/

Beginning Helidon: Building Cloud-Native Microservices and


Applications 1st Edition Dmitry Kornilov

https://ebookmass.com/product/beginning-helidon-building-cloud-native-
microservices-and-applications-1st-edition-dmitry-kornilov/
Software Development with Go: Cloud-Native Programming
using Golang with Linux and Docker 1st Edition Nanik
Tolaram
https://ebookmass.com/product/software-development-with-go-cloud-
native-programming-using-golang-with-linux-and-docker-1st-edition-
nanik-tolaram/

Practical Debugging at Scale: Cloud Native Debugging in


Kubernetes and Production 1st Edition Shai Almog

https://ebookmass.com/product/practical-debugging-at-scale-cloud-
native-debugging-in-kubernetes-and-production-1st-edition-shai-almog/

Beginning EJB 3: Java EE 7 Edition Jonathan Wetherbee

https://ebookmass.com/product/beginning-ejb-3-java-ee-7-edition-
jonathan-wetherbee/

Practical Spring Cloud Function: Developing Cloud-Native


Functions for Multi-Cloud and Hybrid-Cloud Environments
1st Edition Banu Parasuraman
https://ebookmass.com/product/practical-spring-cloud-function-
developing-cloud-native-functions-for-multi-cloud-and-hybrid-cloud-
environments-1st-edition-banu-parasuraman-2/

Practical Spring Cloud Function: Developing Cloud-Native


Functions for Multi-Cloud and Hybrid-Cloud Environments
1st Edition Banu Parasuraman
https://ebookmass.com/product/practical-spring-cloud-function-
developing-cloud-native-functions-for-multi-cloud-and-hybrid-cloud-
environments-1st-edition-banu-parasuraman/
Tarun Telang

Beginning Cloud Native Development


with MicroProfile, Jakarta EE, and
Kubernetes
Java DevOps for Building and Deploying
Microservices-based Applications
Tarun Telang
Hyderabad, India

ISBN 978-1-4842-8831-3 e-ISBN 978-1-4842-8832-0


https://doi.org/10.1007/978-1-4842-8832-0

© Tarun Telang 2023

This work is subject to copyright. All rights are solely and exclusively
licensed by the Publisher, whether the whole or part of the material is
concerned, specifically the rights of translation, reprinting, reuse of
illustrations, recitation, broadcasting, reproduction on microfilms or in
any other physical way, and transmission or information storage and
retrieval, electronic adaptation, computer software, or by similar or
dissimilar methodology now known or hereafter developed.

The use of general descriptive names, registered names, trademarks,


service marks, etc. in this publication does not imply, even in the
absence of a specific statement, that such names are exempt from the
relevant protective laws and regulations and therefore free for general
use.

The publisher, the authors, and the editors are safe to assume that the
advice and information in this book are believed to be true and accurate
at the date of publication. Neither the publisher nor the authors or the
editors give a warranty, expressed or implied, with respect to the
material contained herein or for any errors or omissions that may have
been made. The publisher remains neutral with regard to jurisdictional
claims in published maps and institutional affiliations.

This Apress imprint is published by the registered company APress


Media, LLC, part of Springer Nature.
The registered company address is: 1 New York Plaza, New York, NY
10004, U.S.A.
This book is dedicated to my grandparents, parents, wife Nikita, and son
Vihan. They have always been a source of inspiration and encouragement
to me. It’s also for all of the software and technology creators who work
hard to make our planet a better place to live.
—Tarun Telang
Introduction
Cloud-native applications are becoming increasingly popular due to
their many benefits, such as scalability, flexibility, and efficiency. Cloud-
native applications are designed to take advantage of the cloud
paradigm. It means that they are distributed, scalable, resilient, and
elastic. You can run them on public, private, or hybrid clouds. To build
cloud-native applications, developers must use the right tools and
technologies.
Enterprise Java (or Jakarta Enterprise Edition) is a popular platform
for cloud-native applications. It provides a set of standards and APIs
that help developers build enterprise-grade applications. Many
platform vendors, including Red Hat, IBM, and Oracle, support this
standard. It offers a number features that make it an ideal choice for
developing cloud-native applications.
The MicroProfile initiative was started in 2016 by Red Hat, IBM,
Tomitribe, and Payara. The group aims to improve the application
developer experience in a microservices environment by providing a
baseline platform definition that multiple runtimes can implement. The
group released the first version of the MicroProfile specification in June,
2016. The specification includes a set of APIs for application
developers, including RESTful web services , context and dependency
injection, and JSON processing.
MicroProfile is a set of specifications that define how developers
can use Jakarta EE to build microservices. It also provides a platform
that helps developers create cloud-native applications. MicroProfile is
aligning its specifications with the Jakarta EE platform. The goal of the
MicroProfile group is to create a set of standards that developers can
use to develop microservices on top of the Jakarta EE platform. The
Eclipse Foundation, the home of the Jakarta EE project, also manages
the creation of MicroProfile standards.
MicroProfile is a Jakarta EE Working Group. It was created in
response to the popularity of microservices. It also addresses the need
for a standard platform for developing microservices. It initially
consisted of a few Jakarta EE vendors (IBM, Red Hat, Payara, and
Tomitribe) and has grown to include more than 25 members, including
Oracle, Microsoft, Hazelcast, and more. The Eclipse Foundation governs
the MicroProfile initiative, and the MicroProfile specification is
developed through the Eclipse MicroProfile project. The project is open
to all individuals and organizations that want to contribute. The
MicroProfile specification is developed openly and transparently, and
all contributions are welcomed. The Eclipse MicroProfile project uses a
collaborative development process, and all interested parties are
encouraged to participate.
Docker is a software container platform that allows developers to
package an application with all its dependencies into a standardized
unit for software development. You can run Docker containers on any
platform, including public, private, and hybrid clouds. It makes it easy
to deploy applications on any platform, including cloud platforms.
Docker is a popular open-source container platform that you can use to
package and run microservices. It provides several advantages over
traditional virtualization technologies, including portability, ease of use,
and more.
Kubernetes is a tool for managing containerized applications. It
provides an open-source platform for deploying, managing, and scaling
applications. Kubernetes is based on the Linux kernel and can use
Docker containers to manage applications. It provides features such as
scaling, load balancing, and self-healing.
Kubernetes automates the deployment, scaling, and management of
containerized apps. It supports easy management and discovery of
your applications by grouping containers into logical units. Kubernetes
is built on decades of experience at Google running production
workloads at scale, as well as adopting the best-of-breed ideas and
practices from the community.
Kubernetes is portable and extensible, allowing it to run anywhere,
from your laptop to public clouds to data centers. The simplicity and
flexibility of Kubernetes make it an excellent choice for cloud-native
applications. In addition, it’s open-source software, allowing you to take
advantage of community innovations.
Kubernetes is production-ready, with robust features and
capabilities to orchestrate your containerized applications. Kubernetes
has been battle-tested at scale, running some of the largest sites in the
world.
In this book, you learn how to use MicroProfile and Jakarta EE
technologies to develop microservices, deploy them on
Kubernetes/Docker, and create cloud-native applications. The book also
covers best practices for developing cloud-native applications with
MicroProfile and Jakarta EE. It starts by looking at the different aspects
of cloud-native applications. You will then move on to setting up your
development environment and learning about the basics of Jakarta EE.
Next, the book explores the features of MicroProfile and you’ll learn
how to use them to build microservices. You will then learn about
Docker and Kubernetes and how to use them to deploy your
applications. Finally, you will put everything together and learn how to
build a complete cloud-native application.
Who This Book Is For
Welcome to Beginning Cloud Native Development with MicroProfile,
Jakarta EE, and Kubernetes.
This book is for Java developers who want to learn how to develop
cloud-native applications using MicroProfile and Jakarta EE. No prior
knowledge of Kubernetes or container orchestration is required.
In this book, you learn how to develop cloud-native applications
using MicroProfile and Jakarta EE and deploy them to Kubernetes. The
book covers topics such as writing RESTful web services, creating
microservices, configuring health checks, and more.
By the end of this book, you will be able to develop cloud-native
applications using MicroProfile and Jakarta EE and deploy them to
Kubernetes.
How This Book Is Structured
This book covers four main topics.
Cloud-native development introduces the concept of cloud-native
development and the twelve-factor app methodology. You learn
about the benefits of developing cloud-native applications and the
challenges you must consider when migrating existing applications
to the cloud.
MicroProfile specifications provides an overview of the
MicroProfile specifications and how they can be used to develop
microservices. You learn about the different types of annotations
available and how to use them to create RESTful web services .
Jakarta EE specifications introduces the Jakarta EE platform and its
various specifications. You learn about the differences between Java
EE and Jakarta EE and the new features available on the platform.
Kubernetes covers the basics of container orchestration with
Kubernetes. You learn about the different types of objects created in
a Kubernetes cluster, how to deploy applications to Kubernetes, and
how to scale applications using Kubernetes.

Conventions
Throughout the book, I use a consistent style for presenting Java code,
SQL, command-line text, and results. When pieces of code, SQL,
reserved words, or code fragments are presented in the text, they are
presented in fixed-width Courier font, such as this (working) example:

public class MyExample {


public static void main(String[] args){
System.out.println("Jakarta EE is
excellent!");
}
}

Downloading the Code


The code examples in this book are available at
github.com/apress/beginning-cloud-native-dev-
microprofile-jakarta-kubernetes.

Note The sources for this book may change over time, in order to
incorporate the most up-to-date features in Jakarta EE, MicroProfile,
and the Kubernetes platform. If you find any issues in the sources,
please submit them via the book’s GitHub repo and the code will be
adjusted accordingly.
Any source code or other supplementary material referenced by the
author in this book is available to readers on GitHub
(https://github.com/Apress). For more detailed information, please
visit http://www.apress.com/source-code.
Acknowledgments
I would like to thank my wife, Nikita, and son, Vihan, for their patience
and love throughout the process of writing this book. I am indebted to
all my mentors and friends who encouraged me to keep on growing
during every phase of my professional career.
I’d like to thank my parents for pushing me in the right direction
with technology and always supporting me every step of the way, even
when I decided to do something completely different than they
expected. It’s also important to note that without them, I probably
wouldn’t have become a developer and had such a great career. Lastly,
thanks again go out to my wife (and soulmate), Nikita. It’s an incredible
feeling to be with someone who keeps you motivated and challenges
you, not only professionally but personally.
Thank you for always being there for me!
I’d like to send a special thanks to Pramit Das and Massimo Nardone
(technical reviewers), for their impeccable work on this book. I also
greatly appreciate Steve Anglin, Mark Powers, and everyone at Apress
Media (apress.com) for their support in getting this book published.
Last, but not least, I would like to thank you, the reader, for taking
the time to read this book. I hope that it will help you in your journey of
becoming a better Jakarta EE developer.
Table of Contents
Chapter 1:​Introduction to Cloud Computing
Introduction to Cloud Computing
Examples of Cloud Computing
Benefits of Cloud Computing
Essential Characteristics of Cloud Computing
Types of Cloud Computing Based on Deployment Models
Public Cloud
Community Cloud
Private Cloud
Hybrid Cloud
Service Models of Cloud Computing
Software as a Service (SaaS)
Platform as a Service (PaaS)
Infrastructure as a Service (IaaS)
The Role of Java in Cloud Computing
The Evolution of Cloud Computing
Summary
Chapter 2:​Cloud-Native Application Development
What Is Cloud-Native?​
Characteristics of Cloud-Native Applications
Examples of Cloud-Native Applications
Benefits of Cloud-Native Applications
Drawbacks of Using Cloud-Native Applications
Cloud-Native Applications vs.​Traditional Applications
Cloud-Native Application Development
Managed Services for Java-Based Applications
Examples of Cloud-Native Application Development
Cloud-Native Application Development Is the Future
Phases of Cloud-Native Application Development
Summary
Chapter 3:​Setting Up Your Development Environment
Prerequisites
Hardware Requirements
Installing Java Development Kit (JDK)
Using Maven
Installing Maven
Git
Installing Git
Creating a GitHub Account
Creating a GitHub Repository
Pushing Code to a GitHub Repository
Using Docker
Benefits of Using Docker
Installing Docker
Docker Hub
Using Kubernetes
Installing Kubernetes
Configuring Docker for Kubernetes
Creating a Kubernetes Cluster
Using Zipkin
Installing Zipkin
Integrated Development Environments (IDE)
Summary
Chapter 4:​Building RESTful Web Services
REST:​An Architectural Style for Building Web Services
Introduction to Open Liberty Runtime
Key Features of the Open Liberty Application Server
Downloading and Installing Open Liberty
Starting the Open Liberty Server
Printing a List of Features on the Open Liberty Server
Creating a Server Instance
Stopping the Open Liberty Server
Configuring the Server
Creating a RESTful Web Service in Open Liberty
Creating a RESTful API
Summary
Chapter 5:​Microservices Architecture
Vertical Scaling
Horizontal Scaling
Vertical vs.​Horizontal Scaling
History of Service-Based Architecture
Types of Service-Based Architectures
Service-Oriented Architecture (SOA)
What Is a Web Service?​
What Is SOAP?​
What Is REST?​
REST vs.​SOAP
The Monolithic Architecture
Evolution of the Microservices Architecture
Benefits of Microservices Architectures
Drawbacks of Microservices Architectures
Design Considerations
Using Microservices in Cloud-Native Applications
Cloud-Native Twelve-Factor Applications
What Is a Virtual Machine?​
What Are Containers?​
What Are Container-Based Applications?​
What Are Serverless Applications?​
Where Is Serverless Computing Used?​
Benefits of Serverless Computing
Drawbacks of Serverless Computing
Popular Serverless Platforms
Main Components of a Serverless Computing Platform
Serverless Applications vs.​Containers
Microservice Deployment Patterns
Key Considerations
Microservices Deployment Strategies and Patterns
Microservices Management
Summary
Chapter 6:​The Eclipse MicroProfile Framework
What Is the Eclipse MicroProfile Framework?​
Layers of Functionality in MicroProfile
Popular Implementations of the Eclipse MicroProfile
Framework
MicroProfile Config
The MicroProfile Health Check Specification
The MicroProfile Fault Tolerance Component
Key Features of the Fault Tolerance Component
Fault Tolerance API
Summary
Chapter 7:​MicroProfile Framework – Part 2
The MicroProfile Metrics Specification
Types of Metrics
Metrics Components
Metrics Annotations
Maven Dependency
Tracking Response Time Using @Timed
Tracking the Number of Invocations
Tracking Memory Usage
MetricRegistry
Creating Custom Metrics
Using Open Tracing
Distributed Tracing
How Does It Work?​
Using the Jakarta RESTful Web Service
Using the MicroProfile OpenAPI Specification
OpenAPI
Capabilities of the MicroProfile OpenAPI Specification
Generating OpenAPI Documents
Using the MicroProfile OpenAPI in Your Project
MicroProfile OpenAPI Annotations
Summary
Chapter 8:​MicroProfile JSON Web Tokens and Jakarta Security
Security Best Practices for Microservices
What Is a JSON Web Token (JWT)?​
Use Cases for JSON Web Tokens
Authentication
Authorization
Session Information
Claims-Based Identity
Information Exchange
Federation
Creating and Signing a JWT
Testing the Application
Verifying and Validating a JWT
Using JWT in a Microservice Environment
Securing a RESTful Application
Securing a REST Resource
The @RolesAllowed Annotation
The @Claim Annotation
The @HeaderParam Annotation
Configuring a JWK Set or PEM-Encoded Public Key
Public Key Cryptography Standards #8 in PEM Format
JSON Web Key (JWK)
JSON Web Key Set (JWKS)
The Jakarta EE Security Specification
Securing a Servlet Using Jakarta Security
The MicroProfile REST Client
The @RegisterClient Annotation
Configuring Your REST Client
REST Client Interface
Documenting RESTful APIs Using MicroProfile OpenAPI
What Is the OpenAPI Specification?​
What Is MicroProfile OpenAPI?​
Summary
Chapter 9:​Containerizing Microservices Using Kubernetes
What Are Containers?​
Why Use Containers?​
What Is Container Orchestration?​
The Benefits of Using Container Orchestration
Understanding Kubernetes Terminology
The Key Features of Kubernetes
Using Kubernetes
Using Docker Containers
Running a MicroProfile Application in Docker
Pushing the Docker Image to Docker Hub
Scaling Your Deployment
Summary
Appendix A:​Introduction to Maven
Appendix B:​Creating an Open Liberty Project Using Maven
Appendix C:​Installing Open Liberty Tools
Index
About the Author
Tarun Telang
is a hands-on technologist with extensive
experience in the design and
implementation of multitiered, highly
scalable software applications. He has
been part of several well-known
companies, including Microsoft, Oracle,
Polycom, and SAP. He has over 17 years
of experience in architecting and
developing business applications.
He began his career as an enterprise
Java developer at SAP, where he
developed distributed application
software for big firms. He got his start
with enterprise session beans and
message-driven beans, as well as instrumenting enterprise
applications’ configuration and management using the Java
Management Extensions (JMX) technology.
He quickly mastered various enterprise technologies, including the
Enterprise Beans, Java Management Extensions, Servlets, and Server
Pages technologies, and in his first year as a developer, he became a Sun
Certified Programmer for the Java Platform, Standard Edition 6, and an
SAP Certified Development Consultant for the SAP NetWeaver Java Web
Application Server (which was a Java EE 5-compliant application
server).
He also gained expertise in XML technologies like XSLT and XSD. He
developed several solutions using session beans and message-driven
beans to handle message-oriented communications across numerous
systems. In 2007, Tarun was named an SAP Mentor and Community
Influencer for his articles and blog posts on emerging technologies and
for promoting innovative solutions in the SAP Developer Community.
He frequently writes articles on Java and related technologies. Tarun
has also authored multiple online courses, including a best-selling
course on the YAML data serialization language.
He has presented technical lectures at several developer
conferences, including SAP TechEd and the Great Indian Developer
Summit. He has been presenting at conferences for more than 15 years
and actively publishes technical papers and blogs to assist everyone in
grasping the fundamentals of software technology. Tarun developed
cloud-based video conferencing applications using a microservices
architecture with the Spring framework and has experience working
with Persistence APIs and the Hazelcast framework for building REST-
based services.
He also developed many end-to-end cloud-based solutions using
various architectural patterns, including microservices and service-
oriented architectures. Tarun has gained expertise in web, mobile, and
cloud technologies. He is also knowledgeable in applied agile
methodologies, including user-centric and mobile-first design for
managing projects with cross-functional teams located in multiple
geographies. Tarun is the co-author of Java EE to Jakarta EE 10 Recipes:
A Problem-Solution Approach for Enterprise Java (Apress, 2022).
Having previously worked in Canada and Germany, Tarun currently
resides in Hyderabad, India with his wife and son. You can follow him
on LinkedIn ( www.linkedin.com/in/taruntelang/ ), Facebook
( www.facebook.com/tarun.telang ), and Twitter
(@taruntelang). His blog at https://blogs.taruntelang.me
is an excellent resource for all things related to software technology!
About the Technical Reviewers
Massimo Nardone
has more than 25 years of experience in
security, web/mobile development,
cloud, and IT architecture. His true IT
passions are security and Android. He
has been programming and teaching
others how to program with Android,
Perl, PHP, Java, VB, Python, C/C++, and
MySQL for more than 20 years. He holds
a Master of Science degree in computing
science from the University of Salerno,
Italy.
He has worked as a CISO, CSO,
security executive, IoT executive, project
manager, software engineer, research
engineer, chief security architect,
PCI/SCADA auditor, and senior lead IT security/cloud/SCADA architect
for many years. His technical skills include security, Android, cloud,
Java, MySQL, Drupal, Cobol, Perl, web and mobile development,
MongoDB, D3, Joomla, Couchbase, C/C++, WebGL, Python, Pro Rails,
Django CMS, Jekyll, Scratch, and more.
He was a visiting lecturer and supervisor for exercises at the
Networking Laboratory of the Helsinki University of Technology (Aalto
University). He also holds four international patents (in the PKI, SIP,
SAML, and Proxy areas). He is currently working for Cognizant as head
of cybersecurity and CISO to help clients in areas of information and
cybersecurity, including strategy, planning, processes, policies,
procedures, governance, awareness, and so forth. In June, 2017, he
became a permanent member of the ISACA Finland Board.
Massimo has reviewed more than 45 IT books for different
publishing companies and is the co-author of Pro Spring Security:
Securing Spring Framework 5 and Boot 2-based Java Applications
(Apress, 2019), Beginning EJB in Java EE 8 (Apress, 2018), Pro JPA 2 in
Java EE 8 (Apress, 2018), and Pro Android Games (Apress, 2015)
Pramit Das
has more than 12 years of experience in
software design and development across
multiple platforms using various
technology stacks. He is extremely
passionate about programming and
exploring new and upcoming
technologies. He has extensive hands-on
experience with programming languages
like C/C++, Java, Scala, JavaScript, and
Python, along with their respective tools,
libraries, and frameworks, including
Spring, Django, NodeJs, and Spark. He
also has excellent knowledge of backend
storage solutions from Oracle, MySQL,
MongoDB, and Cassandra, as well as
other cloud-based managed services.
Academically, Pramit received his Bachelor’s of Technology from
NIT, Rourkela in Computer Science & Engineering, graduating in 2009.
He has experience in product- and service-based industries and is
currently working for the cloud giant Salesforce as a full-time engineer.
© The Author(s), under exclusive license to APress Media, LLC, part of Springer
Nature 2023
T. Telang, Beginning Cloud Native Development with MicroProfile, Jakarta EE, and
Kubernetes
https://doi.org/10.1007/978-1-4842-8832-0_1

1. Introduction to Cloud Computing


Tarun Telang1

(1) Hyderabad, India

Cloud computing is the latest buzzword in the technology industry, and


for good reason. It has the potential to revolutionize the way people use
computers. This chapter introduces cloud computing and explains what
it is. You will also look at some examples of cloud computing and learn
about the benefits of using this new technology. Finally, you will explore
the different types of cloud computing and see how they have evolved
over time.

Introduction to Cloud Computing


Cloud computing is a type of computing where resources, such as
applications and data, are stored on remote servers and accessed over
the Internet. Instead of having a program installed on your computer,
you can access or keep programs on a remote server. As a result, you
can access your data from any device with an Internet connection,
whether it’s a desktop computer, laptop, tablet, or smartphone.
Cloud computing has the following key benefits . It enables
ubiquitous, convenient, on-demand network access to a shared pool of
configurable computing resources (e.g., networks, servers, storage,
applications, and services) that can be rapidly provisioned and released
with minimal management effort or service provider interaction. Figure
1-1 illustrates how end-users access cloud computing .
Figure 1-1 Cloud computing
Cloud computing also has environmental benefits because it
reduces the need for energy-intensive hardware.

Examples of Cloud Computing


There are many different examples of cloud computing, but some of the
most common ones include :
Email: Gmail, Yahoo Mail, and Outlook.com are all examples of email
services that are based in the cloud. This means that you can check
your email on your smartphone, tablet, or desktop computer,
regardless of where you are in the world. The ability to access your
email from any device with an Internet connection is an example of
cloud computing. This is an excellent feature if you need to check
your email while you’re on vacation or traveling for work. Further, if
you accidentally delete an email, it can be quickly recovered from the
cloud.
Cloud storage: Dropbox, Google Drive, and iCloud are all examples of
cloud storage services . This means that instead of storing files on
your computer, you can store them online. This gives you the ability
to access those files from any device with an Internet connection.
Web-based productivity software: Google Docs, Sheets, and Slides
are all examples of productivity software that is based in the cloud.
This means that instead of having a program installed on your
computer, you can create and edit documents, spreadsheets, and
presentations from any device with an Internet connection. Cloud
storage is better than having documents on your computer because
you can access them from any device that has an Internet connection.
This is helpful if you need to work on a document from different
places or if you accidentally delete one. Additionally, cloud storage
makes it easier for people to collaborate on projects because they can
all work on the document simultaneously without having to worry
about emailing each other versions of the document.
Multimedia streaming: Netflix, Vimeo, and YouTube are all
examples of video streaming services, whereas Spotify, Apple Music,
and Pandora are all examples of music streaming services that are
based in the cloud. This means that instead of downloading media
(video or song) to your computer, you can watch it from any device
with an Internet connection . Media streaming is popular because it
doesn’t take up any space on your device, and you can watch videos
without waiting for them to download. Figure 1-2 shows different
types of cloud computing applications. These are just a few examples
of cloud computing. As you can see, cloud computing can be very
helpful in various ways.
Figure 1-2 Cloud computing application types

Benefits of Cloud Computing


In recent years, the use of cloud computing has grown exponentially.
This is because cloud computing can provide several benefits, such as
the following:
Cost savings: Cloud computing can save you money on hardware and
software costs. For example, you can use a cloud-based storage
service instead of buying a physical hard drive. Cloud-based storage
can be more cost-effective than buying a physical hard drive. This is
because you don’t have to buy expensive hardware, like a computer.
You also save money on software costs by using a cloud-based
application instead of buying a software program for your local
machine. This is a significant benefit of cloud-based solutions—you
don’t have to worry about capital expenditure for hardware and
software, regular patching, or data center upkeep. The provider takes
care of all of these tasks. This can save you time and money, and it
makes it easy to get started with cloud computing.
Flexibility and scalability: Cloud computing gives you the ability to
scale your resources up or down, depending on your needs. For
example, if you have a sudden increase in traffic to your website, you
can quickly add more servers to handle the load . On the other hand,
if you have decreased traffic, you can remove servers to save on costs.
This can also save you money on your computing costs.
Reliability: Cloud-based services are more reliable than on-premises
solutions. This is because cloud providers have the resources and
expertise to ensure that their services are always up and running.
Cloud services are distributed across multiple servers, so there is no
single point of failure. The data is replicated across multiple servers
across multiple availability zones, so if one server goes down, the
others can pick up the slack. They have a disaster recovery plan in
place, which helps ensure that your data is always safe and accessible
.
Productivity: Cloud computing can improve your team’s
productivity by giving it the ability to access information and
applications from anywhere in the world.

Essential Characteristics of Cloud Computing


The cloud computing model comprises five essential characteristics, as
shown in Figure 1-3. They are on-demand self-service, broad network
access, resource pooling, rapid elasticity, and measured service. Let’s
look at each of these characteristics in detail.
Figure 1-3 Essential characteristics of cloud computing

On-Demand Self-Service
Users can access the cloud services without interacting with the service
provider. They can simply sign up for a service through a web-based
interface and start using it immediately. For example, users can sign up
for cloud services and start using them to store their data without
needing to contact customer support. This characteristic enables users
to get started with cloud services quickly and easily without needing
complex configuration.

Broad Network Access


Cloud services can be accessed over a network using any standard
devices, such as laptops, smartphones, and tablets. For example, users
can access their cloud storage accounts from anywhere in the world
using their laptops or smartphones. This characteristic makes cloud
services very convenient and accessible.

Resource Pooling
The cloud provider pools the resources like storage, processing,
memory, and network bandwidth from multiple customers and makes
them available on demand. Multi-tenancy is a crucial feature of cloud
computing that enables providers to share resources among multiple
customers. In this model, each customer is given a dedicated portion of
the resources and is isolated from other customers. This helps
providers manage and monitor the resources more effectively and
provides customers with added security and privacy. This characteristic
also enables efficient utilization of resources and reduces the cost of
ownership.

Rapid Elasticity
Cloud services can be quickly scaled up or down to meet the changing
needs of the users. In some cases, consumers may automatically be able
to scale their usage up or down, depending on the cloud provider’s
policies . For example, a social networking site may need to quickly add
more servers during a significant event, such as an election or a natural
disaster. In other cases, users may need to scale down their usage to
save costs. This characteristic enables cloud providers to allocate
resources dynamically with the flexibility to increase or decrease their
usage as required.

Measured Service
Cloud providers offer metered services that are charged according to
their actual usage. In addition, cloud systems can automatically control
and optimize resources by leveraging a pattern in metering. For
example, a cloud storage service may automatically move data to
cheaper storage tiers when it is not accessed for a specific period. This
characteristic provides users with greater control over their usage and
costs.

Types of Cloud Computing Based on Deployment


Models
There are four main types of cloud computing: public, community,
private, and hybrid. Figure 1-4 shows each of these different types of
cloud computing based on deployment models.

Figure 1-4 Types of cloud computing based on deployment models


The following sections discuss each type of cloud computing in
detail.

Public Cloud
A public cloud is a type of cloud computing that delivers hosted
services over the Internet. Public clouds are owned and operated by
third-party companies that provide their resources—such as servers,
storage, and applications—to customers on demand. The most common
examples of public clouds are Gmail and Dropbox. These services allow
users to access their data and applications from any device with an
Internet connection.

Benefits of a Public Cloud


The main advantage of using a public cloud is that it’s highly scalable,
and you only pay for the resources you use. For example, you can buy
more storage space if you need to store more data in Gmail. Public
clouds are also convenient because they can be accessed from
anywhere worldwide.
Drawbacks of a Public Cloud
The main disadvantage of using a public cloud is that you’re relying on
the cloud provider’s security measures . For example, if Dropbox were
to experience a data breach, your data would be at risk. Additionally,
public clouds can be less reliable than private clouds because they are
subject to outages beyond the cloud provider’s control.

Community Cloud
A community cloud is a computing model that delivers shared
applications and data to a community of users with common
requirements or objectives. It promotes collaboration, flexibility, and
standardization within the community while providing users access to
a personalized, self-service environment. The cloud infrastructure is
provisioned for exclusive use by a specific community of consumers
from organizations with shared concerns (e.g., mission, security
requirements, policy, and compliance considerations).
The community cloud model can be used to support a variety of
communities, including those that are:
– Technical: Developers, engineers, or other technically-focused users
who share joint development or operational objectives.
– Business-based: Employees in the same company or organization
who need to collaborate on projects or access shared data.
– Geographic: People who live in the same region or city and want to
connect online.
– Interest-based: Users with a common interest or hobby who want to
connect and share information.
Community clouds are often established by organizations or users
who come together to pool resources and create a shared
infrastructure. This infrastructure can be used to host applications,
store data, or provide other services to members of the community. In
many cases, community clouds are managed by a third-party provider
who is responsible for maintaining the underlying infrastructure.

Benefits of a Community Cloud


A community cloud can offer many benefits to users, including:
Reduced costs: By sharing resources and pooling expenses , users
can save money on computing costs.
Improved collaboration: A community cloud can make it easier for
users to collaborate on projects or access shared data.
Enhanced security: A community cloud can provide users with
improved security and privacy protection.
improved performance: By sharing resources, a community cloud
can improve the performance of applications and services for users.
Generally, a community cloud shares infrastructure between several
organizations from a specific group or sector with similar concerns
(security, compliance, jurisdiction, etc.), who have decided to cooperate
to optimize their resource utilization and reduce costs. Typically, each
organization uses its portion of the community cloud infrastructure and
pays according to its actual use.

Limitations of a Community Cloud


A community cloud can be a powerful tool for organizations that need
to share data or collaborate on projects. Still, it is essential to consider
the potential risks and benefits before implementing this solution. In
some cases, a community cloud may not be the best option for an
organization, mainly if there are concerns about security or privacy.
Organizations should also consider the following factors when
deciding whether to implement a community cloud:
Does my organization have the necessary resources to manage a
community cloud?
Are there any security or privacy concerns that need to be
considered?
What are the costs associated with implementing a community
cloud?
What are the benefits of using a community cloud?
Are there any potential risks associated with using a community
cloud?
A community cloud can be a great way to improve collaboration and
reduce costs, but it’s essential to consider the potential risks and
benefits before implementing this solution.
Private Cloud
The private cloud is a type of cloud computing that delivers similar
advantages to the public cloud, including scalability and self-service,
but through a proprietary architecture.
A private cloud is built on a private network and offers more
security and control than a public cloud. When an organization opts for
private cloud deployment, it can keep its data and applications in-house
or outsource it to a third-party provider.
Private clouds are owned and operated by a single organization.
This means that only members of that organization can access the
service.

Benefits of a Private Cloud


There are several benefits of using a private cloud, including :
Increased security and control: Private clouds offer increased
security and control over public clouds deployed on a private
network.
Improved performance: Private clouds can offer improved
performance, as they are not shared with other organizations.
Reduced costs: Private clouds can be more cost-effective than public
clouds, especially for organizations with the necessary infrastructure.

Disadvantages of a Private Cloud


Despite these benefits, there are also some challenges associated with
private clouds.
Private clouds can be more complex to deploy and manage than
public clouds. Additionally, private clouds may require a larger
upfront investment .
Organizations should carefully consider their needs before deciding
whether a private cloud is the correct solution.
Private clouds are not suitable for everyone, but they can be an
excellent option for organizations that require increased security and
control or improved performance. Private clouds are often used by
large organizations, such as banks and government agencies.
Hybrid Cloud
A hybrid cloud combines an on-premises infrastructure—or a private
cloud—with a public cloud. This combination can help organizations
access data and applications more easily and securely while
maintaining control over sensitive data. Hybrid clouds are often used
by organizations that need to keep specific data confidential. One
example of a hybrid cloud is an organization that stores some data and
applications on a private cloud and other data on a public cloud. This
combination can help organizations access data and applications more
easily and securely while maintaining stricter control over sensitive
data.

Benefits of a Hybrid Cloud


There are several benefits to using a hybrid cloud, including:
Increased flexibility: Organizations can more easily scale their
resources up or down as needed with a hybrid cloud. This can be
helpful during times of increased demand, such as during a product
launch or holiday shopping season.
Improved security: By keeping sensitive data on a private cloud,
organizations can better protect it from potential threats .
Reduced costs: Organizations can save money by using a hybrid
cloud, as they can take advantage of the lower costs associated with
public clouds while still maintaining control over their data.

Drawbacks of a Hybrid Cloud


There are also some potential drawbacks to using a hybrid cloud,
including:
Complicated management: Managing a private and public cloud
can be complex. Organizations need staff with the knowledge and
expertise to manage both types of environments.
Increased costs: While hybrid clouds can save organizations money,
they can also cost more than a private or public cloud alone. This is
because organizations need to maintain and manage two separate
environments .
Potential security risks: Although hybrid clouds can offer improved
security, there is still the potential for data breaches. This is because
data is stored in both public and private environment, increasing the
chances that unauthorized individuals could access it.
A hybrid cloud provides many benefits for organizations, including
increased flexibility, improved security, and reduced costs. However,
there are also potential drawbacks, such as complicated management
and increased costs. Overall, a hybrid cloud is a good option for
organizations that need to maintain control over their data while taking
advantage of the lower costs associated with public clouds.

Service Models of Cloud Computing


As you have now learned about the essential characteristics of cloud
computing, this section covers the service models of cloud computing .
These service models are different modes in which cloud services can
be delivered. Figure 1-5 shows the three most common types of cloud
services, which are Infrastructure as a Service (IaaS), Platform as a
Service (PaaS), and Software as a Service (SaaS).
Figure 1-5 Service models of cloud computing
The following sections look at each of these service models in detail.

Software as a Service (SaaS)


Software as a Service (SaaS) is a type of cloud computing that delivers
software applications over the Internet. SaaS is a way for businesses to
save money on IT infrastructure and reduce the complexity of
managing software applications.
With SaaS, businesses can access and use software applications
hosted in the cloud. This means that businesses don’t have to install or
manage the infrastructure required to run the software. SaaS
applications are typically accessed via a web browser or a mobile app.
The capability provided to the consumer is to use the provider’s
applications running on a cloud infrastructure. The applications are
accessible from various client devices through either a thin client
interface, such as a web browser (e.g., web-based email), or a program
interface. The consumer does not manage or control the underlying
cloud infrastructure, including network, servers, operating systems,
storage, or even individual application capabilities, with the possible
exception of limited user-specific application configuration settings.

Benefits
There are many benefits of using SaaS, including:
Reduced costs: With SaaS, businesses only pay for the software they
use on a subscription basis. There is no need to invest in hardware or
IT infrastructure.
Increased flexibility: SaaS applications can be accessed from any
device with an Internet connection. This makes it easy for businesses
to scale their usage up or down as needed.
Improved security: SaaS providers typically have strong security
measures in place to protect data.

Disadvantages
While SaaS can offer many benefits , there are also some issues to be
aware of, including:
Vendor lock-in: Once a business uses a SaaS application, it can be
challenging to switch to another provider. This is because data is
often stored in the cloud, and switching providers can be complex
and expensive.
Limited customization: SaaS applications are typically not as
customizable as on-premises software. This can make it challenging
to meet the specific needs of a business.
Internet dependency: SaaS applications require an Internet
connection to work. This can be an issue for businesses with poor
Internet connectivity.
Despite these issues, SaaS is a popular option for businesses of all
sizes. It can be a cost-effective and flexible way to improve business
operations.
How It Works
To understand how SaaS works, it is helpful to know a little about the
architecture of SaaS applications. SaaS applications are typically built
using a multi-tier architecture . This means that the application is
divided into multiple parts:
The frontend: This is the part of the application that users interact
with.
The backend: This is the part of the application that stores data and
handles the logic.
The middleware: This is the part of the application that connects
the frontend and backend. It is typically built using a web application
framework.
SaaS applications are hosted in the cloud, which means that they are
stored on a network of servers. When users want to use the application,
they send a request to the server. The server then sends the frontend
code to the user’s device. The user’s device then runs the code and
displays the frontend of the application. When users interact with the
application, their interactions are sent to the backend. The backend
then processes the request and sends a response back to the user’s
device.

Platform as a Service (PaaS)


PaaS is a cloud computing service that provides users with a platform
for developing, testing, and deploying applications in the cloud. PaaS
services can be delivered in various ways, including through a web-
based interface, an API, or a command-line interface.
PaaS is an excellent solution for developers who want to focus on
building applications without having to worry about managing
infrastructure. PaaS providers take care of all the underlying
infrastructure so that developers can concentrate on their code. In
addition, PaaS services are often scalable and provide high availability,
making them ideal for mission-critical applications.
The developers don’t manage or control the underlying cloud
infrastructure, including networks, servers, operating systems, or
storage, but have control over the deployed applications and possibly
over the application hosting environment configurations.

Benefits of PaaS
Consider these advantages offered by PaaS :
Reduced time to market for new applications: Since PaaS takes
care of all the underlying infrastructure, developers can focus on
building their applications, leading to a faster market lead time.
Cost savings: PaaS services are often more cost-effective than
traditional application development and deployment models since
you only pay for what you use.
Increased developer productivity: PaaS services can increase
developer productivity by providing them with everything they need
to develop and deploy applications in the cloud.
Improved application quality: PaaS services can help improve the
quality of your applications by providing access to the latest tools
and technologies.
Increased agility and flexibility: PaaS services can provide you
with the agility and flexibility you need to respond to changing
market conditions quickly.
PaaS services have recently become a popular solution for
organizations of all sizes who want to take advantage of the benefits of
cloud computing. Whether you’re looking to reduce costs, increase
developer productivity, or improve application quality, PaaS can help
you achieve your goals.

Limitations of PaaS
When choosing a PaaS provider, it’s important to consider your specific
needs and requirements. Make sure to carefully read the provider’s
terms of service to ensure that your use case is supported. In addition,
be aware of the following potential limitations of PaaS :
Vendor lock-in: Once you’ve developed your application on a
specific PaaS platform, it can be difficult and costly to migrate to
another platform. If your PaaS provider goes out of business or raises
prices significantly, this can be a problem.
Lack of control: Since you don’t have control over the underlying
infrastructure, you may be limited in how you can customize and
configure your applications.
Security risks associated with shared infrastructure: Since PaaS
services share infrastructure with other customers, there is a risk
that your data could be compromised.
Limited choice of tools and technologies: Some PaaS providers
only offer a limited selection of tools and technologies, which may
not be suitable for your needs.

Infrastructure as a Service (IaaS)


IaaS refers to the provision of computing infrastructure—typically
physical or virtual machines —and associated services usually
delivered over the Internet. IaaS providers offer customers a pay-as-
you-go model for using, managing, and scaling these resources.
IaaS provides customers with on-demand access to a pool of
computing, storage, and networking resources. These resources can be
rapidly provisioned and released with minimal management effort or
service provider interaction.
IaaS enables businesses to quickly scale their computing
infrastructure up or down, as needed. This flexibility is one of the key
benefits of IaaS.
IaaS providers offer a variety of services , including:
Compute (virtual and bare-metal servers)
Storage (object, block, and file storage)
Networking (load balancing, VPN, and DNS)
Monitoring and management (logging, performance monitoring, and
security monitoring)
Security (firewalls, intrusion detection/prevention, and compliance)

Benefits of IaaS
Some of the other benefits of IaaS include:
Reduced capital expenditure: Customers only pay for the resources
they use, when they use them. There is no need to make a large
upfront investment in hardware and software.
Flexibility and scalability: Resources can be quickly scaled up or
down to meet changing needs.
Reduced operational expenditure: IaaS customers don’t have to
worry about managing and maintaining their infrastructure. This is
the responsibility of the service provider.
Pay per use: Customers only pay for the resources they use when
they use them.

Limitations of IaaS
IaaS is not without its limitations . These include:
Limited control: Customers do not have direct control over the
physical infrastructure.
Security concerns: Customers are responsible for the security of
their data and applications .
Vendor lock-in: Customers may be locked into a particular vendor’s
platform, making it difficult to switch to a different vendor in the
future.

The Role of Java in Cloud Computing


Java plays a very important role in cloud computing . There are several
reasons why Java is a good choice for developing cloud-based
applications.
1. Java is a very stable language: It has been around for over 25
years and is used by some of the biggest companies in the world,
such as Google, Amazon, and IBM. This means that there is a large
community of developers who are familiar with the language and
can provide support.

2. Java is very scalable: Java can be used to create programs for large
businesses. Many people know how to use it and can help you if you
have any problems. This means that it can handle large amounts of
data and traffic. Cloud-based applications often need to be able to
scale quickly and easily, and Java is built for this.
3. Java is secure: Security is very important for cloud-based
applications. Java has several security features built into the
language, which makes it more difficult for hackers to exploit. For
example, it has a robust security model that can be used to control
access to data and resources.

4. Java is efficient: Cloud-based applications need to be able to run


quickly and efficiently, and Java is designed for this. The Java Virtual
Machine (JVM) is very efficient, and Java code is compiled into
bytecode, which is also very efficient.

5. Java is well supported: There are many tools and libraries


available for Java developers, which makes it easier to develop
cloud-based applications .

Note Java is one of the most popular programming languages in


the world, and it has become a key part of cloud computing. Java’s
popularity is due in part to its platform independence. Java can run
on any device or operating system, which makes it a perfect choice
for cloud-based applications.

Some of the tools and libraries that can be used to build cloud
applications with Java include:
Jakarta EE is a standards-based platform for developing cloud-
friendly applications. It provides a comprehensive set of APIs and
features that make it easy to develop cloud-based applications.
Microprofile is a lightweight specification that provides a set of APIs
and features for developing microservices. It includes features such
as health checking, configuration, and security.
As per the TIOBE Index ( https://www.tiobe.com/tiobe-
index/ ), Java is currently the third most popular language after
Python and C. It has been in the top three since 2002 and shows no
signs of falling anytime soon. This is due to its large and loyal user base,
as well as the many features that make it ideal for developing cloud-
based applications.
Other documents randomly have
different content
armature bearing special lubrication, 145
commutator cleaning, 143
cut‐out relay, 147
description, 142
generator installation, 147
generator removal, 145
Generator removal and installation, 145, 147

Horn, 190

Ignition system
circuit breaker and timer assembly installation, 133
recommended recheck of ignition timing, 135
removal, 133
circuit breaker points
adjustable contact point installation, 131
adjustable contact point removal, 131
adjustment, 131
breaker lever installation, 131
breaker lever removal, 130
coil to timer wire
installation, 138
removal, 138
condenser
installation, 133
removal, 131
description, 129
spark coil
installation, 140
removal, 139
spark control adjustment, 139
spark plugs
cleaning, 129
point adjustment, 129
replacement, 129
type, 129
Installation procedure
air cleaner, 126
ammunition box carrier, 169
battery, 185
battery box, 173
carburetor, 118
circuit breaker and timer assembly, 133
circuit breaker lever, 131
circuit breaker points, 131
clutch release bearing, 95
coil to timer wire, 138
condenser, 133
control wire housings, 166
engine, 82
engine head gasket, 74
exhaust pipe, 127
foot starter, 98
fork assembly, 158
front wheel, 196
fuel pipe, 121
fuel strainer assembly, 120
fuel tank, 175
generator, 147
handle bar assembly, 163
ignition and light switch, 188
instrument panel cover, 191
jiffy stand, 177
luggage carrier, 170
mudguards, 171
muffler assembly, 127
oil tank, 176
outer front chain guard, 167
rear chain guard, 169
rear stand, 176
rear wheel, 199
saddle post, 178
safety guards, 178
scabbard carrier, 169
skid plates, 180
spark coil, 140
spark control wire, 166
speedometer, 192
spring forks, 154
starter crank springs, 101
steering damper, 161
throttle control wire, 165
tires, 195
tool box and bracket assembly, 173
upper bumper springs, 155
upper coil springs, 155
wiring, 190
Instrument panel
indicator lights, 191
panel cover
installation, 191
removal, 191
speedometer
installation, 192
removal, 192
Intake and exhaust system
air cleaner
general, 122
installation, 126
maintenance, 123
removal, 125
service, 122
air cleaner mounting bracket replacement, 126
description
exhaust, 122
intake, 122
exhaust system
muffler assembly installation, 127
muffler assembly removal, 126
pipe installation, 127
hose and carburetor fitting
installation, 125
removal, 125
Introduction
scope of manual, 3
supersession of quartermaster manuals, 3

Lighting system, 181


Lubrication
introduction, 30
lubrication guide, 30
general, 30
lubrication notes, 30
oilcan points, 34
supplies, 30
warning light, 34

Maintenance allocation
allocation of maintenance by echelons
clutch, 40
controls and linkage, 40
electrical group, 41
engine (V‐45″ twin engine), 41
exhaust group, 42
miscellaneous, 42
suspension (front), 43
suspension (rear), 43
tires, 44
transmission, 44
vehicle assembly, 44
scope of maintenance, 39
Manual, scope of, 3

Organization tools and equipment, 60

Preventive maintenance services


first echelon, 20
second echelon, 45

References
explanatory publications
automotive materiel, 200
list of publications for training, 200
maintenance and repair, 200
protection of materiel, 200
storage and shipment, 200
standard nomenclature lists, 200
Removal procedure
air cleaner, 125
ammunition box carrier, 169
battery, 181
battery box, 172
carbon, 74
carburetor, 118
circuit breaker and timer assembly, 133
circuit breaker lever, 130
condenser, 131
control wire housings, 166
engine, 78
engine head gasket, 73
foot starter, 98
fork assembly, 155
front wheel, 195
fuel pipe, 121
fuel strainer assembly, 120
fuel tank, 174
generator, 145
handle bar assembly, 162
ignition coil to timer wire, 138
instrument panel cover, 191
jiffy stand, 176
luggage carrier, 170
mudguards, 170, 171
muffler assembly, 126
oil tank, 175
outer front chain guard, 167
rear chain guard, 169
rear stand, 176
rear wheel, 198
release bearing (clutch), 95
saddle post, 178
safety guards, 178
scabbard carrier, 169
skid plates, 180
spark coil, 139
spark control wire, 166
speedometer, 192
spring forks, 154
starter crank spring, 98
steering damper, 161
throttle control wire, 164
tires, 193
tool box and bracket assembly, 173
upper bumper springs, 155
upper coil springs, 155
Road test chart of maintenance operations, 49

Second echelon preventive maintenance


road test chart, 47
maintenance operation, 49
services
first echelon participation, 45
frequency, 45
general procedures, 45
specific procedures, 47
Sheet metal and equipment
battery box
installation, 173
removal, 172
carriers
ammunition box carrier installation, 169
ammunition box carrier removal, 169
fuel tank
installation, 175
removal, 174
chain guards
outer front chain guard installation, 167
outer front chain guard removal, 167
rear chain guard installation, 169
rear chain guard removal, 169
jiffy stand
installation, 177
removal, 176
luggage carrier
installation, 170
removal, 170
mudguard (front)
installation, 171
removal, 170
mudguard (rear)
installation, 171
removal, 171
oil tank
installation, 176
removal, 175
rear stand
installation, 176
removal, 176
saddle post
description, 178
installation, 178
removal, 178
safety guards
installation, 178
removal, 178
scabbard carrier
installation, 169
removal, 169
skid plates
installation, 180
removal, 180
tanks
fuel tank, 173
general, 173
oil tank, 173
tool box
box and bracket assembly installation, 173
box and bracket assembly removal, 173
Spark plugs, 129
Speedometer
installation, 192
removal, 192

Steering control
control wire housings
installation, 166
removal, 166
fork assembly (complete)
installation, 158
removal, 155
rocker plate studs, 160
forks (springs)
installation, 154
removal, 154
handle bar controls
install throttle control wire, 165
remove throttle control wire, 164
handle bars
installation of assembly, 163
removal of assembly, 162
spark control wire
installation, 166
removal, 166
steering damper
installation, 161
removal, 161
upper coil springs and upper bumper springs
installation, 155
removal, 155
Stowage on vehicle (tools and equipment), 35

T
Tabulated data
engine, 72
vehicle specifications, 7
capacities, 8
performance, 7
Tires, wheels, and hubs
description, 193
front wheel
hub adjustment, 197
installation, 196
removal, 195
rear wheel
installation, 199
removal, 198
rims and spokes, 195
tires
description, 193
installation, 195
removal, 193
Tools and equipment stowage on the vehicle
vehicle equipment, 36
vehicle spare parts, 38
vehicle tools, 35
Transmission
control linkage
adjustment, 97
checking gear shifter control linkage, 96
transmission shifted to adjust front drive chain, 96
description, 96
foot starter
installation, 98
removal, 98
installation, 101
removal, 99
starter crank springs
installation, 98
removal, 98
Trouble shooting
brakes, 70
electrical system, 68
engine
instruction, 61
tests to determine mechanical condition, 63
engine lubricating system, 64
fuel system, 65
generating system, 68
ignition system, 66
introduction, 61
steering, 71
transmission and clutch, 69
wheels and chains, 69

Wheels and hubs, 195


Wiring, 190
[A.G. 300.7 (17 Aug. 1943)]
By order of the Secretary of War:

G. C. MARSHALL,
Chief of Staff.

Official:
J. A. ULIO,
Major General,
The Adjutant General.
Distribution: R9 (4): IR 5, 7 and 17 (5): Bn 9 (2): IBn 5, 6,
7 and 17 (5): C9 (8): IC 5, 6, 7 and 17 (5)
(For explanation of symbols, see FM 21–6)
RAPD3OEC43–81M

PUBLICATIONS DEPARTMENT ‐ RARITAN ARSENAL

Transcriber’s notes:
The original spelling, punctuation and hyphenation has been retained except for
apparent printer’s errors which have been silently corrected.
In the Fig. 51 caption M—MARK ON BREAKER CAM AND MARKS ON TIMER HEAD AND
HAND - ‘HAND’ should possibly read ‘BAND’.
In the echelon table, section 25. ALLOCATION OF MAINTENANCE, ‘strained gasoline’
should possibly read ‘strainer gasoline’.
*** END OF THE PROJECT GUTENBERG EBOOK MOTORCYCLE,
SOLO (HARLEY-DAVIDSON MODEL WLA) ***

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,
Welcome to our website – the perfect destination for book lovers and
knowledge seekers. We believe that every book holds a new world,
offering opportunities for learning, discovery, and personal growth.
That’s why we are dedicated to bringing you a diverse collection of
books, ranging from classic literature and specialized publications to
self-development guides and children's books.

More than just a book-buying platform, we strive to be a bridge


connecting you with timeless cultural and intellectual values. With an
elegant, user-friendly interface and a smart search system, you can
quickly find the books that best suit your interests. Additionally,
our special promotions and home delivery services help you save time
and fully enjoy the joy of reading.

Join us on a journey of knowledge exploration, passion nurturing, and


personal growth every day!

ebookmasss.com

You might also like