Difficulty level 1: Deploying An Online Store On A Cloud Infrastructure
Who suits: This option is optimal when a written application exists, or existing solutions are limited in functionality. You can deploy any site on a cloud server: written from scratch and based on any CMS; you need to install it yourself.
How to run and configure the solution: You rent power in the cloud and create your virtual server, on which the operating system of your choice is automatically installed. After that, you configure the necessary servers (web server, DBMS, and others) to upload your content and code.
Here you can also choose the optimal configuration of virtual machines, the type and size of the disk, add unique settings on request: high-performance processors and NVMe disks with a response speed of 0.5 ms and SLA 99.95%. In addition, you can choose an operating system or upload your image, which means you get more flexible settings.
In the same way, as in the first case, you will need to configure access to your site via the Internet, including setting up DNS, adding an SSL certificate, specifying an external IP address, and configuring a firewall for security.
In addition, it is worth setting up the backup, that is, periodically saving copies of your data and infrastructure. There are several options here. You can completely copy all data each time or choose to keep what has changed since the last backup. The storage depth and backup schedule are also configured; copies are made by the program that you set in the settings.
In addition to the primary server settings, additional work of company administrators is required in this case. You will need to install a platform for your CMS or application to run on the virtual machine, such as the LAMP stack with MySQL. Then we install WordPress, any other CMS or any of your self-written applications. We have instructions on installing WordPress and how to install Joomla!
If you use the LAMP stack, then the online store application and the database share the same server resources (CPU, memory), which can slow down the server and make troubleshooting more difficult. Therefore, often the DBMS is taken out separately. Online stores typically use relational databases like MySQL and PostgreSQL to store customers and transactions. They can be obtained as a service from the provider – already configured and entirely ready for use.
Peculiarities: In the case of a cloud server, you have complete freedom of settings and patching; you can quickly implement new functionality and close vulnerabilities, create any architectural solutions. Of the minuses – a lot of additional work, you need to deal with administration, the setup takes more time, so the approach may not be suitable for owners of small business card sites.
Difficulty level 2: Deploy An Online Store Using Platform Services For Working With Containers
Who suits: This solution is suitable for large online stores, where new digital services for customer service are constantly being developed and implemented, high fault tolerance and the ability to work at peak loads are critical.
How to run and configure the solution: You can use a platform service such as cloud Kubernetes. This is more difficult than working with simple virtual servers, but it makes the site more reliable and flexible.
There is such technology as application containerization and virtualization not at the server level but the OS environment level. Sites and applications are packaged in striking images – containers when using it. Applications or parts of an application in containers are isolated; they can use any necessary versions of the software and the necessary libraries, regardless of their performances in the host OS.
Containerization allows you to organize a highly portable application from one environment to another, Well suited for implementing the microservice architecture. Since each container is an isolated environment, they host the functional components of the application.
For managing these containers, special tools are used. One of them is Kubernetes, which has become the de-facto standard in this area. It allows you to quickly launch containers, distribute the load between them, monitor their status and, if necessary, reboot.
This approach makes the system more fault-tolerant: Kubernetes automatically monitors running applications and restarts them if a failure occurs somewhere if the user correctly configures the service parameters. The risk is also reduced when updating software: the new code can be rolled out only to a part of the containers and checked. The update can be distributed to the entire system without interrupting the service.
Peculiarities. To work with cloud Kubernetes, you need an experienced system administrator who understands containers and orchestration systems. You can implement the technology yourself on your servers, but this will require more employees who understand the Kubernetes technology itself. In the case of cloud Kubernetes, the provider is responsible for maintaining its performance; the system administrator is needed only to operate the technology and applications.