Essential Skills for Cloud Computing

Published by D Girma on

Context

While there are a number of cloud service providers (CSPs) out there, it would be almost impossible to write an article like this with absolute neutrality and without referring to a real cloud platform. This article uses the Microsoft Azure Cloud platform where context and references to actual platform are necessary for explaining key concepts, or refer to examples and additional materials for the reader.

If you need quick definitions/explanations of some of the technical terms that appear in this article, refer to a related article: Cloud Speak – Terminologies in Cloud Computing.

Introduction

To help us identify the key skills for cloud computing, let’s start with a basic definition:

Cloud computing is the delivery of on-demand, consumption-based computing services over the Internet—”the cloud”—that is current, elastic, scalable, reliable and secure, and built around sharing of resources to achieve economies of scale as a means of lowering per unit time cost of compute power consumed.

Admittedly, the above is a loaded and verbose definition of cloud computing, put this way for effect. What is intended here is to elicit some of the key concepts borne by cloud computing —such terms or phrases as: on-demand, consumption-based, elastic, scalable, reliable, resource sharing, compute power, etc., which are helpful as pointers to the requisite skills.

If you look closely, the above definition is all about the pros of cloud computing, and like any technological artefacts, cloud computing has various downsides that need to be engineered against to withstand vulnerabilities and failures. Notable ones are weak links (e.g., network connection can fail), security vulnerabilities (numerous to list here), latencies (more delays involved as compared to on-premises), and the inherent unpredictabilities (e.g., application hosting can dynamically relocate to different datacenters as part of resource optimisation strategy or on failover).

Here is an addendum to the above definition to make it more complete: 

Cloud computing is designed to handle infrastructure and service failure, recover from the loss of data, and recover from a disaster by designing availability and recoverability into the system architecture.

Now, compare and contrast cloud computing with conventional (on-premises) IT systems, and it is easy to note how a whole landscape of system design and implementation is shifting to new horizons. This, in turn, demands not only a new set of skills, but a different mindset for the choices we have to make at various levels (e.g., for optimization, resiliency designs, etc), say, from app-level development to system-level integration.

Note also that we’re all sold cloud computing on its key benefits, notable ones being elimination of capital expenses, much reduced operational cost, and riddance of all the worries about the provisioning and maintaining on-premises computing. This is true if you’re just the end user. If you’re a cloud services developer or solutions architect, then, switching from the conventional (on-premises) environment to the cloud-based environment brings new interesting tasks to the fore that the job demands. Just to cite a few:

  • analysis of resource utilization and consumption;
  • optimization of consumption strategies;
  • performance and scalability strategies; and
  • so on.

On countering the downsides of cloud computing, there are also interesting concepts and key phrases that come up, outlined below in no particular order:

  • Availability and recoverability;
  • Geo-redundancy (availability regions, regional pair, etc);
  • Fault-tolerant computing;
  • Disaster recovery;
  • Resiliency or ability of a system to recover from failures and continue to function;
  •  Load-balancing;
  • Et cetera.

In the context of the Azure Cloud, Microsoft documentation attempts to condense the above disparate points more systematically under four categories, and with an eye-catching collective phraseFour Pillars of Cloud ArchitectureThe four pillars referred to, put in alphabetical order, are:

  • Availability and recoverability;
  • Efficiency and operations;
  • Performance and scalability; and
  • Security.

In the context of cloud services, these are indeed wide topics to cover and master, and with far-reaching impact on how we approach system level solutions, down to developing innovative software solutions. In most design settings this complexity is handled in a more systematic way, with a team of solutions architects (in charge of identifying functionalities and essential requirements) and cloud developers (in charge of cloud-based implementation), perhaps with the DevOps continuous integration that incorporates other interdisciplinary activities of the design project such as security, compliance, and testing. It means the complexity and intensity of the problem is now minimized with a vertical chain (say, between developer and solutions architect) and horizontal chain within the DevOps roles and responsibilities.

So, What are the Key Skills?

When I got to this point, I thought a good idea to check out for related articles or blogs that might have answered this question in one way or another. Sure enough, I came across one by Barry Luijbregts, a very comprehensive must-read blog under the title: 9 essential skills for Microsoft Azure developers. Not to repeat what this blog covers in some details, my approach here is to highlight the key skills in a relatively broad sense, hence shorter list of items as outlined below with enumerated sections.

1. Mastering What to Use When

