More Related Content Similar to Why Microservice (20) Why Microservice 2. 2 © 2015 CA. ALL RIGHTS RESERVED.
Agenda
The trending microservice wave
A closer look at microservice
Successful strategies to develop microservice application
3. 3 © 2015 CA. ALL RIGHTS RESERVED.
What is microservice (MS) ?
MS are small, independent processes that
communicate with each other to form complex
applications which utilize language-agnostic
APIs….
These services are small building blocks,
highly decoupled and focused on doing a
small task…. It is becoming the standard for
building continuously deployed systems.
Source : https://en.wikipedia.org/wiki/Microservices
4. 4 © 2015 CA. ALL RIGHTS RESERVED.
Characteristics of MS
• An approach to developing a single application as a suite of small services.
• Each Service represents a business capability as opposed to a technology.
• Each service runs in its own process with lightweight communication
mechanisms.
• Services are independently deployable and scalable.
• Different services can be written in different languages and managed by
different teams.
5. 5 © 2015 CA. ALL RIGHTS RESERVED.
Microservices Business Value
Portal Framework
BPEL Workflow
Engine
Enterprise Service
Bus
Database
Application Server
Search Checkout Payment
Shipping Pricing Inventory
Promotion
Customer
CategoryPhoto
Social Login
Monolithic Microservice Benefit of MSA
• Speed
• Composability
• Replaceability
• Code stack
independence
• Resilience
• Scale
• Cloud ready
6. 6 © 2015 CA. ALL RIGHTS RESERVED.
New challenges from adopting MS:
Complexity of developing a distributed system.
Multiple DB & transaction management.
Complexity of testing a distributed system.
Complexity of deploying and operating a distributed system.
Developing and deploying features that span multiple service
requires careful coordination.
7. 7 © 2015 CA. ALL RIGHTS RESERVED.
Agenda
The trending Microservice wave
A closer look at microservice
Successful strategies to develop microservice application
8. 8 © 2015 CA. ALL RIGHTS RESERVED.
What do these successful billion dollar companies
(unicorns) have in common?
Source: http://microservices.io/articles/whoisusingmicroservices.html
9. 9 © 2015 CA. ALL RIGHTS RESERVED.
Netflix moved from Monolithic Architecture to MS,
building a set of infrastructure services, then open-sourced as Netflix OSS.
Source: https://netflix.github.io/
Big Data
Common Libraries
Build & Delivery
These Companies are using and contributing to Netflix OSS Components
Data Persistence
Insight, Reliability,
Performance
Security
User Interface
10. 10 © 2015 CA. ALL RIGHTS RESERVED.
Technique used in Netflix
Development: Languages and Container
Operational: Orchestration and Deployment Infrastructure
Datastores
Tooling Configuration Discovery Routing Observability
Asguard
Aminator
(AMI creator)
Eureka Prana
Demoinator
Zuul
Ribbon
Pytheus SALP
Ephemeral
Progress DB
Astyanax Staash Priam
Manual orchestration with Asgard Deployment on AWS or Eucalyptus
Groovy
Source: http://www.virtu-desk.fr/pages/actualite/les-archives/les-infrastructures-convergees/archives-2015/ces-geants-du-web-qui-passent-au-cloud-2-0.html
11. 11 © 2015 CA. ALL RIGHTS RESERVED.
Netflix MS interdependence
Source: https://github.com/adrianco/spigo
Simplified view Actual Reality
2 billion API call per day!
12. 12 © 2015 CA. ALL RIGHTS RESERVED.
Understanding upstream and downstream dependencies
Source: http://techblog.netflix.com/2015/02/a-microscope-on-microservices.html
13. 13 © 2015 CA. ALL RIGHTS RESERVED.
Agenda
What do unicorns have in common?
A closer look at microservice
Successful strategies to develop microservice application
14. 14 © 2015 CA. ALL RIGHTS RESERVED.
Successful strategies to develop microservice application
1. Alignment
between monolithic
& MS projects
2. MS DevTest
3. MS routing &
transformation
4. Massive independent
deployment
5. MS
Management
15. 15 © 2015 CA. ALL RIGHTS RESERVED.
1. Alignment between monolithic & MS projects
Capture relevant team work information via RESTful API.
Possible integration scenario: Resource alignment, Integrated cost
Tracking, Time Sheet Sync; Integrated tracking for
release/iteration/assignment etc.
How to align agile
& hybrid projects
with business
objects?
16. 16 © 2015 CA. ALL RIGHTS RESERVED.
2. Service virtualization enables teams to work
independently
• Different teams responsible for different microservices
• Production application has dynamic interdependencies
• Service virtualization enables teams to work independently
17. 17 © 2015 CA. ALL RIGHTS RESERVED.
2. Service virtualization enables MS testing
independently
Data
Access
Business Logic
Service Interface
Service
Agents
External
Services
Consumer-driven contract testing
Service virtualization can be used so
that services can be tested in isolation
without relying on external services
working correctly at this level.
End-to-end Test
End-to-end testing verifies entire process
flows work correctly, including all service
and database integration. Operations that
touch many services should be most
thoroughly tested earlier with service
virtualization
.
Consumer
SV
SV
18. 18 © 2015 CA. ALL RIGHTS RESERVED.
3. MS routing and transformation
Source: http://microservices.io/patterns/apigateway.html
19. 19 © 2015 CA. ALL RIGHTS RESERVED.
3. MS communication - runtime
Cloud-based Components
On-prem Components
Legacy Data
Assets
Legacy
Application
3rd Party Service
Service
API
3rd Party Data
Collector
Data
API
E
S
B
Service
API
Enterprise Shared
Web Service (JEE)
AWS
Mobile App
Backend (JEE)
Service
API
Data
API
Mgmt
API
Azure
Docker
Net New
Microservice
Service
API
Mgmt
API
Net New
Microservice
Data
API
API Adapter
Data
API
Mobile Apps
Web Apps
Connected Devices Partner
Systems
Mgmt
API
Mgmt
API
Mgmt
API
Mgmt
APIAPI Gateway
20. 20 © 2015 CA. ALL RIGHTS RESERVED.
3. Team Collaboration- runtime
GitHub
Automated Test
Drivers
Virtual Services
AWS
Local Components
IDEs
API Developer
Portal
API SDKs
Microservice
Modeling Tools
API Design Tools
Azure
Pre-Prod
Environments
Production
Environments
SVN
Release
Management
Docker
Mgmt
API
Mgmt
API
Mgmt
API
Mgmt
API
Mgmt
API
Mgmt
API Mgmt
API
Service
Consumer
Developer
Service
Provider
Developer
Cloud-based Components
On-prem Components
21. 21 © 2015 CA. ALL RIGHTS RESERVED.
4. Choosing a MS deployment Strategy
Source: https://www.nginx.com/blog/deploying-microservices/
22. 22 © 2015 CA. ALL RIGHTS RESERVED.
4. Choosing a MS deployment Strategy
Blue-green Deployments
Source: http://blog.christianposta.com/deploy/blue-green-deployments-a-b-testing-and-canary-releases/
A/B Testing
Canary Releases
Around 30 Action for Docker
23. 23 © 2015 CA. ALL RIGHTS RESERVED.
4. Choosing a MS deployment Strategy
e.g. 500 ~ 1000 microservices
Different programming
language
Different teams
Different artifact
Enterprise release calendar provide
better coordination and alignment.
With artifact, config & environment management.
24. 24 © 2015 CA. ALL RIGHTS RESERVED.
5. What changed from a monitoring perspective.
Complexity Is Moved, Not Removed
Monolithic Microservice
Programming
language
Few heterogeneous
Data size Small / Medium / Large Medium / Large
SW Endpoints App/ DB/ OS/ Mange, diversified
HW Infrastructure N-tier heterogeneous
Location Relatively close together Dispersed
25. 25 © 2015 CA. ALL RIGHTS RESERVED.
5. What changed from a monitoring perspective.
Synchronous via HTTP
Asynchronous via Queues/Messages
Solution:
• Provide prospective view for each service
team.
• Self discovery topology view for your services.
• Proactive alerting for overwhelmed services.
• Trace heterogeneous programming language
like Java, PHP or Ruby.
• Trace heterogeneous infrastructures like
Docker.
Challenge:
Tracing a process as it travels
through and touches multiple
services and databases
requires tracking it across all
parts of the system.
26. 26 © 2015 CA. ALL RIGHTS RESERVED.
5. Capability for hybrid cloud monitoring
Network Traffic
Analysis (NFA)
Network Device
Performance
(SNMPC)
Application Response
Times (ADA)
Systems
Performance
and
Application
Health
Cloud
Performance and
Health
Public Cloud
Private Cloud
Software Defined
27. 27 © 2015 CA. ALL RIGHTS RESERVED.
5. Docker Monitoring
28. 28 © 2015 CA. ALL RIGHTS RESERVED.
5. Docker Containers Monitoring
Monitors the performance of
apps deployed in Docker
Containers (agent)
Collects health metrics of
Docker Containers (field pack)
29. 29 © 2015 CA. ALL RIGHTS RESERVED.
5. Cloud Foundry Monitoring
Monitors apps deployed
to CF (agent 9.7/later)
Easily deploy agent using
CF BuildPack
Collects basic perf
metrics from Pivotal CF
(Field Pack)
30. 30 © 2015 CA. ALL RIGHTS RESERVED.
Node.js monitoring
Monitors apps written in node.js Automatically collects deep dive diagnostic
snapshots
Correlates performance to
application tiers
Does not require any modifications to the
Node.js app source code
31. 31 © 2015 CA. ALL RIGHTS RESERVED.
Summary
1. Alignment
between monolithic
& MS projects
2. MS DevTest
3. MS routing &
transformation
4. Massive independent
deployment
5. MS
Management
• Service Virtualization
• Application Test
• API Portal
API Management
Release Automation
Application Performance Monitoring
Unified Infrastructure Management
Mobile Application Analytic
• Clarity PPM
• Agile Central (Rally)