You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Move to the <ahref="/operating-systems.html">operating systems</a> section to learn
809
809
how to load Ubuntu 12.04 LTS as a base OS for Python web applications.</p>
810
810
<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 <ahref="../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><imgsrc="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
+
<ahref="../web-application-security.html">security section</a> for further information.</p>
842
+
<h2>Platforms-as-a-service that support Python</h2>
<p><ahref="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 <ahref="https://twitter.com/natea">Nate Aune</a>.</p>
867
+
</li>
868
+
<li>
869
+
<p><ahref="http://www.deploydjango.com/">Deploying Django</a> by Randall Degges is
Once you set up the <ahref="/wsgi-servers.html">WSGI server</a> you'll need to configure
1017
1124
the web server as a pass through for dynamic content.</p>
1018
1125
<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 <ahref="../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><imgsrc="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
-
<ahref="../web-application-security.html">security section</a> for further information.</p>
1050
-
<h2>Platforms-as-a-service that support Python</h2>
<p><ahref="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 <ahref="https://twitter.com/natea">Nate Aune</a>.</p>
1075
-
</li>
1076
-
<li>
1077
-
<p><ahref="http://www.deploydjango.com/">Deploying Django</a> by Randall Degges is
0 commit comments