SlideShare a Scribd company logo
1 of 45
Cloud First
Architecture
Patterns and Practices for the Cloud
WELCOME
Cameron Vetter
Cameron Vetter is a technologist with 20 years of experience using Microsoft tools and technologies to develop software.
Cameron has experience in many roles including Development, Architecture, Infrastructure, Management, and Leadership
roles. He recently received a Microsoft MVP award for his evangelism work around Deep Learning in Azure. He has
worked for some of the largest companies in the world as well as small companies getting a breadth of experience helping
him understand the needs of different size businesses and different Industries. Currently, Cameron is the Principal
Architect at the Octavian Technology Group, where he helps clients develop Technical Strategies. He also helps clients
Architect, Design, and Develop software focusing on Deep Learning / AI, Cloud Architecture, Microservices, Mixed Reality,
and Azure.
Cloud / Machine Learning / Mixed Reality Consultant
A Partner to Advise and Support
About Us
Our team offers a decades of combined experience in
technology-related fields, and we leverage our expertise
to take a business-focused approach to helping
organizations solve real problems with proven solutions.
Octavian TG offers Cloud Architecture, Mixed Reality
Development, Data Science, Machine Learning,
Fractional CIO, and Agile trainers.
5
Why Azure?
Everything we talk about today can be applied to any major cloud providers’ offerings. I use Azure as example,
because they have the most sophisticated offering and I have the most familiarity with it.
Credit: Azure Architecture Center @ https://docs.microsoft.com/en-us/azure/architecture/
Introduction
Hosting Model
Architecture Styles
Design Principles
Best Practices
Cloud Design Patterns
Performance Antipatterns
Agenda
Question & Answer
Hosting Model
Infrastructure AAS Platform AAS Functions AAS
Cloud Hosting Models
/ Good, Better, Best /
Servers, network, and data center managed
by cloud provider.
Availability sets allow duplicate VM’s to exist
in different data centers for scaling.
Closest to on premise, allowing for lift and
shift migrations.
ADVANTAGES
Security is completely dependent on proper
configuration of the platform.
Operating system updates, application
installation, and database server
management your responsibility.
Lift and shift migrations usually reproduce
your existing problems in a new location.
DISADVANTAGES
INFRASTRUCTURE AS A SERVICE
/ Good/
All levels of the infrastructure are managed
by the cloud provider.
Most security is handled by the cloud
providers security team.
Automatic scaling and replication is
available.
ADVANTAGES
Application and services are responsible for
not opening up security holes.
Application and service change management
is unchanged.
DISADVANTAGES
PLATFORM AS A SERVICE
/ Better /
Creation of compute is handled by the
platform.
Extremely cost efficient.
ADVANTAGES
Limited to the FAAS platform’s selection of
tools and languages.
Lack of flexibility, software must be designed
with a SOA pattern.
DISADVANTAGES
FUNCTIONS AS A SERVICE
/ Best /
Lift and Shift
A strategy for migrating a workload to the cloud
without redesigning the application or making
code changes. Sometimes called rehosting.
Cloud Optimized
A strategy for migrating to the cloud by refactoring
an application to take advantage of cloud-native
features and capabilities.
Architecture Styles
Architectures
Dependency Management Appropriate for your Domain Type
Vertically decomposed
services that interact through
an API
Microservices
Front and Backend jobs
decoupled with async
messaging
Web-Queue-Worker
Producer / Consumer.
Each subsystem is
independent.
Event Driven
Horizontal tiers
N-tier
Traditional
Business
Domain / Few
Updates
IoT and real-time
systems / Frequent
Updates
Simple
Domain /
Resource
Intensive
Complicated
Domain / Frequent
Updates
Design Principles
DESIGN FOR SELF
HEALING
In a distributed system, failures
happen. Design your application to
be self healing when failures occur.
MAKE EVERYTHING
REDUNDANT
Build redundancy into your
application, to avoid having single
points of failure.
MINIMIZE
DEPENDENICES
Minimize dependencies between
application services to achieve
scalability.
DESIGN TO SCALE
OUT
Design your application so that it can
scale horizontally, adding or
removing new instances as demand
requires.
PARTITION
AROUND LIMITS
Use partitioning to work around
database, network, and compute
limits.
DESIGN FOR
OPERATIONS
Design your application so that the
operations team has the tools they
need.
USE MANAGED
SERVICES
When possible, use platform as a
service (PaaS) rather than
infrastructure as a service (IaaS).
USE THE BEST DATA
STORE FOR THE JOB
Pick the storage technology that is
the best fit for your data and how it
will be used.
DESIGN FOR
EVOLUTION
All successful applications change
over time. An evolutionary design is
key for continuous innovation.
BUILD FOR THE NEEDS OF
THE BUSINESS
Every design decision must be
justified by a business requirement.
Best Practices
Scalability
Scalability is the ability of a system to handle
increased load. There are two main ways that an
application can scale. Vertical scaling (scaling up)
means increasing the capacity of a resource, for
example by using a larger VM size. Horizontal scaling
(scaling out) is adding new instances of a resource,
such as VMs or database replicas.
The need to vertically scale signifies a problem.
Availability
Availability is the proportion of time that the system is
functional and working. It is usually measured as a
percentage of uptime. Application errors,
infrastructure problems, and system load can all
reduce availability.
SLA is a combined effort of the cloud provider and
the application architecture
Resiliency
Resiliency is the ability of the system to recover from
failures and continue to function. The goal of
resiliency is to return the application to a fully
functioning state after a failure occurs. Resiliency is
closely related to availability.
A system with poor availability has a problem with
resiliency
Management
and DevOps
Deployments must be reliable and predictable. They
should be automated to reduce the chance of human
error. Monitoring and diagnostics are crucial.
Failed deploys usually are a symptom of a problem
with your DevOps
Security
You must think about security throughout the entire
lifecycle of an application, from design and
implementation to deployment and operations. The
platform should provide protections against a variety
of threats, but you still need to build security into your
application and into your DevOps processes.
Don’t wait to start thinking about security until after
your first breech.
Cloud Design Patterns
Design Patterns
Anti-Corruption Layer
Implement a façade or adapter layer between a modern
application and a legacy system
Design Patterns
Backends for Frontends
Create separate backend services to be consumed by
specific frontend applications or interfaces.
Design Patterns
Circuit Breaker
Handle faults that might take a variable amount of time to
fix when connecting to a remote service or resource.
Design Patterns
Claim Check
Split a large message into a claim check and a payload to
avoid overwhelming a message bus.
Design Patterns
Competing Consumers
Enable multiple concurrent consumers to process
messages received on the same messaging channel.
Design Patterns
Federated Identity
Delegate authentication to an external identity provider.
Design Patterns
Publisher/Subscriber
Enable an application to announce events to multiple
interested consumers asynchronously, without coupling the
senders to the receivers.
Design Patterns
Strangler
Incrementally migrate a legacy system by gradually
replacing specific pieces of functionality with new
applications and services.
Antipatterns
Busy Database
PROBLEM
Database Code execution, such as stored
procedures and triggers are overused, putting
excessive load on the database server.
DETECTION
Monitor the volume of database activity,
compare it to the usage of the other tiers.
SOLUTION
Refactor processing to other application tiers,
limiting your database to data access
operations.
PROBLEM
Long synchronous tasks or excessive
background threads can cause decreased
response times
DETECTION
High latency on front end tasks and server
failures including 500 or 503 errors.
SOLUTION
Make all front end tasks asynchronous and
move resource intensive tasks to isolated
compute.
Busy Front End
Chatty I/O
PROBLEM
A high quantity of network calls and other I/O
operations like disk operations.
DETECTION
End users report extended response times or
failures caused by timeouts, due to resource
contention.
SOLUTION
Reduce the quantity of I/O requests by batching
data into larger requests.
PROBLEM
Application retrieves lots more data than it
needs which often gets discarded. Improper use
of ORM tools to filter data retrieval in memory.
DETECTION
High latency and data store contention, Long
running queries are identified.
SOLUTION
Fetch only the data that you need. Optimize
ORM based requests to filter data at the
database server not in memory.
Extraneous
Fetching
Improper
Instantiation
PROBLEM
Using the wrong instantiation lifetime for
classes, Not using a Singleton pattern where
appropriate.
DETECTION
Exceptions related to exhaustion of resources,
increased memory usage and garbage
collection.
SOLUTION
Wrap classes in thread safe singleton’s when
they are safe for reuse. Use resource pooling
when appropriate.
PROBLEM
Putting all of an applications data into a single
data store, that may lead to resource contention
or be a poor fit for some of the data.
DETECTION
Sudden dramatic slow downs that lead to
eventual failures.
SOLUTION
Separate data according to use aligned with
how the data is used.
Monolithic
Persistence
No Caching
PROBLEM
Repeatedly fetching the same information from
a resource that is expensive. Repeatedly
constructing the same calls to a remote service.
DETECTION
Exceptions related to exhaustion of resources,
increased memory usage and garbage
collection.
SOLUTION
Reads should check a cache then retrieve the
data if it is not cached.
www.cameronvetter.com
Any Questions?
@poshporcupine Linkedin.com/in/cameronvetter

