Skip to content

Commit 4d02b22

Browse files
committed
working on rearranging content
1 parent adefb92 commit 4d02b22

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+151
-151
lines changed

about-author.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -335,9 +335,9 @@ <h3 class="panel-head">Table of Contents</h3>
335335
<a href="/other-web-frameworks.html" class="list-group-item smaller-item ">Other Web Frameworks</a>
336336
<a href="/deployment.html" class="list-group-item smaller-item ">Deployment</a>
337337
<a href="/servers.html" class="list-group-item smaller-item ">Servers</a>
338+
<a href="/platform-as-a-service.html" class="list-group-item smaller-item ">Platform-as-a-service</a>
338339
<a href="/operating-systems.html" class="list-group-item smaller-item ">Operating Systems</a>
339340
<a href="/web-servers.html" class="list-group-item smaller-item ">Web Servers</a>
340-
<a href="/platform-as-a-service.html" class="list-group-item smaller-item ">Platform-as-a-service</a>
341341
<a href="/wsgi-servers.html" class="list-group-item smaller-item ">WSGI Servers</a>
342342
<a href="/source-control.html" class="list-group-item smaller-item ">Source Control</a>
343343
<a href="/application-dependencies.html" class="list-group-item smaller-item ">Application Dependencies</a>

all.html

