Skip to Content
Pythonによるテスト駆動開発, 3rd Edition
book

Pythonによるテスト駆動開発, 3rd Edition

by Harry Percival
October 2025
Intermediate to advanced
712 pages
9h 46m
Japanese
O'Reilly Media, Inc.
Content preview from Pythonによるテスト駆動開発, 3rd Edition

第2部 本番環境への移行

本番環境に入れる必要が出るまでは、全てが楽しい遊びだ。

DevOps ボラット

サイトの最初のバージョンをデプロイする時が来た。 準備が整うまで待っていると、結局遅すぎるという話だ。

サイトはユーザビリティがあるか? 何もないよりはマシか? リストは作成できるか? はい、はい、はい。

いや、まだログインはできない。 いや、タスクを完了済みにはできない。 でも、そんな機能は本当に必要か? 別に必要ない——そしてユーザが実際にサイトを手にした時、何をしようとしているか確信を持つことは決してできない。 ユーザはタスクリストに使いたいと思っているかもしれないが、 実は「フライフィッシングの名所トップ10」リストを作るのに使いたいのかもしれない。 そんなリストに「完了マーク」機能なんて必要ない。 公開してみなければわからない。

これから数章かけて、実際にサイトを 稼働中のウェブサーバにデプロイしていく。

この部分は飛ばしたくなるかもしれない——​難しい内容が多く、 自分が求めていたものとは違うと思うかもしれない。 だが、ぜひ挑戦してみることを強く勧める。 本書で最も満足している章の一つであり、 多くの読者が「最後までやり抜いて良かった」と 私に連絡をくれる部分だ。

サーバへのデプロイを経験したことがないなら、 この作業は未知の世界を解き明かすことになる。 自分のサイトが実際のインターネット上で稼働しているのを目にする感覚は、 何にも代えがたいものだ。 「DevOps」みたいな流行りの言葉で名前付けすれば、 その価値を納得できるかもしれない。

デプロイの危険地帯

本番ウェブサーバへのサイトデプロイは厄介な話題だ。 「俺のマシンでは動くんだけど!」という嘆きの声がよく聞こえる。

デプロイにおける危険領域には以下のようなものがある:

ネットワーク

自分のマシンから離れると、ネットワークの問題が発生する: DNSがドメインをサーバの正しいIPアドレスにルーティングしていることを確認し、 サーバが外部からのトラフィックをリッスンするように設定されていることを確認し、 正しいポートを使用していることを確認し、 途中のファイアウォールがトラフィックを通すように設定されていることを確認する必要がある。

依存関係

ソフトウェアが依存するパッケージ (Python、Djangoなど)がサーバにインストールされ 正しいバージョンであることも確認する必要がある。

データベース

権限やパスに関する問題が発生する可能性があり、 デプロイ間のデータ保持には注意が必要だ。

静的ファイル(CSS、JavaScript、画像など)

Webサーバは通常、これらを提供するために特別な設定が必要だ。

セキュリティと設定

パブリックインターネットに公開したら、 セキュリティへの配慮がさらに重要になる。 ローカル開発では非常に便利な設定(Djangoデバッグページなど)も、 本番環境では危険だ(トレースバックでソースコードが露出するため)。

再現性とローカル開発環境と本番環境の差異

以上の全てが、ローカル開発環境と本番環境における動作の違いを生む。 我々は「自分のマシンで動作する」状態を、可能な限り本番環境で再現したい(逆も同様だ)。そうすることで「自分のマシンで動作する」が「本番環境でも動作する」を意味すると、最大限信頼性を持てるようになる。

この問題への一つのアプローチは、サーバを用意し、 全てを手動で設定・インストールし、 動作するまでいじくり回し、 ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

イーサリアムをマスターする, 2nd Edition

イーサリアムをマスターする, 2nd Edition

Carlo Parisi, Alessandro Mazza, Niccolo Pozzolini, Gavin Wood, Andreas M. Antonopoulos
Excel用Python

Excel用Python

Felix Zumstein

Publisher Resources

ISBN: 0642572274771