Cloud Computing

Cloud computing is a very vast topic, and expects a lot of details and theories. Cloud computing is not just about having a supercomputer-server, or using the as-a-Service component for running your applications. It is also not useful to state that cloud computing is always about the websites, or web applications, we have some useful amount of remote databases as well — and the same can be made available through clouds — which means, that cloud is a very dynamic term, based on

  1. What you are building.
  2. How you serve your clients.
  3. How you manage the load and scalability.
  4. How you update or maintain your applications.
  5. What security policies you have.
  6. What development pattern or team architecture you have.

These, collectively, define what a cloud platform could be, for you! And yeah, nor is the cloud computing architecture in any way related to clouds of course. 😄

Cloud Computing

Cloud computing is a major buzzword, much like the DevOps concept that arose due to the popular communities using the term in their communication channels. Cloud computing is same as the distributed, or grid computing but it also has the elements of tenancy, managed computing, and service-oriented subscription models. With the advent of cloud service vendors such as Microsoft Azure, Amazon Web Services and Google Cloud Platform, the service is now in the reach of (not very) small businesses as well and that has raised the amount of training, certification and learning for the cloud computing.

Speaking of current day cloud computing, the service provides the opportunity for the business to,

  1. Be able to scale their infrastructure on-demand.
  2. Be able to use the services that they require on an ad hoc term (as needed basis)
  3. Centralize their data and services
  4. Reach global customers and employees
  5. Welcome other service providers to interact and integrate with their platforms
  6. Use best practices for security and performance
  7. Pay only for what they use, and not for any additional or extra hardware/software setups
  8. Make more investment in providing services, than enabling services

Some might agree, some may disagree due to the fact and the design of the cloud service. By the end of this post, I will cover up why people consider clouds less private — typically the public clouds. Cloud services differ in the range, and type of offering as well as the customer demands. Most notable services include, but are not limited to, web app hosting and publishing platforms, virtual machines, databases support, data science experiment toolkits, intelligence suites and much more. All of the cloud vendors support their own SDKs and APIs that customers can use and build against. This is one of things that I truly love about Microsoft Azure, and I yet have to figure out and find things for Amazon Web Services as well as Google Cloud Platform.

It must not be thought, that cloud computing is something new in the technology, only the name is new. The technology itself is old, and had been used by various vendors and tenants.

Types of Clouds

Clouds are categorized further in categories depending on how they are managed, where they are installed, how much privacy and control they provide over the data. The offers that you get, or the services that you can avail depend on the type of cloud platform that you use.

  1. Public cloud platforms
    • These are the most commonly used type of clouds, they are owned by a private firm and the data and services commonly are controlled and managed by them.
  2. Private cloud platforms
    • These are the platforms that are managed by the organization or enterprise all by themselves. They purchase, manage and service the infrastructure or hire a third-party to serve them.
  3. Hybrid cloud platforms
    • Private + public. Almost every public cloud vendor supports a mechanism to allow organizations to connect to their endpoints and service sections through a secure channel — due to the privacy concerns.

There are several other types of cloud platforms, such as community-oriented and community-led. The overall thing to understand the difference is, Who manages the infrastructure?

In the following sections I will talk about a few most notable cloud service providers as well, and then later we will dig into other services and features that they provide and support.

Services

Already mentioned above, but notable again are the services that are provided by the cloud platforms to the customers. The most notable services offered by the cloud platforms and cloud service providers are,

  1. Infrastructure or Platforms as a service
  2. Hosting services (data, web, services, identity and much more types of hosting)
  3. Development and Analytics suite
  4. Intelligence modules
  5. Experiment suites (such as data science etc.)
  6. Security patches and updates
  7. Performance SLAs
  8. Scalability and user controls
  9. Authentication/Authorization services
  10. Management and payment options

Every vendor has their own options, pricing and value-added services for the products offered here. The difference would only be in the terms of names, and how much you get for each of the services or how much you are needed to pay for the services. Otherwise, the services are all alike. I will not talk more about the services because I want to keep them categorized under some special chapters as we dig deeper so, yeah, later.

With the compute power, and the amount of data entering the cloud, the cloud vendors provide a very easy mode of enabling intelligence and cognitive suites for the customers that enable them to include some highly intelligent services in the applications without having to manage any machine learning or artificial intelligence. Plus, the as-needed subscription allows customers to pay only for what they use.

Public Cloud Service Providers

There are several cloud service providers, however the primary ones that I will want to talk about here are,

  1. Microsoft Azure
  2. Google Cloud Platform
  3. Amazon Web Services

All three of these are leading the cloud market, with taking a shift of ruling out one area or the other. The competition keeps going on, with one providing one service, other providing another. All of this just keeps going on. Likewise, I will not be talking about which one of these service providers is a better one as compared to competitors because I do not like these kind of debates, but of course if I feel something is outstanding, or something needs a fix I will try to make a proper statement on that and share the views for that.

Microsoft Azure

Microsoft Azure is a cloud platform offering by Microsoft, originally known as Windows Azure — the cloud computing edition for the Server path of Windows operation systems. Microsoft Azure provides various services and ranges of products, and options for the customers to select from.

Microsoft Azure was the first cloud platform that I had used, and since more than a year Microsoft has been sponsoring and helping me out with learning what cloud can be, and what cloud cannot be.

The most prominent characteristics of this cloud include,

  1. Pay-as-you-Go payment model
  2. Multi-model storage services
  3. Linux VMS (Windows, of course are there)
  4. Mobile services
  5. Identity and Security

The services themselves are tailored for the needs of customers and can be extended and lower down or bought in a volume licensing as needed. Microsoft Azure has more than 40 global data centers, and various product offerings that you can look into for your own global reach for customers and audience.