Cloud computing provides numerous technical choices, architectural options and building blocks, and it is hard to identify skills in terms of the underlying key concepts alone. The best approach to addressing this issue is understanding the various options at architectural or service level (compute, storage, networks, databases, etc) and mastering what to use when.

Barry Luijbregts just mentioned above is not only a blogger but also an educator at Pluralsight. His training course Microsoft Azure for Developers: What to Use When, is an excellent compilation of the various options: in terms of app services, compute architectures, storage services, database technologies, etc, and when to use them by addressing the whys, thereby providing much deeper understanding. This is a broad area but starting here you can make your pick and focus on specific area(s) of interest to you. With this as a departure point, in the following sections I will summarize what I think are trending in the cloud-based designs.

To summarise this section first, (i) master the Four Pillars of Cloud Architecture and (ii) master what to use when. Then you’ll be on the right track to advancing your cloud skills to high levels.

2. Serverless, Serverless, Serverless

Serverless is a trendy cloud computing execution model gaining rapid popularity, and it stands out as a must-have keyword on a CV. Some cloud experts have expressed their dislike for this term (to some extent I share the sentiment), but this term is alive and kicking in the Azure world. Amazon’s AWS uses an alternative name for itAWS Lambda.

Here is Azure’s definition of Serverless Computing:

Serverless computing is a cloud-hosted execution environment that runs your code but completely abstracts the underlying hosting environment [i.e, the server].

Serverless computing is simply a reflection of changes brought about by cloud services requirements, and it’s at the heart of Platform as a Service or PaaS offering. Think of the need for on-demand compute power, scalability, resource optimisation and the like, and it’s clear that some paradigm shift is inevitable in how we approach cloud-based programming. On-demand computing calls for some event-driven programming and, in fact, serverless computing is an event-driven cloud service. Also note that (unlike desktop applications) we can no longer assume localized database or localized caching of data for cloud-based programs, because dynamic geo-location of global application-hosting is incompatible with local dependence. This and related requirements have indeed generated a plethora technological advances for the cloud age, comprising compute options, storage services, network solutions, and database and cache technologies. The link here will give you some flavor of what is implied. Needless to say, these new advances provide the foundation for various types of cutting-edge cloud-based programming, including serverless computing.

In summary, if you want to go into cloud-based development for innovative solutions, mastering serverless computing seems to provide a vista of what cloud computing has to offer in terms of app services, messaging hubs, pre-built APIs, etc that you can leverage for your innovative solutions.

3. Internet of Things or IoT

One rapid development area on the cloud platform is the IoT where machines (or “things”) talk to other machines and humans, ushering in a new form of automation with intelligence. A forecast by International Data Corporation (IDC) made in mid-2018 indicates that worldwide technology spending on the IoT will reach $1.2 Trillion in 2022, with consumer sector leading the adoption (e.g., smartphones, wearable health monitoring devices, connected vehicle, augmented reality devices, etc), followed by insurance and healthcare provider industries.

When it comes to developing IoT solutions, there is nothing fundamentally different, say from serverless computing; it is more of the underlying cloud services and tools used that make the difference. IoT solutions generally use specialized messaging hubs, and in some cases fully-managed SaaS solutions that make it easy to connect, monitor, and manage IoT devices. For instance, Azure IoT Edge is a new launch by Microsoft (in June 2018) for providing Azure services and artificial intelligence on IoT devices.

4. Big Data and Business Analytics

Although a distant runner-up behind the IoT  with IDC forcast at $260 billion in 2022  big data and business analytics is another area fueling cloud services. If you think of sales, marketing, finance, or even specialized application areas like imaging platforms, weather systems, or genomic research, you get the idea as to what is driving cloud-based analytics.

Here are some of the key phrases that come up in this area and in no particular order: Data Science, Data Mining, Data Lakes, Data Warehouse, Business Intelligence (BI), NoSQL databases, Data Factories, Azure Databricks, etc. I’ll leave further exploration for the underlying concepts of these to the reader. Suffice to say that cloud platforms support a broad range of technologies and services that provide big data and analytic solutions. As the name suggests, the skills required for a data analyst focus more on analytical/numeracy and business skills (statistics, business intelligence, data mining, etc) and, of course, the computer skills to get the job done (modeling, analyzing, reporting, visualizing, that sort of things).

5. AI and Machine Learning

The IDC forcast puts the market for this sector to reach $78 billion in 2022, just behind big data and business analytics, so one of the cloud-based service sectors that is getting the attention.

