The simplest definition is that a company will no longer hosts their own hardware and software but “rent it” from another company specialized on such offering. Why is this so important? All of this is related to dynamic growth. Every company started with a couple of computers, some network, client-server applications and a nice big database. Well, successful businesses are growing and sooner or later they outgrow their earlier IT purchases. For awhile they try to keep up, getting more computers, larger databases, but they will reach a point, when all of this become very expensive. To make things more difficult the load on their systems are not constant. They could be experiencing spikes of load depend on their business and other times all that expensive hardware and software just idle, eating into the bottom-line. In a cloud the hardware can be allocated dynamically so the costs are following demand. But cloud computing not only means moving the existing infrastructure to a “rented” place, even though that is possible too. It also has an architectural component to it. Example a company has a large single database, where it stores the product catalog, displaying the offering in a website and it also have the orders and invoices stored as well. It is easy to see how different requirements collide here: the product catalog data is frequently read and needs to be fast, while rarely updated, the invoice information written frequently in a transactional manner, but rarely read. If these competing requirements are served from the same database, sooner or later costs are running wild and performance drops fast. Cloud computing only effective if comes with a reorganization, a decoupling, where the components are separated using micro-services and behind them an optimized datasource can serve and scale as needed. So from our example the catalog will be stored in a memory-cache type storage like elasticsearch, providing fast and efficient response to search requests, while the orders and invoices can sit in a traditional SQL type storage behind their own respective micro-service. The services are providing decoupling points, where resources can scale independently and any maintenance or upgrade can be safely performed without risking the whole system.
There are numerous companies, who offer cloud based services, but the market mostly covered by three giant companies. Every one of them offers all kinds of services, every one of them naming itself as the ultimate solution, which of course not true, but their services are not identical in quality and costs either. They can offer such unique services, which makes picking out a winner easier. Next we have a short review of their offerings.
One of the biggest advantage of the Amazon Cloud its price and the maturity of their management UI. Of course they were the first one, who turned their surplus capacity into a product. If the primary reason to move to cloud is the fluctuating capacity requirements and cost effectiveness, then AWS can be a great choice.
Azure is fully built on the Microsoft operating system and Office services. So if your company has a strong commitment to Windows, Office and other office applications, Azure may be a good choice, as it offers special and excellent services in this regard, though not as cheap as Amazon.
Google was third in the cloud business, and they compete with smart services rather than raw storage. If mobile support services are important, Google Cloud might be a good choice. Prices are better than Azure, but on average more expensive than AWS.