Practical Microservices

Slides:



Advertisements
Similar presentations
Hello i am so and so, title/role and a little background on myself (i.e. former microsoft employee or anything interesting) set context for what going.
Advertisements

A Java Architecture for the Internet of Things Noel Poore, Architect Pete St. Pierre, Product Manager Java Platform Group, Internet of Things September.
Cloud Computing Why is it called the cloud?.
A Brief Overview by Aditya Dutt March 18 th ’ Aditya Inc.
Cloud Computing for the Enterprise November 18th, This work is licensed under a Creative Commons.
Cloud Computing. What is Cloud Computing? Cloud computing is a model for enabling convenient, on-demand network access to a shared pool of configurable.
Server to Server Communication Redis as an enabler Orion Free
ON-PREMISES SERVICE PROVIDERMICROSOFT CONSISTENT PLATFORM Modern platform for the world’s apps 1.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 13. Review Shared Data Software Architectures – Black board Style architecture.
Spring RabbitMQ Martin Toshev.
(re)-Architecting cloud applications on the windows Azure platform CLAEYS Kurt Technology Solution Professional Microsoft EMEA.
Cloud Computing from a Developer’s Perspective Shlomo Swidler CTO & Founder mydrifts.com 25 January 2009.
 Cloud Computing technology basics Platform Evolution Advantages  Microsoft Windows Azure technology basics Windows Azure – A Lap around the platform.
AMSA TO 4 Advanced Technology for Sensor Clouds 09 May 2012 Anabas Inc. Indiana University.
Building QXtend / Dell Boomi Based Integration Framework Gary Yang, Roundview Technologies.
Devising your Data Movement Strategy for IoT
CLOUD ARCHITECTURE Many organizations and researchers have defined the architecture for cloud computing. Basically the whole system can be divided into.
Chapter 6: Securing the Cloud
Business Continuity & Disaster Recovery
Messaging Services and Distributed Systems in the Cloud
Smart Building Solution
Introduction to Windows Azure AppFabric
Connected Maintenance Solution
OpenLegacy Training Day Four Introduction to Microservices
N-Tier Architecture.
Distributed Tracing Of Microservices
Smart Building Solution
Connected Maintenance Solution
Part 3 Design What does design mean in different fields?
Enterprise Library Overview
PowerApps and Microsoft Flow for Business Users
Introduction to Microservices Prepared for
Hierarchical Architecture
Amit R Bhatia / Puneeth Nayak
Cloud Computing By P.Mahesh
Emitter: Scalable, fast and secure pub/sub in Go
Cloud Computing.
Reliable Services Jeffrey Richter Microsoft Azure Service Fabric.
SharePoint Cloud hosted Apps
Business Continuity & Disaster Recovery
Amazon AWS Solution Architect Associate Exam Questions PDF associate-dumps.html AWS Solution Training.
Microsoft Build /8/2018 5:15 AM © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY,
Practical Choreography with Spring Cloud
Northbound API Dan Shmidt | January 2017
Ashish Pandit, Louis Zelus, Jonathan Whitman
Enterprise Service Bus (ESB) (Chapter 9)
Ebusiness Infrastructure Platform
INEOGroup presents:.
Building a Database on S3
Near Real Time ETLs with Azure Serverless Architecture
Web Application Architectures
3 Cloud Computing.
Design pattern for cloud Application
Service Oriented Architecture (SOA)
Software models - Software Architecture Design Patterns
An Introduction to Software Architecture
Web Application Server 2001/3/27 Kang, Seungwoo. Web Application Server A class of middleware Speeding application development Strategic platform for.
Cloud Computing: Concepts
Developing for Windows Azure
Introduction to Web Services and SOA
Building global and highly-available services using Windows Azure
Knowledge Byte In this section, you will learn about:
Web Application Architectures
New Tools In Education Minjun Wang
Remedy Integration Strategy Leverage the power of the industry’s leading service management solution via open APIs February 2018.
Microsoft Virtual Academy
Johan Lindberg, inRiver
ONAP Architecture Principle Review
Day 1, Session 4 Building Your Service Catalog
Presentation transcript:

Practical Microservices Jonathan Schabowsky, Sr. Architect, Office of the CTO

What are Microservices? Small in Size, Single in Purpose Communicate using technology-agnostic protocols Independently Deployable Released via Automated Processes

Microservice Architecture Desires Scalable: Horizontal – Services must scale in order to meet demand Dynamic Scaling – Change number of running instances based on actual demand Shock Absorption – Properly deal with irregular bursts of utilization Fault tolerant: In case of failure or exception unit of work should be retried Resilient to unexpected IaaS/DC outages Performant: User experience dictates that applications do not take a long time to return Service execution must not exceed planned processing/response time Manageable: Visibility into application performance and/or bottlenecks Secure: Communications between Services need to be encrypted when using Public Clouds

The Event: Dalmore King Alexander III is Amazing! Wonder if I can buy it in Utah?!