AI or Artificial Intelligence, simply defined, is the intelligence demonstrated by machines, in contrast to the natural intelligence displayed by humans. Good examples of AI in action are the ubiquitous virtual assistants: Amazon Alexa, Google Assistant, iPhone Siri, and Windows Cortana.

Machine Learning is a subset of AI whereby computers analyze (and learn!) existing data to forecast future behaviors, trends, and outcomes. Data Science is the field underpinning machine learning, and it enables computers learn without being explicitly programmed. For instance, machine learning can be used to enhance user identity protection by analyzing login sessions against various security policies and login history (note, all are data items) and, likewise, machine learning based verification can kick in following a credit card transaction to avoid fraud by comparing security policies in place and purchase history (again, just data items). In the context of cloud computing there are a broad range of applications, such as the all-too-familiar product or service recommendation based on purchase history; fraud analysis and investigation; automated threat intelligence and prevention systems; automated preventive maintenance (industrial, vehicular, etc); diagnosis and treatment systems; public safety monitoring and alert, just to mention a few.

The use of the phrase AI and Machine Learning, strictly speaking, is redundant because machine learning is AI, but in this description AI actually implies “cognitive” intelligence “learning” and “problem solving” by mimicking the human mind. For instance, vision and speech are cognitive senses (i.e., to do with human mind), and if we use computers to convert text into speech, perform speaker recognition, use voice for security verification; or use image-processing algorithms for smart tasks such as identifying pictures, captions, and videos, then, we are into the realm of cognitive intelligence. The same is true in natural language processing as in automated language translation (that’s where the magic of Bing Translator and Google Translate come from); or based on user interaction using smart algorithms to evaluate user sentiment and learn how to recognize what users want, say, to implement automated customer service agents (you might have spotted those smart bots on some websites, pretending to be human assistants).

And finally …

  • I haven’t forgotten Blockchain at all. It’s an exciting growth area and worth keeping an eye on, particularly if crypto is your area of interest. The IDC forcast puts spending on this innovative technology to reach just over $10 billion in 2022. The commitment to cloud-based Blockchain development is well demonstrated by the big players including IBM. For instance, Microsoft has recently released a Blockchain Development Kit for Azure, and exploring from there will give you some indication of the specific Blockchain skills you need in the context of cloud computing.
  • Last, but by no means least, is: Security, Security, Security. The reason why you see this very important and all-pervasive skills domain, down here in the list, is simply because information security is not unique to cloud computing. In fact, the need for information security is more important than ever before with cloud computing, because business data are increasingly residing off-premises at datacenters, which means more need to be done to harden network security so as to reassure businesses and consumers with the lingering concerns about cyber threats. For the same reason, some businesses use a Private Cloud where very sensitive data like medical or financial records need to be protected with ultimate security possible. While enhanced information security skills can earn you corporate roles in their own right (such as CISODPO, etc), even being introduced to basic or intermediate skills of cyber security and data security compliances can give you that needed edge in your cloud computing career. Cyber security has been for years on everybody’s mind, for instance, with data breaches making news headlines, new legislations being enacted, etc. There is, therefore, much being devoted to the information security domainfrom academia offering degree-level qualifications, to national cyber security and information governance organisations, and international advocacy bodies such as IISSCC and IAPP who also promote and run training and certifications in information security. In short, if you haven’t done already, get acquainted to information security fundamentals and data protection compliances, such as the ISO 27017/18EU GDPRUS HIPAA, and similar national governances elsewhere relevant to the cloud infrastructure, and keep updating and enhancing your skills in this area.

Where Does Academia Fit in All This?

As a former academic (with some experience in MSc curriculum design in the IT field), I was curious to find out to what extent the academia is preparing graduates for the cloud era, particularly in terms of the key skills just cited. While this is a big research to take on, my remarks here are based on cursory comparisons of topics that constitute skillset as demanded by industry versus topics as per course descriptions of postgraduate MSc in cloud computing and related areas. Furthermore, my observation is limited to UK higher education institutions although I’d love to learn how other countries are doing in this area (and would be useful if readers could share their thoughts with comments). Another disclaimer is what you already know by now; where skillsets are compared between academia (talent supply) and industry (talent demand), I am using the Azure Cloud as a reference though don’t expect the remarks to deviate much based on cloud platforms.