Lines changed: 107 additions & 107 deletions
Original file line numberDiff line numberDiff line change
@@ -808,6 +808,113 @@ <h2>Servers learning checklist</h2>
808808
Move to the <a href="/operating-systems.html">operating systems</a> section to learn
809809
how to load Ubuntu 12.04 LTS as a base OS for Python web applications.</p>
810810
<h3>Keep going with setting up a server or try a PaaS?</h3>
811+
<h1>Platform-as-a-service</h1>
812+
<p>A platform-as-a-service (PaaS) provides infrastructure and a software layer
813+
on which a web application is deployed. Running your web application from
814+
a PaaS removes the need to know as much about the underlying servers,
815+
operating system, web server, and often the WSGI server. </p>
816+
<p><em>Note</em>: If you are not interested in deploying to a PaaS you can move
817+
ahead to the <a href="../wsgi-servers.html">WSGI servers</a> section.</p>
818+
<p>The PaaS layer defines how the application accesses resources such as
819+
computing time, files, and external services. The PaaS provides a
820+
higher-level abstraction for working with computing resources than deploying
821+
an application to a server or IaaS.</p>
822+
<p>A PaaS makes deployment and operations easier because it forces the developer
823+
to conform applications to the PaaS architecture. For example, Heroku looks
824+
for Python's requirements.txt file in the base directory of the repository
825+
during deployment because that is the file's de facto community standard
826+
location.</p>
827+
<p><img src="theme/img/servers-versus-paas.png" width="100%" alt="Traditional LAMP server stack versus a Platform-as-a-Service stack" class="technical-diagram" /></p>
828+
<p>If you go the PaaS route, you can skip configuring an operating system
829+
and web server prebaked into PaaS offerings. PaaS offerings generally start
830+
at the WSGI server layer. </p>
831+
<h2>Platform-as-a-service responsibilities</h2>
832+
<p>Although PaaS offerings simplify setting up and maintaining the servers,
833+
operating system, and web server, developers still have responsibilities for other
834+
layers of their web stack.</p>
835+
<p>While it's useful to know the operating system that underpins your PaaS, for
836+
example Heroku uses Ubuntu 10.04, you will not have to know as much about
837+
securing the operating system and server level. However, web applications deployed
838+
to a PaaS are just as vulnerable to security breaches at the application level
839+
as a standard LAMP stack. It's still your responsibility to ensure the web
840+
application framework and your app itself is up to date and secured. See the
841+
<a href="../web-application-security.html">security section</a> for further information.</p>
842+
<h2>Platforms-as-a-service that support Python</h2>
843+
<ul>
844+
<li>
845+
<p><a href="http://www.heroku.com/">Heroku</a></p>
846+
</li>
847+
<li>
848+
<p><a href="https://developers.google.com/appengine/">Google App Engine</a></p>
849+
</li>
850+
<li>
851+
<p><a href="https://gondor.io/">Gondor</a></p>
852+
</li>
853+
<li>
854+
<p><a href="https://www.pythonanywhere.com/">PythonAnywhere</a></p>
855+
</li>
856+
<li>
857+
<p><a href="https://openshift.redhat.com/community/get-started/python&gt;">OpenShift</a></p>
858+
</li>
859+
<li>
860+
<p><a href="https://aws.amazon.com/elasticbeanstalk/">AWS Elastic Beanstalk</a></p>
861+
</li>
862+
</ul>
863+
<h2>Platform-as-a-service resources</h2>
864+
<ul>
865+
<li>
866+
<p><a href="http://appsembler.com/blog/paas-bakeoff-comparing-stackato-openshift-dotcloud-and-heroku-for-django-hosting-and-deployment/">PaaS bakeoff: Comparing Stackato, OpenShift, Dotcloud and Heroku for Django hosting and deployment</a> by <a href="https://twitter.com/natea">Nate Aune</a>.</p>
867+
</li>
868+
<li>
869+
<p><a href="http://www.deploydjango.com/">Deploying Django</a> by Randall Degges is
870+
another great free resource about Heroku.</p>
871+
</li>
872+
<li>
873+
<p>Heroku's
874+
<a href="https://devcenter.heroku.com/articles/getting-started-with-python">Python deployment documentation</a>
875+
provides clear examples for how to work with virtualenv, pip and
876+
requirementst.txt to get a applications deployed to their platform.</p>
877+
</li>
878+
<li>
879+
<p>Miguel Grinberg's Flask tutorial contains an entire post on deploying
880+
<a href="http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-xviii-deployment-on-the-heroku-cloud">Flask applications to Heroku</a>.</p>
881+
</li>
882+
<li>
883+
<p>This series on DevOps Django by
884+
<a href="https://twitter.com/rdegges">Randall Degges</a> is great reading for
885+
using the Heroku service:</p>
886+
<ul>
887+
<li><a href="http://www.rdegges.com/devops-django-part-1-goals/">Part One: Goals</a></li>
888+
<li><a href="http://www.rdegges.com/devops-django-part-2-the-pain-of-deployment/">Part Two: The Pain of Deployment</a></li>
889+
<li><a href="http://www.rdegges.com/devops-django-part-3-the-heroku-way/">Part Three: The Heroku Way</a></li>
890+
<li><a href="http://rdegges.com/devops-django-part-4-choosing-heroku">Part Four: Choosing Heroku</a></li>
891+
</ul>
892+
</li>
893+
</ul>
894+
<h2>Platform-as-a-service learning checklist</h2>
895+
<p><i class="fa fa-check-square-o"></i>
896+
Review the potential Python platform-as-a-service options above and on their
897+
websites.</p>
898+
<p><i class="fa fa-check-square-o"></i>
899+
Sign up for a PaaS account at the provider that appears to best fit your
900+
application needs. Heroku is the PaaS option recommended for starters due to
901+
their detailed documentation and walkthroughs available on the web. However,
902+
the other options are perfectly viable since their purpose is to make deploying
903+
applications as easy as possible.</p>
904+
<p><i class="fa fa-check-square-o"></i>
905+
Check if there are any PaaS-specific configuration files needed for your app
906+
to run properly on the PaaS after it is deployed.</p>
907+
<p><i class="fa fa-check-square-o"></i>
908+
Deploy your app to the PaaS. </p>
909+
<p><i class="fa fa-check-square-o"></i>
910+
Sync your application's configuration with the database.</p>
911+
<p><i class="fa fa-check-square-o"></i>
912+
Set up a content delivery network for your application's
913+
<a href="/static-content.html">static content</a> unless your PaaS provider already
914+
handles this deployment step for you.</p>
915+
<p><i class="fa fa-check-square-o"></i>
916+
Check if the application's functionality is working and tweak as necessary.</p>
917+
<h3>Do you want to use a PaaS or deploy to a traditional server?</h3>
811918
<h1>Operating Systems</h1>
812919
<p>An operating system runs on the server or virtual server and controls access
813920
to computing resources. The operating system also includes a way to install
@@ -1016,113 +1123,6 @@ <h2>Web servers learning checklist</h2>
10161123
Once you set up the <a href="/wsgi-servers.html">WSGI server</a> you'll need to configure
10171124
the web server as a pass through for dynamic content.</p>
10181125
<h3>What do you want to learn after the web server is set up?</h3>
1019-
<h1>Platform-as-a-service</h1>
1020-
<p>A platform-as-a-service (PaaS) provides infrastructure and a software layer
1021-
on which a web application is deployed. Running your web application from
1022-
a PaaS removes the need to know as much about the underlying servers,
1023-
operating system, web server, and often the WSGI server. </p>
1024-
<p><em>Note</em>: If you are not interested in deploying to a PaaS you can move
1025-
ahead to the <a href="../wsgi-servers.html">WSGI servers</a> section.</p>
1026-
<p>The PaaS layer defines how the application accesses resources such as
1027-
computing time, files, and external services. The PaaS provides a
1028-
higher-level abstraction for working with computing resources than deploying
1029-
an application to a server or IaaS.</p>
1030-
<p>A PaaS makes deployment and operations easier because it forces the developer
1031-
to conform applications to the PaaS architecture. For example, Heroku looks
1032-
for Python's requirements.txt file in the base directory of the repository
1033-
during deployment because that is the file's de facto community standard
1034-
location.</p>
1035-
<p><img src="theme/img/servers-versus-paas.png" width="100%" alt="Traditional LAMP server stack versus a Platform-as-a-Service stack" class="technical-diagram" /></p>
1036-
<p>If you go the PaaS route, you can skip configuring an operating system
1037-
and web server prebaked into PaaS offerings. PaaS offerings generally start
1038-
at the WSGI server layer. </p>
1039-
<h2>Platform-as-a-service responsibilities</h2>
1040-
<p>Although PaaS offerings simplify setting up and maintaining the servers,
1041-
operating system, and web server, developers still have responsibilities for other
1042-
layers of their web stack.</p>
1043-
<p>While it's useful to know the operating system that underpins your PaaS, for
1044-
example Heroku uses Ubuntu 10.04, you will not have to know as much about
1045-
securing the operating system and server level. However, web applications deployed
1046-
to a PaaS are just as vulnerable to security breaches at the application level
1047-
as a standard LAMP stack. It's still your responsibility to ensure the web
1048-
application framework and your app itself is up to date and secured. See the
1049-
<a href="../web-application-security.html">security section</a> for further information.</p>
1050-
<h2>Platforms-as-a-service that support Python</h2>
1051-
<ul>
1052-
<li>
1053-
<p><a href="http://www.heroku.com/">Heroku</a></p>
1054-
</li>
1055-
<li>
1056-
<p><a href="https://developers.google.com/appengine/">Google App Engine</a></p>
1057-
</li>
1058-
<li>
1059-
<p><a href="https://gondor.io/">Gondor</a></p>
1060-
</li>
1061-
<li>
1062-
<p><a href="https://www.pythonanywhere.com/">PythonAnywhere</a></p>
1063-
</li>
1064-
<li>
1065-
<p><a href="https://openshift.redhat.com/community/get-started/python&gt;">OpenShift</a></p>
1066-
</li>
1067-
<li>
1068-
<p><a href="https://aws.amazon.com/elasticbeanstalk/">AWS Elastic Beanstalk</a></p>
1069-
</li>
1070-
</ul>
1071-
<h2>Platform-as-a-service resources</h2>
1072-
<ul>
1073-
<li>
1074-
<p><a href="http://appsembler.com/blog/paas-bakeoff-comparing-stackato-openshift-dotcloud-and-heroku-for-django-hosting-and-deployment/">PaaS bakeoff: Comparing Stackato, OpenShift, Dotcloud and Heroku for Django hosting and deployment</a> by <a href="https://twitter.com/natea">Nate Aune</a>.</p>
1075-
</li>
1076-
<li>
1077-
<p><a href="http://www.deploydjango.com/">Deploying Django</a> by Randall Degges is
1078-
another great free resource about Heroku.</p>
1079-
</li>
1080-
<li>
1081-
<p>Heroku's
1082-
<a href="https://devcenter.heroku.com/articles/getting-started-with-python">Python deployment documentation</a>
1083-
provides clear examples for how to work with virtualenv, pip and
1084-
requirementst.txt to get a applications deployed to their platform.</p>
1085-
</li>
1086-
<li>
1087-
<p>Miguel Grinberg's Flask tutorial contains an entire post on deploying
1088-
<a href="http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-xviii-deployment-on-the-heroku-cloud">Flask applications to Heroku</a>.</p>
1089-
</li>
1090-
<li>
1091-
<p>This series on DevOps Django by
1092-
<a href="https://twitter.com/rdegges">Randall Degges</a> is great reading for
1093-
using the Heroku service:</p>
1094-
<ul>
1095-
<li><a href="http://www.rdegges.com/devops-django-part-1-goals/">Part One: Goals</a></li>
1096-
<li><a href="http://www.rdegges.com/devops-django-part-2-the-pain-of-deployment/">Part Two: The Pain of Deployment</a></li>
1097-
<li><a href="http://www.rdegges.com/devops-django-part-3-the-heroku-way/">Part Three: The Heroku Way</a></li>
1098-
<li><a href="http://rdegges.com/devops-django-part-4-choosing-heroku">Part Four: Choosing Heroku</a></li>
1099-
</ul>
1100-
</li>
1101-
</ul>
1102-
<h2>Platform-as-a-service learning checklist</h2>
1103-
<p><i class="fa fa-check-square-o"></i>
1104-
Review the potential Python platform-as-a-service options above and on their
1105-
websites.</p>
1106-
<p><i class="fa fa-check-square-o"></i>
1107-
Sign up for a PaaS account at the provider that appears to best fit your
1108-
application needs. Heroku is the PaaS option recommended for starters due to
1109-
their detailed documentation and walkthroughs available on the web. However,
1110-
the other options are perfectly viable since their purpose is to make deploying
1111-
applications as easy as possible.</p>
1112-
<p><i class="fa fa-check-square-o"></i>
1113-
Check if there are any PaaS-specific configuration files needed for your app
1114-
to run properly on the PaaS after it is deployed.</p>
1115-
<p><i class="fa fa-check-square-o"></i>
1116-
Deploy your app to the PaaS. </p>
1117-
<p><i class="fa fa-check-square-o"></i>
1118-
Sync your application's configuration with the database.</p>
1119-
<p><i class="fa fa-check-square-o"></i>
1120-
Set up a content delivery network for your application's
1121-
<a href="/static-content.html">static content</a> unless your PaaS provider already
1122-
handles this deployment step for you.</p>
1123-
<p><i class="fa fa-check-square-o"></i>
1124-
Check if the application's functionality is working and tweak as necessary.</p>
1125-
<h3>Do you want to use a PaaS or deploy to a traditional server?</h3>
11261126
<h1>WSGI Servers</h1>
11271127
<p>A <a href="http://wsgi.readthedocs.org/en/latest/">Web Server Gateway Interface</a>
11281128
(WSGI) server implements the web server side of the WSGI interface for

