Skip to content

Commit ce06a3d

Browse files
committed
adding learning checklist to wsgi servers
1 parent e9fc987 commit ce06a3d

File tree

9 files changed

+86
-50
lines changed

9 files changed

+86
-50
lines changed

change-log.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,8 @@ <h3>May</h3>
5656
specific advice for steps to take after reading a section.</li>
5757
<li>Adding a stub section for APIs.</li>
5858
<li>Cleaned up and polished the task queues and web analytics pages.</li>
59-
<li>Added learning checklist to operating systems, web servers, task queues and
60-
monitoring pages.</li>
59+
<li>Added learning checklist to operating systems, web servers, task queues,
60+
monitoring pages and WSGI servers.</li>
6161
<li>Adding more logging resources.</li>
6262
<li>Continuing to add learning checklists to sections such as servers.</li>
6363
<li>Moving navigation options into meta tags on markdown pages.</li>

feeds/all.atom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
<?xml version="1.0" encoding="utf-8"?>
2-
<feed xmlns="http://www.w3.org/2005/Atom"><title>Matt Makai</title><link href="http://www.fullstackpython.com/" rel="alternate"></link><link href="http://www.fullstackpython.com/feeds/all.atom.xml" rel="self"></link><id>http://www.fullstackpython.com/</id><updated>2014-05-20T15:04:30Z</updated></feed>
2+
<feed xmlns="http://www.w3.org/2005/Atom"><title>Matt Makai</title><link href="http://www.fullstackpython.com/" rel="alternate"></link><link href="http://www.fullstackpython.com/feeds/all.atom.xml" rel="self"></link><id>http://www.fullstackpython.com/</id><updated>2014-05-21T07:29:39Z</updated></feed>

future-directions.html

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,6 @@ <h1>Future Directions</h1>
6666
<p>Create learning checklists for every section where it makes sense. The
6767
remaining sections that need checklists are </p>
6868
<ol>
69-
<li>WSGI servers</li>
7069
<li>source control</li>
7170
<li>application dependencies</li>
7271
<li>configuration management</li>

source/content/pages/03-deployment/0311-wsgi-servers.markdown

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,4 +192,26 @@ The following are WSGI servers based on community recommendations.
192192
"this server is faster than this other server" results.
193193

194194

195+
## WSGI servers learning checklist
196+
<i class="fa fa-check-square-o"></i>
197+
Understand that WSGI is a standard specification for applications and servers
198+
to implement.
199+
200+
<i class="fa fa-check-square-o"></i>
201+
Pick a WSGI server based on available documentation and tutorials. Green
202+
Unicorn is a good one to start with since it's been around for awhile.
203+
204+
<i class="fa fa-check-square-o"></i>
205+
Add the WSGI server to your server deployment.
206+
207+
<i class="fa fa-check-square-o"></i>
208+
Configure the web server to pass requests to the WSGI server for appropriate
209+
URL patterns.
210+
211+
<i class="fa fa-check-square-o"></i>
212+
Test that the WSGI server responds to local requests but not direct requests
213+
outside your infrastructure. The web server should be the pass through for
214+
requests to and responses from the WSGI server.
215+
216+
195217
### What's next after your Python code is running?

source/content/pages/07-performance/0705-task-queues.markdown

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -90,31 +90,6 @@ when scaling out a large deployment of distributed task queues.
9090
own servers.
9191

9292

