Shouting at clouds? Or Cloud Computing by Stu Coates, CTO of Finerva

I’ve been asked to write an article about Cloud Computing. Well, where do I start? While I have been using various aspects of what is now known as cloud computing for in excess of 30 years, I thought it would be interesting to make use of one of the most recent advances available (as of March 2023) as an experiment, to aid the discussion, and prevent the article resembling The Simpsons “Old Man Yells at Cloud” meme. The system is one which you may have heard of: ChatGPT.
ChatGPT describes itself as: “I am a computer program designed to understand and respond to human language. You can ask me questions or give me commands, and I will do my best to provide helpful responses based on my programming and knowledge.”
…and when asked to be a little more specific, it says: “I am a language model developed by OpenAI, a research organization that specializes in artificial intelligence. I am based on a deep learning architecture called GPT (Generative Pre-trained Transformer) and trained on a massive amount of text data to be able to generate human-like responses to a wide range of prompts and questions. You can learn more about OpenAI and their research on their website“.
ChatGPT is far from perfect, and sometimes produces incorrect information, which I have attempted to correct along the way by rephrasing the questions. That said, the responses to some of my questions are reproduced verbatim below.
The current version of ChatGPT is trained with data as of September 2021, so has no knowledge of any data or events since then.
So, let’s get started…
Can you, in simple terms, describe what is meant by the term cloud computing?
Sure! Cloud computing refers to the practice of using remote servers, usually accessed over the internet, to store, manage, and process data rather than using a local server or personal computer. Essentially, it’s like renting computing resources such as servers, storage, and software from a provider instead of owning and managing them yourself. Cloud computing offers benefits such as scalability, cost savings, and accessibility from anywhere with an internet connection. Common examples of cloud computing services include web-based email, file storage, and software applications like Google Drive and Microsoft Office 365.
What are the origins of the term “Cloud Computing”?
The term “cloud computing” has been used in various contexts for many years, but it is believed to have been popularized in the early 2000s by companies like Amazon and Google that began offering cloud computing services.
The specific origins of the term “cloud computing” are not entirely clear, but one theory is that it was inspired by the use of cloud-shaped symbols to represent the internet in network diagrams. Another theory is that it may have been influenced by the use of the term “cloud” to refer to the internet in telecommunications circles in the 1990s.
The concept of cloud computing, however, can be traced back to the 1960s, when computer scientist John McCarthy proposed that computing resources could be shared as a utility, similar to electricity. In the 1990s, companies began offering hosting services, where users could rent space on servers to host their websites and applications. Over time, this evolved into the modern cloud computing model, where users can rent computing resources, storage, and software applications on a pay-as-you-go basis from remote data centers accessed over the internet.
What role did data processing bureaus have in the early days?
Data processing bureaus played a significant role in the early days of computing, and their role can be traced back to the 1950s and 1960s. At that time, computing resources were expensive and often only available to large organizations such as governments and large corporations. These organizations would often outsource their data processing needs to data processing bureaus, which were specialized service providers that offered computing resources and services to their clients.
Data processing bureaus were essentially the predecessors to modern-day cloud computing providers. They would typically have large mainframe computers and offer services such as data entry, data processing, and printing. Clients would send their data to the bureau, either through physical means such as magnetic tapes or via dedicated phone lines, and the bureau would process the data and return the results to the client.
Data processing bureaus were able to offer computing services at a lower cost than if clients had to buy and maintain their own computing infrastructure. They were also able to offer specialized services and expertise that their clients might not have had in-house. The rise of the internet and advances in computing technology eventually led to the development of cloud computing as we know it today, but data processing bureaus played an important role in laying the groundwork for the concept of outsourcing computing services to third-party providers.
Most people are familiar with the term “SaaS”, but what are the other main types of cloud computer service?
In addition to Software as a Service (SaaS), there are two other main types of cloud computing services: Infrastructure as a Service (IaaS) and Platform as a Service (PaaS).
- Infrastructure as a Service (IaaS): With IaaS, cloud providers offer users computing resources such as virtual machines, storage, and networks, which they can use to build and manage their own IT infrastructure. Essentially, IaaS allows users to rent computing resources from a provider rather than owning and maintaining them themselves. Examples of IaaS providers include Amazon Web Services (AWS), Microsoft Azure, and Google Cloud Platform.
- Platform as a Service (PaaS): PaaS provides users with a platform for developing, testing, and deploying applications, without the need to manage the underlying infrastructure. Essentially, PaaS providers offer a complete development and deployment environment that can be accessed over the internet. Users can focus on developing their applications, while the PaaS provider manages the infrastructure, operating system, and middleware. Examples of PaaS providers include Heroku, Google App Engine, and Microsoft Azure.
Overall, cloud computing offers a wide range of services, and many providers offer a mix of different services to meet the needs of their customers.
What are the advantages and disadvantages of choosing IaaS over PaaS and vis versa?
Choosing between Infrastructure as a Service (IaaS) and Platform as a Service (PaaS) largely depends on the specific needs of the user. Here are some of the advantages and disadvantages of each:
Advantages of IaaS:
- Flexibility: With IaaS, users have more control over their IT infrastructure and can customize it to meet their specific needs. They can choose the operating system, middleware, and applications they want to use.
- Scalability: IaaS allows users to scale their infrastructure up or down as needed, depending on demand. This makes it a good option for businesses with fluctuating workloads.
- Cost-effectiveness: Since users only pay for the resources they use, IaaS can be more cost-effective than buying and maintaining their own infrastructure.
Disadvantages of IaaS:
- Management: With IaaS, users are responsible for managing and maintaining their infrastructure, which can be time-consuming and require technical expertise.
- Complexity: Since IaaS gives users more control over their infrastructure, it can be more complex to set up and configure than PaaS.
Advantages of PaaS:
- Ease of use: PaaS providers offer pre-configured environments that make it easy for users to develop and deploy applications. This makes it a good option for developers who don’t want to deal with the complexity of managing infrastructure.
- Time savings: PaaS providers take care of the underlying infrastructure, so users can focus on developing and deploying their applications. This can save time and resources.
- Scalability: Like IaaS, PaaS providers offer scalability, allowing users to scale up or down as needed.
Disadvantages of PaaS:
- Less control: Since PaaS providers manage the underlying infrastructure, users have less control over their environment. This can be limiting for users who need specific configurations or software.
- Vendor lock-in: Users may be limited to the services and tools offered by the PaaS provider, which can make it difficult to switch providers.
Overall, choosing between IaaS and PaaS depends on the specific needs and preferences of the user. IaaS offers more flexibility and control, while PaaS offers ease of use and time savings.
What are the advantages and disadvantages of using cloud computing services for start-up and scale-up companies?
Cloud computing services can offer many advantages for start-up and scale-up companies, but there are also some potential disadvantages to consider. Here are some of the advantages and disadvantages:
Advantages:
- Cost savings: Cloud computing services can be more cost-effective than investing in expensive hardware and software upfront. This can be especially beneficial for start-up and scale-up companies with limited budgets.
- Scalability: Cloud services can be scaled up or down quickly to meet changing needs. This means that companies can easily increase their resources as they grow, without having to invest in additional hardware and software.
- Access to advanced technologies: Cloud service providers often offer access to cutting-edge technologies that might be too expensive for smaller companies to develop and maintain on their own.
- Remote work capabilities: Cloud services allow employees to access data and applications from anywhere, making remote work easier and more efficient.
Disadvantages:
- Dependency on third-party providers: Companies that rely heavily on cloud services may become overly dependent on third-party providers, which can create potential risks if those providers experience downtime or other issues.
- Security concerns: Cloud services may pose security risks if data is not properly protected. This can be especially concerning for companies that handle sensitive information.
- Limited control over infrastructure: Cloud service users have limited control over the underlying infrastructure, which can make it difficult to troubleshoot issues or customize configurations.
- Potential data loss: There is always a risk of data loss or data breaches when working with cloud services. Companies need to take steps to protect their data and ensure that they have proper backup procedures in place.
Overall, cloud computing services can be a valuable resource for start-up and scale-up companies, but it is important to carefully consider the potential advantages and disadvantages before making a decision. Companies should evaluate their specific needs and determine whether cloud services are the right fit for their business.
Does choosing to use cloud computing services reduce the need for technical staff?
Choosing to use cloud computing services can potentially reduce the need for technical staff, but it depends on the specific services and how they are used. Here are some factors to consider:
- Type of cloud service: Some cloud services, such as SaaS (Software as a Service), require little to no technical expertise to use. This means that companies may not need as many technical staff members to maintain and manage these services. However, other types of cloud services, such as IaaS (Infrastructure as a Service), may require more technical expertise to manage.
- Level of customization: Cloud services typically offer a range of customization options, and the level of technical expertise required to make use of these options can vary. Companies that require a high degree of customization may still need technical staff to manage and maintain their cloud services.
- Integration with other systems: Companies that use cloud services may still need technical staff to manage integrations with other systems, such as on-premises applications or databases. This can be especially true for companies with complex IT environments.
- Management of security and compliance: Cloud services may offer built-in security and compliance features, but companies are still responsible for ensuring that their data is properly protected and that they are meeting any relevant regulatory requirements. This may require technical staff to manage and maintain these features.
In general, while cloud services can potentially reduce the need for technical staff, it is unlikely that they will completely eliminate the need for technical expertise. Companies will still need staff members with the skills and knowledge to manage and maintain their cloud services, integrate them with other systems, and ensure that they are secure and compliant.
Are there any major concerns that should be considered when deciding to use cloud computing and then choosing a cloud vendor?
Yes, there are several major concerns that companies should consider when deciding to use cloud computing and choosing a cloud vendor. Here are some of the most important ones:
- Security: One of the biggest concerns with cloud computing is the security of data and applications. Companies need to ensure that their data is properly protected, both in transit and at rest. They should also consider the security policies and procedures of potential cloud vendors, such as their data encryption methods, access controls, and incident response plans.
- Compliance: Companies that handle sensitive data may be subject to regulatory requirements, such as HIPAA or GDPR. They need to ensure that their cloud vendor is compliant with these regulations and can provide the necessary documentation to prove compliance.
- Data location and ownership: Companies need to understand where their data will be stored and who owns it. This is especially important for companies with international operations, as different countries may have different data privacy and protection laws.
- Reliability and uptime: Cloud vendors should have a proven track record of reliability and uptime. Companies should ask about the vendor’s service level agreements (SLAs) and the compensation they offer if they fail to meet those SLAs.
- Integration with existing systems: Companies need to ensure that their cloud vendor can integrate with their existing systems and applications. This may require technical expertise to ensure a seamless integration.
- Cost: While cost savings can be a major advantage of cloud computing, companies should carefully consider the costs of different cloud vendors and services. They should also consider any hidden costs, such as data transfer fees or storage fees.
In summary, companies should carefully evaluate potential cloud vendors and services based on their security, compliance, data location and ownership, reliability and uptime, integration with existing systems, and cost. By considering these factors, companies can make an informed decision about which cloud vendor is the right fit for their business.
So, when using cloud computing, who is responsible for security and backup of the data?
When using cloud computing, the responsibility for security and backup of the data can vary depending on the cloud service model being used (i.e. SaaS, PaaS, IaaS). Here is a general breakdown:
- SaaS: For Software as a Service (SaaS) models, the cloud provider is typically responsible for the security and backup of the data, as well as the availability and maintenance of the application itself. The customer’s responsibility is typically limited to managing user access and ensuring that they use the application in a secure manner.
- PaaS: For Platform as a Service (PaaS) models, the cloud provider is responsible for the security and backup of the underlying infrastructure and platform, such as the operating system, database, and web server. The customer is responsible for securing the applications and data that they build and deploy on the platform, as well as any additional security measures that are required.
- IaaS: For Infrastructure as a Service (IaaS) models, the cloud provider is responsible for the security and backup of the physical infrastructure, such as the servers, storage, and networking. The customer is responsible for securing the virtual machines, applications, and data that they deploy on the infrastructure, as well as any additional security measures that are required.
In general, it is important to carefully review the cloud service agreement to determine which party is responsible for security and backup of the data. It is also recommended that customers take additional measures to secure and backup their data, such as implementing encryption, maintaining regular backups, and monitoring access and usage of the data.
NOTE: it’s important to review the terms of service for each cloud solution, most make it clear that while they do perform their own backups, they are not responsible for your data, and it is YOUR responsibility to perform backups.
Are there any advantages to owning your own hardware and hosting it in a data centre rather than using a cloud provider?
Yes, there are several advantages to owning your own hardware and hosting it in a data center rather than using a cloud provider. Here are some of the main advantages:
- Control: By owning your own hardware, you have complete control over the hardware and software that runs on it. This can be important if you have specific performance or security requirements that cannot be met by a cloud provider.
- Customization: Owning your own hardware allows for greater customization and flexibility in terms of hardware and software configurations. This can be especially important for businesses with specific requirements or unique workloads.
- Cost: While cloud computing can provide cost savings in some cases, owning your own hardware can be more cost-effective in the long run, especially for businesses with predictable workloads or long-term projects.
- Security: By owning your own hardware, you have more control over security measures, such as physical security, access control, and data encryption. This can be important for businesses that deal with sensitive data.
- Compliance: Some industries and regulatory bodies require specific compliance measures, such as HIPAA or GDPR. Owning your own hardware can make it easier to achieve and maintain compliance with these regulations.
That being said, owning your own hardware and hosting it in a data center also comes with some disadvantages, such as higher upfront costs, maintenance and upkeep responsibilities, and potential limitations on scalability. The decision to use a cloud provider or own your own hardware ultimately depends on your specific business needs and priorities.
NOTE: A very good point raised here regarding the costs of running systems when you have a very stable and predictable workload. For long term projects, some cloud computing solutions can be very expensive, even in the mid-term.
For example, to “rent” a virtual machine (IaaS) from a cloud computing vendor with 128GB of RAM, 32 vCPUs, 1600GB SSD is currently (March 2023) $1088 per month. For this, you get a blank machine onto which you can load any software you wish to, and run it at 100% utilisation 24×7.
In comparison, if we go to a boutique Internet Service Provider to source our own hardware and hosting, we would spend around $6000 initially for a similarly configured physical server, but then the monthly hosting costs in a datacentre would be around $300.

