Local versus the cloud
There are some key differences to keep in mind when developing software applications versus cloud-based web applications:
- Installation: Traditional software needs to be installed on local machines or servers. This includes copying files, setting permissions, possibly configuring settings, and other setup steps. Web apps hosted on cloud platforms such as AWS, GCP, and Azure are deployed and managed by the cloud provider. No local installation is required.
- Updates: Software updates typically require manual installation on all machines where the application is installed. Web apps hosted on the cloud are automatically updated when developers push new code deployments. Users always get the latest version without any manual work.
- Scalability: Servers hosting traditional software applications would require manual configuration to scale resources up or down as needed. Cloud infrastructure is infinitely scalable on demand through API calls or automatic scaling policies. More or less CPU, memory, disk space, and more can be allocated programmatically.
- Availability: Uptime depends on local infrastructure for traditional software. Downtime can occur due to issues with individual servers, networking equipment, database servers, and more. Web apps benefit from the high availability of scalable cloud infrastructure. Regions, availability zones, and replication help minimize outages.
- Mobility: Traditional software is accessed through dedicated desktop or mobile applications. Web apps are accessible through any modern browser on any internet-connected device. This includes laptops, phones, tablets, TVs, watches, and more.
- Collaboration: Multiple developers can work together simultaneously, editing code and deploying updates to web apps hosted on version control repositories and cloud hosting services. Edits to code bases are easily synced through source version control systems such as Git. Concurrent editing exposes opportunities for conflicts in traditional development workflows.
- Costs: Significant upfront costs are typically associated with purchasing and maintaining hardware and software licenses for traditional infrastructure. Cloud computing is based on a pay-per-use model with costs that can be reduced by scaling down or turning off unused resources. No large capital expenses are required. Resources can be scaled on-demand as needs evolve.
To summarize, developing web applications on cloud platforms differs from building traditional software installations in key ways. Web apps are often easier to deploy, update, scale, and make highly available and mobile, involve more concurrent collaboration, and have lower upfront costs and more adjustable pricing models.
As we can see, cloud platforms have a lot of advantages and should be our first choice. Now, let’s delve a little bit deeper and look at the differences and specific features of the most popular Python libraries for web applications.