read

Digital Transformation: Cloud, FaaS, and AI

By Sean Washington

You’ve probably seen the ridiculous IBM Commercial that says, “This is not a Cloud, it’s a Tomato going from farm to table on the Block Chain (Link) .” In 30 seconds, their marketers have squeezed every relevant Cloud Computing cliché into a nicely dressed up message. The commercial airs consistently on sporting events, acting as if the general population has a clue to what they are talking about. My goal is to explain why these buzzwords will impact our future.

We hear about it every day; cloud computing is an important component of technology and IT operations. The abilities and tools of cloud computing are impacting day to day business and the future of technology. Many view Cloud as an outsourcing model, but that barely scratches the surface of the value being delivered. Cloud providers are dictating the future of technology by advancing technologies which will lead to a serious change in the way businesses will implement technology.

Cloud computing is enabling businesses to transform the way the operate – specifically allowing for flexible spending readily available resources. For instance, a small business may see value in moving away from a server-based application to a web-based Software as a Service (SaaS). An example would be moving off a traditional server based CRM to an online service like Salesforce.com. This eliminates the need for Servers, maintenance and increases usability and mobility. 

The agenda for this blog is to discuss the changes in IT operations and how Cloud is shaping the future. There is a ton to comprehend, so I wanted to help clarify how components are used and how they will impact our lives.

For years, Cloud Computing was broken down into 3 main categories: IaaS, SaaS and PaaS. That’s old news as there’s now several new components that are enriching the ecosystem: I’d like to beak them all down and highlight their advantages.

1)    Infrastructure as a Service (IaaS)

Infrastructure as a service is the most frequently used component of Cloud Computing, it runs similarly to a traditional virtualized computing infrastructure. The idea is on demand, outsourced infrastructure that you can scale up or shut down whenever you wish. What makes it similar to traditional Data Center/Virtualized environments is that you can define the size of specific computing instances that will host a guest operating system. Traditional cloud or virtualized infrastructure is perfect for traditional server-based application architecture.

Running Containers on IaaS is a trend that is helping the evolution of cloud operations and development. Containerization (Docker and Kubernetes) give another level of abstraction beyond the hypervisor/cloud infrastructure. This allows software companies the ability to move data/applications around – from one infrastructure to another.

Examples of IaaS: AWS EC2, Microsoft Azure, Google Compute, Rackspace, VMWare, Mindcentric 😊

2)    Software as a service (SaaS)

Software as a Service is usually associated with an application that is not hosted on a server within your data center, but as software that is delivered as a service over the Web. Web-based services are quickly replacing traditional hosted applications, because the model is easier to mane, deploy and provide scalable flexibility for both the user and the manufacturer. A majority of software being developed today is being built in a SaaS model. It is easy and scalable for the end user, so it holds much more value over traditional server-based solutions.

Examples of SaaS: Salesforce.com, Intuit, ServiceNow, Workday

3)    Platform as a Service (PaaS)

Platform as a Service is a feature rich development platform provides that allows teams to develop, run, and manage applications without the complexity of building and maintaining the infrastructure typically associated with developing and launching an application. There are great advantages to software development teams in lower operating costs and a drastic reduction in operations in general. 

Developers only have to worry about building their applications, the PaaS provider takes care of all the infrastructure – including the OS. The main value here is there’s no maintenance within a PaaS model. However, the skill sets required to build on PaaS are more sophisticated than on IaaS.

PaaS Examples: AWS Elastic Beanstalk, IBM BlueMix, Google App Engine, Heroku

4)    Serverless/Function as a Service (FaaS)

A new development that is coming out of the Cloud arena is the concept of serverless infrastructure. This is similar to PaaS as the development team needs not worry about infrastructure or maintenance. The main value is that the application is designed to work only when a “function” is requested, allowing you to truly pay for the infrastructure executions on demand.

Not every application is going to be a fit for PaaS or FaaS, but components of an entire solution may be better fits for these platforms. Developers use APIs to develop and define the functions to react – the cloud infrastructure will scale on demand.

Principles of FaaS:

  • Complete abstraction of servers away from the developer
  • Billing based on consumption and executions, not server instance sizes
  • Services that are event-driven and instantaneously scalable

Differentiating FaaS and PaaS

There are a lot of similarities between PaaS and “serverless” in terms of operational abstraction and developer productivity. The key distinction here is in behavior of the workloads themselves. PaaS is meant for Applications, that need to be always on and automatically scale.  

Apps = PaaS : Functions = FaaS

  • Apps are pushed to a live runtime: Functions are uploaded to a ready-to-execute
  • Apps are long running: Functions have a discrete start and finish.
  • Apps are requested: Functions are triggered by an event.
  • Apps distribute traffic via load balancer: Functions via message queue.
  • Apps scale as elastic instances/containers: Functions scale via concurrent processes/containers.

In the serverless computing world, you don't have to worry about running the systems. The code will automatically kick in when the event of upload happens. So you are just paying for the exact seconds / micro-seconds the event happens. This is where you will save massive amount of operational cost.

If you look at unit of work as a developer, you still must write the code that will manage the upload process (hence the strong skill sets). However, you are leaving the decision of when to trigger your code to the cloud provider in question.

Examples of FaaS: AWS Lambda, IBM OpenWhisk, Azure Functions, Iron.io

5)    Artificial Intelligence (AI) and Internet of Things (IoT) and Big Data:

Artificial intelligence expands the idea of Big Data an enables the foundation for intelligent software. Cloud computing companies like AWS and Google are compiling and storing extreme amounts of data available to the public. These platforms are accessible by anyone and can hyper-scale on demand. 

AI is also referred to as Machine Learning, where software can act intelligently based on data. Most software being developed today has a component of machine learning, where the behavior of the software (how it interacts with the user) will depend on how you train it to leverage data.

Amazon is rolling out a new product called DeepLens, which is an AI powered trainable camera. Programmers will be able to leverage this technology and train DeepLens to react in pre-defined behavior when it sees something specific. For example, you can train the lens to play circus music if a clown were to walk in front of the camera. This is a simple example, but the possibilities are endless.

The Internet of Things is really a concept where all things are connected and intelligent. For instance, a lightbulb that is connected to the Internet and can adjust color/mood depending on analytical software. Every device that is connected is generating data, all of which can be used to drive efficiencies. 

Examples of IoT: Google Cloud AI/Big Query, AWS Machine Learning, Azure AI Platform

The commercial makes an effort to mention Blockchain, which is a distributed ledger technology that is commonly associated with Bitcoin or other various crypto currencies. Cloud technology is necessary for ledger tech as it is shared across everyone that wish to power the technology. Companies that are developing Blockchain technology are going to use cloud platforms and tools to develop their technologies.

Also mentioned in the commercial is the ability for Cloud to ward off hackers that are watching you. Most cloud users are aware that security is not included with cloud infrastructure (specifically IaaS) and best practices should be observed.

The Transformation:

The main objective for transformation is creating value out of availability and automation. The solutions and tools that I have described outline an evolution of cloud services that each have a specific role. For instance, not every application is suitable for PaaS or FaaS, but components may. 

If a company wishes to embrace these new technologies, they may find challenges. The problems will come in the form of a defined culture (how we’ve always done it), skill sets (this is new and experience is tough to find) and the overall defining of a long-term strategy.

It took many years, but Netflix was able to leverage AWS Lambda to help manage their AWS infrastructure as an event based system. Of course, they can hire and build elite teams, an option that may not be available for small start-ups. 

Tags: Cloud Computing

Related Articles

Contact Us

If you have any questions, we'd love to chat about how we can help your company.