Magento2.0 Server requirements - Need Guidance - magento2

We are using Magento2 for one of our projects. On our site there are approximately 2000 customers and around 3000 products right now. We are using Magento CE V 2.0.7.
It seems that our website is slow. Magento2 takes around 6 seconds to process the first byte.
According to GTMatrix, our Page Speed is 61%. Don't know why the site is slow.
We have to improve our page speed and we already followed some instructions from GTMatrix.
Few things about the server configuration:
AWS t2.large instance.
8GB RAM
2vCPU
Server is VPS.
Is this configuration sufficient for Magento 2? Or does Magento need some more configuration?
Is it possible that because of this it affects on Page Speed & Website Performance?

8GB RAM and 2CPU on AWS VPS should be more than enough to run Magento 2 in good conditions and at a reasonable speed. See here official documentation about this: https://devdocs.magento.com/guides/v2.2/install-gde/system-requirements-tech.html
Magento 2 needs though quite a lot of configuration in order to be fast. Think about advanced cache options such as Memcached, Varnish and Redis.
We are using since more than a year now Cloudways because of their integrated solutions with all those options included plus one-click-install, staging automation, CDN, free migration and 24x7 Live chat support. On a Digital Ocean VPS with 8GB RAM which is slower than an AWS VPS with same RAM we are getting quite good load times on Magento 2.2 websites template based or custom made.
You must of course also go through all possible frontend speed optimisation like:
merge and minify all CSS and JS files.
optimise all image sizes.
use CDN if needed.
Gzip compression
See more details about Magento frontend optimization HERE.
Using the latest version Magento CE 2.3 will definitly help as versions 2.0.x had a lot of speed related issues.

Related

which backend stack for development e-commerce mobile app?

I am learning flutter is really a good technology to build mobile apps ,my project is an e-commerce app,but I am confused about which route I will take for back-end. I read about Firebase and how its good but I read also its limited by 200 users concurrently on a real-time database so it will not be a good option so the research led me to express.js"Node.js" + SQL or MongoDB \ Laravel + SQL, get in mind that I have a good experience with men stack (Express with MongoDB) but I hear that MongoDB is too expensive to be host also I need to know if MongoDB can be a great deal in a free cluster or not with my e-commerce app .
If you have good experience in Express you probably go with it. And if you are not ok with MongoDb, Specially a paid version, then you definitely go with SQL. But it will be a bit complex than MongoDB and take extra time for you to manually control your CRM database for E-commerce Application.
On the other hand MySQL has no limit on the number of databases. The underlying file system may have a limit on the number of directories.
MySQL has no limit on the number of tables. The underlying file system may have a limit on the number of files that represent tables. Individual storage engines may impose engine-specific constraints. InnoDB permits up to 4 billion tables. This will give SQL a plus point at this stage.
But laravel is also a good technology I am not so familiar with it. so I cant suggest it.

Entity Framework major performance issue when deploy to Azure

We've got an ASP.NET Web API application and we are using Entity Framework v6.1.3 and SQL Server 2012. Everything works fine locally with no performance issues, it also works very well on a server we have that runs Windows Server 2012.
When we tried Azure as a cloud platform, we got the free trial and deployed our application, but the performance was so bad with some queries taking from 4-7 minutes. Also as a side note, the server we got is connected to the internet and can be accessed outside our company's internal network, the performance still is not an issue only on Azure we faced this problem.
Any help would be appreciated, we want to invest in Azure but we fear we will face same issues we had on our trial subscription.
Probably you are using Basic tier which has 5 DTUs. Simply, we can say this database can process 5 transactions per second. Azure have tiers from basic to P11 which is 5 DTUs to 1750 DTUs. Additionally, if you choose right region for data center, it will help for network speed.
Select single database on menu and see the tiers and their prices. You can see how many DTUs you are using on portal. That's way you can choose perfect price/perfomance tier for you. For example, If it's higher than 80% increase the tier. If it's below 60% you can keep this tier.

Improve Speed of website (On the Openshift platform)

I have an application that is gaining a lot of users quickly. It is a website set up with cartridges PHP 5.4, MongoDB 2.4, MySQL 5.5, RockMongo 1.1 and Cron 1.4.
What are the best ways of monitoring so I can evaluate what is slowing the site. I would like to know this so that I can see what I should improve.
I have come up with 3 options so far:
-Cache the calls to the sever, Memcached and Infinispan are 2 that I found
-Increase the gear size, currently small.
-Use a CDN, possibly Cloudflare
Are there any options that I have missed and what should I take into account when deciding what to do.
You could setup a scaled application so that the number of web gears in use would go up as you get more traffic. If you do that, you should use a medium or large gear for the database.

Playframework 2 in the cloud

