ChatGPT, BARD – AI to write blogs & entire apps (the future is coming)

So it’s been some time since I wrote a blog. As I was figuring out what my next blog is, how could I ignore ChatGPT, BARD and the AI excitement that it has brought about (or re-awakened among many of us). And then there is GitHub’s Copilot and AWS CodeWhisperer! Code assistants that can make us slightly more efficient developers.

So let’s ask ChatGPT and Bard to write a simple tech blog. This illustrates the possibilities for future. The question I asked both was – “write me a technical blog on pros. and cons of a serverless cloud architecture”. I asked the two AI apps the exact same question and took the responses that was produced first from each.

ChatGPT Google Bard
Introduction

Cloud computing has revolutionized the way software applications are developed, deployed, and maintained. With cloud computing, organizations can focus on delivering value to their customers without having to worry about the underlying infrastructure. Serverless architecture is a relatively new model of cloud computing that has gained immense popularity in recent years. In this article, we will discuss the pros and cons of a serverless cloud architecture.

What is a Serverless Cloud Architecture?

A serverless architecture is a cloud computing model in which the cloud provider manages the infrastructure and automatically allocates resources to applications as needed. This means that developers do not have to worry about the underlying infrastructure and can focus on writing code. In a serverless architecture, applications are broken down into small, independent functions that are triggered by events.

Pros of a Serverless Cloud Architecture

Reduced Cost
One of the significant advantages of a serverless architecture is reduced cost. In a traditional architecture, you would have to pay for the server infrastructure even when the application is not in use. However, with serverless architecture, you only pay for the resources that your application consumes. This means that you can save a significant amount of money on infrastructure costs.

Scalability
Scalability is another major advantage of a serverless architecture. In a traditional architecture, you would have to provision additional servers to handle traffic spikes. However, with serverless architecture, the cloud provider automatically allocates resources as needed, so you don’t have to worry about capacity planning. This means that your application can handle any amount of traffic without any downtime.

Reduced Time to Market
In a serverless architecture, developers can focus on writing code rather than worrying about infrastructure. This means that you can develop and deploy applications faster than with traditional architectures. This faster time to market can give you a competitive advantage.

Reduced Maintenance
Since the cloud provider manages the infrastructure, you don’t have to worry about maintaining servers or patching operating systems. This reduces the maintenance overhead and frees up your IT team to focus on other important tasks.

Cons of a Serverless Cloud Architecture

Cold Start Latency
One of the major drawbacks of a serverless architecture is cold start latency. When a function is triggered for the first time, it can take a few seconds for the cloud provider to allocate resources and start the function. This delay can be problematic for applications that require low latency.

Limited Control
In a serverless architecture, you have limited control over the infrastructure. This means that you cannot customize the operating system or install custom software. This can be a problem if your application requires specific software or configurations.

Vendor Lock-In
When you use a serverless architecture, you are essentially locking yourself into a specific cloud provider. If you decide to switch providers, you may have to re-architect your application, which can be time-consuming and expensive.

Conclusion

Serverless architecture has many advantages, including reduced cost, scalability, reduced time to market, and reduced maintenance. However, there are also some drawbacks, including cold start latency, limited control, and vendor lock-in. Before deciding to use a serverless architecture, it is important to carefully evaluate the pros and cons and determine if it is the right fit for your application.

Serverless Cloud Architecture: Pros and Cons

Serverless cloud architecture is a cloud computing model in which the cloud provider manages the server infrastructure and dynamically allocates resources to applications based on demand. This model frees developers from the need to provision and manage servers, which can save time and money.

Pros of Serverless Cloud Architecture

Cost savings: Serverless cloud architecture can save businesses money on server costs. This is because the cloud provider only charges for the resources that are used, which can be significantly less than the cost of owning and maintaining servers on-premises.

Increased scalability: Serverless cloud architecture is highly scalable. This is because the cloud provider can dynamically allocate resources to applications based on demand. This can help businesses to avoid the costs associated with overprovisioning servers, and it can also help to ensure that applications are always available, even during periods of peak demand.

Reduced complexity: Serverless cloud architecture can reduce the complexity of IT operations. This is because the cloud provider manages the server infrastructure, which frees up developers to focus on developing and maintaining applications.

Improved agility: Serverless cloud architecture can improve the agility of businesses. This is because businesses can quickly and easily deploy new applications without having to worry about provisioning and managing servers.

Cons of Serverless Cloud Architecture

Vendor lock-in: Serverless cloud architecture can lead to vendor lock-in. This is because businesses that use serverless cloud architecture are typically locked into the cloud provider that they choose. This can make it difficult to switch to a different cloud provider in the future.

Limited control: Serverless cloud architecture can give businesses limited control over their applications. This is because the cloud provider manages the server infrastructure, which means that businesses do not have the same level of control over their applications as they would if they were running their own servers.

Security risks: Serverless cloud architecture can introduce new security risks. This is because the cloud provider manages the server infrastructure, which means that businesses need to trust the cloud provider to keep their data secure.

Overall, serverless cloud architecture can be a cost-effective and scalable way to deploy applications. However, businesses should be aware of the potential vendor lock-in and security risks associated with this model.

ChatGPT was a bit more verbose, but both models produced IMO a basic intro blurb. I did not like Bard’s security risk con. The statement from Bard is true for pretty much any Cloud service I use and not unique to Serverless. This is where the human judgement factor comes in, which is going to be really hard for AI to replicate. But I think this will become “good enough” very soon for a some types of workloads/tasks.

The evolution of GitHub Copilot and AWS CodeWhisper is super exciting to me. I feel the maturity of this tooling is a few years away (< 5 years). Hopefully I will not regret making this opinionated timeline. Where I see this going — I want to tell the AI a business use case like “build me twitter like social media application that will allow messages of 500 characters to be entered by authenticated users. I want users to be able to repost messages, mark messages as favorites. I want users to have the ability to log in using a OpenID compatible Identity provider (hint: please provide me the options). I want this to be deployed on AWS Cloud (hint: ask me for required AWS account information, resource and budget limits). I want this to be available on both iOS and Android devices as an app on the appstore. I do not care about the programming language you will use, but it must be able to scale to millions of concurrent user interactions. Build this for English speaking users as a first MVP.” … and so on.

What do I want to see as output from the AI. I can see this now generating the entire application with all best practices including for security. I see this AI agent submitting this app to another set of AI agents to test the application for security vulnerabilities. A feedback conversation between the two ensures the application is updated to highest standards. During the app generation, the generator AI agent will call on other agents to build AWS infrastructure, set billing limits, set up monitoring and alerts (to other AI bots and a few humans). The possibilities are endless IMO.

The obvious fear is, will jobs be eliminated. I do think the answer is a a cold , yes. Entire ecosystem of startups and engineers will be disrupted. But as with such innovations, new jobs will be created, ones we do not even know of today. Overall productivity will go up to build software and shift the human focus to more meaningful tasks. Its exciting times ahead!