When developing applications, developers have many options. You can host your app at Linode, Digital Ocean, AWS, Microsoft Azure or Google Cloud Platform and many other hosting providers. Many developers choose AWS because it’s the leading cloud provider and Azure often gets selected if you run .NET workloads. However, Google Cloud Platform is an excellent choice for building planet scalable applications. If you know what you’re doing you can also keep the cost down as you grow.
I’ve often heard people in the technology industry say that Google has the best technology, but the problem is their documentation, support and marketing. It’s almost like their technologies are just out of reach if you want to get started building an enterprise app. I don’t think that’s accurate but there are definitely some rough corners that need to be fleshed out. As an exercise, I’m going to write a series of blog posts describing how to build a product on GCP using tools like GitHub, Node and a CI/CD pipeline to build a nontrivial production ready app.
The objective is to use as many GCP services that make sense for my application while keeping costs as low as possible. I’ll document the architecture and post code snippets in my blog. I might even open source the app so others can learn and maybe improve it. If you’re interested in me open sourcing the code, please leave a comment below. So what type of app will I build?
There are an abundance of Todo apps on the web and I’m personally tired of seeing them. Sure, you can create a well architected Todo app but it’s usually not sophisticated enough to help you think through everything you will need if you wanted to select GCP as your enterprise cloud platform. Therefore, I’m going to build a social photo sharing app that includes some basic features:
- User authentication and authorization
- Object storage
- Social network integration
- Ecommerce capabilities
- Serverless functions
- Monitoring and management of services
- Machine Learning
If there is a feature you would like to see added, please leave a comment below. I can’t promise I will build it but I might! I’m really excited about building this app because the above features are just a sample of what I have planned. In the end I hope my efforts encourage someone to take a first step towards building something on GCP. I’m also a HUGE fan of Microsoft Azure. Who knows, I might just create a series of articles building an app on Azure next…