More Related Content

What's hot

Cloud Strategy Methodology Visualisation
Cloud Strategy Methodology VisualisationCloud Strategy Methodology Visualisation
Cloud Strategy Methodology VisualisationGareth Llewellyn
 
The Cloud Strategy
The Cloud StrategyThe Cloud Strategy
The Cloud StrategyVikas Gupta
 
Moving your IT to the Cloud with an Enterprise Cloud Strategy
Moving your IT to the Cloud with an Enterprise Cloud StrategyMoving your IT to the Cloud with an Enterprise Cloud Strategy
Moving your IT to the Cloud with an Enterprise Cloud Strategymstockwell
 
Cloud Adoption in the Enterprise
Cloud Adoption in the EnterpriseCloud Adoption in the Enterprise
Cloud Adoption in the EnterpriseAmazon Web Services
 
December 2014 Webinar - Planning Your 2015 Cloud Strategy
December 2014 Webinar -  Planning Your 2015 Cloud StrategyDecember 2014 Webinar -  Planning Your 2015 Cloud Strategy
December 2014 Webinar - Planning Your 2015 Cloud StrategyRapidScale
 
Webinar: Make Your Cloud Strategy Work for 2016
Webinar: Make Your Cloud Strategy Work for 2016Webinar: Make Your Cloud Strategy Work for 2016
Webinar: Make Your Cloud Strategy Work for 2016Alexandra Sasha Tchulkova
 
