Cloud Computing
Cloud computing provides computing resources over a network. Instead of running entirely on a personal computer, an application can use remote systems for processing, storage, networking, databases, and other services.
For people learning software development, cloud computing makes it possible to share projects, store information remotely, support multiple users, and keep applications available when a personal computer is turned off.
Many introductory cloud projects can be explored with low-cost or limited resources, making the basic concepts accessible to beginners.
From Local Development to the Cloud
Write and Test Locally
↓
Deploy to a Remote Environment
↓
Application Receives Requests
↓
Cloud Resources Process and Store Data
↓
Users Access the ApplicationThe cloud does not replace local development. Developers often create and test software on their own computers before deploying it to remote systems where other people can use it.
Why Learn Cloud Computing?
Cloud computing supports websites, web applications, mobile services, programming interfaces, data platforms, artificial intelligence systems, and business applications.
It allows teams to access computing resources when they need them and adjust those resources as demand changes. Learning cloud computing helps developers understand how modern applications are deployed, operated, monitored, and scaled beyond a single computer.
Remote Computing Environments
Cloud environments provide remote access to resources such as processing power, memory, storage, networking, and operating systems.
Developers can choose environments based on the requirements of a project. A small application may need only a modest amount of processing and storage, while a larger system may require multiple computing resources working together.
Choosing appropriate resources involves balancing performance, cost, reliability, security, and expected demand.
Cloud Service Types
Cloud services can provide different levels of control and responsibility.
Infrastructure Services
Developers manage more of the operating environment
Managed Application Services
The cloud environment manages more of the underlying systems
Ready-to-Use Services
Developers use a specific capability without managing its infrastructureThe more of the underlying environment a service manages, the less infrastructure work developers may need to perform. However, this can also reduce control over how the system operates.
Data Storage
Applications often need persistent storage for user accounts, settings, documents, messages, media, and other information.
Cloud-based storage allows data to remain available across devices and locations. Different storage systems may be suited to structured records, files, logs, backups, or frequently accessed information.
Reliable cloud applications also consider data protection, backups, recovery, access control, and the possibility of temporary service failures.
Application Services
Many applications use remote services to process requests, manage authentication, send notifications, analyze data, or coordinate communication between different components.
Separating application logic from the user interface allows the same processing to support web browsers, mobile applications, automated systems, and other clients.
Cloud applications may also be divided into multiple services so that different parts can be developed, operated, and scaled independently.
Deployment and Distribution
Deployment is the process of making an application available in a remote environment where users or other systems can access it.
Reliable deployment practices help teams deliver updates consistently and reduce the risk of interrupting the application. They may include automated testing, repeatable configuration, health checks, backups, and recovery procedures.
Supporting systems can also improve performance by storing frequently requested content closer to users or distributing requests across multiple computing resources.
Scaling and Reliability
Cloud applications may need to handle changing levels of demand. Scaling involves adjusting resources so that an application can continue working as usage increases or decreases.
Some systems scale by adding more processing capacity to one environment. Others distribute work across multiple environments to improve performance and availability.
Reliability also depends on monitoring, sensible system design, backups, failure recovery, and planning for situations where an individual resource becomes unavailable.
Security and Shared Responsibility
Cloud computing does not remove the need for security. Developers and organizations must still protect application code, user data, credentials, access permissions, and network communication.
Responsibility is shared between the provider of the cloud environment and the people building the application. The exact responsibilities depend on the services being used, but developers remain responsible for securely designing and operating their software.
Getting Started
Begin by deploying a small application to a remote computing environment and comparing it with running the same project on your own computer.
Then explore remote storage, application services, monitoring, security, deployment, and scaling one concept at a time. These experiments provide a practical foundation for building and operating increasingly capable cloud-based applications.