93-
## Task queue learning checklist
94-
<i class="fa fa-check-square-o"></i>
95-
Pick a slow function in your project that is called during an HTTP request.
96-
97-
<i class="fa fa-check-square-o"></i>
98-
Determine if you can precompute the results on a fixed interval instead of
99-
during the HTTP request. If so, create a separate function you can call
100-
from elsewhere then store the precomputed value in the database.
101-
102-
<i class="fa fa-check-square-o"></i>
103-
Read the Celery documentation and the links in the resources section below
104-
to understand how the project works.
105-
106-
<i class="fa fa-check-square-o"></i>
107-
Install a message broker such as RabbitMQ or Redis and then add Celery to your
108-
project. Configure Celery to work with the installed message broker.
109-
110-
<i class="fa fa-check-square-o"></i>
111-
Use Celery to invoke the function from step one on a regular basis.
112-
113-
<i class="fa fa-check-square-o"></i>
114-
Have the HTTP request function use the precomputed value instead of the
115-
slow running code it originally relied upon.
116-
117-
11893
## Task queue resources
11994
* [Distributing work without Celery](http://justcramer.com/2012/05/04/distributing-work-without-celery/)
12095
provides a scenario in which Celery and RabbitMQ are not the right tool
@@ -146,4 +121,29 @@ slow running code it originally relied upon.
146121
why you shouldn't use your database as one.
147122

148123

124+
## Task queue learning checklist
125+
<i class="fa fa-check-square-o"></i>
126+
Pick a slow function in your project that is called during an HTTP request.
127+
128+
<i class="fa fa-check-square-o"></i>
129+
Determine if you can precompute the results on a fixed interval instead of
130+
during the HTTP request. If so, create a separate function you can call
131+
from elsewhere then store the precomputed value in the database.
132+
133+
<i class="fa fa-check-square-o"></i>
134+
Read the Celery documentation and the links in the resources section below
135+
to understand how the project works.
136+
137+
<i class="fa fa-check-square-o"></i>
138+
Install a message broker such as RabbitMQ or Redis and then add Celery to your
139+
project. Configure Celery to work with the installed message broker.
140+
141+
<i class="fa fa-check-square-o"></i>
142+
Use Celery to invoke the function from step one on a regular basis.
143+
144+
<i class="fa fa-check-square-o"></i>
145+
Have the HTTP request function use the precomputed value instead of the
146+
slow running code it originally relied upon.
147+
148+
149149
### What's next after task queues?

source/content/pages/10-misc/1005-change-log.markdown

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ the
2828
specific advice for steps to take after reading a section.
2929
* Adding a stub section for APIs.
3030
* Cleaned up and polished the task queues and web analytics pages.
31-
* Added learning checklist to operating systems, web servers, task queues and
32-
monitoring pages.
31+
* Added learning checklist to operating systems, web servers, task queues,
32+
monitoring pages and WSGI servers.
3333
* Adding more logging resources.
3434
* Continuing to add learning checklists to sections such as servers.
3535
* Moving navigation options into meta tags on markdown pages.

source/content/pages/10-misc/1007-future-directions.markdown

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ Here are some things I'm actively working on:
3939
* Create learning checklists for every section where it makes sense. The
4040
remaining sections that need checklists are
4141

42-
1. WSGI servers
4342
1. source control
4443
1. application dependencies
4544
1. configuration management

task-queues.html

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -122,24 +122,6 @@ <h2>Hosted message and task queue services</h2>
122122
own servers.</p>
123123
</li>
124124
</ul>
125-
<h2>Task queue learning checklist</h2>
126-
<p><i class="fa fa-check-square-o"></i>
127-
Pick a slow function in your project that is called during an HTTP request.</p>
128-
<p><i class="fa fa-check-square-o"></i>
129-
Determine if you can precompute the results on a fixed interval instead of
130-
during the HTTP request. If so, create a separate function you can call
131-
from elsewhere then store the precomputed value in the database.</p>
132-
<p><i class="fa fa-check-square-o"></i>
133-
Read the Celery documentation and the links in the resources section below
134-
to understand how the project works.</p>
135-
<p><i class="fa fa-check-square-o"></i>
136-
Install a message broker such as RabbitMQ or Redis and then add Celery to your
137-
project. Configure Celery to work with the installed message broker.</p>
138-
<p><i class="fa fa-check-square-o"></i>
139-
Use Celery to invoke the function from step one on a regular basis.</p>
140-
<p><i class="fa fa-check-square-o"></i>
141-
Have the HTTP request function use the precomputed value instead of the
142-
slow running code it originally relied upon.</p>
143125
<h2>Task queue resources</h2>
144126
<ul>
145127
<li>
@@ -180,6 +162,24 @@ <h2>Task queue resources</h2>
180162
why you shouldn't use your database as one.</p>
181163
</li>
182164
</ul>
165+
<h2>Task queue learning checklist</h2>
166+
<p><i class="fa fa-check-square-o"></i>
167+
Pick a slow function in your project that is called during an HTTP request.</p>
168+
<p><i class="fa fa-check-square-o"></i>
169+
Determine if you can precompute the results on a fixed interval instead of
170+
during the HTTP request. If so, create a separate function you can call
171+
from elsewhere then store the precomputed value in the database.</p>
172+
<p><i class="fa fa-check-square-o"></i>
173+
Read the Celery documentation and the links in the resources section below
174+
to understand how the project works.</p>
175+
<p><i class="fa fa-check-square-o"></i>
176+
Install a message broker such as RabbitMQ or Redis and then add Celery to your
177+
project. Configure Celery to work with the installed message broker.</p>
178+
<p><i class="fa fa-check-square-o"></i>
179+
Use Celery to invoke the function from step one on a regular basis.</p>
180+
<p><i class="fa fa-check-square-o"></i>
181+
Have the HTTP request function use the precomputed value instead of the
182+
slow running code it originally relied upon.</p>
183183
<h3>What's next after task queues?</h3>
184184
<div class="row">
185185
<div class="col-md-4">

wsgi-servers.html

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -222,6 +222,22 @@ <h2>WSGI resources</h2>
222222
"this server is faster than this other server" results.</p>
223223
</li>
224224
</ul>
225+
<h2>WSGI servers learning checklist</h2>
226+
<p><i class="fa fa-check-square-o"></i>
227+
Understand that WSGI is a standard specification for applications and servers
228+
to implement. </p>
229+
<p><i class="fa fa-check-square-o"></i>
230+
Pick a WSGI server based on available documentation and tutorials. Green
231+
Unicorn is a good one to start with since it's been around for awhile.</p>
232+
<p><i class="fa fa-check-square-o"></i>
233+
Add the WSGI server to your server deployment.</p>
234+
<p><i class="fa fa-check-square-o"></i>
235+
Configure the web server to pass requests to the WSGI server for appropriate
236+
URL patterns.</p>
237+
<p><i class="fa fa-check-square-o"></i>
238+
Test that the WSGI server responds to local requests but not direct requests
239+
outside your infrastructure. The web server should be the pass through for
240+
requests to and responses from the WSGI server.</p>
225241
<h3>What's next after your Python code is running?</h3>
226242
<div class="row">
227243
<div class="col-md-3">

0 commit comments

Comments
 (0)