Softchoice Discovery Series: Cloud Cost Governance
Softchoice Discovery Series: Cloud Cost GovernanceSoftchoice Discovery Series: Cloud Cost Governance
Softchoice Discovery Series: Cloud Cost GovernanceSoftchoice Corporation
 
Cloud Migration - Cloud Computing Benefits & Issues
Cloud Migration - Cloud Computing Benefits & IssuesCloud Migration - Cloud Computing Benefits & Issues
Cloud Migration - Cloud Computing Benefits & IssuesArtizen, Inc.
 
A Practical Guide to Cloud Migration
A Practical Guide to Cloud MigrationA Practical Guide to Cloud Migration
A Practical Guide to Cloud MigrationAlaina Carter
 
Microsoft Cloud Adoption Framework for Azure: Thru Partner Governance Workshop
Microsoft Cloud Adoption Framework for Azure: Thru Partner Governance WorkshopMicrosoft Cloud Adoption Framework for Azure: Thru Partner Governance Workshop
Microsoft Cloud Adoption Framework for Azure: Thru Partner Governance WorkshopNicholas Vossburg
 
Cloud governance - theory and tools
Cloud governance - theory and toolsCloud governance - theory and tools
Cloud governance - theory and toolsAntti Arnell
 
Aberdeen Oil & Gas Event - Cloud Adoption Framework
Aberdeen Oil & Gas Event - Cloud Adoption FrameworkAberdeen Oil & Gas Event - Cloud Adoption Framework
Aberdeen Oil & Gas Event - Cloud Adoption FrameworkAmazon Web Services
 
Moving to the cloud: cloud strategies and roadmaps
Moving to the cloud: cloud strategies and roadmapsMoving to the cloud: cloud strategies and roadmaps
Moving to the cloud: cloud strategies and roadmapsJisc
 
A perspective on cloud computing and enterprise saa s applications
A perspective on cloud computing and enterprise saa s applicationsA perspective on cloud computing and enterprise saa s applications
A perspective on cloud computing and enterprise saa s applicationsGeorge Milliken
 
Why EA's must drive cloud strategy
Why EA's must drive cloud strategyWhy EA's must drive cloud strategy
Why EA's must drive cloud strategyMike Walker
 
Architecting your Cloud Strategy - Part One.vsdx
Architecting your Cloud Strategy - Part One.vsdxArchitecting your Cloud Strategy - Part One.vsdx
Architecting your Cloud Strategy - Part One.vsdxGareth Llewellyn
 

What's hot (20)

Cloud Strategy Methodology Visualisation
Cloud Strategy Methodology VisualisationCloud Strategy Methodology Visualisation
Cloud Strategy Methodology Visualisation
 
The Cloud Strategy
The Cloud StrategyThe Cloud Strategy
The Cloud Strategy
 
Moving your IT to the Cloud with an Enterprise Cloud Strategy
Moving your IT to the Cloud with an Enterprise Cloud StrategyMoving your IT to the Cloud with an Enterprise Cloud Strategy
Moving your IT to the Cloud with an Enterprise Cloud Strategy
 
Cloud Adoption in the Enterprise
Cloud Adoption in the EnterpriseCloud Adoption in the Enterprise
Cloud Adoption in the Enterprise
 
Cloud Strategy First
 Cloud Strategy First Cloud Strategy First
Cloud Strategy First
 
AWS Cloud Adoption Framework
AWS Cloud Adoption Framework AWS Cloud Adoption Framework
AWS Cloud Adoption Framework
 
December 2014 Webinar - Planning Your 2015 Cloud Strategy
December 2014 Webinar -  Planning Your 2015 Cloud StrategyDecember 2014 Webinar -  Planning Your 2015 Cloud Strategy
December 2014 Webinar - Planning Your 2015 Cloud Strategy
 
