Cloud 101 for Founders!
If you are a non-technical entrepreneur or founder planning on developing software in 2021 and beyond, you need a crash course on cloud computing. A good portion of your operating cost is likely to get paid to a cloud vendor. That alone should get your attention.
Many of the decisions you make as you develop your software product will need to consider cloud provider services and pricing. The more you know, the better you will be at making fundamental decisions that ultimately impact:
- What software you build
- How you architect your software
- How much your software will cost to run over time
- How secure and reliable the software will be
Coffee Break Intro to Cloud Computing
I’ve given myself the challenge of teaching you what I believe are the most important things founders and entrepreneurs need to know about cloud computing—in under fifteen minutes! (15-minutes to watch the video or only 7-minutes to read the article below.)
Here is what the 15-minute video covers:
- The 2 Umbrella Service Categories
- The 3 Mega-Vendors
- The 5 AWS Products you MUST Know
Here we go:
The 2 Umbrella Service Categories
Infrastructure as a Service (IaaS)
IaaS is the term for pay-as-you-go, on-demand computing resources (networking, storage, servers). These are the virtual building blocks engineers use to create a virtual “data center” to host your software or web-application. The resources are flexible, can scale as needed, and can be connected in nearly unlimited ways to meet your customers’ needs for speed, robustness, and cost. You need a skilled engineer to figure out how to use these building-block resources best for your product.
Platform as a Service (PaaS)
PaaS provides a “batteries included” cloud-based environment and tools for developing, hosting, and managing applications. You don’t need to worry about the underlying hardware and software that makes the system work, since that is the vendor’s problem. PaaS is a higher-level offering than IaaS, and the vendor is doing more work for you. Since the vendor is adding more value, the cost of building software on a PaaS is often higher, but that is not universally true. If a PaaS is a good fit for your product, it can help you get to market faster, and it can dramatically reduce the human resources you need to maintain your software over time.
Which Should I Use (IaaS or PaaS)?
The first thing to understand is that the prominent cloud vendors offer an elaborate menu of services, including BOTH IaaS and PaaS products! The reason this is important is that these vendors provide multiple approaches to accomplish the same things. Deciding which cloud services, tools, and frameworks fit your use case and requirements is part of your engineering team’s job. Often there is a “do it yourself” choice, like managing a database server that you administer (IaaS) or using a managed service that allows you to consume database functionality managed entirely by the vendor (PaaS). There is no one correct answer to which approach you should take; it depends on your situation. Don’t let anyone tell you there is only one right way to design your software architecture.
The 3 Mega-Vendors
Comparing Market Share
Use a search engine and look for “Public Cloud Services Market Share.” You will discover a wide range of competing analyses with a lot of variance between them. After looking at dozens of these comparisons online, I’m unscientifically sticking with this rough analysis of the market in early 2020:
The market share chart above is for both IaaS and PaaS, includes only public clouds (not private) and is worldwide. Amazon has the lead, and Microsoft, the next largest player, has a ways to go to catch up. What the chart does not show is the rate of growth. Microsoft has been growing like crazy and chipping away at Amazon’s lead, as has Alibaba, which services the Chinese market.
Opinions about the Big Three
Deciding between the major cloud vendors is a complicated and often political dance, made more complex by ridiculously fast-changing service offerings. Since I get paid to be opinionated about technology, I would summarize the big three like this:
Amazon Web Services (AWS)
AWS is the 800-pound gorilla in the cloud computing world. AWS created and popularized the cloud services industry. As a result, it has the most mature services and the largest number of consulting experts to help you make it work. And you will NEED help to make it work since it consists of over 200 products, some of which are fantastic and many of which are half-baked, and all of which require tons of configuration. You can learn more on the AWS Cloud Products page. For me, AWS is the default choice unless there is a specific reason to use one of the other vendors.
Microsoft Azure
Azure is the fastest-growing cloud services provider as I write this in September 2020. (Actually, Alibaba in China is about to overtake Microsoft as the fastest growing platform, at least in the Chinese market.) Microsoft Azure got its start by helping companies that used Microsoft databases and Windows servers to move away from capital-intensive, privately owned data centers. These days, you don’t need to use Microsoft operating systems or products to use Azure. Lots of companies run open-source or Linux-based products on Azure. That said, companies heavily invested in the Microsoft platform and ecosystem will find Azure a natural fit. Microsoft has a vast and highly polished sales force selling Azure into the corporate market. Given their history, Microsoft knows how to support large companies, which gives them a leg up in this segment of the market. Read more on the Microsoft Azure Cloud Computing Services page.
Google Cloud Platform (GCP)
GCP is a sleeping giant. Google does not promote its Google Cloud Platform nearly as much as Amazon and Microsoft promote their respective offerings. CGP represents a relatively small percentage of the market. That said, if Google were to step on the accelerator, I suspect that they would provide tough competition for Amazon and Microsoft. I have heard great feedback from engineers that choose GCP for large projects. Since so much of my consulting work focuses on software development using offshore outsourced teams, I’m much less likely to select GCP over AWS or Azure since far fewer offshore engineers are familiar with the platform. If GCP becomes more popular, offshore outsourcing vendors will respond with more targeted service capabilities. At the moment, outsourcing GCP expertise is harder than AWS or Azure. Read more on the Google Cloud Computing Services page.
The 5 AWS Products you MUST Know
The majority of my clients pick AWS as their cloud provider. AWS also has the most significant market share. As a result, I will double down on AWS and teach you the five most critical AWS-specific products you need to know. There is a good chance that these products will make up the lion’s share of your cloud computing bill, so it makes sense to get to know what they are and what they do.
1. EC2
Amazon Elastic Compute Cloud (Amazon EC2) is a virtual server service. Almost everyone who uses AWS uses EC2 virtual servers, which are also called “instances.” They come in a bewildering array of sizes and configurations.
2. S3
Amazon Simple Storage Service (Amazon S3) is storage for data. It can store data privately or make it publically accessible. In practical terms, the amount of storage is unlimited, but the more you use, the more you pay. Your software will probably store data in an “S3 Bucket,” which is like a giant container for data with similar access permissions.
3. RDS
Amazon Relational Database Service (Amazon RDS) provides “on tap” database functionality for your software. RDS is not a type of database. Amazon provides six-or-seven popular databases to you as a managed service called RDS. “Managed Service” is a code word for “we take care of the installation, maintenance, upgrades, backups, security patches, hardware, etc., and you get a database to use with dramatically less administrative work.” RDS costs more than running the same database yourself on a virtual server (“on an EC2 instance,” to use the AWS jargon.) In exchange for the higher cost, you get better sleep and lower blood pressure, knowing that professionals are operating your database. (EC2 and S3 are “Infrastructure as a Service” offerings, while RDS is a “Platform as a Service” product.)
4. Lambda
AWS Lambda is an abstract concept with a funny name, but it is quite simple. It gives you a way to execute a piece of custom software when certain events happen. Lambda waits for something to happen, and when it does, it runs some code and then goes back to waiting for the next event. You don’t pay for the waiting time; only the resources used when it runs. Lambda is relatively new compared with the other services I mention. Still, it is taking off like wildfire, allowing engineers to build “serverless” architectures with many cost, performance, and maintenance benefits. Knowing the term “Lambda” will help you understand what your software developers are trying to communicate. It also sounds cool and will impress at cocktail parties.
5. Data Transfer
Data transfer isn’t a product name, but it is something you will pay for, and often way more than you might expect. It costs money to move data around within AWS and move data from AWS out to the internet. When your team is designing your software product, make sure they cost model their proposed cloud architecture. If it looks like their heads might explode when you ask them to do this, please reach out to me for guidance.
Enough to be Dangerous
So there you have it. That’s my super-condensed cloud computing overview for non-technical founders. You can learn more about me, my consulting services, and read what my clients have to say about working with me. I’d be happy to discuss your next project, so give me a shout.