SlideShare une entreprise Scribd logo
1  sur  71
Serverless Microservices
Lalit Kale
https://ie.linkedin.com/in/lalitkale
Preface
• Audience:
• Engineering Students, faculties
• interested in software design and development
• having trouble in understanding and Implementing software design Principles and Patterns
• People who are keen on improving their craft
• Presentation:
• Approx. Time: ~2 Hour (1 hr. + 5 min break + 30 min + 20 min Q&A )
• No need to take notes. This presentation will be available at https://www.slideshare.net/lalitkale
• This is introduction of topic. Advanced Level topics are not covered.
• Code Snippets to understand the concepts
• All Views/Opinions expressed here are mine and nothing to do with my current/past employers
2
About Me
• 15 years in industry
• solution architect at Verizon Connect, Dublin, Ireland
• Interests: software architecture, distributed Systems and
internet scale systems
• Using AWS Cloud since 2006
• Published book on Microservices in 2017 – “Building
Microservices with .NET Core”
Overview
• Introduction
• Business Shift
• Cloud Computing
• Understanding Cloud Services Models
• Compute Evolution in Cloud
• Serverless Technologies
• Microservices
4
Business Shift
5
In The Beginning…
6
Once Upon a time..
• Late 1990’s –
• Internet in formed from ARPANET with
HTML
• Mosaic – first web browser
• Yahoo! Search engine
• Amazon.com is formed as online
bookstore
• Start of web programming
7
Software Business - 1990’s To 2000’s
• Era of Desktop computers
• Software sales: per user
• Medium: CD/DVD
• Ex. Microsoft Office
• Software Releases: Annual
• Upgrades: Sold separately
• Markets: Regional
• Rate of innovation: slow
• Project Management Methodology:
Waterfall methodology
• Internet Speed: Slow
• Popular websites: Yahoo! AOL, Hotmail
8
Software Business - 1990’s To 2000’s
• On-Premise Computing
• Business’s own large-scale datacenters
• Requires hardware, space, electricity, cooling
• Requires managing OS, applications and updates
• Software Licensing
• Difficult to scale
• Too much or too little capacity
• High upfront capital costs
• You have complete control and Responsibility
9
Software Business Shift
• 1990’s To 2000’s
• Era of Desktop computers
• Software sales: per user
• Medium: CD/DVD
• Ex. Microsoft Office
• Software Releases: Annual
• Upgrades: Sold separately
• Markets: Regional
• Rate of innovation: slow
• Project Management Methodology:
Waterfall methodology
• Internet Speed: Slow
• Popular websites: Yahoo! AOL, Hotmail
10
• 2010 - 2020
• Era of Mobile and 4G/5G Internet
• Software Sales Model: Freemium
model or “pay as you use” or
subscription model
• Ex: Google office
• Software Releases: Continuous
• Upgrades: Free
• Markets: Global
• Rate of innovation: Rapid
• Project Management Methodology:
Agile (Scrum, Kanban)
• Internet Speed: Ultra-Fast
• Popular websites: Google, Amazon,
Netflix, Facebook, WhatsApp, Flipkart
So What’s changed? – Customer Perspective
11
Pay As you GoSmooth Customer
Onboarding
Rapid and
Painless Innovation
Simplified IT
Management
Available Everywhere
Software Company (ISV) Perspective
12
Increased Agility
Expanded markets and Global Reach
Improved Operational
Efficiency Through
Multitenancy
Increased margins
Through economy of scale
Customer
Demand
Managing Demand
Time
IT Capacity
Entry barrier
Under capacity
Over capacity
Forecast demand
Potential
business loss
Wasted
capacity
Compute capacity
Demand Burst
Time
IT Demand
Concert ticket web site
Ticket sales open
Ticket sales open
Ouch! How do we deal with this?
IT Agility
• How quickly can you
• Scale up the infrastructure and applications?
• Upgrade to the latest OS?
• Respond to a company merger with new requirements for business process
and IT capacity?
• Respond to a selling off a company
Cloud Computing
16
Cloud Computing - A Simple Definition
Making computing resources available as a utility service
Just like the National Electricity Grid
Electricity:
No need to know about how or where it’s generated
Available through a well defined interface
Available everywhere and for many devices
Power output, scales on demand
Low capital expenditure for consumers
Pay for what you use
Reliable
Cloud Computing - Characteristics
• Shared, multi-tenant environment
• Pools of computing resources
• Resources available on demand
• Available via the Internet
• Private clouds can be available via private WAN
• Pay as you go
Understanding
Cloud Services Models
19
21
Compute Evolution in Cloud
22
Virtual Machines
• Hardware virtualization is the virtualization of computers as complete hardware platforms,
certain logical abstractions of their componentry, or only the functionality required to run
various operating systems. Virtualization hides the physical characteristics of a computing
platform from the users, presenting instead an abstract computing platform
• Hardware independence
• Faster provisioning speed (minutes/hours)
• Trade capex for opex
• More scale
• Elastic resources
• Faster speed and agility
• Reduced maintenance
23
Applications Migration To Virtual Machines
• Lift and Shift Migration Strategy
• Lift-and-shift is the process of migrating a
workload from on premise to Cloud with
little or no modification. A lift-and-shift is a
common route for enterprises to move to
the cloud, and can be a transitionary state to
a more cloud native approach.
• Pros:
• Minimum work required to move
• Faster migration and deployment
• Cons:
• Typically does not take full advantages of
cloud platforms features
• In some cases may cost more to operate in
cloud
24
Containerization – Paradigm Shift
• Containerization is defined as a form of operating system virtualization, through which
applications are run in isolated user spaces called containers, all using the same shared operating
system (OS). A container is essentially a fully packaged and portable computing environment:
• Everything an application needs to run – its binaries, libraries, configuration files and dependencies – is encapsulated
and isolated in its container.
• The container itself is abstracted away from the host OS, with only limited access to underlying resources – much like
a lightweight virtual machine (VM).
• As a result, the containerized application can be run on various types of infrastructure—on bare metal, within VMs,
and in the cloud—without needing to refactor it for each environment.
• Containerization Engines: Docker, Rkt, Runc
25
Containerization – Paradigm Shift
26
Fig: Comparing Containers with Virtual Servers
Containerization – Paradigm Shift
• Package Software into Standardized
Units for Development, Shipment and
Deployment
• Platform independence
• Consistent runtime environment
• Higher resource utilization
• Easier and faster deployments
• Isolation and sandboxing
• Start speed (deploy in seconds)
27
• Still Some overheads
• Operating Systems patching and
upgrades
• Container runtime version and
choice
• Network access and firewall
configuration
• Choice of security hardening
solution
• System access permissions
• Need orchestrator like Kubernetes
or Mesos for scaling
28
Containerization – Paradigm Shift
Serverless – Paradigm Shift
29
Serverless
Serverless is a methodology for planning, building and deploying
software in a way that maximizes value by minimizing undifferentiated
heavy lifting…” – Jeremy Daly
Serverless – Paradigm Shift
• Amazon pioneered this deployment architecture with their “AWS Lambda “ Service
• Serverless does not mean absence of servers. However, all the operational responsibility of
provisioning, scaling and operating systems management is given to cloud vendor
• Every Cloud Vendor has their serverless offerings.
• Amazon AWS – Lambda, Step Functions, API Gateway, AppSync
• Microsoft Azure – Azure Functions, Azure Durable Functions
• Google – Functions, Pub/Sub Flow, Firebase
31
AWS Serverless Offerings
32
33
Benefits of Serverless
34
Focusing on what is
important to your
business
Faster time to
market
Reduce initial
investment
Automagical
scalability
Modular and
decouple
architecture
Common serverless use cases
35
Microservices
36
Systems and Modules
• Allow for independent working
• Single Responsibility
• Reuse
• Namespaces, Packages
37
Microservices
• Flavor of distributed system
• “Modules” run on different computers
• Communication between the modules
are done via network calls
• Allows for easier independent
deployability
38
Microservices, when done right,
are a form of modular
architecture
- Sam Newman, Microservices Expert
Martin Fowler on Microservices
• The microservice architectural style is an approach to developing a single
application as a suite of small services, each running in its own process and
communicating with lightweight mechanisms, often HTTP resource API.
• These services are built around business capabilities and independently
deployable by fully automated deployment machinery.
• There is a bare minimum of centralized management of these services, which
may be written in different programming languages and use different data
storage technologies.
Microservices and Information Hiding
• “On the Criteria To Be Used in Decomposing Systems into Modules” – D.L. Parnas , 1971
• Looked at how to best define module boundaries and found that “information hiding”
worked best
• The effectiveness of a “modularization” is dependent upon the criteria used in dividing the
system into modules
• “module” = Work Assignment Unit
• Development time should be shortened because separate groups can work on each module
(microservice) with little need for communication.
• Product flexibility should be improved – it was hoped that it would be possible to make quite
drastic changes or improvements in one module (microservice) without changing others.
• Comprehensibility – it was hoped that the system could be studied a module (microservice)
at a time with the result that the whole system could be better designed because it was
better understood.
41
https://www.win.tue.nl/~wstomv/edu/2ip30/references/criteria_for_modularization.pdf
Not Information Hiding?
• If an upstream consumer can reach
into your internal implementation..
• Then you can’t change this
implementation without breaking
consumer
42
Not Information Hiding?
• If an upstream consumer can reach
into your internal implementation..
• Then you can’t change this
implementation without breaking
consumer
43
Information Hiding
• Hide your secrets (state)!
• Be Explicit about what is shared and
what is hidden
• Hidden Things can change, shared
things can’t
44
Information Hiding
• “The Connections between modules
are the assumptions which modules
make about each other” – D.L.Parnas
• Information hiding is about reducing
the assumptions one module has on
another.
• JSON Schemas help to remove the
assumptions and establish contracts
45
Information Hiding
46
Application Programming Interface
47
• An application programming interface (API) is a computing interface which
defines interactions between multiple software intermediaries. It defines the
kinds of calls or requests that can be made, how to make them, the data formats
that should be used, the conventions to follow, etc.
• In case of microservices, generally API referred to Web API.
API Contract
48
API Contract
49
Most Used API Types
50
Simple Object Access Protocol
(SOAP)
This is a standard protocol that defines how
two objects in different processes can
communicate through XML data exchange.
Representational State Transfer
(REST)
This is a simple way to send and receive data
between the client and server and does not
have many standards. It can send and receive
JSON, XML or plaintext.
API: https://api.google.com/v1/tag/
Endpoint: /v1/tag/
Application Programming Interface
51
AWS API Gateway
52
Backend For
FrontEnd
•Unify
multiple
microservices
under single
API front-end
Security
•Authenticate
and authorize
the requests
•DDOS
protection
Throughput
•Throttling
•Rate Limiting
Microservice Architecture
53
Databases in Microservices
54
Databases in Microservices
55
Designing Microservices
• ‘Micro’ is misleading most of implementations
• It is NOT about how many lines of code in your microservice have
• Should be Manageable by a small, self-sufficient team
• Evolutionary design
Principles of Microservices
Deployment
Technology
Versions
Languages
Infrastructure
Operations
Developm
ent
Testing
Security
Fail
Predictably
No SPoF
Automated
Recovery
Based on Business
Capability
Single
Responsibility
Hide
‘Implementation
’
Independence Independence Independence IsolationIndependence Automation Fail-Safe
Conway’s Law
"Any organization that designs a system (defined more broadly here
than just information systems) will inevitably produce a design whose
structure is a copy of the organization's communication structure.“
-Melvin Conway
Conway’s Law
Org Structure Architectural Capabilities
Reversing the Conway’s Law
• Two Pizza Teams focused on Business Capability
• You Build it, You Run it!
• Microservices
Importance of Automation
61
Server To Digital Platform Journey
62
Serverless Microservices – Real World Example
63
https://github.com/awslabs/serverless-image-handler
Summary
• Cloud Computing is the de-facto way now for the industry to develop
and deploy the applications.
• Microservices architecture style is suitable for large scale systems
where business needs to respond to new challenges.
• Using Serverless technologies like from AWS Lambda, application
delivery can be faster and software engineers and developers can
focus on delivering business value.
• Learn and adopt serverless microservices today!
64
Resources
• https://martinfowler.com/articles/microservices.html
• https://docs.aws.amazon.com/whitepapers/latest/microservices-on-
aws/introduction.html
• https://arxiv.org/pdf/1902.03383.pdf=> research paper => Cloud
Programming Simplified: A Berkeley View on Serverless Computing
• https://aws.amazon.com/education/awseducate
• https://github.com/awslabs/serverless-image-handler
• Example = Profile-Photo Service
• https://image-processing.serverlessworkshops.io/
• https://www.cloudflare.com/learning/serverless/glossary/serverless-
microservice/
65
Q & A
66
Thank You!
67
Backup Slides
68
Cloud Vendors and their Offerings
• Microsoft – Azure Cloud
• Amazon – Amazon Web Services (AWS)
• Google – Google Cloud Platform (GCP)
• Others – IBM, Cloudflare, DigitalOcean
69
Geo-Distributed Datacentres
Larger Cloud vendors have proven track records for running services for large numbers of
customers hosted in their own datacentres
.
This presentation is shared under Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International license. More information for this license is available at http://creativecommons.org/licenses/by-nc-sa/4.0/
All trademarks are the property of their respective owners. Lalit Kale makes no warranties, express, implied or statutory, as to the information in this presentation.
Lalit Kale
https://ie.linkedin.com/in/lalitkale