Webinar: Make Your Cloud Strategy Work for 2016
Webinar: Make Your Cloud Strategy Work for 2016Webinar: Make Your Cloud Strategy Work for 2016
Webinar: Make Your Cloud Strategy Work for 2016
 
Softchoice Discovery Series: Cloud Cost Governance
Softchoice Discovery Series: Cloud Cost GovernanceSoftchoice Discovery Series: Cloud Cost Governance
Softchoice Discovery Series: Cloud Cost Governance
 
Cloud Adoption and Risk Report 2019
Cloud Adoption and Risk Report 2019Cloud Adoption and Risk Report 2019
Cloud Adoption and Risk Report 2019
 
Cloud Migration - Cloud Computing Benefits & Issues
Cloud Migration - Cloud Computing Benefits & IssuesCloud Migration - Cloud Computing Benefits & Issues
Cloud Migration - Cloud Computing Benefits & Issues
 
A Practical Guide to Cloud Migration
A Practical Guide to Cloud MigrationA Practical Guide to Cloud Migration
A Practical Guide to Cloud Migration
 
Microsoft Cloud Adoption Framework for Azure: Thru Partner Governance Workshop
Microsoft Cloud Adoption Framework for Azure: Thru Partner Governance WorkshopMicrosoft Cloud Adoption Framework for Azure: Thru Partner Governance Workshop
Microsoft Cloud Adoption Framework for Azure: Thru Partner Governance Workshop
 
Cloud governance - theory and tools
Cloud governance - theory and toolsCloud governance - theory and tools
Cloud governance - theory and tools
 
Aberdeen Oil & Gas Event - Cloud Adoption Framework
Aberdeen Oil & Gas Event - Cloud Adoption FrameworkAberdeen Oil & Gas Event - Cloud Adoption Framework
Aberdeen Oil & Gas Event - Cloud Adoption Framework
 
Cloud migration
Cloud migrationCloud migration
Cloud migration
 
Moving to the cloud: cloud strategies and roadmaps
Moving to the cloud: cloud strategies and roadmapsMoving to the cloud: cloud strategies and roadmaps
Moving to the cloud: cloud strategies and roadmaps
 
A perspective on cloud computing and enterprise saa s applications
A perspective on cloud computing and enterprise saa s applicationsA perspective on cloud computing and enterprise saa s applications
A perspective on cloud computing and enterprise saa s applications
 
Why EA's must drive cloud strategy
Why EA's must drive cloud strategyWhy EA's must drive cloud strategy
Why EA's must drive cloud strategy
 
Architecting your Cloud Strategy - Part One.vsdx
Architecting your Cloud Strategy - Part One.vsdxArchitecting your Cloud Strategy - Part One.vsdx
Architecting your Cloud Strategy - Part One.vsdx
 

Similar to Cloud First Architecture

MS Cloud Design Patterns Infographic 2015
MS Cloud Design Patterns Infographic 2015MS Cloud Design Patterns Infographic 2015
MS Cloud Design Patterns Infographic 2015James Tramel
 
Ms cloud design patterns infographic 2015
Ms cloud design patterns infographic 2015Ms cloud design patterns infographic 2015
Ms cloud design patterns infographic 2015Kesavan Munuswamy
 
App Modernisation with Microsoft Azure
App Modernisation with Microsoft AzureApp Modernisation with Microsoft Azure
App Modernisation with Microsoft AzureAdam Stephensen
 
MSFT MAIW Data Mod - Session 1 Deck_Why Migrate your databases to Azure_Sept ...
MSFT MAIW Data Mod - Session 1 Deck_Why Migrate your databases to Azure_Sept ...MSFT MAIW Data Mod - Session 1 Deck_Why Migrate your databases to Azure_Sept ...
MSFT MAIW Data Mod - Session 1 Deck_Why Migrate your databases to Azure_Sept ...ssuser01a66e
 
220929-Presentation-business case for moving to the cloud.pptx
220929-Presentation-business case for moving to the cloud.pptx220929-Presentation-business case for moving to the cloud.pptx
220929-Presentation-business case for moving to the cloud.pptxZiadHaidamous1
 
Best practices for application migration to public clouds interop presentation
Best practices for application migration to public clouds interop presentationBest practices for application migration to public clouds interop presentation
Best practices for application migration to public clouds interop presentationesebeus
 
HOW-CLOUD-IMPLEMENTATION-CAN-ENSURE-MAXIMUM-ROI.pdf
HOW-CLOUD-IMPLEMENTATION-CAN-ENSURE-MAXIMUM-ROI.pdfHOW-CLOUD-IMPLEMENTATION-CAN-ENSURE-MAXIMUM-ROI.pdf
HOW-CLOUD-IMPLEMENTATION-CAN-ENSURE-MAXIMUM-ROI.pdfAgaram Technologies
 