Microsoft Azure supports a free account for testing/evaluation purposes as well. Microsoft announced a 12-month free + lifelong free services account for individuals that you can learn more about on the Microsoft Azure Free access web page. The free services are useful because they let you learn and understand how a cloud functions. It also lets you manage some services for yourself, to see how cloud compares with other (non-cloud) solutions.

Google Cloud Platform

Google Cloud Platform is the Google's offering of the infrastructure share for the customers, who want to use the same infrastructure setup and power, that the Google uses for their own services. Google Cloud Platform is one of the strongest cloud platforms out there and has a huge amount of customer base through different channels and offerings such as,

  1. Google App Engine
  2. Firebase Cloud

Google although is not a primary software-only vendor, but they do focus on cloud/as-a-Service architecture more, and tend to develop products and services that are high-in-demand. For instance, the Firebase Cloud is the cloud offering, which is primarily targeted towards mobile applications, so the entire focus for the cloud (it's services, pricing models, service level agreements) is based on the mobile devices and mobile applications. Unlike Microsoft Azure, or Amazon Web Services, Google Cloud has different platforms (instead of services only), each targeting one of the core market niche.

Among the top 2 products, I personally like Firebase Cloud because I get to use the same services on the Android device for trying out, and for training purposes. So expect this one.

As for the free tier subscriptions for Google Cloud, you can visit their Free Trial web page, and access a free account to try out the services that they are offering.

Before, I go to AWS, I would also recommend trying out Firebase Cloud platform for your mobile needs. Firebase can be used as a free product as well, without having to request a free trial period (unlike Azure, GCP or AWS). So you can try these platforms out and then learn how a cloud functions.

Amazon Web Services

Amazon Web Services is one of the pioneers into the complete cloud computing solution thing. They started their services somewhat before or together with Microsoft, and are the main competitor of Microsoft in the cloud race. Amazon Web Services offers a wide range of variety for virtual machines and a high-end powerful selection of the items to be selected for consumer use. Being one of the most notable names in the cloud business,

AWS is one of the products and services that Amazon offers, aside from their online selling/buying platform. Amazon Web Services offers a great market for solutions to be developed for, and a huge amount of job opportunities as well — same is true for other vendors as well!

Their services are also similar to what Microsoft and Google has to offer, such as,

  1. Virtual Machines
  2. Web app development/hosting plans
  3. Development suites
  4. Intelligence and Machine Learning experiment environment

I would love to put some more emphasis on their services, and the service of other vendors in the sections that I will create later on for each of them. As compared to Microsoft Azure, however, Amazon Web Services has nearly 16 geographical location for their data centers.

To consume the AWS for free, you can visit their free access web page and request a free account.

Other vendors

These are just the giants in this area, and they are the promising components of this field. You can trust to consume the services by Microsoft Azure, Amazon Web Services or Google Cloud Platform and trust that they will fulfill their SLAs. Many vendors try and fail, I have seen more than dozens of cloud-service providers such as, storage providers, online hosting providers, and they have all failed due to the lack of services and cloud architecture.

Nonetheless, there are several other vendors out there who support and provide services for a specific niche area. Heroku, for instance, was one of the cloud service vendors when (as I can recall), Facebook started to publish apps on their platform and they suggested to use the Heroku as a service provider. The problem that these private organizations have to do more is that public has to be convinced to trust them with their sensitive and important data. These companies also have to invest more money, and do more marketing to get in the public and provide and showcase their products, whereas other vendors are already known and people give them a quick try, without any second thought — Microsoft Azure was initially named Windows Azure, and you can understand that anybody who knew something about computers knew what Windows is, and from there he can try a simple Google search, "windows server for cloud"... Got it? 😉

Dropbox for instance, is another cloud offering for storage accounts. And much more, the list goes on and more of the vendors get added each day. You can also try and find out a few more, I will try to update the list as I find some other notable cloud service provider, who deserves a mention.

Problems

Cloud computing has its own downsides from IT and developer's point of view. The platform itself is agile and difficult to understand, due to the continuous shift in its technological aspects. Since the dawn of cloud computing, all the way starting from the Amazon Web Services to Azure Cosmos Db, we have come a very long way and things have changed a lot. These problems range from the technical aspects, all the way to the environment-based problems and questions raised by the members.

Criticism has been actively used on the cloud providers, for various reasons,

  1. Pricing
  2. Privacy
  3. Transparency
  4. SLA
  5. Support
  6. Community

And much more, the cloud vendors have to take all of these questions into consideration before planning for anything major.

Privacy and Security

The major concern to most is the privacy for their potentially sensitive data. Cloud platforms are controlled and owned by the providers and we only lease them — as is already discussed above. Once we start using the services, the data has to be share and data comes in all shapes and sizes and reasons.

  1. Employee data
  2. Customer data
  3. Source code of the apps
  4. Usage data; logs etc.

There is all sort of data, always available in the cloud and which raises other concerns such as hacking attempts on the data, data exposure or breach, and much more.

Cloud vendors are always fighting against these, and providing new features and services that enable privacy protection all the times. There are several ways that they do, and I will discuss them in the Privacy section, when it will come up live.

Speaking of security, the security problems are not merely about the security from hacking attempts, but also from corporate-level unauthorized access. Think of it as, if out of your 500 users, 5 users are authorized to access the data, what protection is granted related to those 5 users? What if they try to access the data for some malicious purposes?

And a lot more of these concepts are to be discussed once we start to dig deeper into the realm of cloud computing, read more about them in their own chapters and topics.

Sorry, no chapters in this category.