Contenu connexe

Tendances

Seminar on cloudcomputing
Seminar on cloudcomputingSeminar on cloudcomputing
Seminar on cloudcomputingBadam Anand
 
Kubernetes is all you need
Kubernetes is all you needKubernetes is all you need
Kubernetes is all you needVishwas N
 
Kubernetes 101
Kubernetes 101Kubernetes 101
Kubernetes 101Vishwas N
 
Introduction to Cloud Computing
Introduction to Cloud ComputingIntroduction to Cloud Computing
Introduction to Cloud ComputingSiva Arunachalam
 
Deployment of private cloud infrastructure.
Deployment of private cloud infrastructure.Deployment of private cloud infrastructure.
Deployment of private cloud infrastructure.Saket Kumar
 
Developing and Deploying Microservices to IBM Cloud Private
Developing and Deploying Microservices to IBM Cloud PrivateDeveloping and Deploying Microservices to IBM Cloud Private
Developing and Deploying Microservices to IBM Cloud PrivateShikha Srivastava
 
Building Cloud Native Applications
Building Cloud Native Applications Building Cloud Native Applications
Building Cloud Native Applications Munish Gupta
 
Cloud Computing - An Introduction
Cloud Computing - An IntroductionCloud Computing - An Introduction
Cloud Computing - An IntroductionRavindra Dastikop
 