While it’s not an exact like for like comparison, you can see that owning your own hardware works out to be cheaper within the year, and savings increase the longer you run your own server.
Conversely, if you only need a very small machine to host a small website, a few IaaS vendors can provide you one for around $5 per month – something that will be cheaper than owning and hosting your own hardware for a significant time.
More on the subject of cost later on.
Do you have any predictions for the future of cloud computing?
As an AI language model, I do not have personal beliefs or predictions, but I can provide some general insights and trends about the future of cloud computing based on industry analysis and current developments.
- Continued growth: Cloud computing is expected to continue its rapid growth as more businesses and organizations move to cloud-based services. According to Gartner, the global public cloud services market is expected to grow to $354.6 billion in 2022, up from $257.5 billion in 2020.
- Multi-cloud environments: Many businesses are adopting multi-cloud strategies, using multiple cloud providers to meet different needs or to avoid vendor lock-in. This trend is expected to continue as businesses seek to balance cost, performance, and risk management across different cloud providers.
- Edge computing: Edge computing, which involves processing data near the source of generation rather than in a centralized data center or cloud, is expected to become more prevalent as businesses seek to reduce latency and improve performance for applications that require real-time data processing.
- Hybrid cloud: Hybrid cloud, which combines private and public cloud environments, is becoming an increasingly popular option for businesses that want the benefits of both environments. Hybrid cloud allows businesses to run some workloads on-premises while using the public cloud for other workloads, providing greater flexibility and control.
- Increased focus on security: As cloud adoption continues to grow, security will remain a top concern for businesses. Cloud providers are investing in new security features and technologies to help address these concerns, and businesses are implementing additional security measures, such as multi-factor authentication and encryption, to protect their data.
Overall, the future of cloud computing looks bright, with continued growth and innovation expected in the coming years.
Thank you ChatGPT, now back to my own thoughts…
————————————————————-
It’s not debatable that over the last 10 years cloud computing has revolutionised the way software is developed and delivered, mostly for the good. Today, anybody with a credit card can spin up an entire fleet of services within a matter of a minutes, which then scales up with the ability to pay.
This revolution though, is not without potential issues:
Cost Creep
The ease at which new resources can be purchased leads to a situation that many companies encounter – the boiling frog of cloud computing costs.
SaaS solution prices typically start small, say $20 per user per month, which, while the company and user count is small then so is the bill. As the number of users grow, the monthly price creeps up month on month. If you grow to 50 users, you’re now paying $12,000 per year every year, just for a single service. Now multiply this across a number of these “small services” and your monthly SaaS bill alone is going to be significant.
Likewise with IaaS and PaaS resources that are demanded by development teams, spinning up a set of small services is relatively cheap. But as software is built, tested, and deployed across a number of environments, the amount of required compute and storage increases. Care should be taken particularly with long term storage of large data volumes in the cloud – the price to store data in the cloud can vary greatly between services, and you pay every month to store each gigabyte, regardless of it has been used by your service.
It’s important to regularly audit the amount spent on cloud computing to ensure that you’re making best use of it. Often, users stop using a service, but the company continues to pay for it, simply because nobody has thought to turn it off. In some situations a large monthly cloud computing bill can be slashed by moving services onto your own equipment. While this is not always a simple task, and may require significant effort, if the bill is high enough, it’s worth considering. One company that has undertaken this recently is 37 Signals. They’ve written in depth on what they were paying for their cloud computing, and what they will save by making the move away from the cloud.
You still need Operations staff
A common mistake when using cloud computing is thinking that the cloud vendor looks after all of the tasks traditionally undertaken by an IT/Ops department. While this will vary by the type of service purchased, typically with IaaS a great deal of the traditional roles still exist and technically capable staff are still required. The most important is security, where the facilities available to secure your company data need to be evaluated carefully on a service by service basis. Microsoft have a good summary of the shared security responsibilities that apply to their Azure services, these generally apply across all cloud services.
All your eggs in one basket
With the dominance of a few large cloud computing vendors, the decentralised Internet has become very centralised. The result of this is that a major outage at AWS, Google Cloud, or Azure, will take down a large number of companies on the Internet, all at the same time. Even the ability to distribute your application across multiple zones within a provider doesn’t provide protection against many outages. If your application needs guaranteed uptime, you should look to replicate your service across multiple providers, without any single point of failure. Because at some point, your cloud provider WILL suffer an outage, and take you with them.
Forced upgrades
If you make use of cloud computing features that are specific to a particular provider, you are now at the mercy of their development roadmap. While this is not a problem in most cases, the cloud vendors do move at pace to introduce new features. This sometimes means changes to services you’re already using or their retirement completely. Thankfully the complete removal of services completely is rare these days as the market is fairly mature, but upgrades happen often.
- IaaS: there’s not much change that normally happens here that you don’t initiate. You typically buy a blank canvas upon which you put your own software stack.
- PaaS: changes here will mean your software may need to be updated before the deadline imposed by the cloud provider. Failing to make the changes may cause your software to fail.
- SaaS: you may log in one day and find everything has changed without notice and you just have to deal with it.
For all types, good vendors will give you plenty of notice, and possibly a period where they will run the new and old versions in parallel. Bad vendors will just drop the change upon you without notice.
The place I’ve noticed changes the most, is not with the services that are being consumed, but the way they are administered. The management/admin interfaces are often a confused mess of disjointed and contradictory settings. But worse of all, once you figure things out and get used to the way something works, it then gets “upgraded” so you have to re-learn everything – normally in the middle of an emergency!
Complexity creep
Due to the ease of adoption, it can become very easy over time to amass quite a collection of services that your company uses on a day to day basis. These products may integrate with each other through other services that you subscribe to. Before you know it, you’ve created a complex mesh of interdependencies that must be managed.
Bolting together SaaS products using products such as Zapier or IFTTT is relatively straight forward, and on a good day everything works. But when one of the services either suffers an outage, gets “upgraded”, or your credit card expires, the integration will fail – and it’s not always obvious why. The greater the number of services that are bolted together, the greater the complexity and chance of failure. It’s very important to keep track of all integrations from the start and have good monitoring in place to check they’re all still functioning.
It’s not all bad
Despite the potential issues, some of which I mention above, the sheer variety of cloud computing offerings available today is nothing but a good thing. It allows innovative start-ups/scale-ups the ability to very quickly try out new ideas without a huge initial capital investment, and if it doesn’t work, to pull the idea down just as fast.
With competition between vendors, the overall cost is coming down. Gartner forecasts that worldwide spend with cloud vendors will reach almost $600bn this year (2023), so the business is worth fighting for.
Possibly the biggest thing that cloud computing has going for it is the ability to scale. While a vast majority of applications will never need to scale beyond the capacity of a single server, if your product has the potential to become the next Twitter, Salesforce, or TikTok, you can (assuming your application is architected to cope) just buy more cloud services. You can then continue buying more… until it’s time to build your own!
The information available on this page is of a general nature and is not intended to provide specific advice to any individuals or entities. We work hard to ensure this information is accurate at the time of publishing, although there is no guarantee that such information is accurate at the time you read this. We recommend individuals and companies seek professional advice on their circumstances and matters.