Any recommendation?
Any recommendation?
So this is my in the trenches comparison:
- AWS documentation is excellent, Azure docs are weird and inconsistent and for some bits nonexistent.
- Azure API's are inconsistent and weird, but once you figure out they work relatively well. But the lack of documentation compounds confusion.
- Azure has a lot of very weird limitations that don't make any sense:
-- Default Centos images are 30GB osDisk and you can't resize them, you have to create your own images if you do want to.
-- You can have SSD's in 128/512/1024GB sizes and you pay for them in full, Spinning disks are billed per actual usage.
-- You have to store your osDisk image in the same storage account as your machine you are running (so you have to pay for your image the full SSD monthly price)
-- You have a VMSS (=Auto Scaling Group) and have a Load Balancer in front of it, your microservice connections fail if the load balancer routes the connection back to the same VM ... you now have to have another VMSS just for load balancing/service discovery.
- Their services labelled Beta are really more like Alpha quality.
- On the plus side, their ARM templates are richer and nicer to use than CloudFormation, however the lack of documentation for them kills all the advantages.
- When you jump all the hoops and get past the issues, the things work relatively well.
Azure's interface is years ahead of AWS. Most importantly: there's a single entry-point for everything. Just this month I was evaluating some stuff on AWS. I was certain that I had cleared everything that I was using up - I hadn't. Luckily it was merely a $17 lesson.
The nomenclature used is also quite understandable, unlike AWS which has branded everything down to the NIC.
The new UI is nice but I think a bit rushed. It was pushed before all the features were ported from the old one and there are still things that are easier to do from the old UI (firewall rules for example). The embedded VS Code is really nice though.
I think this rushing applies to all of Azure. It feels like a very MVP approach and AWS is more polished. Agree with you about Beta services, don't use Previews for anything serious.
For example on AWS, using RDS (MySQL, PostgreSQL, SQL Server) or ElastiCache (memcached, redis) is fairly low lock in. You can run all of these yourself or use another cloud. Azure offers a similar hosted redis service for instance.
However, something like Lambda or DynamoDB can't be run elsewhere.
Similarly, on Azure if you use their Machine Learning PaaS system then you are pretty locked in. Yet you could easily move a website to appharbor or elastic beanstalk. Or just run your own server (VPS, IaaS, EC2 etc.)
* 35% of virtual machines in Azure run Linux * Microsoft announced that PowerShell, Service Fabric and SQL Server will be available for Linux * Redis Cache, Hadoop and other open source packages are available as Platform as a Service offerings in addition to you installing and managing on your own machines.