Unit 5 -MOVING APPLICATION TO CLOUD
Unit 5 -MOVING APPLICATION TO CLOUDUnit 5 -MOVING APPLICATION TO CLOUD
Unit 5 -MOVING APPLICATION TO CLOUDMonishaNehkal
 
Cloud computing by shashank
Cloud computing by shashankCloud computing by shashank
Cloud computing by shashankShashank Shekhar
 
Multi-Containers Orchestration with Live Migration and High-Availability for ...
Multi-Containers Orchestration with Live Migration and High-Availability for ...Multi-Containers Orchestration with Live Migration and High-Availability for ...
Multi-Containers Orchestration with Live Migration and High-Availability for ...Jelastic Multi-Cloud PaaS
 
Week 1: Introduction to Cloud Computing - DSA 441 Cloud Computing
Week 1: Introduction to Cloud Computing - DSA 441 Cloud ComputingWeek 1: Introduction to Cloud Computing - DSA 441 Cloud Computing
Week 1: Introduction to Cloud Computing - DSA 441 Cloud ComputingFerdin Joe John Joseph PhD
 
Cloud Computing - Introduction
Cloud Computing - IntroductionCloud Computing - Introduction
Cloud Computing - IntroductionRupesh Mishra
 
Seminar on cloud computing by Prashant Gupta
Seminar on cloud computing by Prashant GuptaSeminar on cloud computing by Prashant Gupta
Seminar on cloud computing by Prashant GuptaPrashant Gupta
 
