Skip to content

Commit 87ebdca

Browse files
committed
updates to serverless page
1 parent bb4fb4e commit 87ebdca

File tree

2 files changed

+80
-6
lines changed

2 files changed

+80
-6
lines changed

content/pages/08-web-app-deployment/35-serverless.markdown

Lines changed: 79 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,11 @@ meta: Serverless is an deployment architecture where servers are not explicitly
88

99

1010
# Serverless
11-
Serverless is an [deployment](/deployment.html) architecture where
12-
[servers](/servers.html) are not explicitly provisioned. Code is instead
13-
executed based on developer-defined events as they happen, such as an
14-
incoming HTTP request or a new line written to a file.
11+
Serverless is a [deployment](/deployment.html) architecture where
12+
[servers](/servers.html) are not explicitly provisioned by the deployer.
13+
Code is instead executed based on developer-defined events that are
14+
triggered, for example when an HTTP POST request is sent to an
15+
[API](/application-programming-interfaces.html) a new line written to a file.
1516

1617

1718
## How can code be executed "without" servers?
@@ -22,6 +23,50 @@ the developer and handled by a compute platform such as
2223

2324
<img src="/img/visuals/serverless.png" width="100%" alt="Serverless compute spectrum." class="technical-diagram">
2425

26+
Think about deploying code as a spectrum, where on one side you build your
27+
own server from components, hook it up to the internet with a static IP
28+
address, connect the IP address to DNS and start serving requests. The
29+
hardware, operating system, web server, WSGI server, etc are all completely
30+
controlled by you. On the opposite side of the spectrum are serverless
31+
compute platforms that take Python code and execute it without you ever
32+
touching hardware or even knowing what operating system it runs on.
33+
34+
In between those extremes are levels that remove the need to worry about
35+
hardware (virtual private servers), up through removing concerns about
36+
web servers (platforms-as-a-service). Where you fall on the spectrum for
37+
your deployment will depend on your own situation. Serverless is simply
38+
the newest and most extreme of these deployment models so it is up to you
39+
as to how much complexity you want to take on with the deployment versus
40+
your control over each aspect of the hardware and software.
41+
42+
43+
### Serverless implementations
44+
Each major cloud vendor has a serverless compute implementation.
45+
These implementations are under significant active developer
46+
and not all of them have Python support.
47+
48+
* [AWS Lambda](/aws-lambda.html) is the current leader among serverless
49+
compute implementations. It has support for both
50+
[Python 2.7](/blog/aws-lambda-python-2-7.html) and
51+
[Python 3.6](/blog/aws-lambda-python-3-6.html).
52+
53+
* Azure Functions has second-class citizen support for Python. It's
54+
supposed to be possible but
55+
[kind of hacky at the moment](https://github.com/Azure/azure-webjobs-sdk-script/issues/335).
56+
Polyglot support should be quickly coming to Azure to better
57+
compete with AWS Lambda.
58+
59+
* IBM Bluemix OpenWhisk is based on the
60+
[Apache OpenWhisk open source project](https://github.com/openwhisk/openwhisk).
61+
62+
* [Google Cloud Functions](/google-cloud-functions.html) currently
63+
only supports JavaScript code execution.
64+
65+
* Webtask.io also only supports JavaScript but there is a cool
66+
*prototype* project named [webtask-pytask](https://github.com/tehsis/webtask-pytask)
67+
to run Python code in the browser via webtask. This demo is definitely not
68+
for production code use but awesome to see what the programming community
69+
can put together using existing code and services.
2570

2671

2772
### General serverless resources
@@ -36,14 +81,42 @@ out how to structure and operate serverless applications.
3681

3782
* [The (fixable) problem with serverless](https://www.iopipe.com/2016/06/the-fixable-problem-with-serverless/)
3883

39-
* [On Serverless, Multi-Cloud, and Vendor Lock In](https://blog.symphonia.io/on-serverless-multi-cloud-and-vendor-lock-in-da930b3993f)
40-
4184
* [Serverless architectures](http://martinfowler.com/articles/serverless.html)
4285

4386
* [Why the fuss about serverless?](https://hackernoon.com/why-the-fuss-about-serverless-4370b1596da0)
87+
is a wide-ranging post about the history of application development and
88+
infrastructure. The timeline is a bit hard to follow but otherwise it's
89+
a unique look at why software deployments are moving to serverless-based
90+
architectures and the advantages that can provide.
4491

4592
* [Serverless architectures in short](https://specify.io/concepts/serverless-architecture)
4693

4794
* [Cloud first, serverless second](https://hackernoon.com/cloud-first-serverless-second-1c086f282326)
4895

4996
* [Serverless architectures, five design patterns](https://thenewstack.io/serverless-architecture-five-design-patterns/)
97+
98+
99+
### Serverless vendor lock-in?
100+
There is some concern by organizations and developers about vendor lock-in
101+
on serverless platforms. It is unclear if portability is worse for
102+
serverless than other infrastructure-as-a-service pieces, but still worth
103+
thinking about ahead of time. These resources provide additional
104+
perspectives on lock-in and using multiple cloud providers.
105+
106+
* [On Serverless, Multi-Cloud, and Vendor Lock In](https://blog.symphonia.io/on-serverless-multi-cloud-and-vendor-lock-in-da930b3993f)
107+
is an opinion piece that for *most* cases the additional work of
108+
going multi-cloud is not worth the tradeoffs, therefore at this time
109+
it's better to go for a single vendor such as AWS or Azure and optimize
110+
on that platform.
111+
112+
* [Why vendor lock-in with serverless isn’t what you think it is](https://medium.com/@PaulDJohnston/why-vendor-lock-in-with-serverless-isnt-what-you-think-it-is-d6be40fa9ca9)
113+
is a short piece that also recommends using a single vendor for
114+
now and stop worrying about hedging your bets because it typically
115+
makes your infrastructure significantly more complex.
116+
117+
* [The (Fixable) Problem with Serverless](https://www.iopipe.com/2016/06/the-fixable-problem-with-serverless/)
118+
is a bit of a marketing piece but it introduces
119+
[the IOPipe open source projects](https://github.com/iopipe)
120+
that are designed as an abstraction layer for running on multiple
121+
serverless cloud platforms.
122+

content/pages/12-meta/01-change-log.markdown

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ inception in December 2012. You can view detailed changes via the
1515

1616
## 2017
1717
### April
18+
* New [Serverless compute](/serverless.html) concept page.
1819
* Two new blog posts, one for
1920
[Python 2.7 on AWS Lambda](/blog/aws-lambda-python-2-7.html)
2021
and another on

0 commit comments

Comments
 (0)