Blog

Alex Gorodov

Exploring telemedicine in 2019: 4 old and new use cases that work

Posted by Alex Gorodov on June 19, 2019

In many ways, healthcare is suffering the supply-demand problem. Rural areas in many countries face a lack of qualified medical care providers. On the other hand, the cost of quality healthcare can sometimes prevent people from obtaining proper medical services.

The appearance and growing popularity of telemedicine are very likely to change the current healthcare situation on a global scale. Providing professional medical services remotely via communication channels makes healthcare available and affordable for the social groups that used to struggle with geographic and financial problems whenever they needed doctor’s assistance.

The market recognizes the importance and disruptive capacity of telemedicine and responds accordingly. The current trends show an increase in the volumes of healthcare-related solutions production, and analysts predict the telehealth market growth rate at almost 19% per year by 2022.

Basically, telehealth allows doctors to consult and examine patients with the help of communication technology. Today, telehealth exists in the following formats:

  • Real-time doctor-patient sessions in the form of audio or video calls or live chats
  • Patient monitoring with the help of connected devices transmitting real-time data on the patient’s vitals (blood pressure, heart rate, blood sugar or oxygen level, etc.)
  • Patient record management with uploading and exchanging of test results, X-ray and CAT scans, doctor’s opinions, drug prescriptions, etc.

Telemedicine use cases

Today, telemedicine exists both in the form of healthcare proper, when medical services are provided over communication channels, and in the form of telepharmacy dealing with remote drug management.

Telehealth use cases

Telehealth for stroke treatment

In the event of a stroke, it is critical to apply the necessary treatment within the shortest time possible to prevent major brain damage. When a person suffers a stroke at a distant site, the time needed to transport them to a clinic with qualified medical personnel may be too long to reverse the processes that have begun.

With a stroke, the hope of full recovery exists mostly when the proper treatment aimed at dissolving the blood clots is administered within 24 hours of the stroke, the earlier the better. A communication channel can be established within minutes, and qualified neurologists can examine the patient via video and instruct and consult the medical personnel onsite on the proper procedures.

Telepsychiatry

In addition to the most common challenges that telemedicine is intended to resolve – the distance between the patient and a specialized clinic, the cost of personal visits, the lack of qualified doctors – psychiatry has other issues. The main one is the social stigma that is still associated with mental conditions and sometimes prevents patients from visiting psychiatric clinics.

For such patients, telepsychiatry is a perfect solution. Being able to get an expert consultation from the comfort of their home can have a beneficial effect on the patient’s mental condition, while the stress of a personal visit can worsen it. Besides, psychiatry involves almost no physical contact between the doctor and the patient, thus the telehealth technology suits it entirely.

Telepharmacy use cases

Remote prescription review

When there is no pharmacist is a local hospital, such functions can be performed remotely over a communication channel. Whenever a medication is prescribed to a patient, the prescription details are forwarded to a remote pharmacist who checks the prescriptions for validity and eligibility, reviews the patient’s records to verify that there are no contraindications or interactions with other drugs, and authorizes the prescription.

Remote patient consulting

Pharmacists not only dispense drugs but also consult patients on using them and dealing with possible issues. Such consultations can be set up in the format of an audio or video session during which the pharmacist can explain the specifics of drug usage to the patient, demonstrate any related techniques and answer the patient’s questions.

With telemedicine, patients can have a 24/7 communication channel with their pharmacist to receive both ordinary and urgent advice on their medication.

Wrapping up

Telemedicine is just picking up speed, but its advantages are already obvious. Sometimes, it can become a life-saver in the most literal sense. The fact that clinics and doctors are gladly adopting telemedicine is a great sign of the general improvement of the healthcare system and its becoming available to all social groups.

At the same time, the implementation and popularization of telemedicine raise the ever-present issues of security and compliance. Healthcare is too sensitive an industry to neglect security measures and government regulations. Hence, we recommend that clinics and practitioners wishing to embrace telemedicine engage professional developers experienced in building such products. This way, the effectiveness, security, and compliance of the telemedicine solution will be at the required level.

