SPRING CLOUD AGIM EMRULI - MIMACOM

Similar documents
Anti-fragile Cloud Architectures. Agim Emruli - mimacom

Microservices mit Java, Spring Boot & Spring Cloud. Eberhard Wolff

What is Spring Cloud

Microservices Implementations not only with Java. Eberhard Wolff Fellow

Four times Microservices: REST, Kubernetes, UI Integration, Async. Eberhard Fellow

Spring Cloud, Spring Boot and Netflix OSS

CADEC 2016 MICROSERVICES AND DOCKER CONTAINERS MAGNUS LARSSON

Cloud Native Architecture 300. Copyright 2014 Pivotal. All rights reserved.

To Microservices and Beyond!

Microservices. Are your Frameworks ready? Martin Eigenbrodt Alexander Heusingfeld

Service Mesh with Istio on Kubernetes. Dmitry Burlea Software FlixCharter

Hands-On: Hystrix. Best practices & pitfalls

MICROSERVICES I PRAKTIKEN från tröga monoliter till en arkitektur för kortare ledtider, högre skalbarhet och ökad feltolerans

SAMPLE CHAPTER. John Carnell MANNING

Ray Tsang Developer Advocate Google Cloud Platform

Amazon Web Services (AWS) Solutions Architect Intermediate Level Course Content

LEAN & MEAN - GO MICROSERVICES WITH DOCKER SWARM AND SPRING CLOUD

Amazon Web Services Training. Training Topics:

Stream and Batch Processing in the Cloud with Data Microservices. Marius Bogoevici and Mark Fisher, Pivotal

PARTLY CLOUDY DESIGN & DEVELOPMENT OF A HYBRID CLOUD SYSTEM

Amazon Web Services (AWS) Training Course Content

Machine Learning meets Databases. Ioannis Papapanagiotou Cloud Database Engineering

Starting the Avalanche:

Upgrading to Spring Boot 2.0

Cloud Native Java with Kubernetes

Developer Experience with. Spencer Gibb, Dave Syer, Spring Cloud

Introduction to cloud computing

Przyspiesz tworzenie aplikacji przy pomocy Openshift Container Platform. Jarosław Stakuń Senior Solution Architect/Red Hat CEE

About Intellipaat. About the Course. Why Take This Course?

Documentation. This PDF was generated for your convenience. For the latest documentation, always see

Microservices stress-free and without increased heart-attack risk

Logging in the age of

AWS Course Syllabus. Linux Fundamentals. Installation and Initialization:

Cloud Computing design patterns blueprints

Java in der Cloud Aktuelle Möglichkeiten und Entwicklungen

AWS London Loft: CloudFormation Workshop

Cloud Computing. Amazon Web Services (AWS)

LEAN & MEAN - GO MICROSERVICES WITH DOCKER SWARM MODE AND SPRING CLOUD

Developing Microsoft Azure Solutions (70-532) Syllabus

Zero to Microservices in 5 minutes using Docker Containers. Mathew Lodge Weaveworks

Amazon Web Services. Block 402, 4 th Floor, Saptagiri Towers, Above Pantaloons, Begumpet Main Road, Hyderabad Telangana India

Developing Microsoft Azure Solutions (70-532) Syllabus

Application Resilience Engineering and Operations at Netflix. Ben Software Engineer on API Platform at Netflix

תוכנית יומית לכנס התכנסות וארוחת בוקר

Configuring the module for advanced queue integration

Eclipse MicroProfile with Thorntail (formerly WildFly Swarm)

Ahead in the Cloud. Matt Wood TECHNOLOGY EVANGELIST

Training on Amazon AWS Cloud Computing. Course Content

Open Cloud Engine - An Open Source Cloud Native Transformer

Continuous Delivery for Cloud Native Applications

LINUX, WINDOWS(MCSE),

Eclipse MicroProfile: Accelerating the adoption of Java Microservices

Cloud Service Engine. Product Description. Issue 01 Date

Exercise for OAuth2 security. Andreas Falk

Single Sign-On for PCF. User's Guide

70-532: Developing Microsoft Azure Solutions

Making Non-Distributed Databases, Distributed. Ioannis Papapanagiotou, PhD Shailesh Birari

IBM Security QRadar Deployment Intelligence app IBM

LENS Server Maintenance Guide JZ 2017/07/28

Integrating Spring Boot with MySQL

Advanced Continuous Delivery Strategies for Containerized Applications Using DC/OS

Lambda Architecture for Batch and Real- Time Processing on AWS with Spark Streaming and Spark SQL. May 2015

Ops for Developers Monitor your Java application with Prometheus

Spring Professional v5.0 Exam

How can you implement this through a script that a scheduling daemon runs daily on the application servers?