I started with python on google app engine 3 months ago.
Then I switched to Play2! on Heroku + mongodb and it is a breeze to work with.
I am really far in my project and I want to release the website in the next couple of days. But I just saw the pricing for SSL on heroku, which is really high.
And I don't want to launch my website without SSL. SSL on heroku costs $20/month without the certificate.
I saw some alternatives in this post What cloud platform supports playframework 2.x deployments?
But I am still not too happy. I want to pay as little as possible to start my website.
So at the moment I am looking on Google App Engine again. This would mean that I have to rewrite my whole DB.
Does GAE restrict some features of play2?
I also saw dotcloud but their pricing page is really confusing. I don't know how far I can go with the sandbox mode, and there is a mark on SSL so I think its somehow included but there is also an SSL addon which doubles the price.
I am okay if my website will cost me more then I will get out of it for a few months, but with the ssl on heroku is just too much.
What would you recommend me?
Edit:
Currently I am looking at openshift which looks kinda interesting. They implemented SSL for free to all users, but I am still not sure if I can use this with my custom domain.
Edit2:
Okay it is only shared ssl. Which means I would have to get "Megashift" which costs $42/month
Edit3:
It seems that I can only deploy war files to GAE, which destroys the purpose of play2.
So I would have to choose between heroku, dotcloud and openshift. And all of them are expensive if you want to use SSL.
I would advice you to give openshift a try
It's free, red hat has stated that it will keep a free offering (it's not just during the beta...)
Here's a screencast:
http://playlatam.wordpress.com/2012/05/21/deploying-play-framework-2-apps-with-java-and-scala-to-openshift/
a github repo
https://github.com/opensas/play2-openshift-quickstart
and an article at red hat
https://openshift.redhat.com/community/blogs/supporting-play-framework-on-openshift-with-the-diy-application-type
I doubt that GAE will work properly with Play. The blacklisting of some classes will impact your project with several limitations that you won't have in another environment, and you have the issue of deploying war files (there are plugins for that in Play 2, but still).
Look at it from another point of view:
if your project is a personal "for fun" project with no other aim than trying something, you probably don't need SSL. Even if you really need (or want) SSL, 20$/month is not so much for a hobby, people pay close to that in games like WoW (subscription + extras) each month.
if your project is serious (startup, aiming to get money) you should stop worrying about expenses like 20$. They are investments to get the cash coming. If as a business you are willing to rewrite your code to save just 20$, you are doomed to fail.
I can recommend you Jelastic.
Besides it offers Jelastic SSL and Custom SSL as well at a reasonable price.
Some hosting Providers allow SSL for free for their customers and the price actually varies depending on the Hosting Provider you choose. So you have alternative here.
Jelastic has recently provided a tutorial on how to deploy Play 2 web framework application to the cloud. So you can freely use it as a basis.

Since I dont need more that 4gb of data storage,can I use oracle express for my web application?

I am developing a small web application,Its data size is constant.
i.e data dosent grow with date/user.
I would like to know if I can use Oracle Express for this application.
http://www.oracle.com/technology/software/htdocs/xe_lic_prod.html
Any use of the Oracle Database Express Edition is subject to the following limitations;
1. Express Edition is limited to a single instance on any server;
2. Express Edition may be installed on a multiple CPU server,
but may only be executed on one processor in any server;
3. Express Edition may only be used to support up to 4GB of user data
(not including Express Edition system data);
4. Express Edition may use up to 1 GB RAM of available memory.
So I would say, yes.
Does Oracle enforce these limits themselves? If not, how to limit the instance to run on only one CPU?
I think the limitations of Oracle are pretty deep. My experience with Oracle shows that they make money selling consultancy, and to do this they don't document their products. Expect to have a really though time if you want to do a non-default install or some fancy configuring.
Why not choose:
MySql, MS SQL Express or Postgre SQL ?
They are all free and have less limitations. If you develop your site using ASP.NET or Java or PHP all of these make sense. Postgre SQL is probably one of the strongest free database engines out there.
If you want to be really cool and flexible, use an ORM like (N)Hibernate or Linq. This will abstract the database you use, so you can easily change databases later on.
Without knowing the details of all the things you require my response will reflect that.
To name a few:
1. How many users will be connecting into this database?
2. Will it be CPU or IO bound system?
3. What DB features do you need?
Oracle Express will most likely handle your vague CURRENT needs. The issue you will most likely run into first is if your data grows beyond 4GB. I wouldn't assume your data will stay constant, few things stay constant. The pain of dealing with purging data every time you hit the 4GB data limit or having to move data to a new database is not worth the FREE marketing hook that got you to use it in the first place. If you don't plan to ever pay for an Oracle license you might be better off using an open source database such as PostgreSQL or even MySQL that won't have artificial limits placed on the software and who's license will always be free. Personally I would go with PostgreSQL.
I find Oracle Express a nice tool to get a quick install of Oracle on my laptop to learn with. I wouldn't use it for anything in production though many people probably do.
Those are my thoughts without knowing all your requirements.
And yes Oracle enforces the limitations stated previously by Thilo in the software.