Our final topic will cover an area which has grown significantly over the past few decades and plays a critical piece in any software platform’s success: infrastructure.
Like Domain Driven Design and knowing where to start on the application continuum, solidifying your cloud infrastructure early on in your approach positions you for success later on. Infrastructure covers a broad range of technologies and tools, so to help narrow the scope for this post we’ll focus specifically on cloud providers. At Dialexa we’ve worked with the 3 major providers on multiple client projects: Amazon Web Services (AWS), Google Cloud Platform (GCP), & Microsoft Azure.
With the emergence of “the cloud”, the landscape of software development has shifted to empower small businesses with luxuries previously unaffordable. With instant access to a plethora of tools and services, a small development team’s reach can now extend to millions of users and revenue. However, picking the right cloud provider is not a simple task, as the advantages of cloud computing greatly depend on your business needs and team’s expertise.
Top Cloud Infrastructure Providers
Amazon’s cloud offering has been a key role in it’s insane growth over the past decade. They’ve grown by over $400 billion dollars in 10 years & continue to be the provider to beat in regards of service offerings. Services like Elastic Beanstalk, RDS, and their flagship service S3 grant your platform power once unimaginable. Also the introduction of AWS Lambda ignited discussions and attention to serverless architectures which allows solutions to scale to even greater heights. For teams who want a provider with an extensive number of service offerings and a wealth of experience in some of the world’s largest scaling businesses, AWS may enable your platform to disrupt the next market.
While AWS does win in their number of service offerings, sometimes you can have too much of a good thing. The number of services in AWS can be overwhelming at times and their pricing model can be difficult to optimize for your platform. Doing a quick google search on “optimize cost in aws” reveals how many articles cover this topic and even the number of companies built solely to help manage it.
Google’s Cloud Platform currently provides fewer services, but wins in some other important areas such as pricing & environment configuration. Anyone who’s worked with AWS for an extensive amount of time knows all too well how the provider’s flexibility can unfortunately make cloud management a hassle. Google’s Cloud Platform takes the opposite approach, favoring convention over configuration. For teams lacking a dedicated devops engineer or who want to focus on non-infrastructure related tasks, this option may position your platform for success.
Finally, if your platform software heavily relies on Microsoft, fear not! Microsoft Azure is relatively young in the cloud industry, but its focus & growth has accelerated over the past year to put it in discussion as a key provider in today’s landscape. Most key services offered by Google Cloud Platform & AWS are either available or on the immediate road map. Furthermore Microsoft-based platform solutions will benefit from key services Azure offers which are hard to find in the other 2 providers. Finally, Microsoft’s focus on Azure for 2017 looks to advance Azure even further into the competition while including emerging markets such as artificial intelligence (AI). If you’ve invested a great deal into Microsoft-related technologies, Microsoft Azure’s offerings may provide your team with the all the power it needs to dominate the next market.
Whether you decide to start off using AWS, Google’s Cloud Platform, or Microsoft Azure, keep in mind the technology platform you start off with does not have to be a permanent solution. Just as we saw with the application continuum and defining domains, your solution will evolve over time. Keeping this thought at the forefront of your mind enables you to make better strategic decisions earlier on in your platform. Eventually you may even use a combination of these platforms to solve different business needs.
From the Application Continuum to Domain Driven Design to your solution’s infrastructure, building a successful platform is no small undertaking and rarely follows a cookie-cutter approach. However, experience & lessons learned by experts as well as best practices can help smoothen your platform’s course to a successful outcome.
If you want to learn more about our own processes, check out our free ebook, Platform Thinking: Creating Real-World, Scalable Platforms.