Ninja Azure Consultant

Slides:



Advertisements
Similar presentations
How We Manage SaaS Infrastructure Knowledge Track
Advertisements

Implementing Tableau Server in an Enterprise Environment
DynaTrace Platform.
Database Architectures and the Web
Google App Engine Google APIs OAuth Facebook Graph API
Web Application Architecture: multi-tier (2-tier, 3-tier) & mvc
Cloud Computing for the Enterprise November 18th, This work is licensed under a Creative Commons.
What is Architecture  Architecture is a subjective thing, a shared understanding of a system’s design by the expert developers on a project  In the.
Austin code camp 2010 asp.net apps with azure table storage PRESENTED BY CHANDER SHEKHAR DHALL
Windows Azure Conference 2014 Deploy your Java workloads on Windows Azure.
Web Scripting [PHP] CIS166AE Wednesdays 6:00pm – 9:50pm Rob Loy.
Mick Badran Using Microsoft Service Fabric to build your next Solution with zero downtime – Lvl 300 CLD32 5.
(re)-Architecting cloud applications on the windows Azure platform CLAEYS Kurt Technology Solution Professional Microsoft EMEA.
 Cloud Computing technology basics Platform Evolution Advantages  Microsoft Windows Azure technology basics Windows Azure – A Lap around the platform.
Web Systems & Technologies
Building Azure Mobile Apps
Mobile Application Solution
Building Azure Logic Apps
Jean-Philippe Baud, IT-GD, CERN November 2007
Deploying Web Application
Build /26/2018 6:17 AM Building Resilient, Scalable Services with Microsoft Azure Service Fabric Érsek © 2015 Microsoft Corporation.
Remote execution of long-running CGIs
WWW and HTTP King Fahd University of Petroleum & Minerals
Connected Health Solution
The story of an IoT solution
Parcel Tracking Solution Parcel Tracking What to look for Architecture
Tulika Chaudharie / Harikharan Krishnaraju
Data-driven serverless apps with Azure functions
Data-driven serverless apps with Azure functions
Mobile App Trends: lifecycle, functions, and cognitive
Introducing Azure Functions
Cloud Data platform (Cloud Application Development & Deployment)
Platform as a Service.
Introduction to Web programming
The Client/Server Database Environment
Connected Health Solution
Mobile Application Solution
#01 Client/Server Computing
Microsoft Azure Service Fabric Overview
Exploring Azure Event Grid
Serverless CQRS in Azure!
Microsoft Build /8/2018 5:15 AM © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY,
Using docker containers
Pragmatic Event-Driven Microservices
20409A 7: Installing and Configuring System Center 2012 R2 Virtual Machine Manager Module 7 Installing and Configuring System Center 2012 R2 Virtual.
Enterprise Service Bus (ESB) (Chapter 9)
Outline Virtualization Cloud Computing Microsoft Azure Platform
MySQL Web Application Connecting to a MySQL database
Lecture 1: Multi-tier Architecture Overview
Near Real Time ETLs with Azure Serverless Architecture
Web Application Architectures
Windows Azure Keenan Newton 3-021
Learn. Imagine. Build. .NET Conf
Software models - Software Architecture Design Patterns
Technical Capabilities
Serverless Architecture in the Cloud
Web Application Architectures
Developing for Windows Azure
Enterprise Integration
Software Development at ORTEC
Developing Microsoft Azure Solutions Jump Start
5 Azure Services Every .NET Developer Needs to Know
Building global and highly-available services using Windows Azure
Web Application Architectures
TN19-TCI: Integration and API management using TIBCO Cloud™ Integration
Introduction to Web programming
Conection
Microsoft Virtual Academy
#01 Client/Server Computing
Presentation transcript:

Ninja Azure Consultant Microservices? Anton Boyko Microsoft Azure MVP Ninja Azure Consultant boyko.ant@live.com

Agenda What and why? Several examples Implementation checklist What is microservice architecture approach and why should I care? Several examples Several examples of microservice architecture from real life projects Implementation checklist Several important points you need to consider while planning your microservice architecture What about Azure? What Microsoft Azure can offer for my microservices?

What and why?

Criteria Maintainability Monitoring Scalability Updates Onboarding How easy is it to maintain the code? How easy is it to fix a bug? Monitoring How easy is it to monitor solution health? Scalability How easy is it to add new computin power and handle heavier load? Updates How easy is it to update solution to the newest version? Onboarding How easy is it to get onboard a new team member?