Cloud strategy briefing 101
Cloud strategy briefing 101 Cloud strategy briefing 101
Cloud strategy briefing 101 Predrag Mitrovic
 
Cloud Computing & Control Auditing
Cloud Computing & Control AuditingCloud Computing & Control Auditing
Cloud Computing & Control AuditingNavin Malhotra
 
Building Cloud capability for startups
Building Cloud capability for startupsBuilding Cloud capability for startups
Building Cloud capability for startupsSekhar Mohanty
 
Matias Creimerman - Cloud migration and modernization effort
Matias Creimerman - Cloud migration and modernization effortMatias Creimerman - Cloud migration and modernization effort
Matias Creimerman - Cloud migration and modernization effortMatias Creimerman
 
ICS-Azure Migrations & Application Modernization_V2.pptx
ICS-Azure Migrations & Application Modernization_V2.pptxICS-Azure Migrations & Application Modernization_V2.pptx
ICS-Azure Migrations & Application Modernization_V2.pptxmustafa435048
 
DEVSECOPS ON CLOUD STORAGE SECURITY
DEVSECOPS ON CLOUD STORAGE SECURITYDEVSECOPS ON CLOUD STORAGE SECURITY
DEVSECOPS ON CLOUD STORAGE SECURITYIRJET Journal
 
IT Modernization For Process Modernization
IT Modernization For Process ModernizationIT Modernization For Process Modernization
IT Modernization For Process ModernizationDheeraj Remella
 
The simplest cloud migration in the world by Webscale
The simplest cloud migration in the world by WebscaleThe simplest cloud migration in the world by Webscale
The simplest cloud migration in the world by WebscaleWebscale Networks
 
C L O U D C O M P U T I N G
C L O U D  C O M P U T I N GC L O U D  C O M P U T I N G
C L O U D C O M P U T I N GShreyas Pai
 

Similar to Cloud First Architecture (20)

MS Cloud Design Patterns Infographic 2015
MS Cloud Design Patterns Infographic 2015MS Cloud Design Patterns Infographic 2015
MS Cloud Design Patterns Infographic 2015
 
Ms cloud design patterns infographic 2015
Ms cloud design patterns infographic 2015Ms cloud design patterns infographic 2015
Ms cloud design patterns infographic 2015
 
App Modernisation with Microsoft Azure
App Modernisation with Microsoft AzureApp Modernisation with Microsoft Azure
App Modernisation with Microsoft Azure
 
MSFT MAIW Data Mod - Session 1 Deck_Why Migrate your databases to Azure_Sept ...
MSFT MAIW Data Mod - Session 1 Deck_Why Migrate your databases to Azure_Sept ...MSFT MAIW Data Mod - Session 1 Deck_Why Migrate your databases to Azure_Sept ...
MSFT MAIW Data Mod - Session 1 Deck_Why Migrate your databases to Azure_Sept ...
 
220929-Presentation-business case for moving to the cloud.pptx
220929-Presentation-business case for moving to the cloud.pptx220929-Presentation-business case for moving to the cloud.pptx
220929-Presentation-business case for moving to the cloud.pptx
 
Best practices for application migration to public clouds interop presentation
Best practices for application migration to public clouds interop presentationBest practices for application migration to public clouds interop presentation
Best practices for application migration to public clouds interop presentation
 
HOW-CLOUD-IMPLEMENTATION-CAN-ENSURE-MAXIMUM-ROI.pdf
HOW-CLOUD-IMPLEMENTATION-CAN-ENSURE-MAXIMUM-ROI.pdfHOW-CLOUD-IMPLEMENTATION-CAN-ENSURE-MAXIMUM-ROI.pdf
HOW-CLOUD-IMPLEMENTATION-CAN-ENSURE-MAXIMUM-ROI.pdf
 
Cloud strategy briefing 101
Cloud strategy briefing 101 Cloud strategy briefing 101
Cloud strategy briefing 101
 
Cloud Computing & Control Auditing
Cloud Computing & Control AuditingCloud Computing & Control Auditing
Cloud Computing & Control Auditing
 
Building Cloud capability for startups
Building Cloud capability for startupsBuilding Cloud capability for startups
Building Cloud capability for startups
 
Ms.azure in detail
Ms.azure in detailMs.azure in detail
Ms.azure in detail
 
Matias Creimerman - Cloud migration and modernization effort
Matias Creimerman - Cloud migration and modernization effortMatias Creimerman - Cloud migration and modernization effort
Matias Creimerman - Cloud migration and modernization effort
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computing
 
ICS-Azure Migrations & Application Modernization_V2.pptx
ICS-Azure Migrations & Application Modernization_V2.pptxICS-Azure Migrations & Application Modernization_V2.pptx
ICS-Azure Migrations & Application Modernization_V2.pptx
 