Cloud Computing Principles and Paradigms: 11 t-systems cloud-based solutions ...
Cloud Computing Principles and Paradigms: 11 t-systems cloud-based solutions ...Cloud Computing Principles and Paradigms: 11 t-systems cloud-based solutions ...
Cloud Computing Principles and Paradigms: 11 t-systems cloud-based solutions ...Majid Hajibaba
 

Tendances (20)

Seminar on cloudcomputing
Seminar on cloudcomputingSeminar on cloudcomputing
Seminar on cloudcomputing
 
Kubernetes is all you need
Kubernetes is all you needKubernetes is all you need
Kubernetes is all you need
 
Cloud Computing Basics
Cloud Computing BasicsCloud Computing Basics
Cloud Computing Basics
 
Kubernetes 101
Kubernetes 101Kubernetes 101
Kubernetes 101
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
Introduction to Cloud Computing
Introduction to Cloud ComputingIntroduction to Cloud Computing
Introduction to Cloud Computing
 
IBM cloud open by design
IBM cloud open by designIBM cloud open by design
IBM cloud open by design
 
Deployment of private cloud infrastructure.
Deployment of private cloud infrastructure.Deployment of private cloud infrastructure.
Deployment of private cloud infrastructure.
 
Developing and Deploying Microservices to IBM Cloud Private
Developing and Deploying Microservices to IBM Cloud PrivateDeveloping and Deploying Microservices to IBM Cloud Private
Developing and Deploying Microservices to IBM Cloud Private
 
Building Cloud Native Applications
Building Cloud Native Applications Building Cloud Native Applications
Building Cloud Native Applications
 
Cloud Computing - An Introduction
Cloud Computing - An IntroductionCloud Computing - An Introduction
Cloud Computing - An Introduction
 
Unit 5 -MOVING APPLICATION TO CLOUD
Unit 5 -MOVING APPLICATION TO CLOUDUnit 5 -MOVING APPLICATION TO CLOUD
Unit 5 -MOVING APPLICATION TO CLOUD
 
An approach for migrating applications to interoperability cloud
An approach for migrating applications to interoperability cloudAn approach for migrating applications to interoperability cloud
An approach for migrating applications to interoperability cloud
 
Cloud computing by shashank
Cloud computing by shashankCloud computing by shashank
Cloud computing by shashank
 
Multi-Containers Orchestration with Live Migration and High-Availability for ...
Multi-Containers Orchestration with Live Migration and High-Availability for ...Multi-Containers Orchestration with Live Migration and High-Availability for ...
Multi-Containers Orchestration with Live Migration and High-Availability for ...
 
Week 1: Introduction to Cloud Computing - DSA 441 Cloud Computing
Week 1: Introduction to Cloud Computing - DSA 441 Cloud ComputingWeek 1: Introduction to Cloud Computing - DSA 441 Cloud Computing
Week 1: Introduction to Cloud Computing - DSA 441 Cloud Computing
 
Cloud Computing - Introduction
Cloud Computing - IntroductionCloud Computing - Introduction
Cloud Computing - Introduction
 
Presentation on Top Cloud Computing Technologies
Presentation on Top Cloud Computing TechnologiesPresentation on Top Cloud Computing Technologies
Presentation on Top Cloud Computing Technologies
 
Seminar on cloud computing by Prashant Gupta
Seminar on cloud computing by Prashant GuptaSeminar on cloud computing by Prashant Gupta
Seminar on cloud computing by Prashant Gupta
 
Cloud Computing Principles and Paradigms: 11 t-systems cloud-based solutions ...
Cloud Computing Principles and Paradigms: 11 t-systems cloud-based solutions ...Cloud Computing Principles and Paradigms: 11 t-systems cloud-based solutions ...
Cloud Computing Principles and Paradigms: 11 t-systems cloud-based solutions ...
 

Similaire à Serverless microservices

Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to MicroservicesMahmoudZidan41
 
Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Karmanjay Verma
 
Cloudtechnologyassociatepart 1
Cloudtechnologyassociatepart 1Cloudtechnologyassociatepart 1
Cloudtechnologyassociatepart 1Anne Starr
 
Introductorytocomputing
IntroductorytocomputingIntroductorytocomputing
IntroductorytocomputingAnne Starr
 
Understanding Microservices
Understanding Microservices Understanding Microservices
Understanding Microservices M A Hossain Tonu
 
Securing the Cloud Native Stack
Securing the Cloud Native StackSecuring the Cloud Native Stack
Securing the Cloud Native StackApcera
 
Cloud computing and Service Platforms
Cloud computing and Service Platforms Cloud computing and Service Platforms
Cloud computing and Service Platforms Vibhawa Nirmal
 
Securing the Cloud Native stack
Securing the Cloud Native stackSecuring the Cloud Native stack
Securing the Cloud Native stackHector Tapia
 
Cloud computing computer
Cloud computing computerCloud computing computer
Cloud computing computerSanath Surawar
 
Cloud Application architecture styles
Cloud Application architecture styles Cloud Application architecture styles
Cloud Application architecture styles Nilay Shrivastava
 
Cloud Computing Fundamentals
Cloud Computing FundamentalsCloud Computing Fundamentals
Cloud Computing FundamentalsSonia Nagpal
 
NUS-ISS Learning Day 2018- Designing software to make the most of cloud platf...
NUS-ISS Learning Day 2018- Designing software to make the most of cloud platf...NUS-ISS Learning Day 2018- Designing software to make the most of cloud platf...
NUS-ISS Learning Day 2018- Designing software to make the most of cloud platf...NUS-ISS
 