Julia Poltavets

AWS vs GCP vs Azure vs Alibaba Cloud – Overview of the Cloud Services Market

Posted by Julia Poltavets on June 6, 2019

Cloud services are an important component of our work, and QuickBlox always follows the evolution of this sector closely. We use clouds to host our backend infrastructure, and we are focused on using the best options available on the market. We have already shared with your our comparison of AWS vs GCP and Microsoft Azure vs Alibaba Cloud. In that research, we mostly dealt with the technical aspects of different cloud providers highlighting their strongest suites. Today, we would like to review the general trends in the cloud services market to see what the main players are going to offer in 2019.

Cloud services market overview

Even a casual glance at the current market situation shows that AWS has been holding the lead and is not likely to yield to the competitors in the immediate future. As Amazon CEO Jeff Bezos said, this lead is largely due to the fact that AWS started out way ahead of the rest of the popular cloud providers: “AWS had the unusual advantage of a seven-year head start before facing like-minded competition, and the team has never slowed down. As a result, the AWS services are by far the most evolved and most functionality-rich.”

Microsoft Azure is a steady runner-up with GCP holding the bronze until just recently when Alibaba Cloud pushed it one step down. All four providers together are forecast to take over a stunning 84% of the entire cloud services market and thus can be rightfully considered the most preferred choices of a cloud platform for the majority of users.

Image credit: ParkMyCloud

Cloud providers at a glance

Since this post is an overview, we prefer not to overwhelm you with too many technical details (for technical details, refer to our blog where you can find a deeper analysis of all four clouds). Let’s just single out the most prominent features of each of the four clouds that may tip the scales in their favor.

Before we go on, we should note that all four are effective and secure, have the applicable certificates by global, national and industry institutions, and are rather customer-friendly in the pricing area. All cloud providers have free trial options with varying conditions for you to judge their performance before you actually invest your first dollar.

Amazon Web Services

Great choice of cloud servicesFlexible pricingHigh availability
AWS offers 200+ cloud services. When you launch a cloud service, you are getting a complete infrastructure specifically set up for a particular purpose – a database, a message queue manager, a containerization service. From among the cloud providers currently on the market, AWS has the largest selection of services.AWS has three payment models – pay-as-you-go (you are billed for the exact quantity of consumed resources), save when you reserve (you can reserve cloud instances with upfront payment at much lower rates) and pay less by using more (volume-based discounts). AWS has 66 availability zones creating a global presence and ensuring 99.99% availability at any time in any place. The availability zones guarantee sufficient redundancy and resilience to withstand eventual outages and maintain uninterrupted service.

Google Cloud Platform

Focus on advanced technologiesLow pricesLive migration
GCP development is leaning towards hi-end technologies, such as AI and machine learning, data analytics and other advanced technology areas. GCP provides a complete environment for building AI, ML and other similar products.GCP is rather user-friendly when it concerns pricing. The provider uses the pay-as-you-go model with no upfront fees. At the same time, GCP supports various discounts, cost-effective plans and free services.Live migration makes GCP stand out, as other cloud providers offer no such feature. In GCP, you can migrate a virtual machine to a different host with no stopping and rebooting. This way, your service remains uninterrupted even when any updates are required.

Microsoft Azure

Cloud-based Windows toolsEnterprise AgreementsHybrid cloud opportunities
Since Microsoft Azure and other Microsoft products are under the same umbrella, it was only natural to bring the traditional Windows tools to the cloud. In Azure, you can launch a Windows desktop with the rest of your  favorite Microsoft products – Windows Server, Office, and others. Companies using Microsoft tools usually make Enterprise Agreements including a range of products at a volume-based discount. For companies wishing to use Azure as their cloud provider, there is an option to include Azure into their Enterprise Agreements and enjoy the cloud service at a discount.Microsoft Azure is very well suited to building scalable and secure hybrid clouds. A hybrid cloud combines the features of a public cloud and a private cloud easily integrating the internal infrastructure with public resources.