How we scaled push messaging for millions of Netflix devices. Susheel Aroskar Cloud Gateway

AWS Well Architected Framework

70-532: Developing Microsoft Azure Solutions

Container 2.0. Container: check! But what about persistent data, big data or fast data?!

hybris-as-a-service A microservices architecture in action

Design Patterns for the Cloud. MCSN - N. Tonellotto - Distributed Enabling Platforms 68

At Course Completion Prepares you as per certification requirements for AWS Developer Associate.

Filters AWS CLI syntax, 43 Get methods, 43 Where-Object command, 43

Introduction to Cloud Computing

Using SQL Server on Amazon Web Services

BARCELONA. 2015, Amazon Web Services, Inc. or its affiliates. All rights reserved

Containers, Serverless and Functions in a nutshell. Eugene Fedorenko

Designing Fault-Tolerant Applications

Reactive Microservices Architecture on AWS

Here comes the. Cloud. But is your architecture ready for

Increase Value from Big Data with Real-Time Data Integration and Streaming Analytics

Introduction to Spring Framework: Hibernate, Web MVC & REST

Wrapp. Powered by AWS EC2 Container Service. Jude D Souza Solutions Wrapp Phone:

IaaS Integration Guide

Reactive Integrations - Caveats and bumps in the road explained

Evolution of an Apache Spark Architecture for Processing Game Data

@unterstein #bedcon. Operating microservices with Apache Mesos and DC/OS

CIS 612 Advanced Topics in Database Big Data Project Lawrence Ni, Priya Patil, James Tench

Enroll Now to Take online Course Contact: Demo video By Chandra sir

Architecting for Greater Security in AWS

Kuber-what?! Learn about Kubernetes

Etlworks Integrator cloud data integration platform

ISTIO 1.0 INTRODUCTION & OVERVIEW OpenShift Commons Briefing Brian redbeard Harrington Product Manager, Istio

Diplomado Certificación

Disclaimer This presentation may contain product features that are currently under development. This overview of new technology represents no commitme

AWS Solution Architect Associate

COMP6511A: Large-Scale Distributed Systems. Windows Azure. Lin Gu. Hong Kong University of Science and Technology Spring, 2014

Amazon Linux: Operating System of the Cloud

Cloud Providers more AWS, Aneka

Migrating to Cassandra in the Cloud, the Netflix Way

Transcription:

SPRING CLOUD AGIM EMRULI - MIMACOM

AGIM EMRULI @AEMRULI AEMRULI AGIM.EMRULI@ MIMACOM.COM

XD BOOT GRAILS CLOUD IO EXECUTION STREAMS, TAPS, JOBS FULL STACK, WEB SERVICE REGISTRY, CIRCUIT BREAKER, METRICS IO COORDINATION BOOTABLE, MINIMAL, OPS-READY INTEGRATION BATCH BIG DATA WEB IO FOUNDATION CHANNELS, FILTERS, ADAPTERS, TRANSFORMERS DATA JOBS, STEPS, READERS, WRITERS RELATIONAL DATA INGESTION, EXPORT, ORCHESTRATION, HADOOP NON-RELATIONAL DATA CONTROLLERS, REST, WEBSOCKET CORE FRAMEWORK SECURITY GROOVY REACTOR

TOOLBOX FOR DISTRIBUTED SYSTEMS

DISTRIBUTED SYSTEM DEPLOYMENTS @GITHUB 175 DEPLOYMENTS / DAY

NETFLIX SERVICE ORIENTED ARCHITECTURE

Config Bus Netflix Starters Spring Cloud AWS SPRING CLOUD INTRODUCTION Connectors CLI Cloud Foundry

Application JNDI Application CONFIGURATION MANAGEMENT MONOLITHIC VS. DISTRIBUTED

Spring Cloud Config GIT Spring Cloud Config Server SVN File

Config Server @Configuration @EnableAutoConfiguration @EnableConfigServer public class ConfigServerApplication { public static void main(string[] args) { SpringApplication.run(ConfigServerApplication.class, args); } }

Application Spring Cloud Config Client Application Spring Cloud Config Client Spring Cloud Config Server Application Spring Cloud Config Client

Bootstrap Application Spring Cloud Config Client @SpringBootApplication public class CustomerApp { public static void main(string[] args) { SpringApplication.run(CustomerApp.class, args); } }

Spring Cloud Bus 02 /bus/refresh Application AMQP Spring Cloud Config Server Application

PATTERNS STABILITY CAPACITY TRANSPARENCY

Hystrix Circuit Breaker Turbine Stream Aggregator Eureka Registry Ribbon Load Balancer Zuul Edge Feign HTTP Communication SPRING CLOUD NETFLIX

Execute Command Queue Pool available Run Fallback HYSTRIX CIRCUIT BREAKER