DEVSECOPS ON CLOUD STORAGE SECURITY
DEVSECOPS ON CLOUD STORAGE SECURITYDEVSECOPS ON CLOUD STORAGE SECURITY
DEVSECOPS ON CLOUD STORAGE SECURITY
 
IT Modernization For Process Modernization
IT Modernization For Process ModernizationIT Modernization For Process Modernization
IT Modernization For Process Modernization
 
The simplest cloud migration in the world by Webscale
The simplest cloud migration in the world by WebscaleThe simplest cloud migration in the world by Webscale
The simplest cloud migration in the world by Webscale
 
Cloud capability for startups
Cloud capability for startupsCloud capability for startups
Cloud capability for startups
 
C L O U D C O M P U T I N G
C L O U D  C O M P U T I N GC L O U D  C O M P U T I N G
C L O U D C O M P U T I N G
 

More from Cameron Vetter

Why do most machine learning projects never make it to production
Why do most machine learning projects never make it to productionWhy do most machine learning projects never make it to production
Why do most machine learning projects never make it to productionCameron Vetter
 
Ml.net machine learning for .net developers!
Ml.net machine learning for .net developers!Ml.net machine learning for .net developers!
Ml.net machine learning for .net developers!Cameron Vetter
 
Mixed reality the second generation is all about ux
Mixed reality   the second generation is all about uxMixed reality   the second generation is all about ux
Mixed reality the second generation is all about uxCameron Vetter
 
Global ai night sept 2019 - Milwaukee
Global ai night sept 2019 - MilwaukeeGlobal ai night sept 2019 - Milwaukee
Global ai night sept 2019 - MilwaukeeCameron Vetter
 
Integrating Machine Learning Capabilities into your team
Integrating Machine Learning Capabilities into your teamIntegrating Machine Learning Capabilities into your team
Integrating Machine Learning Capabilities into your teamCameron Vetter
 
Azure Notebooks - Jupyter for the Cloud
Azure Notebooks - Jupyter for the CloudAzure Notebooks - Jupyter for the Cloud
Azure Notebooks - Jupyter for the CloudCameron Vetter
 
An Introduction to Artificial Neural Networks
An Introduction to Artificial Neural NetworksAn Introduction to Artificial Neural Networks
An Introduction to Artificial Neural NetworksCameron Vetter
 
Azure Batch AI for Neural Networks
Azure Batch AI for Neural Networks Azure Batch AI for Neural Networks
Azure Batch AI for Neural Networks Cameron Vetter
 
Using a Service Bus for Microservice Communication
Using a Service Bus for Microservice CommunicationUsing a Service Bus for Microservice Communication
Using a Service Bus for Microservice CommunicationCameron Vetter
 
Augmented reality for the Enterprise
Augmented reality for the EnterpriseAugmented reality for the Enterprise
Augmented reality for the EnterpriseCameron Vetter
 
Augmented Reality - Let’s Make Some Holograms! (UXD Version)
Augmented Reality - Let’s Make Some Holograms! (UXD Version)Augmented Reality - Let’s Make Some Holograms! (UXD Version)
Augmented Reality - Let’s Make Some Holograms! (UXD Version)Cameron Vetter
 
Augmented Reality - Let’s Make Some Holgrams! (Developer Version)
Augmented Reality - Let’s Make Some Holgrams! (Developer Version)Augmented Reality - Let’s Make Some Holgrams! (Developer Version)
Augmented Reality - Let’s Make Some Holgrams! (Developer Version)Cameron Vetter
 

More from Cameron Vetter (12)

Why do most machine learning projects never make it to production
Why do most machine learning projects never make it to productionWhy do most machine learning projects never make it to production
Why do most machine learning projects never make it to production
 
Ml.net machine learning for .net developers!
Ml.net machine learning for .net developers!Ml.net machine learning for .net developers!
Ml.net machine learning for .net developers!
 
Mixed reality the second generation is all about ux
Mixed reality   the second generation is all about uxMixed reality   the second generation is all about ux
Mixed reality the second generation is all about ux
 
Global ai night sept 2019 - Milwaukee
Global ai night sept 2019 - MilwaukeeGlobal ai night sept 2019 - Milwaukee
Global ai night sept 2019 - Milwaukee
 
Integrating Machine Learning Capabilities into your team
Integrating Machine Learning Capabilities into your teamIntegrating Machine Learning Capabilities into your team
Integrating Machine Learning Capabilities into your team
 
Azure Notebooks - Jupyter for the Cloud
Azure Notebooks - Jupyter for the CloudAzure Notebooks - Jupyter for the Cloud
Azure Notebooks - Jupyter for the Cloud
 
An Introduction to Artificial Neural Networks
An Introduction to Artificial Neural NetworksAn Introduction to Artificial Neural Networks
An Introduction to Artificial Neural Networks
 
Azure Batch AI for Neural Networks
Azure Batch AI for Neural Networks Azure Batch AI for Neural Networks
Azure Batch AI for Neural Networks
 