gkkCloudtechnologyassociate(cta)day 1
gkkCloudtechnologyassociate(cta)day 1gkkCloudtechnologyassociate(cta)day 1
gkkCloudtechnologyassociate(cta)day 1Anne Starr
 
Cloud Computing and Virtualization Overview by Amr Ali
Cloud Computing and Virtualization Overview by Amr AliCloud Computing and Virtualization Overview by Amr Ali
Cloud Computing and Virtualization Overview by Amr AliAmr Ali
 
Introduction of cloud computing
Introduction of cloud computingIntroduction of cloud computing
Introduction of cloud computingSuman Sharma
 
Cloud computing
Cloud computing Cloud computing
Cloud computing ananyaakk
 
Microservices with Node and Docker
Microservices with Node and DockerMicroservices with Node and Docker
Microservices with Node and DockerTony Pujals
 
A Complete Guide Cloud Computing
A Complete Guide Cloud ComputingA Complete Guide Cloud Computing
A Complete Guide Cloud ComputingSripati Mahapatra
 
microservices-is-it-the-holy-grail-a-perspective.pdf
microservices-is-it-the-holy-grail-a-perspective.pdfmicroservices-is-it-the-holy-grail-a-perspective.pdf
microservices-is-it-the-holy-grail-a-perspective.pdfRichieBallyears
 

Similaire à Serverless microservices (20)

Microservice intro
Microservice introMicroservice intro
Microservice intro
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#
 
Cloudtechnologyassociatepart 1
Cloudtechnologyassociatepart 1Cloudtechnologyassociatepart 1
Cloudtechnologyassociatepart 1
 
Introductorytocomputing
IntroductorytocomputingIntroductorytocomputing
Introductorytocomputing
 
Understanding Microservices
Understanding Microservices Understanding Microservices
Understanding Microservices
 
Securing the Cloud Native Stack
Securing the Cloud Native StackSecuring the Cloud Native Stack
Securing the Cloud Native Stack
 
Cloud computing and Service Platforms
Cloud computing and Service Platforms Cloud computing and Service Platforms
Cloud computing and Service Platforms
 
Securing the Cloud Native stack
Securing the Cloud Native stackSecuring the Cloud Native stack
Securing the Cloud Native stack
 
Cloud computing computer
Cloud computing computerCloud computing computer
Cloud computing computer
 
Cloud Application architecture styles
Cloud Application architecture styles Cloud Application architecture styles
Cloud Application architecture styles
 
Cloud Computing Fundamentals
Cloud Computing FundamentalsCloud Computing Fundamentals
Cloud Computing Fundamentals
 
NUS-ISS Learning Day 2018- Designing software to make the most of cloud platf...
NUS-ISS Learning Day 2018- Designing software to make the most of cloud platf...NUS-ISS Learning Day 2018- Designing software to make the most of cloud platf...
NUS-ISS Learning Day 2018- Designing software to make the most of cloud platf...
 
gkkCloudtechnologyassociate(cta)day 1
gkkCloudtechnologyassociate(cta)day 1gkkCloudtechnologyassociate(cta)day 1
gkkCloudtechnologyassociate(cta)day 1
 
Cloud Computing and Virtualization Overview by Amr Ali
Cloud Computing and Virtualization Overview by Amr AliCloud Computing and Virtualization Overview by Amr Ali
Cloud Computing and Virtualization Overview by Amr Ali
 
Introduction of cloud computing
Introduction of cloud computingIntroduction of cloud computing
Introduction of cloud computing
 
Cloud computing
Cloud computing Cloud computing
Cloud computing
 
Microservices with Node and Docker
Microservices with Node and DockerMicroservices with Node and Docker
Microservices with Node and Docker
 
A Complete Guide Cloud Computing
A Complete Guide Cloud ComputingA Complete Guide Cloud Computing
A Complete Guide Cloud Computing
 
microservices-is-it-the-holy-grail-a-perspective.pdf
microservices-is-it-the-holy-grail-a-perspective.pdfmicroservices-is-it-the-holy-grail-a-perspective.pdf
microservices-is-it-the-holy-grail-a-perspective.pdf
 

Plus de Lalit Kale

For Business's Sake, Let's focus on AppSec
For Business's Sake, Let's focus on AppSecFor Business's Sake, Let's focus on AppSec
For Business's Sake, Let's focus on AppSecLalit Kale
 
Introduction To Microservices
Introduction To MicroservicesIntroduction To Microservices
Introduction To MicroservicesLalit Kale
 
Dot net platform and dotnet core fundamentals
Dot net platform and dotnet core fundamentalsDot net platform and dotnet core fundamentals
Dot net platform and dotnet core fundamentalsLalit Kale
 
Code refactoring
Code refactoringCode refactoring
Code refactoringLalit Kale
 
Application Security Tools
Application Security ToolsApplication Security Tools
Application Security ToolsLalit Kale
 
Threat Modeling And Analysis
Threat Modeling And AnalysisThreat Modeling And Analysis
Threat Modeling And AnalysisLalit Kale
 
Application Security-Understanding The Horizon
Application Security-Understanding The HorizonApplication Security-Understanding The Horizon
Application Security-Understanding The HorizonLalit Kale
 
Coding guidelines
Coding guidelinesCoding guidelines
Coding guidelinesLalit Kale
 
Code review guidelines
Code review guidelinesCode review guidelines
Code review guidelinesLalit Kale
 
State management
State managementState management
State managementLalit Kale
 