api-creation.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -448,9 +448,9 @@ <h3 class="panel-head">Table of Contents</h3>
448448
<a href="/other-web-frameworks.html" class="list-group-item smaller-item ">Other Web Frameworks</a>
449449
<a href="/deployment.html" class="list-group-item smaller-item ">Deployment</a>
450450
<a href="/servers.html" class="list-group-item smaller-item ">Servers</a>
451+
<a href="/platform-as-a-service.html" class="list-group-item smaller-item ">Platform-as-a-service</a>
451452
<a href="/operating-systems.html" class="list-group-item smaller-item ">Operating Systems</a>
452453
<a href="/web-servers.html" class="list-group-item smaller-item ">Web Servers</a>
453-
<a href="/platform-as-a-service.html" class="list-group-item smaller-item ">Platform-as-a-service</a>
454454
<a href="/wsgi-servers.html" class="list-group-item smaller-item ">WSGI Servers</a>
455455
<a href="/source-control.html" class="list-group-item smaller-item ">Source Control</a>
456456
<a href="/application-dependencies.html" class="list-group-item smaller-item ">Application Dependencies</a>

api-integration.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -394,9 +394,9 @@ <h3 class="panel-head">Table of Contents</h3>
394394
<a href="/other-web-frameworks.html" class="list-group-item smaller-item ">Other Web Frameworks</a>
395395
<a href="/deployment.html" class="list-group-item smaller-item ">Deployment</a>
396396
<a href="/servers.html" class="list-group-item smaller-item ">Servers</a>
397+
<a href="/platform-as-a-service.html" class="list-group-item smaller-item ">Platform-as-a-service</a>
397398
<a href="/operating-systems.html" class="list-group-item smaller-item ">Operating Systems</a>
398399
<a href="/web-servers.html" class="list-group-item smaller-item ">Web Servers</a>
399-
<a href="/platform-as-a-service.html" class="list-group-item smaller-item ">Platform-as-a-service</a>
400400
<a href="/wsgi-servers.html" class="list-group-item smaller-item ">WSGI Servers</a>
401401
<a href="/source-control.html" class="list-group-item smaller-item ">Source Control</a>
402402
<a href="/application-dependencies.html" class="list-group-item smaller-item ">Application Dependencies</a>