Using a Service Bus for Microservice Communication
Using a Service Bus for Microservice CommunicationUsing a Service Bus for Microservice Communication
Using a Service Bus for Microservice Communication
 
Augmented reality for the Enterprise
Augmented reality for the EnterpriseAugmented reality for the Enterprise
Augmented reality for the Enterprise
 
Augmented Reality - Let’s Make Some Holograms! (UXD Version)
Augmented Reality - Let’s Make Some Holograms! (UXD Version)Augmented Reality - Let’s Make Some Holograms! (UXD Version)
Augmented Reality - Let’s Make Some Holograms! (UXD Version)
 
Augmented Reality - Let’s Make Some Holgrams! (Developer Version)
Augmented Reality - Let’s Make Some Holgrams! (Developer Version)Augmented Reality - Let’s Make Some Holgrams! (Developer Version)
Augmented Reality - Let’s Make Some Holgrams! (Developer Version)
 

Recently uploaded

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
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 

Recently uploaded (20)

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
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 

Cloud First Architecture

  • 1. Cloud First Architecture Patterns and Practices for the Cloud
  • 3. Cameron Vetter Cameron Vetter is a technologist with 20 years of experience using Microsoft tools and technologies to develop software. Cameron has experience in many roles including Development, Architecture, Infrastructure, Management, and Leadership roles. He recently received a Microsoft MVP award for his evangelism work around Deep Learning in Azure. He has worked for some of the largest companies in the world as well as small companies getting a breadth of experience helping him understand the needs of different size businesses and different Industries. Currently, Cameron is the Principal Architect at the Octavian Technology Group, where he helps clients develop Technical Strategies. He also helps clients Architect, Design, and Develop software focusing on Deep Learning / AI, Cloud Architecture, Microservices, Mixed Reality, and Azure. Cloud / Machine Learning / Mixed Reality Consultant
  • 4. A Partner to Advise and Support About Us Our team offers a decades of combined experience in technology-related fields, and we leverage our expertise to take a business-focused approach to helping organizations solve real problems with proven solutions. Octavian TG offers Cloud Architecture, Mixed Reality Development, Data Science, Machine Learning, Fractional CIO, and Agile trainers.
  • 5. 5 Why Azure? Everything we talk about today can be applied to any major cloud providers’ offerings. I use Azure as example, because they have the most sophisticated offering and I have the most familiarity with it. Credit: Azure Architecture Center @ https://docs.microsoft.com/en-us/azure/architecture/
  • 6. Introduction Hosting Model Architecture Styles Design Principles Best Practices Cloud Design Patterns Performance Antipatterns Agenda Question & Answer
  • 8. Infrastructure AAS Platform AAS Functions AAS Cloud Hosting Models / Good, Better, Best /
  • 9. Servers, network, and data center managed by cloud provider. Availability sets allow duplicate VM’s to exist in different data centers for scaling. Closest to on premise, allowing for lift and shift migrations. ADVANTAGES Security is completely dependent on proper configuration of the platform. Operating system updates, application installation, and database server management your responsibility. Lift and shift migrations usually reproduce your existing problems in a new location. DISADVANTAGES INFRASTRUCTURE AS A SERVICE / Good/
  • 10. All levels of the infrastructure are managed by the cloud provider. Most security is handled by the cloud providers security team. Automatic scaling and replication is available. ADVANTAGES Application and services are responsible for not opening up security holes. Application and service change management is unchanged. DISADVANTAGES PLATFORM AS A SERVICE / Better /
  • 11. Creation of compute is handled by the platform. Extremely cost efficient. ADVANTAGES Limited to the FAAS platform’s selection of tools and languages. Lack of flexibility, software must be designed with a SOA pattern. DISADVANTAGES FUNCTIONS AS A SERVICE / Best /
  • 12. Lift and Shift A strategy for migrating a workload to the cloud without redesigning the application or making code changes. Sometimes called rehosting. Cloud Optimized A strategy for migrating to the cloud by refactoring an application to take advantage of cloud-native features and capabilities.
  • 14. Architectures Dependency Management Appropriate for your Domain Type Vertically decomposed services that interact through an API Microservices Front and Backend jobs decoupled with async messaging Web-Queue-Worker Producer / Consumer. Each subsystem is independent. Event Driven Horizontal tiers N-tier Traditional Business Domain / Few Updates IoT and real-time systems / Frequent Updates Simple Domain / Resource Intensive Complicated Domain / Frequent Updates
  • 16. DESIGN FOR SELF HEALING In a distributed system, failures happen. Design your application to be self healing when failures occur.
  • 17. MAKE EVERYTHING REDUNDANT Build redundancy into your application, to avoid having single points of failure.
  • 19. DESIGN TO SCALE OUT Design your application so that it can scale horizontally, adding or removing new instances as demand requires.
  • 20. PARTITION AROUND LIMITS Use partitioning to work around database, network, and compute limits.
  • 21. DESIGN FOR OPERATIONS Design your application so that the operations team has the tools they need.
  • 22. USE MANAGED SERVICES When possible, use platform as a service (PaaS) rather than infrastructure as a service (IaaS).
  • 23. USE THE BEST DATA STORE FOR THE JOB Pick the storage technology that is the best fit for your data and how it will be used.
  • 24. DESIGN FOR EVOLUTION All successful applications change over time. An evolutionary design is key for continuous innovation.
  • 25. BUILD FOR THE NEEDS OF THE BUSINESS Every design decision must be justified by a business requirement.
  • 27. Scalability Scalability is the ability of a system to handle increased load. There are two main ways that an application can scale. Vertical scaling (scaling up) means increasing the capacity of a resource, for example by using a larger VM size. Horizontal scaling (scaling out) is adding new instances of a resource, such as VMs or database replicas. The need to vertically scale signifies a problem.
  • 28. Availability Availability is the proportion of time that the system is functional and working. It is usually measured as a percentage of uptime. Application errors, infrastructure problems, and system load can all reduce availability. SLA is a combined effort of the cloud provider and the application architecture
  • 29. Resiliency Resiliency is the ability of the system to recover from failures and continue to function. The goal of resiliency is to return the application to a fully functioning state after a failure occurs. Resiliency is closely related to availability. A system with poor availability has a problem with resiliency
  • 30. Management and DevOps Deployments must be reliable and predictable. They should be automated to reduce the chance of human error. Monitoring and diagnostics are crucial. Failed deploys usually are a symptom of a problem with your DevOps
  • 31. Security You must think about security throughout the entire lifecycle of an application, from design and implementation to deployment and operations. The platform should provide protections against a variety of threats, but you still need to build security into your application and into your DevOps processes. Don’t wait to start thinking about security until after your first breech.
  • 33. Design Patterns Anti-Corruption Layer Implement a façade or adapter layer between a modern application and a legacy system Design Patterns Backends for Frontends Create separate backend services to be consumed by specific frontend applications or interfaces.
  • 34. Design Patterns Circuit Breaker Handle faults that might take a variable amount of time to fix when connecting to a remote service or resource. Design Patterns Claim Check Split a large message into a claim check and a payload to avoid overwhelming a message bus.
  • 35. Design Patterns Competing Consumers Enable multiple concurrent consumers to process messages received on the same messaging channel. Design Patterns Federated Identity Delegate authentication to an external identity provider.
  • 36. Design Patterns Publisher/Subscriber Enable an application to announce events to multiple interested consumers asynchronously, without coupling the senders to the receivers. Design Patterns Strangler Incrementally migrate a legacy system by gradually replacing specific pieces of functionality with new applications and services.
  • 38. Busy Database PROBLEM Database Code execution, such as stored procedures and triggers are overused, putting excessive load on the database server. DETECTION Monitor the volume of database activity, compare it to the usage of the other tiers. SOLUTION Refactor processing to other application tiers, limiting your database to data access operations.
  • 39. PROBLEM Long synchronous tasks or excessive background threads can cause decreased response times DETECTION High latency on front end tasks and server failures including 500 or 503 errors. SOLUTION Make all front end tasks asynchronous and move resource intensive tasks to isolated compute. Busy Front End
  • 40. Chatty I/O PROBLEM A high quantity of network calls and other I/O operations like disk operations. DETECTION End users report extended response times or failures caused by timeouts, due to resource contention. SOLUTION Reduce the quantity of I/O requests by batching data into larger requests.
  • 41. PROBLEM Application retrieves lots more data than it needs which often gets discarded. Improper use of ORM tools to filter data retrieval in memory. DETECTION High latency and data store contention, Long running queries are identified. SOLUTION Fetch only the data that you need. Optimize ORM based requests to filter data at the database server not in memory. Extraneous Fetching
  • 42. Improper Instantiation PROBLEM Using the wrong instantiation lifetime for classes, Not using a Singleton pattern where appropriate. DETECTION Exceptions related to exhaustion of resources, increased memory usage and garbage collection. SOLUTION Wrap classes in thread safe singleton’s when they are safe for reuse. Use resource pooling when appropriate.
  • 43. PROBLEM Putting all of an applications data into a single data store, that may lead to resource contention or be a poor fit for some of the data. DETECTION Sudden dramatic slow downs that lead to eventual failures. SOLUTION Separate data according to use aligned with how the data is used. Monolithic Persistence
  • 44. No Caching PROBLEM Repeatedly fetching the same information from a resource that is expensive. Repeatedly constructing the same calls to a remote service. DETECTION Exceptions related to exhaustion of resources, increased memory usage and garbage collection. SOLUTION Reads should check a cache then retrieve the data if it is not cached.