Alibaba Cloud

Top cloud provider for ChinaDiscount plansFast-growing service list
Alibaba Cloud’s footprint in China is way beyond the rest of the competition. The provider places a great focus on serving enterprises and small and medium businesses in China, thus becoming the cloud of choice for companies or branches located in China and the Asia region.In addition to a rather flexible pricing system with both prepaid and pay-as-you-go models, Alibaba Cloud offers targeted discount plans – Student Discount Program, discounts for new US-based users, and other attractive programs.While the list of Alibaba Cloud services is nowhere near that of AWS, it is quickly gaining with dozens of available products and more to come. Moreover, Alibaba is actively investing in developing advanced cloud tools and platforms, such as AI, machine learning and big data.
Julia Poltavets

Azure vs. Alibaba: Cloud Platforms Comparison 2019

Posted by Julia Poltavets on June 3, 2019

We continue posting our analysis and comparisons of the most significant cloud service providers on the global market. We started with two major players in this industry – GCP and AWS, and today we would like to share our findings on two more cloud platforms – Microsoft Azure and Alibaba Cloud.

While Microsoft Azure comes up quite often whenever cloud platforms are discussed, Alibaba Cloud seems to be a new kid on the block. And this impression is totally wrong, as Alibaba Cloud has been around for a decade already – since 2009. It is a part of the famous Alibaba Group and the largest cloud provider in China.

However, the geography of Alibaba Cloud has reached far beyond China and formed a truly global coverage. Thus, it would be fair to compare it with another cloud provider of the global scale, Microsoft Azure, to see the strengths and weaknesses of both.

Coverage

Alibaba Cloud, quite logically, has the largest presence in China – 7 regions. However, it also has quite a number of regions in the Asia Pacific, two regions in the US, two in Europe and one in the Middle East. Thus, we can say that the Alibaba network has created a global coverage and that its services are available in all parts of the world.

Microsoft Azure coverage is more dense – it has 54 regions on all continents. The Azure network has reached as far as Australia, Japan and South Africa where it also has dedicated regions.

In the context of coverage, we can say that while you can get both Alibaba and Azure everywhere, with Azure you can be closer to a data center and have a more reliable service.

Computing capacity

Let’s see how powerful a virtual machine you can get with Microsoft Azure and Alibaba Cloud. The computing capacity and, consequently, the machine performance, depends on the number of vCPUs and the RAM size.

With Alibaba, the largest VM you can get has 160 vCPUs and 1920 Gb RAM. In this respect, it outpaces Microsoft Azure that can go only as high as 128 vCPUs but can supply twice as much RAM – 3892 Gb.

As you can see, both cloud providers have quite flexible options as to the machine size and capacity. Check the Alibaba Cloud calculator and Microsoft Azure calculator for the available options.

Storage

Whenever you are launching a virtual machine in a cloud, you can request an additional storage volume together with it. Additional volume is needed for most apps to store databases and other app components.

In this respect, both cloud platforms offer sufficient volumes – up to 32,767 Gb with high performance and read/write speed of their disks.

Security

In cloud computing, security is one of the primary concerns. Users pay special attention to security measures, as their adequacy can tip the scales in their decision whether to trust the provider with their data.

Both Microsoft Azure and Alibaba Cloud apply rather extensive security measures. Advanced data encryption algorithms are used both client-side and server-side, and storages are encrypted, too, to protect data at rest.

Alibaba uses Resource Access Management to provide access to its services. The RAM system allows creating a multi-level access system with MFA for extra protection.

Microsoft Azure uses the Active Directory model for user and access management. Azure also has an effective MFA mechanism that increases the security.

Of course, both cloud providers ensure that their services comply with the applicable regulations. Both have HIPAA, PCI DSS and other certificates to prove compliance with the global, regional and industry security regulations. In more details, the security certifications are listed on the official websites of Microsoft Azure and Alibaba Cloud.

Pricing

