Cloud, cloud, cloud…
There is a grain of truth in everything, but we should remember about the other side of the coin. There is a thin red line between a cheap, scalable and highly accessible e-commerce platform deployed in the cloud and the possibility of it not working properly, mistakenly appearing as a cheaper solution which could end up being more costly than the initial equipment in your very own server room. So, if you want to avoid mistakes and disappointments please take a look at our most important checkpoints which were found during our long race through the Amazon Web Services (AWS) .
1. First of all – choose the model of the cloud to best suit your needs. The three most important are: IaaS - Infrastructure-as-a-Service, PaaS - Platform-as-a-Service and SaaS - Software-as-a-Service.
2. What's even more important is to only use what is truly needed. It allows you to achieve a low cost of entry, which is crucial at the launch of your application that still might be more like “a bottomless pit” than a well-earning business. Once your business is up and running, you'll be able to increase your resources gradually.
3. Think about scaling from the beginning! It simplifies the future of development and maintenance. AWS is very well suited especially with horizontal scaling by providing autoscaling mechanisms which allow your infrastructure “to grow” together with your needs.
4. Get rid of single points of failure. Implement High Availability (HA) mechanisms in your system. The simplest element ensuring HA in AWS is the load balancing, which distributes incoming requests across a group of different servers . Your application can also be distributed across several server rooms (called Availability Zones) located in one of the many regions (at the moment, AWS is present in 18, which are all spread out around the world). If Properly configured, AWS ensures that high availability is included in price.
5. Think about the cloud as a services, not as a servers. Using AWS you don't have to configure everything from scratch. A lot of services already come pre-configured and may be quickly adapted by an expert for each individual need.
6. Use cloud-oriented database. The most often recommended solution by our architects is Amazon Aurora, one of the most optimal option, additionally certified by SAP Hybris (more information: https://aws.amazon.com/blogs/awsforsap/amazon-aurora-database-now-certified-for-sap-hybris-commerce/).
7. Cache as much as you can. It gives your application noticeable acceleration and significantly decreases the load. In the AWS cloud, you can distribute traffic to your application via a scattered CDN network (CF - CloudFront), which caches data and delivers it to the client in the fastest possible way, because CF is connected to AWS regions by fast links. In addition, not all requests will have to come to your application, part of them will be served by the CF located nearest to the customer.
8. Carefully schedule the usage of your cloud. AWS makes additional cost optimization possible. You can look for savings by optimizing the usage of your infrastructure. The autoscaling, mentioned above, can be quite helpful in this aspect. For example, at night, when the traffic on the portal diminishes, you can use a minimal number of VM, but during peak periods when you organize sales and you have more customers, additional servers may be on duty.
9. Protect yourself! People are still very worried about the security of their data stored in cloud solutions. However, most data leakage in AWS is caused by inappropriate user behavior. An excellent example of this is the S3 service which stores and shares files. By default, extraneous users are prohibited from accessing this data. Authorization must be given by deliberate action. If you act properly, AWS gives you better protection than you currently possess in your own server room.
10. Be up to date. Last but not least, let’s talk about security updates. Due to accurate certification by AWS experts, they are much more failproof and easier to apply in the cloud environment than in a traditional one.
So … If you properly design your application and take care of correctly allocating your resources in AWS, your future benefits may be very fruitful. Of course it's not an easy thing to do, but it’s worthwhile in the end!