Module 3 Notes
Module 3 Notes
What is it?
PaaS, or Platform-as-a-Service, is a cloud computing model that provides
customers a complete platform—hardware, software, and infrastructure for
developing, running, and managing applications without the cost, complexity and
inflexibility of building and maintaining that platform on-premises.
The PaaS provider hosts everything—servers, networks, storage,
operating system software, databases—at their data center; the customer uses it
all for a monthly fee based on usage and can purchase more resources on-
demand as needed. In this way, PaaS lets your development teams to build,
test, deploy, maintain, update and scale applications (and to innovate in
response to market opportunities and threats) much more quickly and less
expensively than they could if you had to build out and manage your own on-
premises platform.
Things to consider when choosing a PaaS provider
A few things to keep in mind when deciding on a PaaS solution:
What features are included? Can your app work successfully with them? As
your app grows and develops, adding more and more users, you want to make
sure you can scale easily with your provider and have the options you need
available.
Is it optimized for the language and framework you’re using? If not, runtimes
could be an issue.
Will the provider be around as long as you need them? You want to make sure
your provider has a history of trust and reliability with its customers so you know
they’ll be there for you.
How many users do you anticipate will be using your app? The more users, and
the more specific the code, the slower your application could run and the more
difficult it will be to migrate from one service provider to another, should you need
to.
Types of PaaS
Stand Alone Application Platforms
– Typically built on top of an existing IaaS
– Provides development tools for designing and deploying software.
– Provide all required computing resources and services needed for
hosted applications
Benefits
The following are some specific advantages your organization can realize from
utilizing PaaS:
Faster time to market: With PaaS, there’s no need to purchase and install the
hardware and software you’ll use to build and maintain your application
development platform and no need for development teams to wait while you do
this. You simply tap into the cloud service provider’s PaaS resources and begin
developing immediately.
Faster, easier, less-risky adoption of a wider range of resources: PaaS
platforms typically include access to a greater variety of choices up and down the
application development stack—operating systems, middleware, and databases,
and tools such as code libraries and app components—than you can affordably
or practically maintain on-premises. It also lets you test new operating systems,
languages, and tools without risk—that is, without having to invest in the
infrastructure required to run them.
Easy, cost-effective scalability: If an application developed and hosted on-
premises starts getting more traffic, you’ll need to purchase more computing,
storage, and even network hardware to meet the demand, which you may not be
able to do quickly enough and can be wasteful (since you typically purchase
more than you need). With PaaS, you can scale on-demand by purchasing just
the amount of additional capacity you need.
Lower costs: Because there’s no infrastructure to build, your upfront costs are
lower. Costs are also lower and more predictable because most PaaS providers
charge customers based on usage.
Use cases
There are many use cases for PaaS, including the following popular application-
based ones:
API development and management: You can use PaaS to develop, run,
manage, and secure application programming interfaces (APIs) and micro
services.
Internet of Things (IoT): PaaS can support the broad range of application
environments, programming languages, and tools used for IoT deployments.
Business analytics/intelligence: PaaS tools allow you to analyze your data to
find business insights that enable more informed business decisions and
predictions.
Cloud SQL instances support MySQL 8.0, 5.7 (default), and 5.6, and provide up
to 416 GB of RAM and 30 TB of data storage, with the option to automatically
increase the storage size, as needed.
Create and manage instances in the Google Cloud Console.
Microsoft Azure
Application
Azure App Service
Azure App Service is an HTTP-based service for hosting web applications, REST
APIs, and mobile back ends. You can develop in your favourite language, be it
.NET, .NET Core, Java, Ruby, Node.js, PHP, or Python. Applications run and
scale with ease on both Windows and Linux-based environments.
Why use App Service?
Here are some key features of App Service:
Multiple languages and frameworks- App Service has first-class support
for ASP.NET, ASP.NET Core, Java, Ruby, Node.js, PHP, or Python.
Managed production environment - App Service automatically patches
and maintains the OS and language frameworks. Spend time writing great
apps and let Azure worry about the platform.
Containerization and Docker - Dockerize the app and host a custom
Windows or Linux container in App Service. Run multi-container apps with
Docker Compose. Migrate your Docker skills directly to App Service.
DevOps optimization - Set up continuous integration and deployment with
Azure DevOps, GitHub, BitBucket, Docker Hub, or Azure Container
Registry. Promote updates through test and staging environments. Manage
the apps in App Service by using Azure PowerShell or the cross-platform
command-line interface (CLI).
Global scale with high availability – Scale up or out manually or
automatically. Host the apps anywhere in Microsoft's global data center
infrastructure, and the App Service SLA promises high availability.
Connections to SaaS platforms and on-premises data - Choose from
more than 50 connectors for enterprise systems (such as SAP), SaaS
services (such as Salesforce), and internet services (such as Facebook).
Access on-premises data using Hybrid Connections and Azure Virtual
Networks.
Security and compliance - App Service is ISO, SOC, and PCI compliant.
Authenticate users with Azure Active Directory, Google, Facebook, Twitter,
or Microsoft account. Create IP address restrictions and manage service
identities.
Application templates - Choose from an extensive list of application
templates in the Azure Marketplace such as WordPress, Joomla and
Drupal.
Visual Studio and Visual Studio Code integration - Dedicated tools in
Visual Studio and Visual Studio Code streamline the work of creating,
deploying, and debugging.
API and mobile features - App Service provides turn-key CORS support
for RESTful API scenarios, and simplifies mobile app scenarios by enabling
authentication, offline data sync, push notifications and more.
Serverless code - Run a code snippet or script on-demand without having
to explicitly provision or manage infrastructure, and pay only for the compute
time your code actually uses.
Database
Azure Database for MySQL
Azure Database for MySQL is a relational database service in the Microsoft cloud
based on the MySQL Community Edition database engine, versions 5.6, 5.7, and
8.0. Azure Database for MySQL delivers:
Built-in high availability.
Data protection using automatic backups and point-in-time-restore for up to
35 days.
Automated maintenance for underlying hardware, operating system and
database engine to keep the service secure and up to date.
Predictable performance, using inclusive pay-as-you-go pricing.
Elastic scaling within seconds.
Cost optimization controls with ability to stop/start server.
Enterprise grade security and industry-leading compliance to protect
sensitive data at-rest and in-motion.
Monitoring and automation to simplify management and monitoring for
large-scale deployments.
Industry-leading support experience.
Network
Azure Application Gateway is a web traffic load balancer that enables you to
manage traffic to your web applications. Traditional load balancers operate at the
transport layer (OSI layer 4 - TCP and UDP) and route traffic based on source IP
address and port, to a destination IP address and port.
Application Gateway can make routing decisions based on additional attributes of
an HTTP request, for example URI path or host headers. For example, you can
route traffic based on the incoming URL. So if /images is in the incoming URL,
you can route traffic to a specific set of servers (known as a pool) configured for
images. If /video is in the URL, that traffic is routed to another pool that's
optimized for videos.
Storage
Azure storage offers different access tiers, which allow you to store blob object
data in the most cost-effective manner. The available access tiers include:
Hot - Optimized for storing data that is accessed frequently.
Cool - Optimized for storing data that is infrequently accessed and stored
for at least 30 days.
Archive - Optimized for storing data that is rarely accessed and stored for
at least 180 days.
The following considerations apply to the different access tiers:
Only the hot and cool access tiers can be set at the account level. The
archive access tier isn't available at the account level.
Hot, cool, and archive tiers can be set at the blob level during upload or
after upload.
Data in the cool access tier can tolerate slightly lower availability, but still
requires high durability, retrieval latency, and throughput characteristics
similar to hot data. For cool data, a slightly lower availability service-level
agreement (SLA) and higher access costs compared to hot data are
acceptable trade-offs for lower storage costs.
Archive storage stores data offline and offers the lowest storage costs but
also the highest data rehydrate and access costs.
Data stored in the cloud grows at an exponential pace. To manage costs for your
expanding storage needs, it's helpful to organize your data based on attributes
like frequency-of-access and planned retention period to optimize costs. Data
stored in the cloud can be different based on how it's generated, processed, and
accessed over its lifetime. Some data is actively accessed and modified
throughout its lifetime. Some data is accessed frequently early in its lifetime, with
access dropping drastically as the data ages. Some data remains idle in the
cloud and is rarely, if ever, accessed after it's stored.
Each of these data access scenarios benefits from a different access tier that is
optimized for a particular access pattern. With hot, cool, and archive access tiers,
Azure Blob storage addresses this need for differentiated access tiers with
separate pricing models.
Software as a Service (SaaS)
Definition: Software as a Service (SaaS), also known as on demand software, is
a software delivery model in which software and its associated data are hosted
centrally and accessed using a thin-client, usually a web browser over the
internet. – Wikipedia
Business Perspective
SaaS has a lot of appeal to businesses. Here are a few reasons why:
• Multi-tenant software architecture
• Low cost, fast investment, shared license
• High manageability
• Free of deployment and support
• Cost-effective: pay as we go
• Customization is easy
• Can scale well – commercialization.
Advantages of SaaS
Easy to use – Most SaaS applications do not require more than a web
browser to run
Cheap- The pay as you go pricing model of SaaS makes it affordable to
small businesses and individuals.
Scalability: SaaS application can be easily scaled up or down to meet
consumer demand. Consumers do not need to worry about additional
computing infrastructure to scale up.
Applications are less prone to data loss since data is being stored in the
cloud.
Compared to traditional applications, SaaS applications are less clunky.
They do not require users to install/uninstall binary code on their machines
Due to the delivery nature of SaaS through the internet, SaaS applications
are able to run on a wide variety of devices.
Allows for better collaboration between teams since the data is stored in a
central location.
Velocity of change in SaaS applications is much faster.
Reliability:
• In the rare event of a SaaS provider going down, a wide range of
dependent clients could be affected. For example, when Amazon EC2
service went down in April 2011, it took down FourSquare, Reddit etc.
Components of SOA
Many organizations are transforming to utilize a service oriented architecture
after seeing its benefits of increased agility and reduces cost. Figure shows SOA
framework for providing efficient IT infrastructure.
SOA Governance
It is the definition and implementation of enterprise-wide policies for activities,
like:
proposing and developing new services
modifying existing services
retiring old services after their life cycle
Access of services to third parties
Publishing and reuse of services
Monitoring the progress SOA.
SOA Service Management:
It is the second key management process. SOA governance is concerns how
services are created and how they work, while service management also deals
with what happens when error occurs. Policies must specify who is responsible
foe reporting and resolving errors.
SOA quality management:
SOA quality management makes sure that the services that are created meet
their requirements of business and can be trusted.
Benefits and risks of SOA
SOA brings with it a number of key benefits and risks that should be examined by
any leadership team while considering a realignment of its enterprise computing
IT portfolio, which includes:
Language-neutral integration:
The web Services standards use extensible Markup Language (XML) which is
focused on the creation and consumption of delimited text, regardless of the
development language used. Programming language neutrality is a key
differentiator from previous integration approaches.
Component reuse:
In current web Service technology, once an organization has built a software
component and offered it as a service, the rest of the organization can then
utilize that service.
Leveraging existing systems:
One common use of SOA is to define elements or functions of existing
application systems and make them available to the enterprise, leveraging the
substantial investment already made in existing applications. The most
compelling business case for SOA is often made regarding leveraging this legacy
investment, enabling integration between new and old systems components.
Dependence on the network:
SOA is fundamentally dependent on the network to connect the service provider
with the consumer. For example, web Service protocols are dependent on
internet protocols to invoke software functions distributed across the network.
Poorly performing networks can make a large impact on the availability of web
Services to the consumer.
Provider costs:
Creating a generic reusable software component for abroad audience takes more
resources than creating a less generic point solution. The cost of reuse,
therefore, shifts to the service providers, which benefits the consumers.
Enterprise standards:
When many components are being simultaneously developed by individual
teams, it becomes critical for the interface of a service to match up to the “call” of
a consumer. Similarly, it helps everyone involved, if the interfaces across services
have something common in structure and security access mechanisms.
Choosing and communicating a comprehensive set of enterprise standards is a
responsible approach to aid in enterprise SOA integration.
Agility:
When we discuss “agility”, it refers to organizational agility, or the ability of
adapting an organization’s tools to meet their current requirements. An
organization’s requirements might change over time, e.g. changes in the
business or mission, reporting requirements, changes in the law etc. The larger
promise of an enterprise SOA is that once a legacy-wrapped components exist,
and are accessible on the wide area network (WAN), they can be reassembled to
solve new problems.
Web Services
Web services are XML-based information exchange systems that use the
Internet for direct application-to-application interaction. These systems can
include programs, objects, messages, or documents.
Standardized Protocol
Web services use standardized industry standard protocol for the
communication. All the four layers (Service Transport, XML Messaging, Service
Description, and Service Discovery layers) use well-defined protocols in the web
services protocol stack. This standardization of protocol stack gives the business
many advantages such as a wide range of choices, reduction in the cost due to
competition, and increase in the quality.
Low Cost Communication
Web services use SOAP over HTTP protocol, so you can use your existing low-
cost internet for implementing web services. This solution is much less costly
compared to proprietary solutions like EDI/B2B. Besides SOAP over HTTP, web
services can also be implemented on other reliable transport mechanisms like
FTP.
WSDL
WSDL is an XML-based language for describing web services and how to access
them.
WSDL stands for Web Services Description Language.
WSDL was developed jointly by Microsoft and IBM.
WSDL is an XML based protocol for information exchange in decentralized and
distributed environments.
WSDL is the standard format for describing a web service.
WSDL definition describes how to access a web service and what operations it
will perform.
WSDL is a language for describing how to interface with XML-based services.
WSDL is an integral part of UDDI, an XML-based worldwide business registry.
WSDL is the language that UDDI uses.
WSDL is pronounced as 'wiz-dull' and spelled out as 'W-S-D-L'
UDDI
UDDI is an XML-based standard for describing, publishing, and finding web
services.
UDDI stands for Universal Description, Discovery, and Integration.
UDDI is a specification for a distributed registry of web services.
UDDI is platform independent, open framework.
UDDI can communicate via SOAP, CORBA, and Java RMI Protocol.
UDDI uses WSDL to describe interfaces to web services.
UDDI is seen with SOAP and WSDL as one of the three foundation standards
of web services.
UDDI is an open industry initiative enabling businesses to discover each other
and define how they interact over the Internet.
Web 2.0
Web 2.0 refers to the development of the online services that encourage
collaboration, communication and information sharing. It represents a shift from
the passive experience of static “read only” web pages to the participatory
experience of dynamic and interactive web pages. A key elements of technology
is that it allows people to create, share, collaborate and communicate.
Service Type: Social networking, video and photo sharing, blogging, wikis
Major features of Web 2.0 allow users to collectively classify and find dynamic
information that flows two ways between site owner and site user by means of
evaluation, comments, and reviews. Site users can add content for others to see.
Features of Web 2.0
1.Free sorting of information, permits users to retrieve and classify the
information collectively.
2.Dynamic content that is responsive to user input.
3.Information flows between site owner and site users by means of evaluation &
online commenting.
4.Developed APIs to allow self-usage, such as by a software application.
5.Web access leads to concern different, from the traditional Internet user base
to a wider variety of users.
Advantages of Web 2.0
Available at any time, any place.
Variety of media.
Ease of usage.
Learners can actively be involved in knowledge building.
Can create dynamic learning communities.
Everybody is the author and the editor, every edit that has been made can be
tracked.
User-friendly.
Updates in the wiki are immediate and it offers more sources for researchers.
It provides real-time discussion.
Comparison of Web 1.0 and Web 2.0
Directories Tagging