Both Microsoft Azure and Alibaba Cloud use the pay-as-you-go billing model where charges are based on the exact time you are using the cloud resources. Comparing the prices of cloud providers is never easy, as you need to take into account lots of factors that add up to the virtual machine cost.

A quick comparison shows that Alibaba offers somewhat lower prices than Microsoft Azure. Of course, a lot depends on the virtual machine configuration and the region it is launched, but when we compare prices for machines of similar configuration, Alibaba is still a bit more attractive.

You can browse the available options and compare prices in the pricing calculators of both platforms – Alibaba Price Calculator and Microsoft Azure Pricing Calculator.

While Alibaba seems to win in the pricing category, Microsoft Azure offers a larger variety of available configurations. The list of virtual machines supported by Azure includes all sorts of vCPU/RAM combinations suitable for any purpose.

Summing up

The purpose of our comparison was never to conclude that one of the cloud providers is better than the other. On the contrary, we compared the most significant parameters of both cloud platforms to show that both can be used as a reliable and secure environment for your infrastructure.

Microsoft, due to its larger market presence and better recognition, can be considered more popular and more widely used. At the same time, Alibaba cloud is following closely and is going to make its rightful claim on its share of the cloud services market.

As to the choice of the best cloud provider, our recommendation is always to start with your project requirements. They are the base on which you should build your technology stack including the cloud resources.

Julia Poltavets

GCP vs AWS. Which cloud provider to choose for your backend?

Posted by Julia Poltavets on May 20, 2019

Google Cloud Platform or Amazon Web Services? Choosing the cloud provider for an application server is one of the major challenges in app development. This choice is usually done at the beginning of the project and then it greatly affects the rest of the development, support, and maintenance processes. You need to choose wisely, as migrating the whole infrastructure is no easy task.

In this post, we will try to compare the main features of the services that we can expect from both cloud giants and see what each of them has to offer.

Why do we ever consider using cloud services to host our applications? Once we answer this question, it will be easier to see the criteria that we should compare when choosing the cloud service provider to host our application backend.

What do we need from a cloud service?

When we are about to launch our backend platform in a cloud, we usually check some of the key characteristics that will, to a large extent, define our infrastructure performance.

Computing capacity

The computing capacity is usually judged by the number of cores, or virtual cores (vCPUs), in our case. The larger the number the faster and more efficient the server is going to be. Multiple cores allow running multiple processes simultaneously without slowing or blocking the entire system.

Another parameter that we need to consider in the context of computing capacity is the RAM size. It also affects the server performance, as a larger RAM allows supporting more simultaneous processes and data exchange flows.

Let’s see what AWS and GCP have in regards to computing capacity.

The largest virtual machine AWS has 128 cores, or vCPUs, and 3904 Gb RAM. GCP’s maximum is even higher – 160 vCPUs and 3844 Gb RAM. Obviously, both providers can set up some truly powerful virtual machines.

Of course, you would not need the largest machines on every occasion, as in most cases you are going to be perfectly OK with medium computing capacities. At the same time, it is nice to know that you have options for some heavy-duty computing.

Storage

The importance of storage volumes in a cloud server cannot be underestimated. When it comes to storage, size is not the only thing that matters – although it does matter. In addition to the storage size, we also need to take into account the speed of read and write operations and the ability to process high loads.

Let’s compare storage options in AWS and GCP.

AWS offers two main types of storage – SSD and HDD. In their turn, SSD can be general purpose SSD with the size of 1 Gb to 16 Tb, or Provisioned IOPS SSD with the size of 4 GB – 16 Tb. Provisioned IOPS SSDs are better suited for high workloads and extremely mission-critical use cases, such as database operations.

HDDs can be 500 Gb – 16 Tb in volume and are a recommended option for high throughput processes, for instance, streaming.

GCP offers both SSDs and HDDs up to 64Gb that have high performance, speed, and throughput.

Cloud services

Cloud providers offer not only virtual computing capacities that you can use as you see fit but also various services that also run in the cloud. For example, you can have a containerization or database function that is already set up in the cloud.