Implementing application security using the .net framework
Implementing application security using the .net frameworkImplementing application security using the .net framework
Implementing application security using the .net frameworkLalit Kale
 
Data normailazation
Data normailazationData normailazation
Data normailazationLalit Kale
 
Versioning guidelines for product
Versioning guidelines for productVersioning guidelines for product
Versioning guidelines for productLalit Kale
 
Bowling Game Kata by Robert C. Martin
Bowling Game Kata by Robert C. MartinBowling Game Kata by Robert C. Martin
Bowling Game Kata by Robert C. MartinLalit Kale
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven DesignLalit Kale
 
Web 2.0 concept
Web 2.0 conceptWeb 2.0 concept
Web 2.0 conceptLalit Kale
 
Jump Start To Ooad And Design Patterns
Jump Start To Ooad And Design PatternsJump Start To Ooad And Design Patterns
Jump Start To Ooad And Design PatternsLalit Kale
 
How To Create Strategic Marketing Plan
How To Create Strategic Marketing PlanHow To Create Strategic Marketing Plan
How To Create Strategic Marketing PlanLalit Kale
 
Model Driven Architectures
Model Driven ArchitecturesModel Driven Architectures
Model Driven ArchitecturesLalit Kale
 

Plus de Lalit Kale (20)

For Business's Sake, Let's focus on AppSec
For Business's Sake, Let's focus on AppSecFor Business's Sake, Let's focus on AppSec
For Business's Sake, Let's focus on AppSec
 
Introduction To Microservices
Introduction To MicroservicesIntroduction To Microservices
Introduction To Microservices
 
Dot net platform and dotnet core fundamentals
Dot net platform and dotnet core fundamentalsDot net platform and dotnet core fundamentals
Dot net platform and dotnet core fundamentals
 
Code refactoring
Code refactoringCode refactoring
Code refactoring
 
Application Security Tools
Application Security ToolsApplication Security Tools
Application Security Tools
 
Threat Modeling And Analysis
Threat Modeling And AnalysisThreat Modeling And Analysis
Threat Modeling And Analysis
 
Application Security-Understanding The Horizon
Application Security-Understanding The HorizonApplication Security-Understanding The Horizon
Application Security-Understanding The Horizon
 
Coding guidelines
Coding guidelinesCoding guidelines
Coding guidelines
 
Code review guidelines
Code review guidelinesCode review guidelines
Code review guidelines
 
State management
State managementState management
State management
 
Implementing application security using the .net framework
Implementing application security using the .net frameworkImplementing application security using the .net framework
Implementing application security using the .net framework
 
Data normailazation
Data normailazationData normailazation
Data normailazation
 
Opps
OppsOpps
Opps
 
Versioning guidelines for product
Versioning guidelines for productVersioning guidelines for product
Versioning guidelines for product
 
Bowling Game Kata by Robert C. Martin
Bowling Game Kata by Robert C. MartinBowling Game Kata by Robert C. Martin
Bowling Game Kata by Robert C. Martin
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
Web 2.0 concept
Web 2.0 conceptWeb 2.0 concept
Web 2.0 concept
 
Jump Start To Ooad And Design Patterns
Jump Start To Ooad And Design PatternsJump Start To Ooad And Design Patterns
Jump Start To Ooad And Design Patterns
 
How To Create Strategic Marketing Plan
How To Create Strategic Marketing PlanHow To Create Strategic Marketing Plan
How To Create Strategic Marketing Plan
 
Model Driven Architectures
Model Driven ArchitecturesModel Driven Architectures
Model Driven Architectures
 

Dernier

Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 

Dernier (20)

Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 