Thread - 1 Thread - 2 Thread - 3 Thread - 4 Thread - 5 Thread - 6 Thread - 7 Thread - 8 Tomcat Thread Pool X HYSTRIX BULKHEADS

Execute Command Queue Pool available Execute Command Queue Pool available Execute Command Queue Pool available HYSTRIX BULKHEADS

class SearchGateway { } @HystrixCommand(fallbackMethod = "fallback") public List<SearchHit> search(string query) { return ; } public List<SearchHit> fallback() { return Collections.emptyList(); } HYSTRIX EXAMPLE SERVICE CONSUMER

HYSTRIX TRANSPARENCY

@EnableCircuitBreaker @EnableHystrixDashboard public class HystrixApp { public static void main(string[] args) { SpringApplication.run(HystrixApp.class, args); } } HYSTRIX DASHBOARD EXAMPLE

Dashboard Dashboard TURBINE AGGREGATOR

X Eureka EUREKA SERVICE DISCOVERY

@SpringBootApplication @EnableDiscoveryClient public class CustomerApp { public static void main(string[] args) { SpringApplication.run(CustomerApp.class, args); } } spring.application.name=customers EUREKA REGISTRATION EXAMPLE

Application Discovery Client Host Port URI EUREKA REGISTRATION EXAMPLE

Eureka Eureka Load Balacner RIBBON LOAD-BALANCER

@ public class { @Autowired @LoadBalanced RestTemplate resttemplate; public String call() { return resttemplate.getforobject("http://customers/{id}", String.class,"23"); } }

Web Browser Eureka Web Browser Eureka Edge Proxy Load Balacner ZUUL EDGE-SERVICE

@EnableAutoConfiguration @EnableZuulProxy public class SimpleZuulServerApplication { public static void main(string[] args) { SpringApplication.run(SampleZuulProxyApplication.class, args); } } http://localhost:9090/customers http://localhost:9090/stores ZUUL REVERSE PROXY SETUP

Browser Web Server Load Balancer Config Server Customers Stores Discovery Eureka Circuit Breaker Dashboard

SPRING CLOUD AMAZON WEBSERVICES

Instance Meta-data @Component public class ApplicationInfoBean { @Value("${ami-id}") private String amiid; @Value("${hostname}") private String hostname; @Value("${instance-type}") private String instancetype; @Value("${services/domain}") private String servicedomain; }

Amazon RDS Schema Design Query construction / tuning Availability Backup & Recovery Patch Management Storage Upgrades

Amazon RDS @EnableRdsInstance( dbinstanceidentifier = test", password = secret", readreplicasupport = true) public static class AppConfig {}

RDS Instance Support @ public class JdbcPerson implements Person { private final JdbcTemplate jdbctemplate; @Autowired public JdbcPerson(DataSource datasource) { this.jdbctemplate = new JdbcTemplate(dataSource); } @Override @Transactional(readOnly = true) public List<Person> all() { return this.jdbctemplate.query("select * FROM Person, ); } @Override @Transactional public void store(person person) { this.jdbctemplate.update("insert INTO Person ); } }

Amazon SQS HTTP Messaging Only String payload No Transactions Visibility Rules

Message Listeners @Component public class SqsController { @MessageMapping("myQueue") @SendTo("replyQueue") private String receivemessage(messagetoprocess message, @Header( ApproximateFirstReceiveTimestamp ) String timestamp) { return "somereply"; } }

Application Instance Application Instance Application Instance

SNS Controllers @RestController @RequestMapping("/sns/receive") public class SnsEndpointController { @NotificationSubscriptionMapping public void confirmsubscription( NotificationStatus notificationstatus) { notificationstatus.confirmsubscription(); } @NotificationMessageMapping public void receivenotification( @NotificationMessage String message, @NotificationSubject String subject) { } }

Elasticache Application Instance Application Instance Application Instance Application Instance

Caching @ public class Expensive { @Cacheable("CacheCluster") public String calculateexpensivevalue(string key){ return ; } }

{ } "Resources": { "ec2instance": { "Type": "AWS::EC2::Instance", "Properties": { "ImageId": "ami-6a56b81d", "InstanceType": "m1.small", } }, "database": { "Type": "AWS::RDS::DBInstance", "Properties": { "AllocatedStorage": "5", "DBInstanceClass": "db.m1.small", "DBName": "test", } }

Other talks Talk Speaker Time From Zero To Hero with Spring Boot Stéphane Nicoll 11:00 Modern Enterprise Java Architectures with Spring 4.1 Jürgen Höller 12:00 Anatomy of Microservice Landscapes Michael Plöd 17:00 Master Spring Boot auto-configuration Stéphane Nicoll 11:00 Cloud Patterns on AWS Agim Emruli 16:00

Agim Emruli - mimacom @aemruli