topic: Introduction cloud computing

Cloud computing is a rapidly growing field in the world of technology and plays a crucial role in many aspects of modern software development. It is the on-demand delivery of IT resources over the Internet with a pay-as-you-go pricing model. Instead of owning and maintaining their own computing infrastructure or data centres, companies can access technology services, such as computing power, storage, and databases, on an as-needed basis from a cloud provider.

There are three main types of cloud computing service models:

  1. Infrastructure as a Service (IaaS): This is the most basic category of cloud computing services. With IaaS, you rent IT infrastructure - servers and virtual machines (VMs), storage, networks, and operating systems - from a cloud provider.

  2. Platform as a Service (PaaS): PaaS is a step up from IaaS and includes the infrastructure—servers, storage, and networks—but also middleware, development tools, business intelligence (BI) services, database management systems, and more. It’s used to develop, test, and manage software applications.

  3. Software as a Service (SaaS): With SaaS, you get to use the cloud provider’s applications running on their infrastructure. The applications are accessible from various client devices through either a web browser or a program interface.

Benefits

Key benefits of cloud computing include:

  • Cost Savings: Cloud computing eliminates the capital expense of buying hardware and software and setting up and running on-site data centres.
  • Speed & Efficiency: Most cloud computing services are self-service and on-demand, so vast amounts of computing resources can be provisioned in minutes.
  • Global Scale: Cloud computing services often include the ability to scale elastically. This means delivering the right amount of IT resources— for example, more or less computing power, storage, and bandwidth—right when they’re needed and from the right geographic location.
  • Performance: The biggest cloud computing services run on a worldwide network of secure data centres, which are upgraded to the latest generation of fast and efficient computing hardware. This offers several benefits over a single corporate data centre.
  • Reliability: Cloud computing makes data backup, disaster recovery, and business continuity easier and less expensive because data can be mirrored at multiple redundant sites on the cloud provider’s network.
  • Security: Many cloud providers offer a set of policies, technologies, and controls that strengthen your security posture overall, helping protect data, apps, and infrastructure from potential threats.

Cloud computing has become the default choice for many apps, whether they’re consumer services like email or video streaming or enterprise applications like CRM, data analytics, and machine learning. As such, understanding cloud computing is an essential skill for anyone interested in the software development industry.

Resources

Give these a read:

Cloud providers: The Big 3

The major cloud computing providers are Amazon Web Services (AWS), Microsoft Azure, and Google Cloud Platform (GCP). They all have their pros and cons. It can be very hard to choose between them so many people take a bit of a shortcut and choose the service provider that has the widest array of products. This is not a good way to choose.

Here are some high-level factors you may want to consider:

  • Cost: Cloud providers have different pricing models, which could be based on data storage, compute power, data transfer, or other cloud services. It’s important to thoroughly understand each provider’s pricing structure to estimate the total cost of ownership (TCO).
  • Developer Experience: The developer experience can vary greatly between cloud providers. This includes the quality of the API and SDKs, ease of use of the console, availability of development tools, and the learning curve for your team. If your team is already experienced with a certain cloud provider’s tools and services, it might be more cost-effective and efficient to stick with that provider.
  • Services Offered: Not all cloud providers offer the same services. Some might excel in machine learning and AI services, while others could have better options for serverless computing or data analytics. It’s essential to evaluate your specific needs and compare them with the services provided by each cloud provider.
  • Performance: Performance can be a critical factor depending on your application’s needs. Some applications might require high computational power, low latency, or high-speed data transfer. It’s important to consider these factors when evaluating cloud providers. All major cloud providers will be able to supply high-performance services, but performance comes at a cost.
  • Scalability: A significant advantage of cloud computing is the ability to scale resources up or down based on demand. However, the ease of scaling, cost implications, and performance at scale can vary between providers. For example, if you use serverless products to host your application then scaling up can be very expensive.
  • Security: Security is paramount when it comes to cloud services. Review the security measures of each cloud provider, including their compliance certifications, data encryption methods, and security services available.
  • Support and SLA: Consider the support options and Service Level Agreements (SLAs) offered by each cloud provider. The level of support and the guaranteed uptime can make a significant difference in your overall experience.
  • Data Center Locations: The physical location of data centres can impact latency and data sovereignty. If your users are primarily located in a specific region, it might be beneficial to choose a cloud provider with data centres in or near that region.
  • Community and Ecosystem: A vibrant community and ecosystem can be very valuable. This includes available third-party integrations, community resources, and the overall size of the developer community.
  • Lock-in: Many cloud service providers have products that only they support. That means that if you wanted to move your application to another service provider you could struggle. If you want to maintain your ability to switch cloud service providers or even make use of multiple cloud service providers for one application then it is important to look at what you can and cannot move.

It’s also worth considering the possibility of a multi-cloud strategy, where you use different providers for different needs, to take advantage of each provider’s strengths. However, this can also add complexity in terms of management and integration.

If you do need to choose between providers, you may want to carry out a proof-of-concept project with the shortlisted providers to evaluate their performance in a real-world scenario.

Further learning

If you are interested in going deeper, take a look at this course


RAW CONTENT URL