GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing www.fullstackpython.com — Serverless ServerlessServerless is a deployment architecture where servers are not explicitly provisioned by the deployer. Code is instead executed based on developer-defined events that are triggered, for example when an HTTP POST request is sent to an API a new line written to a file. How can code be executed "without" servers?Servers still exist to execute the code but they are abstracted away from the developer and handled by a compute platform such as Amazon Web Services Lambda or Google Cloud Functions.
Think about deploying code as a spectrum, where on one side you build your own server from components, hook it up to the internet with a static IP address, connect the IP address to DNS and start serving requests. The hardware, operating system, web server, WSGI server, etc are all completely controlled by you. On the opposite side of the spectrum are serverless compute platforms that take Python code and execute it without you ever touching hardware or even knowing what operating system it runs on. In between those extremes are levels that remove the need to worry about hardware (virtual private servers), up through removing concerns about web servers (platforms-as-a-service). Where you fall on the spectrum for your deployment will depend on your own situation. Serverless is simply the newest and most extreme of these deployment models so it is up to you as to how much complexity you want to take on with the deployment versus your control over each aspect of the hardware and software. Serverless implementationsEach major cloud vendor has a serverless compute implementation. These implementations are under significant active development and not all of them have Python support.
Serverless frameworksServerless libraries and frameworks aim to provide reusable code that handles common or tedious tasks, similar to how web frameworks deal with common web development tasks. Some of these frameworks are built for a single service like AWS Lambda, while others attempt to make cross-serverless operations more palatable. Frameworks for building Python-based applications on serverless services include:
General serverless resourcesServerless concepts and implementations are still in their early iterations so there are many ideas and good practices yet to be discovered. These resources are the first attempts at figuring out how to structure and operate serverless applications.
Serverless environment comparsionsThe "big 3" serverless platforms, AWS Lambda, Azure Functions and Google Cloud Functions have varying degrees of support for Python. AWS Lambda has production-ready support for Python 2 and 3.7, while Azure and Google Cloud have "beta" support with unclear production-worthiness. The following resources are some comparison articles to help you in your decision-making process for which platform to learn. Microsoft Azure Functions vs. Google Cloud Functions vs. AWS Lambda presents an overview of Azure Functions and how they compare to Google Cloud Functions and AWS Lambda. Serverless vendor lock-in?There is some concern by organizations and developers about vendor lock-in on serverless platforms. It is unclear if portability is worse for serverless than other infrastructure-as-a-service pieces, but still worth thinking about ahead of time. Why vendor lock-in with serverless isn’t what you think it is is a piece on this topic that recommends using a single vendor for now and for organizations to stop worrying about hedging their bets because it typically makes infrastructure significantly more complex. What else do you want to learn about serverless and deployments?
1. Introduction
2. Development Environments
3. Data
4. Web Development
5. Deployment
Hosting
Servers
Static Content
CDNs
Virtual Private Servers
Linode
DigitalOcean
Lightsail
Platform-as-a-Service
Heroku
PythonAnywhere
AWS CodeStar
Operating Systems
Ubuntu
macOS
Windows
FreeBSD
Web Servers
Apache HTTP Server
Nginx
Caddy
WSGI Servers
Green Unicorn (Gunicorn)
mod_wsgi
uWSGI
Continuous Integration
Jenkins
GoCD
Configuration Management
Ansible
Salt
Containers
Docker
Kubernetes
Serverless
AWS Lambda
Azure Functions
Google Cloud Functions
6. DevOps
Changelog
What Full Stack Means
About the Author
Future Directions
Page Statuses
...or view the full table of contents.
Full Stack Python
Full Stack Python
is an open book that explains concepts in plain language and provides
helpful resources for those topics.
Updates via Twitter & Facebook. |
| You are visitor 01402503 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |