IaaS vs PaaS

iaas vs paas

IaaS: Infrastructure as a Service

Cloud infrastructure services, known as Infrastructure as a Service (IaaS), are made of highly scalable and automated compute resources. IaaS is fully self-service for accessing and monitoring computers, networking, storage, and other services. IaaS allows businesses to purchase resources on-demand and as-needed instead of having to buy hardware outright.

IaaS Characteristics

  • Characteristics that define IaaS include:
  • Resources are available as a service
  • Cost varies depending on consumption
  • Services are highly scalable
  • Multiple users on a single piece of hardware
  • Organization retain complete control of the infrastructure
  • Dynamic and flexible

Examples of IaaS

Popular examples of IaaS include DigitalOcean, Linode, Rackspace, Amazon Web Services (AWS), Cisco Metacloud, Microsoft Azure, and Google Compute Engine (GCE).

IaaS Delivery

IaaS delivers cloud computing infrastructure, including servers, network, operating systems, and storage, through virtualization technology. These cloud servers are typically provided to the organization through a dashboard or an API, giving IaaS clients complete control over the entire infrastructure. IaaS provides the same technologies and capabilities as a traditional data center without having to physically maintain or manage all of it. IaaS clients can still access their servers and storage directly, but it is all outsourced through a “virtual data center” in the cloud.

IaaS Advantages

  • The most flexible cloud computing model
  • Easy to automate deployment of storage, networking, servers, and processing power
  • Hardware purchases can be based on consumption
  • Clients retain complete control of their infrastructure
  • Resources can be purchased as-needed
  • Highly scalable

IaaS Limitations and Concerns

Many limitations associated with SaaS and PaaS models – such as data security, cost overruns, vendor lock-in and customization issues – also apply to the IaaS model. Particular limitations to IaaS include: * Security - While the customer is in control of the apps, data, middleware, and the OS platform, security threats can still be sourced from the host or other virtual machines (VMs). Insider threat or system vulnerabilities may expose data communication between the host infrastructure and VMs to unauthorized entities. * Legacy systems operating in the cloud - While customers can run legacy apps in the cloud, the infrastructure may not be designed to deliver specific controls to secure the legacy apps. Minor enhancement to legacy apps may be required before migrating them to the cloud, possibly leading to new security issues unless adequately tested for security and performance in the IaaS systems. * Internal resources and training - Additional resources and training may be required for the workforce to learn how to effectively manage the infrastructure. Customers will be responsible for data security, backup, and business continuity. Due to inadequate control into the infrastructure however, monitoring and management of the resources may be difficult without adequate training and resources available in house. * Multi-tenant security - Since the hardware resources are dynamically allocated across users as made available, the vendor is required to ensure that other customers cannot access data deposited to storage assets by previous customers. Similarly, customers must rely on the vendor to ensure that VMs are adequately isolated within the multi tenant cloud architecture.

PaaS: Platform as a Service

Cloud platform services, also known as Platform as a Service (PaaS), provide cloud components to certain software while being used mainly for applications. PaaS delivers a framework for developers that they can build upon and use to create customized applications. All servers, storage, and networking can be managed by the enterprise or a third-party provider while the developers can maintain management of the applications.

PaaS Characteristics

PaaS has many characteristics that define it as a cloud service, including: * Builds on virtualization technology, so resources can easily be scaled up or down as your business changes * Provides a variety of services to assist with the development, testing, and deployment of apps * Accessible to numerous users via the same development application * Integrates web services and databases

Examples of PaaS

Popular examples of PaaS include AWS Elastic Beanstalk, Windows Azure, Heroku, Force.com, Google App Engine, and OpenShift.

PaaS Delivery

The delivery model of PaaS is similar to SaaS, except instead of delivering the software over the internet, PaaS provides a platform for software creation. This platform is delivered via the web, giving developers the freedom to concentrate on building the software without having to worry about operating systems, software updates, storage, or infrastructure.

PaaS allows businesses to design and create applications that are built into the PaaS with special software components. These applications, sometimes called middleware, are scalable and highly available as they take on certain cloud characteristics.

PaaS Advantages

No matter the size of your company, using PaaS offers numerous advantages, including: * Simple, cost-effective development and deployment of apps * Scalable * Highly available * Developers can customize apps without the headache of maintaining the software * Significant reduction in the amount of coding needed * Automation of business policy * Easy migration to the hybrid model

PaaS Limitations and Concerns

  • Data security - Organizations can run their own apps and services using PaaS solutions, but the data residing in third-party, vendor-controlled cloud servers poses security risks and concerns. Your security options may be limited as customers may not be able to deploy services with specific hosting policies.
  • Integrations - The complexity of connecting the data stored within an onsite data center or off-premise cloud is increased, which may affect which apps and services can be adopted with the PaaS offering. Particularly when not every component of a legacy IT system is built for the cloud, integration with existing services and infrastructure may be a challenge.
  • Vendor lock-in - Business and technical requirements that drive decisions for a specific PaaS solution may not apply in the future. If the vendor has not provisioned convenient migration policies, switching to alternative PaaS options may not be possible without affecting the business.
  • Customization of legacy systems - PaaS may not be a plug-and-play solution for existing legacy apps and services. Instead, several customizations and configuration changes may be necessary for legacy systems to work with the PaaS service. The resulting customization can result in a complex IT system that may limit the value of the PaaS investment altogether.
  • Runtime issues - In addition to limitations associated with specific apps and services, PaaS solutions may not be optimized for the language and frameworks of your choice. Specific framework versions may not be available or perform optimally with the PaaS service. Customers may not be able to develop custom dependencies with the platform.
  • Operational limitation - Customized cloud operations with management automation workflows may not apply to PaaS solutions, as the platform tends to limit operational capabilities for end users. Although this is intended to reduce the operational burden on end users, the loss of operational control may affect how PaaS solutions are managed, provisioned, and operated.

Conclusion

IaaS vs PaaS IaaS offers more control over Applications, Data, Middleware, Runtime and Operating system compared to PaaS that offers control only over Applications and Data. Although this may seem as an advantage with the control you get on IaaS, It has its downsites when configuring and setting up your environment which requires a certain level of DevOps which can be problamatic and time consuming at times unlike PaaS that eases off some stress over setting up and getting you ready. In conclusion, depending on the team and skills of the team one of each service can be used fully to maximize production depending on the requirements of your projects or enterprise business model and requirements.

MLFlow or KubeFlow (IaaS)

MLFlow vs KubeFlow Based on the above conclusion we now compare which of the two services are best when run on an IaaS and PaaS. And which of the two supports our current stack. MLflow is a single python package that covers some key steps in model management. Kubeflow is a combination of open-source libraries that depends on a Kubernetes cluster to provide a computing environment for ML model development and production tools. * MLFlow * KubeFlow

Hosting

Both enable serving models at an API endpoint. Kubeflow offers a collection of serving components along with the serving infrastructure via the Kubernetes cluster it sits on top of. In contrast, MLflow’s offer includes the essentials — a REST API endpoint that requires a server — along with the ability to promote models to cloud environments such as AWS Sagemaker and Azure ML.

The MLflow REST API endpoint might be useful if you didn’t want to use the API endpoint of a cloud vendor but the underlying server might require some development should that API be used frequently or at high velocity. In short, MLflow makes it far easier to promote models to API endpoints on various cloud vendors compared to Kubeflow, which can do this but only with more development effort.

Collaborate

Both tools enable parameter, artifact, and model tracking to increase transparency and therefore the ability to collaborate in a team setting. MLflow allows users to develop locally and track runs in a remote archive through a simple logging process — perfect for exploratory data analysis (EDA) and suitable for development work as well.

This is technically possible via Kubeflow Metadata, but the setup requires a level of DevOps savvy that many data science teams don’t have. Or alternatively, Kubeflow enables a notebook server located within its Kubernetes environment. This could be seen as an expensive route to EDA albeit very useful to create a more locked down EDA environment. Also, it could be valuable for developing production jobs albeit not completely required.

Data Pipeline Management

By design, Kubeflow sits on top of Kubernetes, which means components like hyperparameter tuning and pipelines along with auto-scaling nodes are available to run and scale up a data and ML pipeline. That said, Kubeflow pipelines capture the ‘last mile’ of the data pipeline. Prior steps in the data pipeline are completed by BigQuery, Dataproc, or containerized scripts. This might change, a little bit, if Feast is fully adopted into Kubeflow. Fundamentally, Kubeflow is an orchestration tool.

Here is where MLflow is going to fall short. By itself, MLflow doesn’t dramatically improve this activity. Sure it can track some vital information, but it doesn’t fundamentally facilitate data modeling or feature engineering. Databricks has other products that would address this, but they are not necessarily all open-source.

Model Management

Both offer the ability to archive metrics, parameters, and artifacts that might be critical to model management. Kubeflow’s ability to retain and visually highlight the entirety of data and ML model pipelines, at-rest and in-flight, is very handy. Moreover, the scheduling capability, which is yet another example of Kubeflow’s orientation towards orchestration. MLflow doesn’t offer this albeit other components in the Databricks ecosystem might be able to do so.

Conclusion

Based on the above comparison which are also highlighted clearly shows that although MLFlow offers ease of use and accels well in collaborative and machine learning hosting, but fails dramatically in areas of model management and data pipeline management which are considered as some of the most important steps within a team or enterprise. MLFlow also has less features to offer since it is a single python package comapred to KubeFlow that offers a collection of open source libraries which can be essential for big teams.

ML model hosting solutions

Cloud services

Amazon web services

Amazon web services provides and offers products from Block chain, Databases, Game Tech, Developer tools, Internet of things, Machine learning, Media services, Mobile and Robotics just to highlight a few. Amazon takes it even further by providing services according to Use case, By industry and Organization type. This makes Amazon web services a go to cloud solution solution for small, medium and big enterprises. Another advantage of Amazon web services is their rich documentation and video tutorials that make it easy for industries of any size to switch efficiently without worrying about training or costs that may occur for training on how to make full use of the solutions they offer.

Microsoft Azure cloud

Microsoft Azure offers the same products and services which are offered by Amazon web services but with a big focus on Businesses or enterprises compared to AWS which also offers solutions for individuals and educational institutions. In this regard, Microsoft Azure cloud also offers a rich documention libraray thats logically compiled compared to AWS. Although not many resources are provided by microsoft for trouble shooting problems one may run to, it still remains a good alternative to the Amazon web services.

Google compute engine

Google compute engine offers the same services as both Microsoft Azure cloud and Amazon web services but with a big focus on intergration, Collaboration, cost efficiency and optimized solutions. This can be a huge advantages as the google compute engine is made up of multiple open source libraries that makes it more user friendly for teams that work remotely. Google compute cloud offers the same "pay as you go" pricing model as both Amazon and Microsoft. Google also provides a very rich documentation to get you going and tutorial and trouble shooting manuals incase you run into complications.

Supported model formats

All three cloud based services, Amazon Web Services (AWS), Microsoft Azure, and Google Compute Engine (GCE) support all model formats from regression models to more complex models such as neural networks and computer vision models.

CI features

Comparisons will be made for the following cloud services, Amazon Web Services (AWS), Microsoft Azure, and Google Compute Engine (GCE).

Continuous integration(GCP | AWS | AZURE)

GCP for continuous integration

  • Improve development efficiency and productivity
  • Scale without worrying about maintenance
  • Build security and compliance into your CI pipeline
  • Get maximum flexibility
  • Extend CI into CD
  • Use your favorite tools

Reference pipeline(GCP)

Google reference pipeline

AWS for continuous integrations

  • Workflow modeling
  • AWS integrations
  • Pre-built plugins
  • Custom plugins
  • Declarative templates
  • Access control
  • Receive Notifications

Reference pipeline(AWS)

AWS pipeline reference

Microsoft Azure cloud

  • Developers work on the application code in the IDE of their choice.
  • The developers commit the code to Azure Repos, GitHub, or other Git source control provider.
  • Separately, data scientists work on developing their ML model.
  • The data scientists publish the finished model to a model repository, in this case a blob storage account.
  • Azure Pipelines kicks off a build based on the Git commit.
  • The Build pipeline pulls the latest ML model from blob storage and creates a container.
  • The pipeline pushes the build image to the private image repository in ACR.
  • The Release pipeline kicks off based on the successful build.
  • The pipeline pulls the latest image from ACR and deploys it across the Kubernetes cluster on AKS.
  • User requests for the app go through the DNS server.
  • The DNS server passes the requests to a load balancer, and sends responses back to the users.

Reference pipeline(Microsoft Azure cloud)

Microsoft Azure cloud reference model

Conclusion

Both Google and Amazon offer simple and straight forward continous intergration pipeline workflows with built in features and tools that makes it possible for workflow pipeline customization. Microsoft offers more features and extensive customization but yet very complex continous intergration options which may require a certain level of DevOps. Depending on the complexity and the skills within a team, Google and AWS seems to be the most and widely used options.

Dev/Production

Comparisons will be made for the following cloud services, Amazon Web Services (AWS), Microsoft Azure, and Google Compute Engine (GCE).

Production(GCE | Azure | AWS)

Google compute engine(GCE)

  • Version control
  • Continuous integration
  • Deployment automation
  • Trunk-based development
  • Test automation
  • Architecture
  • Empowering teams to choose tools
  • Test data management
  • Shifting left on security

Microsoft Azure cloud

  • Build models your way
  • Improve productivity with automatic feature engineering and data visualization
  • Enable efficient model creation
  • Understand models better

Amazon web services

  • Get Started Fast
  • Fully Managed Services
  • Built for Scale
  • Programmable
  • Automation
  • Secure
  • Large Partner Ecosystem
  • Pay-As-You-Go

Automated updates / re-training

Comparisons will be made for the following cloud services, Amazon Web Services (AWS), Microsoft Azure, and Google Compute Engine (GCE).

GCE for continuous delivery

  • Ship faster
  • Reduce risk
  • Improve quality
  • Scale easily
  • Run on hybrid or multi-cloud
  • Build and deploy securely

Reference pipeline(GCE)

Google reference pipeline Automatically build, test, and deploy your code changes across different platforms.

Microsoft Azure cloud for continuous delivery

  • Build reproducible workflows and models
  • Easily deploy highly accurate models anywhere
  • Efficiently manage the entire machine learning lifecycle
  • Achieve governance and control across machine learning assets

Reference pipeline(Azure)

Microsoft Azure continous delivery reference pipeline

AWS for continuous delivery

  • Steps, parameters, and dynamic workflows
  • Built-in service integrations
  • Control flow and linking states
  • Workflow creation
  • Scheduling a workflow using an EventBridge trigger

Reference pipeline(AWS)

AWS continous delivery reference pipeline

Conclusion

Compared to Google and Amazon, Microsoft Azure cloud offers a more flxible a more customizable and a more automatable continous delivery workflow simply because of all the different workflow features you can easily add or remove from the pipeline without having to restructure any linked steps within a workflow.

Scalability and Big Data

Since Kubeflow sits on top of Kubernetes, components like hyperparameter tuning and pipelines along with auto-scaling nodes are available to run and scale up a data and ML pipeline. On the other hand MLflow is designed to scale to large data sets, large output files (for example, models), and large numbers of experiments. Specifically, MLflow supports scaling in three dimensions: * An individual MLflow run can execute on a distributed cluster, for example, using Apache Spark. You can launch runs on the distributed infrastructure of your choice and report results to a Tracking Server to compare them. MLflow includes a built-in API to launch runs on Databricks. * MLflow supports launching multiple runs in parallel with different parameters, for example, for hyperparameter tuning. You can simply use the Projects API to start multiple runs and the Tracking API to track them. * MLflow Projects can take input from, and write output to, distributed storage systems such as AWS S3 and DBFS. MLflow can automatically download such files locally for projects that can only run on local files, or give the project a distributed storage URI if it supports that. This means that you can write projects that build large datasets, such as featurizing a 100 TB file.

Maintenance and Management

AWS: Pros and Cons

AWS is a robust service that offers a lot in the way of benefits. But if you’re thinking about making the shift to AWS for cloud services here’s what you need to know to compare the offerings to the needs of your enterprise organization.

Pros:

  • AWS offers a complete toolset with a wide breadth of functions available for users
  • AWS has been perfecting cloud computing services since 2006
  • This partner is seen as the gold standard for reliability, security, configuration option and monitoring
  • The AWS cloud ecosystem and product offerings are viewed as a benefit to consumers
  • AWS has more compute capacity than most of its competitors by 5x
  • Multiple datacenter “regions”
  • All major software vendors make their programs available on the AWS platform

Cons:

  • Depending on the comfort level of enterprise businesses with AWS services, a steep learning curve may exist
  • Enterprise level support must be purchased
  • AWS was late to get on the on-demand billing for services bandwagon
  • AWS doesn’t have a strong hybrid cloud strategy for those businesses that want to keep sensitive data in a private cloud
  • The wide catalog of offerings can be overwhelming and difficult to navigate for some users
  • Despite some high profile outages in years past, today, AWS is widely considered a reliable product for consumers seeking enterprise cloud services today.

Azure: Pros and Cons

Azure offers a familiar suite of resources that businesses can trust. Here’s the scoop on pros and cons of Microsoft Azure.

Pros:

  • Strong presence in the enterprise community
  • Flexible billing
  • Platform-as-a-Service (PaaS) is a strong suit of Microsoft
  • Reliability and scalability
  • High-availability
  • Cost-effective compared to the competition
  • Easy to integrate for firms already running a lot of Microsoft software

Cons:

  • Outages have occurred causing experts at Gartner to suggest a good disaster recovery plan for Azure users
  • Functions seem limited when compared against AWS
  • Set up to support Windows; if you want to run something else Azure may not be the best option
  • Requires enterprise management from customers

Google Cloud: Pros and Cons

Google is a powerhouse on the technology scene, and their cloud services reflect that. If you’re thinking about choosing Google Cloud services, consider the following advantages and disadvantages.

Pros:

  • Great reputation in open-source community
  • Modern innovation, well-established in cloud computing
  • Flexible pricing model
  • Google Cloud is greener than some of the competition and working on getting credentials
  • Second-to-none when it comes to building containers

Cons:

  • Supporting large, enterprise projects has not been a focus for Google when compared to companies like Microsoft
  • Outages have made some wonder if the product is reliable
  • Range of functions lacks innovation, Google should focus on catching up with Microsoft and AWS

Conclusion

Today, the clear market leader in functionality depth and breadth is AWS. This is partly because they have the maturity in the market and the experience to deliver. But competitors like Microsoft and Google aren’t too far behind.

In particular, Microsoft continues to gain headway on AWS. This is especially true because they are a trusted name in enterprise computing with a reliable model for those that already use Microsoft products or languages across the enterprise organization. Google also has a lot to offer in terms of innovation, and might be a good fit for those in the open-source, cloud community that focus on smaller projects.

Usage Costs

AWS Pricing

Pay-as-you-go

Pay-as-you-go allows you to easily adapt to changing business needs without overcommitting budgets and improving your responsiveness to changes. With a pay-as-you-go model, you can adapt your business depending on need and not on forecasts, reducing the risk of overpositioning or missing capacity.

Save when you reserve

For certain services like Amazon EC2 and Amazon RDS, you can invest in reserved capacity. With Reserved Instances, you can save up to 75% over equivalent on-demand capacity. When you buy Reserved Instances, the larger the upfront payment, the greater the discount.

Save when you reserve

For certain services like Amazon EC2 and Amazon RDS, you can invest in reserved capacity. With Reserved Instances, you can save up to 75% over equivalent on-demand capacity. When you buy Reserved Instances, the larger the upfront payment, the greater the discount.

GCP Pricing

Sustained-use discounts

Automatically get up to a 30% discount on workloads that run for a significant portion of the billing month on Compute Engine and Cloud SQL.

Preemptible VM instances

Up to 79% off workloads that can be interrupted, like data mining and data processing.

Per-second billing

You pay per second, which is how a cloud should work.

Coldline

Archival storage with the speed of disk at the cost of tape.

Custom machine types

Pick any configuration of CPU and memory to save up to 48% compared to fixed machine types from other clouds.

Committed-use discounts

Savings of up to 57% without up-front fees or instance-type lock-in.

Rightsizing recommendations

Sizing recommendations based on compute usage, time savings, and money management.

Azure Pricing

  • Pay direct and get the same price as you would through a Microsoft Enterprise Agreement.
  • Azure matches AWS pricing for comparable services.
  • Pay only for the resources you use and cancel anytime.

Conclusion

Out of the three cloud based services, Microsoft Azure generally has the lowest on-demand pricing while Amazon tends to come in somewhere around the middle among the three major players, then followed by Google. However, when it comes to choosing one cloud platform over another, cost should not generally be a major determining factor. Overall, the choice must depend on your enterprise needs as you get ready for the next generation cloud.