application-dependencies.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -471,9 +471,9 @@ <h3 class="panel-head">Table of Contents</h3>
471471
<a href="/other-web-frameworks.html" class="list-group-item smaller-item ">Other Web Frameworks</a>
472472
<a href="/deployment.html" class="list-group-item smaller-item ">Deployment</a>
473473
<a href="/servers.html" class="list-group-item smaller-item ">Servers</a>
474+
<a href="/platform-as-a-service.html" class="list-group-item smaller-item ">Platform-as-a-service</a>
474475
<a href="/operating-systems.html" class="list-group-item smaller-item ">Operating Systems</a>
475476
<a href="/web-servers.html" class="list-group-item smaller-item ">Web Servers</a>
476-
<a href="/platform-as-a-service.html" class="list-group-item smaller-item ">Platform-as-a-service</a>
477477
<a href="/wsgi-servers.html" class="list-group-item smaller-item ">WSGI Servers</a>
478478
<a href="/source-control.html" class="list-group-item smaller-item ">Source Control</a>
479479
<a href="/application-dependencies.html" class="list-group-item smaller-item active">Application Dependencies</a>

application-programming-interfaces.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -395,9 +395,9 @@ <h3 class="panel-head">Table of Contents</h3>
395395
<a href="/other-web-frameworks.html" class="list-group-item smaller-item ">Other Web Frameworks</a>
396396
<a href="/deployment.html" class="list-group-item smaller-item ">Deployment</a>
397397
<a href="/servers.html" class="list-group-item smaller-item ">Servers</a>
398+
<a href="/platform-as-a-service.html" class="list-group-item smaller-item ">Platform-as-a-service</a>
398399
<a href="/operating-systems.html" class="list-group-item smaller-item ">Operating Systems</a>
399400
<a href="/web-servers.html" class="list-group-item smaller-item ">Web Servers</a>
400-
<a href="/platform-as-a-service.html" class="list-group-item smaller-item ">Platform-as-a-service</a>
401401
<a href="/wsgi-servers.html" class="list-group-item smaller-item ">WSGI Servers</a>
402402
<a href="/source-control.html" class="list-group-item smaller-item ">Source Control</a>
403403
<a href="/application-dependencies.html" class="list-group-item smaller-item ">Application Dependencies</a>

best-python-resources.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -481,9 +481,9 @@ <h3 class="panel-head">Table of Contents</h3>
481481
<a href="/other-web-frameworks.html" class="list-group-item smaller-item ">Other Web Frameworks</a>
482482
<a href="/deployment.html" class="list-group-item smaller-item ">Deployment</a>
483483
<a href="/servers.html" class="list-group-item smaller-item ">Servers</a>
484+
<a href="/platform-as-a-service.html" class="list-group-item smaller-item ">Platform-as-a-service</a>
484485
<a href="/operating-systems.html" class="list-group-item smaller-item ">Operating Systems</a>
485486
<a href="/web-servers.html" class="list-group-item smaller-item ">Web Servers</a>
486-
<a href="/platform-as-a-service.html" class="list-group-item smaller-item ">Platform-as-a-service</a>
487487
<a href="/wsgi-servers.html" class="list-group-item smaller-item ">WSGI Servers</a>
488488
<a href="/source-control.html" class="list-group-item smaller-item ">Source Control</a>
489489
<a href="/application-dependencies.html" class="list-group-item smaller-item ">Application Dependencies</a>

0 commit comments

Comments
 (0)