Spaghetti $conn = new mysqli($servername, $username, $password, $dbname); if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } $sql = "SELECT firstname, lastname FROM users"; $result = $conn->query($sql); if ($result->num_rows > 0) { echo "<table>"; while($row = $result->fetch_assoc()) { echo "<tr><td>"; echo $row["firstname"] . "</td><td>" . $row["lastname"]; echo "</td></tr>"; echo "</table>"; } else { echo "0 results"; $conn->close();

Spaghetti Maintainability Monitoring Scalability Updates Onboarding Impossible Monitoring Almost impossible Scalability Sometimes possible Updates Requires shutdown Onboarding Highly demotivating

Monolith Application in which user interface and data access code are combined into a single program. Design philosophy is that the application is responsible not just for a particular task, but can perform every step needed to complete a particular function.

Monolith Solution Presentation Application Data NLB Server Server

Monolith Maintainability Monitoring Scalability Updates Onboarding Mostly possible Highly depends on solution size Monitoring Possible Scalability Updates Requires shutdown Onboarding

Microservices Microservices is a variant of the service-oriented architecture (SOA) architectural style that structures an application as a collection of loosely coupled services. Microservices should be fine-grained and protocols should be lightweight. Application is easier to understand, develop and test.

Microservices Microservice 1 Presentation Application Data NLB Server Server Server Presentation

Microservices Maintainability Monitoring Scalability Updates Possible Monitoring Highly depends on solution size Scalability Updates Can be handled without shutdown Onboarding

Nanoservices Nanoservices is a microservices anti-pattern where each service is too fine grained. Nanoservice is a service whose overhead (communications, maintenance etc.) outweighs its utility.

Nanoservices User login Get categories Get goods Get my orders Presentation Presentation Presentation Presentation Application Application Application Application Data Data Data Data User register Add category Get good by id Create order Presentation Presentation Presentation Presentation Application Application Application Application Data Data Data Data

Nanoservices Maintainability Monitoring Scalability Updates Onboarding Almost impossible Monitoring Scalability Possible Updates Can be handled without shutdown Extremely depends on solution size Onboarding Sometimes possible

microservices = architecture

microservices ≠ golden hammer

SEVERAL examples

Online shop Identity Client Profile Admin Search Data Ad Social

Community portal Web Admin Rendering Identity Data Member Notification Speaker

Implementation Checklist

Infrastructure components Microservices hosts Configuration source Routing and/or autodiscovery engine Monitoring engine Logging engine

CQRS Synchronous queries Asynchronous commands send request and wait for response with data it’s acceptable to join data on a client side Asynchronous commands send request and wait for command unique id use command id to check execution status handling distributed transactions that affect several microservices can be tricky commands should be idempotent

CAP theorem Consistency Partitioning Availability

Eventual consistency After command for data modification was received, it may take some time for new data to be available for querying write entity Client app API DB id = 42 Client cache write [ 42 ]

Eventual consistency After command for data modification was received, it may take some time for new data to be available for querying read list Client app API DB [ 1, 20, 50, … ] Client cache read [ 42, 60 ]

Eventual consistency After command for data modification was received, it may take some time for new data to be available for querying read list Client app API DB [ 1, 20, 42, 50, … ] Client cache read [ 60 ] remove [ 42 ]

What about Azure?

Azure Service Fabric Service Fabric itself is platform agnostic Stateless and statefull services Service discovery Health monitoring Fault domains and upgrade domains Enterprise-ready https://docs.microsoft.com/en-us/azure/service-fabric/

Fault and upgrade domains Update 1 Node 1 Update 2 Node 2 Update 3 Node 3 Update 4 Node 4 Update 5 Node 5 Main Primary reserved Secondary reserved Microservice 1 1 2 3 Microservice 2 4 Microservice 3 5 Microservice 4 Microservice 5

Azure App Services .NET, Java, PHP, Node.JS, Python Shared web farm, isolated web apps Configuration management Backups Sticky sessions Built-in MySQL database https://docs.microsoft.com/en-us/azure/app-service-web/

Azure App Services NLB Server 1 CPU RAM Server 2 CPU RAM Server 3 CPU Distributed file system App 1 root App 2 root App 3 root App 4 root App 5 root

Azure App Services NLB Server 1 CPU RAM Server 2 CPU RAM Server 3 CPU Distributed file system App 1 root App 2 root App 3 root App 4 root App 5 root

Azure Functions Built on top of Azure App Services Small and independent unit of work Designed for handling huge amount of small parallel independent executions Consider them as event handlers Triggers and bindings Can be chained to handle sequential workflow Dedicated and consumption pricing plans https://docs.microsoft.com/en-us/azure/azure-functions/

Azure Functions

Azure Functions bindings Type Service Trigger Input Output Schedule Azure Functions ✔ HTTP Blob Storage Azure Storage Events Azure Event Hubs Queues Queues and topics Azure Service Bus Storage tables SQL tables Azure Mobile Apps No-SQL DB Azure DocumentDB Push Notifications Azure Notification Hubs Twilio SMS Text Twilio SendGrid email SendGrid

Azure functions quickstart Create cross-platform desktop apps using JavaScript and Azure https://www.youtube.com/playlist?list=PLi8gartTlTVx7sKg3XLuCQik1XSgUMNgl Sql Saturday 2017 Kyiv https://www.youtube.com/playlist?list=PLi8gartTlTVxR9lGYAXUNTk1Mo0qG1j7i

Questions? Anton Boyko Microsoft Azure MVP Ninja Azure Consultant boyko.ant@live.com