Cloud · Cloud Computing

Cloud Application is relatively very slow - what could be the factors to consider?

Kevin Thomas Cofounder - Freight application

January 23rd, 2017

The Application hosted in Microsoft Azure performs very slow in comparison to normal websites. Being non technical relies on the technical co-founder to fix the issue. In-spite of few changes brought out, system is still not in satisfactory performance level. What are the factors that impact the performance? What are the key causes in general that slows the performance?

Istvan Szukacs CTO as a service

January 23rd, 2017

Hi Kevin,


You can use a tool like Pingdom[1] to get the details of why the page loading slowly. Other than that, you need an expert (like me) to look into which part of the backend is slow. It usually boils down slow database queries or lack of appropriate caching.


1. https://tools.pingdom.com/#!/dee8nP/cnn.com





Pethuru PhD Cloud Architect, IBM Public Cloud Offerings, Global Cloud CoE, IBM India Pvt. Ltd.

January 23rd, 2017

There are several factors such as the network latency, the system (VM or BM) performance, etc. for this issue. The cloud infrastructures such as compute, storage and networking have to be accordingly designed, application and database performance have to be tweaked, there are best practices for availing higher performance out of cloud-based applications, etc. All these need to be smartly performed to enhance the application performance.

Hugh Proctor Hard working, dedicated and innovative CEO / CTO

January 23rd, 2017

Hi Kevin,


First it's a misconception that is happening when it comes to Cloud solutions that they improve performance over apps, the Cloud Server was designed to remove the problem of needing to have Server maintenance teams who do little more than check that a machine is switched on.


Cloud doesn't override the need for good database design (Normalising Data) and efficient Indexing of tables. - though these really only come in as a problem when you have a big database of million and millions of records.


Also one should choose wisely the database that your using, for example, for a freight application you should really still be using an RDBMS database like Sql Server or MySql and not a NoSql Database - which was designed for Big Data that doesn't change (e.g Comments and Messages).


Cloud also doesn't remove the need for Application Tiers (a Tier is a machine or VM) and you should be using at least a 3 Tier solution... so therefore: Database is on one machine, Api is on another machine and Presentation is on a third (either a mobile or web server)..


You'd then have Api and Web server software replicated over various machines with a Load Balancer directing traffic.


You should then also be extensively using Caching methods in all Tiers, so that the Database isn't being accessed all the time. 1 in 5 requests should be to the database.


If you need an analogy: imagine a 1 man team compared to a 4 man team, compared to 4 departments consisting of 4 man teams...

If you asked a one man team a question, you'd get an answer pretty quickly, but if a million people (or even 10) asked that one man a question all at the same time, then he'd simply get overloaded and crash.

So we spread the info over a 4 man team, ask a question to man no 1, if he knows then you get your answer, if he doesn't then he asks the next man in the chain and so on... the work load is spread.

If you have 4 departments then you have many people in this chain who could answer the question, etc.


You get the idea... so, your solution needs to be spread across many VMs (in Azure)


Then you could look at solution architecture guides like Domain Driven Design (DDD), this helps to alleviate development and design problems, and you shouldn't put business logic into the app itself... this is known as principle of Separation of Concern.


There is a problem though when it comes to Tiers and DDD, there is a lot of code to be written, and this is what software companies spend a lot of their investment funds after they've produced their MVP and got traction.


LayrCake is a software platform as a service that helps companies like your to build all this code and produce a super software without having to know, think or worry about these kinds of issues.

If you're interested then I'd be happy to help and resolve your issues so that you can focus on selling and growing your business. We can be contacted at info@layrcake.com


Hope this all helps and wish you success.

David Eedle CTO and Co-Founder @ParentPaperwork.

February 3rd, 2017

Kevin


I'm CTO at a startup and a heavy Azure user. I think there are excellent pieces of advice in the various responses:


  • Unlikely to be specifically because you are on Azure
  • There is a multitude of factors that could be at play
  • Get someone who properly knows what they are doing
  • They need to examine the chain all the way from the UI down to the backend and database.

For someone with the correct skills set it will be very quickly obvious the general area at issue - page or code or database etc.


We had the same scenario the other week. All of a sudden a key page on our site that receives significant traffic started running very slowly. EG Instead of <1 sec to load we were at 15+ secs. We checked all our monitoring and worked our way down the line from the web apps for the UI, to the API that provides data to the web apps, to the Azure SQL database. Turned out a regular maintenance job on the SQL database had screwed with the execution plan for a particular database routine. We tweaked a couple of things and hey presto page loads were back to <1 sec. All in a normal day's work for a tech team.


David










David Trehane CEO / product manager at Cropdesk.com

January 23rd, 2017

We have had similar issues on AWS.

The key factors here are database optimisation and asking the system to do ALL the number crunching 'on demand'.

We're currently going through a process of moving the reporting functions to a different server, implementing cached reporting and optimising the database and how it is queried.

We expect a huge difference in performance.

Good luck

Peter Eijk Vendor Neutral Cloud Security and Lean IT Risk Management

January 23rd, 2017

Did you port the application from a set of servers (in house or data center)?

There are a few typical errors to make, but sniffing this out can be complicated. Can you tell us a bit more about the architecture of your set up?


Kevin Thomas Cofounder - Freight application

January 23rd, 2017

Peter -Me being non technical - shall attempt to answer your question. The application is hosted in microsoft azure as a single instance (V12). Usage DTU quota - 45000 DTU / Current 10 DTU - West Europe / No Elastic database tool. Database SQL - Standard. Since it is in the testing stage, it is having very low load


Robert Gezelter Principal, Robert Gezelter Software Consultant

January 23rd, 2017

Performance is ALWAYS a numbers game. Cloud services span a range of possible configuration choices. The performance implications of this can be severe. The first thing one must always to is gather information about where elapsed time is being consumed, and see if it can be reduced (I recently had a client-situation where 90% of elapsed time was being consumed by a now poorly configured file). On cloud-based environments, database, IO, and network operations are frequent causes of latency, but there are other ways to lose performance.

Roland Lee Application-Database Optimization

January 23rd, 2017

Hi Kevin, there could be many causes of Cloud application performance bottlenecks, frontend or backend issues. There are a lot of free frontend tools on the web. See Istvan's comment.

For backend tools, our company offers a free SQL analytics tool for download. It will identify you SQL bottlenecks and cache them without any code changes. You can check us out at www.heimdalldata.com.

Jens Straten Entrepreneur with German Ingenuity

January 23rd, 2017

Hi Kevin,


Slow is somewhat relative. Did you guys determine the root cause of your application being slow? Is it slow because of connectivity issues (latency, speed, etc.), badly optimized application procedures (e.g. high CPU load), improperly sized hardware (low memory and high CPU) or large data (cloud solutions don't excel if your application output exceeds a certain size and it gets worse once you have higher user volumes).


The best advise is to figure out the root cause of your application being slow. Tools and/or a technical expert should be able to point you in the right direction fairly quickly.


Once the root cause is known, you need to determine what you can do to improve things. If you are lucky, you just need to increase CPU, memory or network performance. If not, you will have to dig into your application and work on optimizing it.


Best of luck!