First, it is important to appreciate that there are two forces at play here. The academia, by and large, focuses on covering the fundamentals in a more generic way, which means trainees are very seldom introduced to real cloud platforms (unless work/training placement is part of the curriculum as some instructional MSc’s do, or cloud-based practical lab is incorporated into the course). On the other side is the companies hiring the skilled workforce  in most cases not qualified (or even interested) to vet the talent from academia  but want talent that [ideally] fits the job description. That’s where certification comes in to do the vetting of talent for employers.

Certification is based on intensive training that is well focused and practical oriented. Training to prepare professionals for certification exams is now a multi-billion industry, and needless to say, generated mainly by the cost borne by trainees (although some employers do pay for such training). There are two points to be made here:

  1. As you may have surmised, the thriving industry in training is testament to the fact that academia is lagging behind in preparing graduates for the rapidly growing cloud-based technologies. Note that my point of comparison is at a graduate level or equivalent, such as instruction-based MSc or MEng; it would be unrealistic to expect professional certification level of preparation from fresh graduates with Bachelor’s or equivalent degree and without exposure to work experience that is presupposed by certification in the first place. I have looked at the module descriptions available online for various Cloud Computing MSc instructional courses, and there is a clear gap between the depth and focus the cloud industry demands (evident from certification requirements) and what the instructional courses cover, particularly in the higher tier of certifications for developers and solution architects. As an aside, there are also MSc courses on Data Science and Analytics, as opposed to the all encompassing Cloud Computing, and as should be expected the gap is not as apparent for most of these courses.
  2. Although the certification route in all likelihood improves the prospect for high paying jobs, the additional training cost on the top of degree tuition debt will no doubt amplify the eternal question of whether the [second?] degree education is worth it. If you want my take on this: do your undergraduate degree that provides a foundation for cloud computing (almost all professional certifications assume such a prerequisite), and then make it your target to get certified sooner, noting that certifications span from foundation to advanced or expert level. It is not compulsory to go through all of them. Based on your relevant work experience you can jump to an intermediate or even top tier certification, as should be clear from the descriptions below.

To help employers know exactly what professional certification category fits where in their work team setting, the big players in cloud technology, notably Amazon and Microsoft, are now offering role-based certifications.

  • Amazon AWS Certifications: AWS Foundational (1 role); AWS Associate (3 roles); AWS Professional (2 roles); AWS Specialty (3 roles). The roles are shown at this linkunder each certification.
  • Microsoft Azure Certifications: Microsoft Certified Solutions Associate (MCSA); Microsoft Certified Solutions Developer (MCSD); Microsoft Certified Solutions Expert (MCSE). There are 3 main roles shown for Azure certifications: Cloud AdministratorCloud Developer, and Cloud Solutions Architect. Additional roles for Business AnalystBusiness User, and Data Engineer are also indicated but not clear if these are subject to certification. At this point in time, it is also not clear if all the roles apply to all certification categories, and this lack of clarity arises mainly because some of the roles and certification are introduced recently (in some cases by revamping previous certifications). Note: Because Microsoft has numerous product portfolio (Microsoft Windows, Microsoft Office 365, Microsoft Dynamics 365, Microsoft Teams, etc), there are more certifications and roles than shown for Azure, for instance, Microsoft Technology Associate or MTA doesn’t appear under Azure.

Certifications are obtained by sitting an exam or a sequence of two or more exams (see here as an example), and interestingly the preparation time that needs to be devoted to is in fact comparable to instructional MSc courses. You have the choice of self-study with ample free online resources (e.g., check out this), instructor-led courses (check out for relevant links at certification websites referred to above), or virtual classes based on online multimedia courses. In the latter case, Pluralsight and Udemy come as strong recommendations while Lynda (a subsidiary of LinkedIn) has some catching up to do with advanced courses (e.g., Mircosoft’s new role-based certifications).

Conclusion

Cloud Computing is an exciting technology sector undergoing rapid growth. As such it will undoubtedly permeate our lives with its diverse applications. Do you want to be in the driving seat of this exciting tech revolution? If your answer is affirmative, I hope this article will give you some pointers by way of the key skills you need to acquire and refine over time. Best of luck!

☀☀☀

If you’ve got this far, chances are you may have found this article useful. If so, show your appreciation by voting with thumbs-up 👍 at the top so that I get a more realistic indication of readers interest in what I share in my spare time.

☀☀☀

© 2019 Demessie Girma.


0 Comments

Leave a Reply