The Problem: Department of Alcohol Control AKA: The State Liquor store WebApps: OnlinePriceList InventoryQuery

OnlinePriceList Data (16,172 Products):

InventoryQuery Data:

The Outcome: Department of Alcohol Control AKA: The State Liquor store WebApps: OnlinePriceList InventoryQuery Wouldn’t it be great if I could: see when it was last in-stock be notified when in-stock

On Premise Environment On Premise Environment amazon web services Elastic Stack Utah Department of Alcohol Control OnlinePriceList InventoryQuery Deployment problem On Premise Environment On Premise Environment

Application Iteration#1: Department of Alcohol Control AKA: The State Liquor store OnlinePriceList InventoryQuery WebApps: AWS Data Lake Elastic Stack http POST http POST UtahDABC-Client SpringRestTemplate Business Logic UtahDABC-Inventory SpringRestTemplate Business Logic Spring RestServices http REST POST http REST POST

Application Iteration#1 Issues: Department of Alcohol Control AKA: The State Liquor store OnlinePriceList InventoryQuery WebApps: Tight Coupling: What if I want those events to also go to ELK? AWS Data Lake Service Discovery: How do I know where ELK is? Elastic Stack The Client’s Processing time is dependent on all downstream services! http POST http POST Tight Coupling: What if Inventory Service is Slow? Or down? UtahDABC-Client SpringRestTemplate Business Logic UtahDABC-Inventory SpringRestTemplate Business Logic Spring RestServices http REST POST http REST POST Performing Query for non Whiskey Products!

Not everything is a Nail When holding Hammer… REST is a Hammer Not everything is a Nail Good for: Synchronous Interactions Externally facing APIs Baggage it brings: Blocking Service Coupling Complex Failure Scenarios – Responsibility

Think Event Driven Microservices have inputs and outputs Inputs and outputs can be “events” So what is an Event? an event is an action or occurrence recognized by software, often originating asynchronously from the external environment, that may be handled by the software Stop thinking about services INVOKING services! Instead our services emit events! What/where do we emit these events to? Messaging (preferability Solace!)

Why Solace? Technical Characteristics http://dev.solace.com/ Open APIs (AMQP1.0, MQTT, REST, JMS) Native APIs (JMS, Java, .NET, Node.js, JS, C#) Extensive Spring Support Native integration to all Clouds, PaaS, IaaS WAN routing & optimization Broad 3rd party app integrations Performance 80K guaranteed msgs/sec P2P >600K guaranteed msgs/sec fanout Scalability 100K IoT connections – can scale to billions Robustness Security Rich Management

Messaging Terminology Topic In Solace, a Topic is a property of a message.” That’s it! It’s just a text string published in the message header It’s completely dynamic Supports hierarchies using the ‘/’ delimiter Supports wildcard subscriptions ‘*” replaces any part or whole level identifier “>” replaces any number of level identifiers Queue Can have topic subscriptions to “attract” messages Exclusivity – Like Dating Exclusive – Only one connection gets all messages Non-Exclusive – Round Robin messages across ALL connections Durability – Will hold messages even if there are no active consumers Enforce TTL – can expire messages

OnlinePriceList Data (16,172 Products): Topic Hierarchy!

Spring MessageListenerContainer The Better Way Demo: Department of Alcohol Control AKA: The State Liquor store OnlinePriceList InventoryQuery WebApps: AWS Data Lake Elastic Stack http REST POST http POST PCF Tile RDP UtahDABC-Inventory SpringJmsTemplate Business Logic Spring MessageListenerContainer UtahDABC-Client http POST Queues: -productQforInventory Topic Sub: product/A/W/> -toELK-Inventory Topic Sub: inventory/> Business Logic JMS – topic: product/X/Y/Z JMS – topic: inventory/X/Y/Z SpringJmsTemplate

Data Flow: Solutions: Elastic Stack Utah Department of Alcohol Control amazon web services Data Flow: Elastic Stack http REST POST JMS JMS Utah Department of Alcohol Control Solutions: Legacy-to-cloud Cloud-to-Cloud PaaS Support Cloud network outbound cost? OnlinePriceList InventoryQuery Deployment problem On Premise Environment On Premise Environment

Utilizing Compression: amazon web services Utilizing Compression: Elastic Stack http REST POST JMS Compression <Bridge> JMS Utah Department of Alcohol Control Reduces Network Cost! (80%+ Savings on Bandwidth Utilization) OnlinePriceList InventoryQuery Deployment problem On Premise Environment On Premise Environment

Event Driven Interaction Considerations Benefits Limited service to service coupling (excludes data level) No impact service upgrades Easy to create new services and fail fast Resilient to service failures Generally more resource efficient Enables fine grained service scaling Challenges: Not as Natural – Many architects and developers think in a “synchronous” way. Design pattern education is required. Correlation – Services must be able to correlate different events since they occur asynchronously