Microsoft Azure is the best cloud for your applications. Azure full-stack cloud covers frontend, backend, data, intelligence, and DevOps. In this session, Dileepa will show us how with Azure, you can modernise applications faster using your preferred technology stack or build applications born in the cloud, and deploy them faster and seamlessly with Azure PaaS and FaaS to take maximum advantage of the benefits and characteristics of the Azure platform.
Watch the recorded live session here - https://www.youtube.com/watch?v=MhXVyYEdXiw
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Application modernization with azure PaaS and FaaS
1.
2. Dileepa Rajapaksa
Partner Technical Specialist at Rhipe
Microsoft Most Valuable Professional - MVP
Microsoft Certified Trainer – MCT
Microsoft Certified Azure Solution Architect
Twitter
@dsrajapaksa
LinkedIn
https://www.linkedin.com/in/dsrajapaksa
3. ▪Defining digital transformation and cloud journey
▪Different strategies to move to the cloud
▪Migration vs. Modernization
▪Using PaaS services in Azure – Azure App Services
▪Using FaaS services in Azure – Azure Functions
Session Outline
4. ▪ If there’s one constant your business can rely on these days, it’s change !
▪ Innovation is the only way to survive competition.
▪ Modern IT infrastructure is the foundation for a successful organization.
▪ Innovate more quickly develop secure, scalable apps with new services on cloud.
▪ Collaborate more effectively, both internally and with externally.
Digital Transformation and the cloud Journey
5. The journey to the cloud
“Lift and shift”
90’s
“Cloud Native Modernization”
6. Why move to the cloud?
▪ High availability.
▪ Scalability.
▪ Elasticity.
▪ Agility.
▪ Fault tolerance.
▪ Disaster recovery.
▪ Global reach.
▪ Customer latency capabilities.
▪ Predictive cost considerations.
▪ Increased productivity.
▪ Security.
▪ Low OPEX cost over CAPEX.
7. Moving to the cloud is a business decision !
Migration/modernization of existing applications might seem like a
technical decision, but its core is business related.
Ultimately, it raises two fundamental questions:
▪ What’s driving your business to move to the cloud?
▪ What it the organization’s long-term growth strategy ?
▪ Why moving to the cloud NOW?
9. Cloud migration strategy depends on many factors:
▪What are your most pressing needs?
▪What are the skills of your team?
▪Where are your apps in the development lifecycle?
▪What software architecture/pattern currently being used?
11. Why modernize over migrate ?
▪ Accelerate your digital journey
▪ Faster time to market
▪ Improved user experience
▪ Optimized cost
▪ Achieve maximum productivity
▪ Forward-Looking
▪ Agility and faster feedback loop
▪ Maximize innovations !
12. Cost vs time of application modernization
Cost/Effort
Time to Migrate
13. What is Cloud Native ?
▪ All about changing the way you think about constructing critical business systems
▪ Designed to embrace rapid change, large scale, and resilience.
▪ Take full advantage of the cloud service model.
▪ Cloud native is much about speed and agility.
14. Cloud Native Computing Foundation Definition
Cloud-native technologies empower organizations to build and run scalable
applications in modern, dynamic environments such as public, private, and
hybrid clouds. Containers, platform as a service offerings, microservices,
immutable infrastructure, and declarative APIs exemplify this approach.
15. Success of Cloud Native Approach
·
600+ services in
production. Deploys
hundred times per day.
1,000+ services in
production. Deploys
thousand times a week.
300+ services in
production. Deploys
1,000 times a day.
17. Platform as a Service(PaaS)
▪ Simple way to deploy an app in a given technology.
▪ Simplifies deploying applications on your platform of choice.
▪ Deploy the app and the “cloud” will take care about how to run
▪ Can auto-scale the number of compute instances to handle workloads
▪ Save money during times of low usage.
▪ Impossible to install custom system dependencies.
▪ Somewhat similar to serverless computing.
18. Azure shared responsibility model
Cloud Provider Manages
On-Premises
( Private Cloud )
Compute
Networking
Storage
Infrastructure
( as a Service )
Runtime
Operating System
Virtual Machine
Compute
Networking
Storage
Platform
( as a Service )
Applications
Runtime
Operating System
Virtual Machine
Compute
Networking
Storage
Software
( as a Service )
19. App Service
▪Service for hosting web applications, REST APIs, and mobile backends.
▪Can be developed in many of the following languages.
▪Applications can execute and scale in a fully managed, sandbox environment.
.NET Java Ruby Node.JS
PHP Python
20. Web Apps
▪Scalable hosting for web applications:
▪ Provides a quick way to host your web application in the cloud
▪ Allows you to scale your web app without being required to redesign for scalability
▪ Integrates with Visual Studio
▪ Provides an open platform for many different programming languages
▪Advantages:
▪ Near instant deployment
▪ SSL and Custom Domain Names available in some tiers
▪ WebJobs provide background processing for independent scaling
▪ Can scale to larger machines without redeploying applications
21. Key features of App Service Web Apps
▪Multiple languages and frameworks:
▪ First-class support for Microsoft ASP.NET, Java, Ruby, Node.js, PHP, or Python
▪DevOps optimization:
▪ Continuous integration and deployment with Visual Studio Team Services, GitHub,
Bitbucket, Docker Hub, or Azure Container Registry
▪Global scale with high availability:
▪ Scale up or out manually or automatically. Host anywhere in the Microsoft global
datacenter infrastructure
▪Connections to SaaS platforms and on-premises data:
▪ More than 50 connectors for enterprise systems (such as SAP), SaaS services (such as
Salesforce), and internet services (such as Facebook)
22. Key features of App Service Web Apps (cont.)
▪Security and compliance:
▪ App Service is ISO, SOC, and PCI compliant
▪Application templates:
▪ Templates in the Azure Marketplace, such as WordPress, Joomla, and Drupal
▪Visual Studio integration:
▪ Streamline the work of creating, deploying, and debugging
▪API and mobile features:
▪ Turn-key Cross-Origin Resource Sharing (CORS) support for RESTful API scenarios, and
enables authentication, offline data sync, push notifications, and more
▪Serverless code:
▪ Run code on-demand without having to explicitly provision or manage infrastructure
23. App Service plans
▪App Service plans can logically group apps within a subscription:
– Characteristics such as features, capacity, and tiers are shared among the website
instance in the group
– The App Service plan is the unit of billing in most cases
▪Multiple App Service plans can exist in a single Resource Group and multiple apps can exist
in a single App Service plan
25. Deployment slots
▪ Live apps with their own:
Host names
Content
Configuration
▪ Can be swapped between each other.
Staging ⬌ Production
Production ⬌ Staging
Dev ⬌ Test
Test ⬌ QA
QA ⬌ Staging
Staging
Production
swappable
QA Test Dev
27. Function as a Service (FaaS)/ Serverless
▪ Even simpler than PaaS
▪ Based on the functions which can be triggered by a given event,
▪ Event-driven architecture
▪ Also known as serverless
▪ Highly auto-scalable
▪ Billing is based on the real consumption/execution time based
▪ Fewer available technologies than with PaaS
▪ Can be combined with microservices.
▪ Can even write a event driven API.
29. What can Azure Functions do?
▪ Run code based on HTTP requests
▪ Schedule code to run at predefined times
▪ Process new and modified:
• Azure Cosmos DB documents
• Azure Storage blobs
• Azure Queue storage messages
▪ Respond to Azure Event Grid events by using subscriptions and filters
▪ Respond to high volumes of Azure Event Hubs events
▪ Respond to Azure Service Bus queue and topic messages
30. Azure Functions
▪Solution for running small pieces of code, or "functions," in the cloud:
- Write only code that is relevant to business logic
– Removes the necessity to write “plumbing” code to connect or host application components
▪Build on open-source WebJobs code
▪Supports a wide variety of programming languages, for instance:
C# JAVA PHP PY JS
▪ Even supports scripting languages, such as
PS SH
32. Scale and hosting
▪You can choose between two types of plans:
– Consumption:
• Instances are dynamically instanced, and you are charged based on compute time
– App Service plan:
• Traditional App Services model used with Web Apps, API Apps, and Mobile Apps
▪The type of plan controls:
– How host instances are scaled out
– The resources that are available to each host
34. Trigger types
▪Triggers based on Azure services:
– Cosmos DB
– Blob and queues
– Service Bus
– Event Hub
▪Triggers based on common scenarios:
– HTTP request
– Scheduled timer
▪Triggers based on third-party services:
– GitHub
36. Bindings
▪Declarative way to connect to data from your code:
– Connect to services without writing plumbing code
– Service credentials are not stored in code
– Bindings are optional
▪Function can have multiple input and output bindings
▪Output bindings can send data to Azure services such as:
– Storage
– Azure Cosmos DB
– Service Bus
38. Durable Functions
▪Write stateful functions in a stateless environment
▪Manages state, checkpoints, and restarts
▪Defines an Orchestrator function
– Workflows are defined in code
– Calls other functions synchronously or asynchronously
– Checkpoint progress whenever function awaits
39. Durable Function scenario - Chaining
Function chaining refers executing a sequence of functions in a particular order. Often, the output of
one function needs to be applied to the input of another function.
40. Durable Function scenario - Fan-out/fan-in
Fan-out/fan-in refers to the pattern of executing multiple functions in parallel, and then waiting for all
to finish
41. Durable Function scenario - Async HTTP APIs
Durable Functions provides built-in APIs that simplify the code that you write for interacting with
long-running function executions