Release It Design and Deploy Production Ready Sofware Nygard 2024 Scribd Download
Release It Design and Deploy Production Ready Sofware Nygard 2024 Scribd Download
com
https://textbookfull.com/product/release-it-
design-and-deploy-production-ready-sofware-nygard/
https://textbookfull.com/product/release-it-design-and-deploy-
production-ready-software-2nd-edition-michael-t-nygard/
textbookfull.com
https://textbookfull.com/product/docker-in-the-trenches-successful-
production-deployment-1-early-release-edition-joe-johnston/
textbookfull.com
https://textbookfull.com/product/private-data-and-public-value-
governance-green-consumption-and-sustainable-supply-chains-1st-
edition-holly-jarman/
textbookfull.com
https://textbookfull.com/product/financial-accounting-with-
international-financial-reporting-standards-ch1-9-only-kieso/
textbookfull.com
https://textbookfull.com/product/pronouns-in-literature-positions-and-
perspectives-in-language-1st-edition-alison-gibbons/
textbookfull.com
https://textbookfull.com/product/transnational-commercial-surrogacy-
and-the-un-making-of-kin-in-india-anindita-majumdar/
textbookfull.com
https://textbookfull.com/product/oral-and-maxillofacial-surgery-
oxford-specialist-handbooks-in-surgery-carrie-newlands/
textbookfull.com
The Eagle and the Trident The United States and Ukraine
Steven Pifer
https://textbookfull.com/product/the-eagle-and-the-trident-the-united-
states-and-ukraine-steven-pifer/
textbookfull.com
Early praise for Release It! Second Edition
Mike is one of the software industry’s deepest thinkers and clearest communica-
tors. As beautifully written as the original, the second edition of Release It! extends
the first with modern techniques—most notably continuous deployment, cloud
infrastructure, and chaos engineering—that will help us all build and operate
large-scale software systems.
➤ Randy Shoup
VP Engineering, Stitch Fix
If you are putting any kind of system into production, this is the single most im-
portant book you should keep by your side. The author’s enormous experience
in the area is captured in an easy-to-read, but still very intense, way. In this up-
dated edition, the new ways of developing, orchestrating, securing, and deploying
real-world services to different fabrics are well explained in the context of the core
resiliency patterns.
➤ Michael Hunger
Director of Developer Relations Engineering, Neo4j, Inc.
So much ground is covered here: patterns and antipatterns for application re-
silience, security, operations, architecture. That breadth would be great in itself,
but there’s tons of depth too. Don’t just read this book—study it.
➤ Colin Jones
CTO at 8th Light and Author of Mastering Clojure Macros
Release It! is required reading for anyone who wants to run software to production
and still sleep at night. It will help you build with confidence and learn to expect
and embrace system failure.
➤ Matthew White
Author of Deliver Audacious Web Apps with Ember 2
Michael T. Nygard
Acknowledgments . . . . . . . . . . . xi
Preface . . . . . . . . . . . . . . xiii
1. Living in Production . . . . . . . . . . . 1
Aiming for the Right Target 2
The Scope of the Challenge 3
A Million Dollars Here, a Million Dollars There 3
Use the Force 4
Pragmatic Architecture 5
Wrapping Up 6
4. Stability Antipatterns . . . . . . . . . . 31
Integration Points 33
Chain Reactions 46
Cascading Failures 49
Users 51
Blocked Threads 62
Self-Denial Attacks 69
Scaling Effects 71
Unbalanced Capacities 75
Dogpile 78
Force Multiplier 80
Slow Responses 84
Unbounded Result Sets 86
Wrapping Up 90
5. Stability Patterns . . . . . . . . . . . 91
Timeouts 91
Circuit Breaker 95
Bulkheads 98
Steady State 101
Fail Fast 106
Let It Crash 108
Handshaking 111
Test Harnesses 113
Decoupling Middleware 117
Shed Load 119
Create Back Pressure 120
Governor 123
Wrapping Up 125
7. Foundations . . . . . . . . . . . . 141
Networking in the Data Center and the Cloud 142
Physical Hosts, Virtual Machines, and Containers 146
Wrapping Up 153
9. Interconnect . . . . . . . . . . . . 171
Solutions at Different Scales 172
DNS 173
Load Balancing 177
Demand Control 182
Network Routing 186
Discovering Services 188
Migratory Virtual IP Addresses 189
Wrapping Up 191
Bibliography . . . . . . . . . . . . 337
Index . . . . . . . . . . . . . . 339
Acknowledgments
I’d like to say a big thank you to the many people who have read and shared
the first edition of Release It! I’m deeply happy that so many people have
found it useful.
Over the years, quite a few people have nudged me about updating this book.
Thank you to Dion Stewart, Dave Thomas, Aino Corry, Kyle Larsen, John
Allspaw, Stuart Halloway, Joanna Halloway, Justin Gehtland, Rich Hickey,
Carin Meier, John Willis, Randy Shoup, Adrian Cockroft, Gene Kim, Dan
North, Stefan Tilkov, and everyone else who saw that a few things had changed
since we were building monoliths in 2006.
Thank you to all my technical reviewers: Adrian Cockcroft, Rod Hilton, Michael
Hunger, Colin Jones, Andy Keffalas, Chris Nixon, Antonio Gomes Rodrigues,
Stefan Turalski, Joshua White, Matthew White, Stephen Wolff, and Peter
Wood. Your efforts and feedback have helped make this book much better.
Thanks also to Nora Jones and Craig Andera for letting me include your stories
in these pages. The war stories have always been one of my favorite parts of
the book, and I know many readers feel the same way.
After stability, the next concern is ongoing operations. In Part II: Design for
Production, you’ll see what it means to live in production. You’ll deal with the
complexity of modern production environments in all their virtualized, con-
tainerized, load-balanced, service-discovered gory detail. This part illustrates
In Part III: Deliver Your System, you’ll look at deployments. There are great
tools for pouring bits onto servers now, but that turns out to be the easy part
of the problem. It’s much harder to push frequent, small changes without
breaking consumers. We’ll look at design for deployment and at deployments
without downtime, and then we’ll move into versioning across disparate ser-
vices—always a tricky issue!
In Part IV: Solve Systemic Problems, you’ll examine the system’s ongoing life
as part of the overall information ecosystem. If release 1.0 is the birth of the
system, then you need to think about its growth and development after that.
In this part, you’ll see how to build systems that can grow, flex, and adapt
over time. This includes evolutionary architecture and shared “knowledge”
across systems. Finally, you’ll learn how to build antifragile systems through
the emerging discipline of “chaos engineering” that uses randomness and
deliberate stress on a system to improve it.
Online Resources
This book has its own web page,1 where you can find details about it, download
the source code, post to the discussion forums, and report errata such as
typos and content suggestions. The discussion forums are the perfect place
to talk shop with other readers and share your comments about the book.
1. https://pragprog.com/titles/mnee2/46
Living in Production
You’ve worked hard on your project. It looks like all the features are actu-
ally complete, and most even have tests. You can breathe a sigh of relief.
You’re done.
Or are you?
Does “feature complete” mean “production ready”? Is your system really ready
to be deployed? Can it be run by operations and face the hordes of real-world
users without you? Are you starting to get that sinking feeling that you’ll be
faced with late-night emergency phone calls and alerts? It turns out there’s
a lot more to development than just adding all the features.
Too often, project teams aim to pass the quality assurance (QA) department’s
tests instead of aiming for life in production. That is, the bulk of your work
probably focuses on passing testing. But testing—even agile, pragmatic,
automated testing—is not enough to prove that software is ready for the real
world. The stresses and strains of the real world, with crazy real users, globe-
spanning traffic, and virus-writing mobs from countries you’ve never even
heard of go well beyond what you could ever hope to test for.
But first, you will need to accept the fact that despite your best laid plans,
bad things will still happen. It’s always good to prevent them when possible,
of course. But it can be downright fatal to assume that you’ve predicted and
eliminated all possible bad events. Instead, you want to take action and pre-
vent the ones you can but make sure that your system as a whole can
recover from whatever unanticipated, severe traumas might befall it.
Do you want a car that looks beautiful but spends more time in the shop
than on the road? Of course not! You want to own a car designed for the real
world. You want a car designed by somebody who knows that oil changes are
always 3,000 miles late, that the tires must work just as well on the last
sixteenth of an inch of tread as on the first, and that you will certainly, at
some point, stomp on the brakes while holding an Egg McMuffin in one hand
and a phone in the other.
When our system passes QA, can we say with confidence that it’s ready for
production? Simply passing QA tells us little about the system’s suitability
for the next three to ten years of life. It could be the Toyota Camry of software,
racking up thousands of hours of continuous uptime. Or it could be the Chevy
Vega (a car whose front end broke off on the company’s own test track) or the
Ford Pinto (a car prone to blowing up when hit in just the right way). It’s
impossible to tell from a few days or even a few weeks of testing what the next
several years will bring.
We’re in a similar state today. We end up falling behind on the new system
because we’re constantly taking support calls from the last half-baked project
we shoved out the door. Our analog of “design for manufacturability” is “design
Uptime demands have increased too. Whereas the famous “five nines” (99.999
percent) uptime was once the province of the mainframe and its caretakers,
even garden-variety commerce sites are now expected to be available 24 by
7 by 365. (That phrase has always bothered me. As an engineer, I expect it
to either be “24 by 365” or be “24 by 7 by 52.”) Clearly, we’ve made tremendous
strides even to consider the scale of software built today; but with the
increased reach and scale of our systems come new ways to break, more
hostile environments, and less tolerance for defects.
The increasing scope of this challenge—to build software fast that’s cheap to
build, good for users, and cheap to operate—demands continually improving
architecture and design techniques. Designs appropriate for small WordPress
websites fail outrageously when applied to large scale, transactional, distribut-
ed systems, and we’ll look at some of those outrageous failures.
During the hectic rush of a development project, you can easily make decisions
that optimize development cost at the expense of operational cost. This makes
sense only in the context of the team aiming for a fixed budget and delivery
date. In the context of the organization paying for the software, it’s a bad
choice. Systems spend much more of their life in operation than in develop-
ment—at least, the ones that don’t get canceled or scrapped do. Avoiding a
one-time developmental cost and instead incurring a recurring operational
cost makes no sense. In fact, the opposite decision makes much more financial
sense. Imagine that your system requires five minutes of downtime on every
release. You expect your system to have a five-year life span with monthly
releases. (Most companies would like to do more releases per year, but I’m
being very conservative.) You can compute the expected cost of downtime, dis-
counted by the time-value of money. It’s probably on the order of $1,000,000
(300 minutes of downtime at a very modest cost of $3,000 per minute).
Now suppose you could invest $50,000 to create a build pipeline and
deployment process that avoids downtime during releases. That will, at a
minimum, avoid the million-dollar loss. It’s very likely that it will also allow
you to increase deployment frequency and capture market share. But let’s
stick with the direct gain for now. Most CFOs would not mind authorizing an
expenditure that returns 2,000 percent ROI!
Design and architecture decisions are also financial decisions. These choices
must be made with an eye toward their implementation cost as well as their
downstream costs. The fusion of technical and financial viewpoints is one of
the most important recurring themes in this book.
I’ll reveal myself here and now as a proponent of agile development. The
emphasis on early delivery and incremental improvements means software
gets into production quickly. Since production is the only place to learn how
the software will respond to real-world stimuli, I advocate any approach that
begins the learning process as soon as possible. Even on agile projects, deci-
sions are best made with foresight. It seems as if the designer must “use the
force” to see the future in order to select the most robust design. Because
Pragmatic Architecture
Two divergent sets of activities both fall under the term architecture. One type
of architecture strives toward higher levels of abstraction that are more portable
across platforms and less connected to the messy details of hardware, networks,
electrons, and photons. The extreme form of this approach results in the “ivory
tower”—a Kubrick-esque clean room inhabited by aloof gurus and decorated
with boxes and arrows on every wall. Decrees emerge from the ivory tower and
descend upon the toiling coders. “The middleware shall be JBoss, now and
forever!” “All UIs shall be constructed with Angular 1.0!” “All that is, all that
was, and all that shall ever be lives in Oracle!” “Thou shalt not engage in Ruby!”
If you’ve ever gritted your teeth while coding something according to the “com-
pany standards” that would be ten times easier with some other technology,
then you’ve been the victim of an ivory-tower architect. I guarantee that an
architect who doesn’t bother to listen to the coders on the team doesn’t bother
listening to the users either. You’ve seen the result: users who cheer when the
system crashes because at least then they can stop using it for a while.
In contrast, another breed of architect doesn’t just rub shoulders with the
coders but is one. This kind of architect does not hesitate to peel back the lid
on an abstraction or to jettison one if it doesn’t fit. This pragmatic architect
is more likely to discuss issues such as memory usage, CPU requirements,
bandwidth needs, and the benefits and drawbacks of hyperthreading and
CPU binding.
If you’re already a pragmatic architect, then I’ve got chapters full of powerful
ammunition for you. If you’re an ivory-tower architect—and you haven’t already
stopped reading—then this book might entice you to descend through a few
levels of abstraction to get back in touch with that vital intersection of soft-
ware, hardware, and users: living in production. You, your users, and your
company will be much happier when the time comes to finally release it!
Wrapping Up
Software delivers its value in production. The development project, testing,
integration, and planning...everything before production is prelude. This
book deals with life in production, from the initial release through ongoing
growth and evolution of the system. The first part of this book deals with
stability. To get a better sense of the kind of issues involved in keeping your
software from crashing, let’s start by looking at the software bug that
grounded an airline.
Create Stability
CHAPTER 2
Case Study:
The Exception That Grounded an Airline
Have you ever noticed that the incidents that blow up into the biggest issues
start with something very small? A tiny programming error starts the snowball
rolling downhill. As it gains momentum, the scale of the problem keeps getting
bigger and bigger. A major airline experienced just such an incident. It even-
tually stranded thousands of passengers and cost the company hundreds of
thousands of dollars. Here’s how it happened.
As always, all names, places, and dates have been changed to protect the
confidentiality of the people and companies involved.
It started with a planned failover on the database cluster that served the core
facilities (CF). The airline was moving toward a service-oriented architecture,
with the usual goals of increasing reuse, decreasing development time, and
decreasing operational costs. At this time, CF was in its first generation. The
CF team planned a phased rollout, driven by features. It was a sound plan,
and it probably sounds familiar—most large companies have some variation
of this project underway now.
but those had not been rolled out yet. This turned out to be a good thing, as
you’ll soon see.
The architects of CF were well aware of how critical it would be to the business.
They built it for high availability. It ran on a cluster of J2EE application
servers with a redundant Oracle 9i database. All the data were stored on a
large external RAID array with twice-daily, off-site backups on tape and on-
disk replicas in a second chassis that were guaranteed to be five minutes old
at most. Everything was on real hardware, no virtualization. Just melted
sand, spinning rust, and the operating systems.
The Oracle database server ran on one node of the cluster at a time, with
Veritas Cluster Server controlling the database server, assigning the virtual
IP address, and mounting or unmounting filesystems from the RAID array.
Up front, a pair of redundant hardware load balancers directed incoming
traffic to one of the application servers. Client applications like the server for
check-in kiosks and the IVR system would connect to the front-end virtual
IP address. So far, so good.
I will say that this was back in the day when “planned downtime” was a normal
thing. That’s not the way to operate now.
Veritas Cluster Server was orchestrating the failover. In the space of one
minute, it could shut down the Oracle server on database 1, unmount the
Virtual IP Address
Virtual IP Address
CF CF
Database Heartbeat Database
1 2
SCSI SCSI
RAID 5
Array
filesystems from the RAID array, remount them on database 2, start Oracle
there, and reassign the virtual IP address to database 2. The application
servers couldn’t even tell that anything had changed, because they were
configured to connect to the virtual IP address only.
The client scheduled this particular change for a Thursday evening around
11 p.m. Pacific time. One of the engineers from the local team worked with
the operations center to execute the change. All went exactly as planned.
They migrated the active database from database 1 to database 2 and then
updated database 1. After double-checking that database 1 was updated
correctly, they migrated the database back to database 1 and applied the
same change to database 2. The whole time, routine site monitoring showed
that the applications were continuously available. No downtime was planned
for this change, and none occurred. At about 12:30 a.m., the crew marked
the change as “Completed, Success” and signed off. The local engineer headed
for bed, after working a 22-hour shift. There’s only so long you can run on
double espressos, after all.
The Outage
At about 2:30 a.m., all the check-in kiosks went red on the monitoring console.
Every single one, everywhere in the country, stopped servicing requests at
the same time. A few minutes later, the IVR servers went red too. Not exactly
panic time, but pretty close, because 2:30 a.m. Pacific time is 5:30 a.m.
Eastern time, which is prime time for commuter flight check-in on the Eastern
seaboard. The operations center immediately opened a Severity 1 case and
got the local team on a conference call.
The trick to restoring service is figuring out what to target. You can always
“reboot the world” by restarting every single server, layer by layer. That’s
almost always effective, but it takes a long time. Most of the time, you can
find one culprit that is really locking things up. In a way, it’s like a doctor
diagnosing a disease. You could treat a patient for every known disease, but
that will be painful, expensive, and slow. Instead, you want to look at the
symptoms the patient shows to figure out exactly which disease to treat. The
trouble is that individual symptoms aren’t specific enough. Sure, once in a
while some symptom points you directly at the fundamental problem, but
not usually. Most of the time, you get symptoms—like a fever—that tell you
nothing by themselves.
In this case, the team was facing two separate sets of applications that were
both completely hung. It happened at almost the same time, close enough
that the difference could just be latency in the separate monitoring tools that
the kiosks and IVR applications used. The most obvious hypothesis was that
both sets of applications depended on some third entity that was in trouble.
As you can see from the dependency diagram on page 13, that was a big finger
pointing at CF, the only common dependency shared by the kiosks and the
IVR system. The fact that CF had a database failover three hours before this
On this hill are many famous Aia ma keia puu, he nui na wahi
places; for instance, right on top kaulana, oia hoi, maluna pono o
of this hill was the house in keia puu ka hale o Peapea i pau
which Peapea 88 was consumed ai i ke ahi, i puhiia ai e
by fire, when he was burnt out by Liionaiwaa ma, a oia ka mea i
Liionaiwaa and others; thus the oleloia: “Pau Peapea i ke ahi.”
saying at the present time, Aia hoi ma ka hema iki o keia
“Consumed by fire is Peapea.” A puu he awa pae waa keia, o
little to the south of this hill is a Kaihalulu ka inoa, no ia wahi
famous landing place for canoes, keia olelo e olelo ia nei,
called Kaihalulu (the roaring Kaihalulu i ke alo o Kauiki. Aia
sea); concerning this place is the no hoi malaila na niu a Kane; aia
saying now quoted: “The roaring aku makai ponoi o ia wahi he
sea in the presence of Kauiki.” At pohaku nui iloko o ke kai, ua
the same place, too, are the kapaia ka inoa o ia pohaku o
coconuts of Kane; right makai of Mokuhano. Aia hoi ma ka hikina
this place is a large rock in the ponoi o Kauiki o ka Pueokahi, ka
sea which is called Mokuhano. mea i kapaia ai ka inoa o ia
To the east of Kauiki is wahi, he pueo no na ke alii na
Pueokahi; 89 this place was so Peapea; aia ike ua pueo nei i ka
named on account of an owl nui o kanaka lele mai no ia a kau
belonging to the chief, Peapea. ma ke kikihi puka o ke alii, alaila,
When the bird saw there were ua nui kanaka; a mahope
plenty of people, it flew to the pepehiia a make, a oia ka mea i
door of the chief, indicating a kapaia ai o ka Pueokahi.
multitude. Afterwards it was
killed, and that was why it was
called Pueokahi.
To the north of Kahulili, with its A ma ka akau ponoi no hoi o
foundation right under Kauiki, Kahulili, a malalo pono no o
was what was known as the hair Kauiki kona kumu, ua kapaia oia
of Puuhele. Kaihuakala is mauka na lauoho o Puuhele. Aia mauka
of Kauiki. Kaihuakala is not o Kauiki o Kaihuakala. Aole e ike
usually seen; when Maui is calm, wale ia o Kaihuakala, aia a malie
then that locality is seen. Then o Maui nei alaila, ike ia keia
Papahawahawa stands forth and wahi. Ia wa no, ku mai la o
brags, saying, “Here I have lived, Papahawahawa a akena iho la
and yet this is the first time I me ka i iho hoi, “He noho ae nei
have [550]beheld the calmness of no hoi, akahi no a [551]ike ia ka
Maui; it is indeed clear, for malie a Maui, o ka malie ka ia ke
Kaihuakala can be seen.” [One ike ia aku la o Kaihuakala.” O
must behold] Kaihuakala Kaihuakala kai uka, o Kauiki ka i
mountainward and Kauiki kai, alaila pau i ka makaikai ia na
seaward in order to complete wahi a pau. A oia ka mea i olelo
one’s journey of sightseeing. ia nei e ka poe haku mele,
Thus the saying by composers of penei:
chants:
Behold! behold! the mere lehua Aia, la, aia la, o ka lehua wale o
of Puuoni, Puuoni,
Struggling with the clouds of the Ke a uume inai la me opua i ka
air, lewa
Now above, now below the rain Maluna malalo ka wai opua.
clouds.
While they were going along Ia laua nei e hele ana, ua alualu
they were given chase. They ia mai la nae laua nei. O ko laua
came along until they caught up nei hele maila no ia a halawai
with Pueonuiokona. 93 The owl, me Pueonuiokona, aole nae he
however, did not catch sight of ike mai o ua Pueo nei i ka laua
them while they were coming. nei hele aku. A kaa laua nei
When they had passed ahead mamua, ia manawa halawai mai
the prophet who was chasing la ka makaula e alualu nei ia
them caught up with laua me Pueonuiokona. Pane
Pueonuiokona. The owl asked, aku la ua Pueo nei: “Heaha ka
“What is the cause of this heavy mea i nui ai o ka hanu [555]a
breathing and this perspiring?” kahe hoi ka hou?” Hai aku la
This one answered, “That you keia: “Heaha mai ka hoi kau, he
should be asking [554]‘what’? mau uhane aia la, o ka’u ia e
Spirits! and there they are! I am alualu nei aohe loaa iki; e ake
chasing them, but can not catch ana hoi au o ka lihi launa aku,
them; I have been wishing to get make la hoi ia’u, ua hele mai kuu
near them so that I can kill them, ukiuki a nui ia laua.”
for I am possessed with great
anger towards them.”
When the owl heard what the Ia lohe ana o Pueo i ka olelo a
prophet said, he said to him, ka makaula, ia manawa oia i
“You are a prophet, and I am a olelo aku ai i ua makaula nei:
prophet, still I did not see them; “He makaula oe, a he makaula
and now I hear you saying that if wau, eia nae, aole wau i ike aku
you catch them they die.” Where nei ia laua, a no kuu lohe ana
they were holding this mai nei i kau olelo, ke loaa aku
conversation, however, was on ia oe make.” O kahi nae a laua e
the plain of Kamaomao. While kamailio nei, aia ma ke kula o
the others prepared to come for Kamaomao. Ia laua nei nae e
the spirits, Pumaia said to his hoomakaukau ana e kii i na
friend, “Here comes our death; uhane, olelo aku la o Pumaia i
but we will wait. If the new one ke aikane: “Eia a’e ka make o
gets ahead of the old one then kaua la, aka, i kali auanei kaua a
we have hope for life.” i oi kela mea hou mamua o ka
mea mua, alaila, manao ae ke
ola.”
So they sat and watched the two O ko laua nei noho iho la no ia
prophets. When Pueo distanced nana no laua nei i ua mau
the other, Pumaia said to the makaula nei. A oi no o ua o
friend, “We are now saved; it Pueo mamua, olelo aku o
were better that we go to our Pumaia i ke aikane: “Akahi kaua
parents. It may be that we would a pakele, e aho e uhaele kaua a
be found there.” The friend kahi o na makua o kaua; malia
consented. They came along paha, o loaa ae kaua ilaila.” Ae
Kealia, a large pond even to this mai la ke aikane. O ko laua nei
day. These places above hoomaka mai la no ia e hele ma
mentioned, the plain of Kealia, he loko nui no hoi a hiki i
Kamaomao and Kealia are at the keia wa. O keia mau wahi nae i
eastern isthmus of Maui, hai ia a’e nei, no kula o
connecting East and West Maui. Kamaomao a me Kealia, aia no
ma ka puali hikina o Maui nei,
alaila pau o Maui Hikina, pau o
Maui Komohana.
A STORY OF HE MOOLELO NO
PUUPEHE. PUUPEHE.
When the child finished chanting A pau ke oli ana a ua keiki nei,
his mother became possessed ua ano e mai la ka makuahine, a
and was greatly troubled. I had ku a pilikia maoli ia. E pono e
better explain shortly about his wehewehe iki aku wau i ke ano o
chanting and falsely stating that kana oli ana a me ke kamailio
his father was dead. It was not hoopunipuni ana ua make ka
true as he chanted. He had gone makuakane; aole he oiaio o ke
to watch his father fishing, and ano o ke oli ana. Ua hele ia e
he had sent for a great number nana i ka lawaia ana o kona
of fish to come and bite the makuakane, a ua kii aku ia i na
hook. He saw that his father had i’a he nui loa e hele e ai i ka
caught a great many fish, but he makau. No ka ike ana ua nui na
needed the second [requisite], i’a i loaa i kona papa, ua koe hoi
the awa root. He knew his ka lua, oia ka awa. Ua ike ia
parents had none; that was why aohe awa a kona mau makua,
he voiced the few lines of song nolaila oia i puana ae ai i keia
above written. mau lalani mele e kau ae la
maluna.
Let us drop what the child did for E waiho iki kakou i na hana a ke
some later time and turn and talk keiki a mahope aku. E huli ae
of the father. While his father kakou a kamailio no ka
was fishing he became very makuakane. A i kona makua e
much interested because he lawaia nei, ua nanea loa ia i ka
caught so many. When he nui o na i’a i loaa iaia, a i kona
glanced shoreward he could not nana ana mai iuka aohe ike ia
see land, because Puupehe had aku o uka, no ka mea ua uhi iho
covered it completely with fog. la o Puupehe i ka ohu a
He thought to himself, “What can nalowale ka aina. I iho la keia
this wonderful thing be? There is iloko ona: “Heaha la hoi keia
now no wind to bring the fog on mea kupanaha, nokamea, aole
to the land!” He had a hoi he makani nana e lawe mai
premonition, however, ka ohu a kau iluna o ka aina.” Ua
concerning his wife, so he halialia wale mai nae na ano o
commenced to pull in his line. kana wahine, hoomaka iho la ia
When it was near the top his line e huki mai i ka aho a kokoke e
was held by a shark. The name pau mai iluna, paa ana ke aho a
of this shark was Puaiki. ianei i ka mano, o ka inoa o keia
mano o Puaiki.