AWS has more than 200 such services where you can find mostly anything that you need to build an app and run it. There is, for example, Amazon DynamoDB – a database service, Amazon S3 – a storage service, Amazon Route 53 – a DNS service, and dozens more.

GCP offers a choice of 50+ services. It also has the basic services, such as a database service (Google Cloud Datastore), a containerization service (Google Kubernetes Engine), a DNS service (Google Cloud DNS), and a lot more.

Security

Security is always critical, and in this matter both cloud platforms match each other stride for stride. Both AWS and GCP use proper protection mechanisms that can secure the users’ data:

  • 256-bit AES encryption
  • Compliance with the requirements of security certifications, such as ISO, PCI, HIPAA, etc.
  • Identity and access management including MFA

Cost

Both GCP and AWS apply the pay-as-you-go billing model when you are charged only for the actual cloud capacities that you have consumed. You can have a server for as much time as you need and only pay for what you used. Both use per second billing which means exactly that – your consumption is billed in seconds of your actual cloud usage.

It is not easy to compare the costs of a GCP and AWS virtual server, as there are too many different factors to be taken into account. Both platforms offer pricing calculators where you can estimate the cost of a virtual instance of a certain configuration – Google Cloud Platform Pricing Calculator and Amazon Simple Monthly Calculator.

Both GCP and AWS have free trial options as well as an “always free” plan including a limited number of services. However, the “always free” plans can hardly be an optimal choice for a backend server for your application.

Which cloud provider to choose?

If you are looking here for a definite answer, we might disappoint you. Both Amazon Web Services and Google Cloud Platform show great performance and provide adequate security, thus, can be optimal platforms for hosting your servers. We’ve made this comparison to see their main features and to show that both AWS and GCP are rightfully considered leaders in the cloud services sector.

At QuickBlox we’ve been using AWS as our cloud provider for quite a while. Some time later, though, we added GCP to the list of platforms where we host our products.

It’s a no-brainer that AWS is the number-one choice for the majority of users. With the scores of services, great flexibility, considerable experience, and extended official and non-official documentation all around the Internet, it can hardly be otherwise. GCP, though being a runner-up here, is quickly gaining momentum and may soon be expected to show the same reliable performance and security as AWS.

Julia Poltavets

APIs vs SDKs in Questions and Answers

Posted by Julia Poltavets on May 13, 2019

In software development, API and SDK are the two things that get mixed up very often. Both are used to integrate third-party software, both provide pre-built components and sometimes it may seem that you need to choose between using an API or an SDK in building your app. Even when you browse QuickBlox developer documentation, you will find references to APIs and SDKs.

While APIs and SDKs are somewhat related, they are different in the way they are implemented. In order to clear the confusion between these two concepts, we decided to do a little research on how APIs and SDKs work and how they can be used in application development. We will try to answer the most frequent questions that may arise in connection with APIs and SDKs and help you decide whether an API or an SDK will be an optimal choice for your project.

1. What are APIs and SDKs?

Let’s start with the abbreviations. API stands for Application Programming Interface. SDK stands for Software Development Kit. Both APIs and SDKs are intended to include a software component built by a third party in your own product, but in each case a different approach is used.

2. What is the main purpose of APIs and SDKs?

If we can use a household analogy, an SDK is an IKEA table set, while an API is a drawing of a table or a YouTube tutorial on making a table. When you buy a table from IKEA, you need to assemble it at home using the included hardware but you are going to get exactly the table that IKEA designed. It is not going to be too hard, as all parts are made to come together tightly and you will have as many nuts and bolts as needed to assemble the table. IKEA also includes wrenches and screwdrivers that fit the hardware. You cannot, however, do too much about the size and design.

That’s SDK for you. When a software development company releases an SDK, it gives you a sort of an “assembly kit” where all components have been carefully developed and tested to work together. You will get an entire development environment with all integrations already set up as well as reusable code samples. A quality SDK usually also includes the documentation on how to set up the environment and build the app using the provided tools.

