Cloud computing
Cloud computing explained
What is cloud computing?
At its core, cloud computing refers to the on-demand delivery of IT resources – including servers, storage, databases, networking, software, analytics, and intelligence– over the internet (‘the cloud’) with pay-as-you-go pricing. Instead of owning and maintaining your own computing infrastructure, you can access these services from a cloud provider like SURF or a public cloud vendor.
Difference between HPC and cloud
While both High-Performance Computing (HPC) and cloud computing offer significant computational power, they serve different primary purposes and have distinct architectures:
- HPC (High-Performance Computing): Traditionally designed for tightly coupled, computationally intensive tasks that require massive parallel processing and low-latency interconnects. HPC systems are optimised for specific scientific simulations, large-scale data analysis, and complex modeling where speed and efficiency for a single large job are paramount. They often involve specialised hardware and are typically used for ‘scale-up"’ problems.
- Cloud computing: Offers a more flexible, scalable, and often virtualised environment. It’s ideal for a wide range of workloads, including web applications, data analytics, development and testing, and general IT infrastructure. Cloud excels in ‘scale-out’ scenarios, where many independent tasks can run concurrently across numerous virtual machines or containers. Its on-demand nature and pay-per-use model provide agility and cost-effectiveness for varying workloads.
What are the benefits of cloud?
For higher education and research, the benefits of cloud computing are substantial:
- Scalability and flexibility: Easily scale resources up or down based on project needs, without significant upfront investment in hardware. This is crucial for fluctuating research demands or varying student workloads.
- Cost-effectiveness: Reduce capital expenditures on hardware and infrastructure maintenance. Pay only for the resources you consume.
- Accessibility: Access computing resources and data from anywhere, at any time, fostering collaboration among researchers and students across institutions and geographical locations.
- Innovation and agility: Rapidly deploy new services, experiment with different technologies, and accelerate research cycles.
- Reliability and security: Cloud providers often offer robust security measures and high availability, ensuring data integrity and service continuity.
- Focus on core mission: Shift the burden of infrastructure management to cloud providers, allowing researchers and educators to focus on their core academic and scientific pursuits.
What are the best-known cloud technologies?
Cloud services are broadly categorised into three main types:
- IaaS (Infrastructure as a Service): Provides the fundamental building blocks of cloud IT. You rent IT infrastructure– servers, virtual machines (VMs), storage, networks, operating systems– from a cloud provider. You manage your applications, data, runtime, and middleware. Examples include SURF Research Cloud, Amazon EC2, and Google Compute Engine.
- PaaS (Platform as a Service): Offers a complete development and deployment environment in the cloud, with resources that enable you to deliver everything from simple cloud-based applications to sophisticated enterprise applications. The provider manages the underlying infrastructure, including servers, storage, and networking, while you focus on your application code and data. Examples include Google App Engine, AWS Elastic Beanstalk.
- SaaS (Software as a Service): Delivers software applications over the internet, on demand and typically on a subscription basis. The cloud provider hosts and manages the software application and underlying infrastructure and handles any maintenance. Users simply connect to it over the internet. Examples include SURFdrive, Gmail, and Microsoft 365.
The differences between these categories can be well explained by what parts of the technology stack are managed by the cloud service provider. This can be seen in the picture below. In SaaS the cloud provider manages the entire stack and is responsible for security, data integrity, availability, etc.
What is cloud native?
Cloud native is an approach to building and running applications that fully leverages the advantages of the cloud computing delivery model. It's about designing applications that are specifically optimized for cloud environments, often using technologies like containers, microservices, and serverless functions.
The key benefits of cloud native
A key benefit of cloud native development are portability and reduced vendor lock-in. When applications are designed to be cloud native, they are relatively easy to move between different cloud environments (e.g., from one public cloud to another, or to a hybrid cloud setup), providing greater flexibility and an exit strategy if circumstances change.
Another benefit is the ability to scale applications with demand. When demand is high, an application should have more resources available than when demand is low. The ability to scale elastically with demand is a key feature of cloud native applications.