Serverless microservices

  • 2. Preface • Audience: • Engineering Students, faculties • interested in software design and development • having trouble in understanding and Implementing software design Principles and Patterns • People who are keen on improving their craft • Presentation: • Approx. Time: ~2 Hour (1 hr. + 5 min break + 30 min + 20 min Q&A ) • No need to take notes. This presentation will be available at https://www.slideshare.net/lalitkale • This is introduction of topic. Advanced Level topics are not covered. • Code Snippets to understand the concepts • All Views/Opinions expressed here are mine and nothing to do with my current/past employers 2
  • 3. About Me • 15 years in industry • solution architect at Verizon Connect, Dublin, Ireland • Interests: software architecture, distributed Systems and internet scale systems • Using AWS Cloud since 2006 • Published book on Microservices in 2017 – “Building Microservices with .NET Core”
  • 4. Overview • Introduction • Business Shift • Cloud Computing • Understanding Cloud Services Models • Compute Evolution in Cloud • Serverless Technologies • Microservices 4
  • 7. Once Upon a time.. • Late 1990’s – • Internet in formed from ARPANET with HTML • Mosaic – first web browser • Yahoo! Search engine • Amazon.com is formed as online bookstore • Start of web programming 7
  • 8. Software Business - 1990’s To 2000’s • Era of Desktop computers • Software sales: per user • Medium: CD/DVD • Ex. Microsoft Office • Software Releases: Annual • Upgrades: Sold separately • Markets: Regional • Rate of innovation: slow • Project Management Methodology: Waterfall methodology • Internet Speed: Slow • Popular websites: Yahoo! AOL, Hotmail 8
  • 9. Software Business - 1990’s To 2000’s • On-Premise Computing • Business’s own large-scale datacenters • Requires hardware, space, electricity, cooling • Requires managing OS, applications and updates • Software Licensing • Difficult to scale • Too much or too little capacity • High upfront capital costs • You have complete control and Responsibility 9
  • 10. Software Business Shift • 1990’s To 2000’s • Era of Desktop computers • Software sales: per user • Medium: CD/DVD • Ex. Microsoft Office • Software Releases: Annual • Upgrades: Sold separately • Markets: Regional • Rate of innovation: slow • Project Management Methodology: Waterfall methodology • Internet Speed: Slow • Popular websites: Yahoo! AOL, Hotmail 10 • 2010 - 2020 • Era of Mobile and 4G/5G Internet • Software Sales Model: Freemium model or “pay as you use” or subscription model • Ex: Google office • Software Releases: Continuous • Upgrades: Free • Markets: Global • Rate of innovation: Rapid • Project Management Methodology: Agile (Scrum, Kanban) • Internet Speed: Ultra-Fast • Popular websites: Google, Amazon, Netflix, Facebook, WhatsApp, Flipkart
  • 11. So What’s changed? – Customer Perspective 11 Pay As you GoSmooth Customer Onboarding Rapid and Painless Innovation Simplified IT Management Available Everywhere
  • 12. Software Company (ISV) Perspective 12 Increased Agility Expanded markets and Global Reach Improved Operational Efficiency Through Multitenancy Increased margins Through economy of scale Customer Demand
  • 13. Managing Demand Time IT Capacity Entry barrier Under capacity Over capacity Forecast demand Potential business loss Wasted capacity Compute capacity
  • 14. Demand Burst Time IT Demand Concert ticket web site Ticket sales open Ticket sales open Ouch! How do we deal with this?
  • 15. IT Agility • How quickly can you • Scale up the infrastructure and applications? • Upgrade to the latest OS? • Respond to a company merger with new requirements for business process and IT capacity? • Respond to a selling off a company
  • 17. Cloud Computing - A Simple Definition Making computing resources available as a utility service Just like the National Electricity Grid Electricity: No need to know about how or where it’s generated Available through a well defined interface Available everywhere and for many devices Power output, scales on demand Low capital expenditure for consumers Pay for what you use Reliable
  • 18. Cloud Computing - Characteristics • Shared, multi-tenant environment • Pools of computing resources • Resources available on demand • Available via the Internet • Private clouds can be available via private WAN • Pay as you go
  • 20.
  • 21. 21
  • 23. Virtual Machines • Hardware virtualization is the virtualization of computers as complete hardware platforms, certain logical abstractions of their componentry, or only the functionality required to run various operating systems. Virtualization hides the physical characteristics of a computing platform from the users, presenting instead an abstract computing platform • Hardware independence • Faster provisioning speed (minutes/hours) • Trade capex for opex • More scale • Elastic resources • Faster speed and agility • Reduced maintenance 23
  • 24. Applications Migration To Virtual Machines • Lift and Shift Migration Strategy • Lift-and-shift is the process of migrating a workload from on premise to Cloud with little or no modification. A lift-and-shift is a common route for enterprises to move to the cloud, and can be a transitionary state to a more cloud native approach. • Pros: • Minimum work required to move • Faster migration and deployment • Cons: • Typically does not take full advantages of cloud platforms features • In some cases may cost more to operate in cloud 24
  • 25. Containerization – Paradigm Shift • Containerization is defined as a form of operating system virtualization, through which applications are run in isolated user spaces called containers, all using the same shared operating system (OS). A container is essentially a fully packaged and portable computing environment: • Everything an application needs to run – its binaries, libraries, configuration files and dependencies – is encapsulated and isolated in its container. • The container itself is abstracted away from the host OS, with only limited access to underlying resources – much like a lightweight virtual machine (VM). • As a result, the containerized application can be run on various types of infrastructure—on bare metal, within VMs, and in the cloud—without needing to refactor it for each environment. • Containerization Engines: Docker, Rkt, Runc 25
  • 26. Containerization – Paradigm Shift 26 Fig: Comparing Containers with Virtual Servers
  • 27. Containerization – Paradigm Shift • Package Software into Standardized Units for Development, Shipment and Deployment • Platform independence • Consistent runtime environment • Higher resource utilization • Easier and faster deployments • Isolation and sandboxing • Start speed (deploy in seconds) 27
  • 28. • Still Some overheads • Operating Systems patching and upgrades • Container runtime version and choice • Network access and firewall configuration • Choice of security hardening solution • System access permissions • Need orchestrator like Kubernetes or Mesos for scaling 28 Containerization – Paradigm Shift
  • 30. Serverless Serverless is a methodology for planning, building and deploying software in a way that maximizes value by minimizing undifferentiated heavy lifting…” – Jeremy Daly
  • 31. Serverless – Paradigm Shift • Amazon pioneered this deployment architecture with their “AWS Lambda “ Service • Serverless does not mean absence of servers. However, all the operational responsibility of provisioning, scaling and operating systems management is given to cloud vendor • Every Cloud Vendor has their serverless offerings. • Amazon AWS – Lambda, Step Functions, API Gateway, AppSync • Microsoft Azure – Azure Functions, Azure Durable Functions • Google – Functions, Pub/Sub Flow, Firebase 31
  • 33. 33
  • 34. Benefits of Serverless 34 Focusing on what is important to your business Faster time to market Reduce initial investment Automagical scalability Modular and decouple architecture
  • 37. Systems and Modules • Allow for independent working • Single Responsibility • Reuse • Namespaces, Packages 37
  • 38. Microservices • Flavor of distributed system • “Modules” run on different computers • Communication between the modules are done via network calls • Allows for easier independent deployability 38
  • 39. Microservices, when done right, are a form of modular architecture - Sam Newman, Microservices Expert
  • 40. Martin Fowler on Microservices • The microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often HTTP resource API. • These services are built around business capabilities and independently deployable by fully automated deployment machinery. • There is a bare minimum of centralized management of these services, which may be written in different programming languages and use different data storage technologies.
  • 41. Microservices and Information Hiding • “On the Criteria To Be Used in Decomposing Systems into Modules” – D.L. Parnas , 1971 • Looked at how to best define module boundaries and found that “information hiding” worked best • The effectiveness of a “modularization” is dependent upon the criteria used in dividing the system into modules • “module” = Work Assignment Unit • Development time should be shortened because separate groups can work on each module (microservice) with little need for communication. • Product flexibility should be improved – it was hoped that it would be possible to make quite drastic changes or improvements in one module (microservice) without changing others. • Comprehensibility – it was hoped that the system could be studied a module (microservice) at a time with the result that the whole system could be better designed because it was better understood. 41 https://www.win.tue.nl/~wstomv/edu/2ip30/references/criteria_for_modularization.pdf
  • 42. Not Information Hiding? • If an upstream consumer can reach into your internal implementation.. • Then you can’t change this implementation without breaking consumer 42
  • 43. Not Information Hiding? • If an upstream consumer can reach into your internal implementation.. • Then you can’t change this implementation without breaking consumer 43
  • 44. Information Hiding • Hide your secrets (state)! • Be Explicit about what is shared and what is hidden • Hidden Things can change, shared things can’t 44
  • 45. Information Hiding • “The Connections between modules are the assumptions which modules make about each other” – D.L.Parnas • Information hiding is about reducing the assumptions one module has on another. • JSON Schemas help to remove the assumptions and establish contracts 45
  • 47. Application Programming Interface 47 • An application programming interface (API) is a computing interface which defines interactions between multiple software intermediaries. It defines the kinds of calls or requests that can be made, how to make them, the data formats that should be used, the conventions to follow, etc. • In case of microservices, generally API referred to Web API.
  • 50. Most Used API Types 50 Simple Object Access Protocol (SOAP) This is a standard protocol that defines how two objects in different processes can communicate through XML data exchange. Representational State Transfer (REST) This is a simple way to send and receive data between the client and server and does not have many standards. It can send and receive JSON, XML or plaintext. API: https://api.google.com/v1/tag/ Endpoint: /v1/tag/
  • 52. AWS API Gateway 52 Backend For FrontEnd •Unify multiple microservices under single API front-end Security •Authenticate and authorize the requests •DDOS protection Throughput •Throttling •Rate Limiting
  • 56. Designing Microservices • ‘Micro’ is misleading most of implementations • It is NOT about how many lines of code in your microservice have • Should be Manageable by a small, self-sufficient team • Evolutionary design
  • 57. Principles of Microservices Deployment Technology Versions Languages Infrastructure Operations Developm ent Testing Security Fail Predictably No SPoF Automated Recovery Based on Business Capability Single Responsibility Hide ‘Implementation ’ Independence Independence Independence IsolationIndependence Automation Fail-Safe
  • 58. Conway’s Law "Any organization that designs a system (defined more broadly here than just information systems) will inevitably produce a design whose structure is a copy of the organization's communication structure.“ -Melvin Conway
  • 59. Conway’s Law Org Structure Architectural Capabilities
  • 60. Reversing the Conway’s Law • Two Pizza Teams focused on Business Capability • You Build it, You Run it! • Microservices
  • 62. Server To Digital Platform Journey 62
  • 63. Serverless Microservices – Real World Example 63 https://github.com/awslabs/serverless-image-handler
  • 64. Summary • Cloud Computing is the de-facto way now for the industry to develop and deploy the applications. • Microservices architecture style is suitable for large scale systems where business needs to respond to new challenges. • Using Serverless technologies like from AWS Lambda, application delivery can be faster and software engineers and developers can focus on delivering business value. • Learn and adopt serverless microservices today! 64
  • 65. Resources • https://martinfowler.com/articles/microservices.html • https://docs.aws.amazon.com/whitepapers/latest/microservices-on- aws/introduction.html • https://arxiv.org/pdf/1902.03383.pdf=> research paper => Cloud Programming Simplified: A Berkeley View on Serverless Computing • https://aws.amazon.com/education/awseducate • https://github.com/awslabs/serverless-image-handler • Example = Profile-Photo Service • https://image-processing.serverlessworkshops.io/ • https://www.cloudflare.com/learning/serverless/glossary/serverless- microservice/ 65
  • 69. Cloud Vendors and their Offerings • Microsoft – Azure Cloud • Amazon – Amazon Web Services (AWS) • Google – Google Cloud Platform (GCP) • Others – IBM, Cloudflare, DigitalOcean 69
  • 70. Geo-Distributed Datacentres Larger Cloud vendors have proven track records for running services for large numbers of customers hosted in their own datacentres
  • 71. . This presentation is shared under Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International license. More information for this license is available at http://creativecommons.org/licenses/by-nc-sa/4.0/ All trademarks are the property of their respective owners. Lalit Kale makes no warranties, express, implied or statutory, as to the information in this presentation. Lalit Kale https://ie.linkedin.com/in/lalitkale

Notes de l'éditeur

  1. Ref: https://www.thoughtworks.com/insights/blog/applying-conways-law-improve-your-software-development
  2. Ref: https://www.thoughtworks.com/insights/blog/applying-conways-law-improve-your-software-development
  3. Ref: https://www.thoughtworks.com/insights/blog/applying-conways-law-improve-your-software-development