With an SDK, you are getting a complete functional component that you can set up really quickly and with little development effort. Using SDKs is the solution of choice for building client applications, as they include the full functionality as well as the tools to implement it. For example, with our iOS SDK you can create a mobile messenger app for iOS devices in a relatively short time.

Now, let’s look at the APIs. If we again use our table-making example, an API is a DIY option. You can find a step-by-step instruction or a video tutorial on building a table and then let your imagination run free. The basic rule is that a table should have four legs and a top, but you are free to choose how tall the legs are going to be and whether the top should be oval or rectangular. You will procure your own materials and tools and only use the tutorial for reference.

This is how APIs work. In fact, they are a set of rules and standards that you should follow to integrate a third-party service. They provide an interface to it allowing to reach the remote server and perform operations designed by the third party, but you need to set up the integration on your own. You will be free to choose the type of tools you are using in the process, however, integrating an API takes more effort. You will need to set up your own data mapping rules, authentication procedures, synchronization and logging scenarios, and a lot more.

3. What do APIs and SDKs contain?

An API usually consists of a number of methods that enable communication between your software and a third-party service. Calling a method using the strictly defined set of mandatory or optional parameters may change the value or return some data to the UI of your app. For example, QuickBlox API contains the Retrieve messages method allowing to retrieve messages from a particular dialog filtering them by a number of parameters, if needed.

SDKs, in their turn, contain a complete package of development tools designed to create a particular function. An SDK allows setting up the entire development framework to build the app or a functional component. Sometimes, an SDK contains one or more APIs enabling communication with third-party servers and fetching data from them.

For example, among its development tools, QuickBlox offers its Android SDK that you can use to build a messenger app for Android devices. It includes the corresponding code samples, the instructions on setting up the development environment and using the framework, as well as lots of other useful tools.

4. What are the main highlights of APIs and SDKs?

The table below contains a side-by-side comparison of APIs and SDKs based on our development experience. We use QuickBlox API and SDK as examples in this comparison.

APISDK

Integration Time

Usually longer development time that may result in higher costs

Significant time-savings (about 1000+ man-hours per app) allowing to reduce the costs and time-to-market

Data Model

Designed to use standard HTTP protocols and return JSON payloads in response to HTTP requests

Due to the predefined classes that reflect the API data model, there is no need to write boilerplate code

Networking

Can be either written from scratch or set up using the preferred library/framework

SDKs usually sit on top of reliable and tested network libraries (or platform default), therefore, there is no need to develop networking layer

Concurrency

Full control over threads and concurrency. May be useful when performance and optimization are critical

Standard async and sync calls, very straightforward in terms of usage

Storage

No limitations, any storage option can be used

Standard caching & storage using best practices specific to a particular platform

Security

APIs allow putting additional levels of security, using custom encryption etc.

Best practices are used which fits 99% of use cases

Maintenance & Migration

The development team is responsible for the migration to new versions of API and data migration

SDKs have inherent backward compatibility and mechanisms performing data migration in the related storage

Dependencies

Developers can pick the libraries or frameworks that are going to be used and have control over their versions. Alternatively, the integration can be set up with no dependencies

Most SDKs are built on top of popular, reliable and tested open-source libraries. In exceptional cases, dependencies may have conflicts

Coding

The developers are responsible for the whole architecture and have to write all of the code

SDKs require less coding as they are designed to simplify integration for a specific platform

5. What to choose – an API or an SDK?

In view of what we have found out about APIs and SDKs, we recommend that you choose according to your particular situation. If you have time and resources to set up your own integration, choose an API. If you want a quick solution with most of the preliminary work done, choose an SDK.

Besides, as we mentioned already, APIs are the tool to build server-side solutions, that is, if your goal lies in that area, use an API. SDKs, in their turn, are intended to develop client-side solutions and should be selected in such cases.

We hope we could throw some light on the “API vs SDK” issue and help your business make a better-informed choice. If you need more information about QuickBlox APIs and SDKs, contact our team for a detailed consultation. Our experts will gladly help you find the best solution for your messenger function or app.