When we develop Laravel web applications for corporate clients and they need to deploy it to a cloud hosting solution, some clients need to keep consistency and will be forced to follow corporate governance and pick a platform for you. However on the agency side, if you had the choice, would you choose AWS or Microsoft Azure?
We went through just that for a client recently. In this video, I will share with you the results of our review and the comparison of which hosting platform makes more sense to host your corporate Laravel web application.
Let's get to it.
As we saw in a recent video, Laravel is widely used in the enterprise market these days. A long list was published on a Twitter thread recently by Taylor Otwell, the creator of Laravel. You can see here the names like Pfizer, Warner Bros, MasterCard and many others.
Laravel in the Enterprise
That's normal, as Laravel is one of the best open-source frameworks for developers. It comes with a lot of the tools to automate the testing and the deployments. We've been using it for years and gained experience of deploying applications on both AWS and Azure cloud platforms. I never got the chance to try GCP, so reach out if you have more info (and evidence)!
As I was saying, a few weeks ago, a new client asked us to take over their platform from their previous agency and asked us to migrate the Laravel application away from dedicated servers... Yeah, I know it's almost 2022, but it's still happening... They asked us which platform was best?
Cloud hosting: AWS or MS Azure?
We had to compare both platforms to try and convince their IT department, so we looked at several criteria: the setup time, the service compatibility, the compliance, the ongoing maintenance and the overall costs.
So let's compare those platforms and rate them one by one.
1. Setup time
Starting with the setup time, you can deploy hosting with infrastructure as code on both platforms and that's best practices, we all know that. To reduce management time though, the platform as a service offering makes a lot of sense for most use cases and the most common apps. In our experience, the AWS platform as a service is much more mature and all the services work well together. They can be set up in a matter of hours.
With Azure, however, you cannot really automate all of it. There are some additional manual steps when you want to make advanced network security settings for example, which will take several days!
On the set up time, it's 1-nil to AWS.
2. Compatibility with Laravel
Second point on compatibility with the Laravel application: when you run a large Laravel install at scale, it uses a lot of different services from queues and service workers, cache, configuration management, and many others. Having deployed projects on both infrastructures, we found that Microsoft is not as reliable on those advanced services.
It might probably be because historically, AWS has had a better approach and more compatibility with open source technologies. That's a better place to run your Laravel application. You can even plug services like Laravel Forge on top of AWS to take care of everything.
On compatibility, it's 2-nil for AWS.
3. Cloud hosting compliance
Now third on the compliance. Obviously Microsoft has a bigger footprint in the corporate world, usually predating the cloud where most organisations used to run Windows and Exchange mailboxes, those sort of things. Microsoft might have a slight advantage but there's no point comparing the number of industry standards or compliance certifications for each... They're both running and hosting government websites and mission-critical services for medical or defence applications.
Let's call it a tie here, it's 3-1.
4. Maintenance post-launch
Looking at the maintenance post-launch, I've mentioned that for most use cases, a platform as a service minimises maintenance. But the Azure solutions are just not as robust. It seems to require much more time to maintain, tweak and upgrade. We've even seen the Azure team introducing changes to a production environment for queue workers without any warning!
On AWS, it seems that everything just works out of the box for services like Redis or ElasticSearch... you don't need any extra config, it just connects and works.
On the maintenance side, AWS wins again and we're at 4-1.
Finally on the costs: comparing likes-for-likes with an enterprise setup with extra redundancy, multi-availability zones and strict network security policies, the public pricing on Azure is almost three times the price as AWS. I know that most corporate organisations would have very good discounts with Microsoft, however the overall pricing on Azure gets quite complicated between the different database licenses, the multiple tiers of services, or when you start extending across regions...
Again, there's a slight advantage for AWS here, and we're getting to 5-1 in my scores.
And the winner is...
So that's it! Looking at the overall scores: AWS wins! From our experience of managing dozens of projects, AWS is the best platform to run such Laravel applications.
As I said earlier, I have not had the chance to experience GCP, and we've dabbled a little bit with smaller provider such as Digital Ocean for some R&D projects, so reach out if you had success with running corporate project on some of those other platforms.
If you need help with enterprise cloud hosting solutions, just get in touch. Don't forget to subscribe to my YouTube channel and follow me on Twitter to keep learning with me and grow your career in digital.
Until next time, stay safe and see you soon.