Contenu connexe Similaire à The Microservices Manifesto: How to Get More Out of the Development Lifecycle (20) The Microservices Manifesto: How to Get More Out of the Development Lifecycle2. Notice
The information and materials included in this presentation (collectively, the
“Materials”) are the confidential and proprietary information of AppDynamics,
Inc. (the “Company”). No part of the Materials may be reproduced,
distributed, communicated or displayed in any form or by any means, or
used to make any derivative work, without prior written permission from the
Company. © 2018 AppDynamics, Inc. All rights reserved.
All third party trademarks, including names, logos and brands, referenced by
the Company in this presentation are property of their respective owners. All
references to third party trademarks are for identification purposes only and
shall be considered nominative fair use under trademark law.
© 2018 Cisco and/or its affiliates. All rights reserved.
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY
AppDynamics is
now part of Cisco.
3. Outline
Our hope is that at the end of this your mind
will be racing with questions and ideas
3
Goals For This Talk
Business Domains
Business Agility
Teams & Organization
Building Services
Health & Monitoring
Questions & Answers
Where Does UI Fit?
Testing & Deployment
Failure as a Service
Microservice Manifesto
@ChaseAucoin
© 2018 Cisco and/or its affiliates. All rights reserved.
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY
AppDynamics is
now part of Cisco.
4. Poll:
Where is your
company with
microservices?
© 2018 Cisco and/or its affiliates. All rights reserved.
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY
AppDynamics is
now part of Cisco.
5. The Microservice
Manifesto
@ChaseAucoin
© 2018 Cisco and/or its affiliates. All rights reserved.
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY
AppDynamics is
now part of Cisco.
5
Goals
Terminology
Why You Might
Why You Might Not
Ideate Faster
Deploy Safer
Scale to Demand
6. Simply put: It’s a self
contained, domain specific,
service
What is a Microservice
© 2018 Cisco and/or its affiliates. All rights reserved.
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY
AppDynamics is
now part of Cisco.
7. The Microservice
Manifesto
@ChaseAucoin
© 2018 Cisco and/or its affiliates. All rights reserved.
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY
AppDynamics is
now part of Cisco.
7
What Is Cloud?
On Demand
Distributed
Horizontal Scale
8. The Microservice
Manifesto
@ChaseAucoin
© 2018 Cisco and/or its affiliates. All rights reserved.
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY
AppDynamics is
now part of Cisco.
8
0
20
40
60
80
100
120
140
COST VS PERVORMANCE – SCALE UP
Series 1 Column1 Column2
9. The Microservice
Manifesto
@ChaseAucoin
© 2018 Cisco and/or its affiliates. All rights reserved.
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY
AppDynamics is
now part of Cisco.
9
0
5
10
15
20
25
COST VS PERVORMANCE – SCALE OUT
Series 1 Series 2 Column1
10. The Microservice
Manifesto
@ChaseAucoin
© 2018 Cisco and/or its affiliates. All rights reserved.
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY
AppDynamics is
now part of Cisco.
1
0
What Is Cloud?
On Demand
Distributed
Horizontal Scale
Built To Fail
Loosely Coupled
Favor Existing Solutions
13. The Microservice
Manifesto
@ChaseAucoin
© 2018 Cisco and/or its affiliates. All rights reserved.
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY
AppDynamics is
now part of Cisco.
Traditional 3-Tier Architecture
Client - Presentation
Service – Business Logic
Data - Database
14. The Microservice
Manifesto
@ChaseAucoin
© 2018 Cisco and/or its affiliates. All rights reserved.
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY
AppDynamics is
now part of Cisco.
Traditional 3-Tier Architecture - Actual
UI & Business Logic
Data & Business Logic
16. The Microservice
Manifesto
@ChaseAucoin
© 2018 Cisco and/or its affiliates. All rights reserved.
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY
AppDynamics is
now part of Cisco.
1
6
Single Deploy
Initial Agility
Broad Changes
Inconsistent State
Testing
Scale
Deployable Service or Data
Feature A
Feature B
Feature C
Feature D
Feature E
Feature F
Advantages ChallengesMonolithic Application
17. The Microservice
Manifesto
@ChaseAucoin
© 2018 Cisco and/or its affiliates. All rights reserved.
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY
AppDynamics is
now part of Cisco.
1
7
“I don’t need to know everything. I just need to know
where to find it when I need it.” Albert Einstein
Microservices
18. The Microservice
Manifesto
@ChaseAucoin
© 2018 Cisco and/or its affiliates. All rights reserved.
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY
AppDynamics is
now part of Cisco.
1
8
Long Term Agility
Testing
Scale
Culture Shift
Large Surface Area
Initial Agility
Advantages Challenges
Deployable Domain
Service A
Data A
Deployable Domain
Service B
Data B
Deployable Domain
Service C
Data C
Deployable Domain
Service D
Data D
Microservice Application
19. The Microservice
Manifesto
@ChaseAucoin
© 2018 Cisco and/or its affiliates. All rights reserved.
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY
AppDynamics is
now part of Cisco.
1
9
Rigid Design
Middlelith
MoneyPit
Flexible Designs
No Single Point Failure
APIs
SOA Microservices
Isn’t This Just SOA?
20. How do we think about
services in relation to the
business?
Business Domains
© 2018 Cisco and/or its affiliates. All rights reserved.
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY
AppDynamics is
now part of Cisco.
21. The Microservice
Manifesto
@ChaseAucoin
© 2018 Cisco and/or its affiliates. All rights reserved.
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY
AppDynamics is
now part of Cisco.
What is a Business Domain?
An area of the business that tends to use similar taxonomy/terminology to
describe a business/technical need or value proposition.
1 Focuses on the management and
information retrieval of Customers
Customers
2 Focuses on the tracking and
management of invoices
Invoices
3 Focuses on the logging of events in
the system
Logging
4 Focuses on the authentication of users
into the system (Identity management)
Authentication
22. The Microservice
Manifesto
@ChaseAucoin
© 2018 Cisco and/or its affiliates. All rights reserved.
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY
AppDynamics is
now part of Cisco.
Why we organize Microservices by domain?
It does a few things for us.
• Enables us to speak in a common language with the
business alleviating miscommunication
• Allows us to create end to end ownership for a team
• The business and engineers work closer allowing for rapid
ideation, validation, and iteration
23. Scaling teams is just as
important as scaling software.
Teams & Organization
© 2018 Cisco and/or its affiliates. All rights reserved.
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY
AppDynamics is
now part of Cisco.
24. The Microservice
Manifesto
@ChaseAucoin
© 2018 Cisco and/or its affiliates. All rights reserved.
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY
AppDynamics is
now part of Cisco.
Conways Law
organizations which design systems ... are constrained to
produce designs which are copies of the communication
structures of these organizations.
“
“
Melvin Edward Conway PhD | Rockwell Semiconductor 1967
Business Team
UI Team
Service Team
Data Team
25. The Microservice
Manifesto
@ChaseAucoin
© 2018 Cisco and/or its affiliates. All rights reserved.
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY
AppDynamics is
now part of Cisco.
Inverse Conways Law
Domain A Team
Domain B Team
Domain C Team
Domain D Team
26. The Microservice
Manifesto
@ChaseAucoin
© 2018 Cisco and/or its affiliates. All rights reserved.
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY
AppDynamics is
now part of Cisco.
2
6
Silo By Role
Limited Scale
Lower Productivity
Cross Functional Teams
Parallelism And Scale
High Productivity
SOA Microservices
Conways Law
27. Beyond Conceptual: how
do we put it together?
Building Services
© 2018 Cisco and/or its affiliates. All rights reserved.
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY
AppDynamics is
now part of Cisco.
29. The Microservice
Manifesto
@ChaseAucoin
© 2018 Cisco and/or its affiliates. All rights reserved.
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY
AppDynamics is
now part of Cisco.
An API gateway serves 2 primary purposes.
Interoperability
Distributed Centralization
30. The Microservice
Manifesto
@ChaseAucoin
© 2018 Cisco and/or its affiliates. All rights reserved.
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY
AppDynamics is
now part of Cisco.
Server
Server
Gateway
Gateway
LoadBalancer
Service A
Service A
Web Client
WPF Client
External Service
Service B
Service B
Protocol
Translation
http
http
34. The Microservice
Manifesto
@ChaseAucoin
© 2018 Cisco and/or its affiliates. All rights reserved.
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY
AppDynamics is
now part of Cisco.
Traditional 3-Tier Architecture
Client - Presentation
Service – Business Logic
Data - Database
35. The Microservice
Manifesto
@ChaseAucoin
© 2018 Cisco and/or its affiliates. All rights reserved.
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY
AppDynamics is
now part of Cisco.
Traditional 3-Tier Architecture - Actual
UI & Business Logic
Data - Database
37. The Microservice
Manifesto
@ChaseAucoin
© 2018 Cisco and/or its affiliates. All rights reserved.
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY
AppDynamics is
now part of Cisco.
Authorization
Authentication
Service Fabric
Application Insights
TFS/ Release Management
Customer Service
[Customer]
Invoice Service
[Invoice]
Product Service
[Product]
SQL Server Mongo/3Rd Party API
SPA Gateway
SPA UI
38. Moving away from rendered views
How Does UI Fit?
© 2018 Cisco and/or its affiliates. All rights reserved.
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY
AppDynamics is
now part of Cisco.
39. The Microservice
Manifesto
@ChaseAucoin
© 2018 Cisco and/or its affiliates. All rights reserved.
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY
AppDynamics is
now part of Cisco.
How do we think differently about UI in this paradigm?
• The UI is just another consumer of services
• The UI should go on a separate cadence as the
services as it will be the slowest to move through the
business process and the least impactful to system
stability
• Favor simple HTML and Javascript modules
40. Best practices to make
launching the most boring
part of the cycle
Testing & Deployment
41. The Microservice
Manifesto
@ChaseAucoin
© 2018 Cisco and/or its affiliates. All rights reserved.
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY
AppDynamics is
now part of Cisco.
What should we keep in mind for testing?
• Automate service testing and make it part of the CI/CD
process
• Keep the testing surface area limited to the domain that is
being published.
• Isolate a domain specific automated integration testing
environment for regression that can be drop and
recreated during the delivery process.
42. The Microservice
Manifesto
@ChaseAucoin
© 2018 Cisco and/or its affiliates. All rights reserved.
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY
AppDynamics is
now part of Cisco.
Containers
• Containers are GREAT for infrastructure/java/linux deploys
• .Net apps benefit less from containers
• Storage mechanisms should be durable and movable in
case of failure. Good choices include vSphere disk
virtualization or Azure File Storage mounted as a drive at
application startup.
43. Poll:
What do you use
for orchestration?
© 2018 Cisco and/or its affiliates. All rights reserved.
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY
AppDynamics is
now part of Cisco.
44. Keeping your system
healthy after launch
Health & Monitoring
© 2018 Cisco and/or its affiliates. All rights reserved.
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY
AppDynamics is
now part of Cisco.
45. The Microservice
Manifesto
@ChaseAucoin
© 2018 Cisco and/or its affiliates. All rights reserved.
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY
AppDynamics is
now part of Cisco.
How do we keep services healthy?
• Leverage tools like AppDynamics, Log4Net, Application
Insights, ELK stack and AppDynamics
• Having a “single pane of glass” greatly increases likelihood
of success
• Remember: Favor Existing Solutions
46. Poll:
What do you use
for monitoring?
© 2018 Cisco and/or its affiliates. All rights reserved.
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY
AppDynamics is
now part of Cisco.
47. Dealing with mission
critical failure before it
ever happens
Failure As A Service
© 2018 Cisco and/or its affiliates. All rights reserved.
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY
AppDynamics is
now part of Cisco.
48. The Microservice
Manifesto
@ChaseAucoin
© 2018 Cisco and/or its affiliates. All rights reserved.
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY
AppDynamics is
now part of Cisco.
What is failure as a service?
• Use tools like Keyhole Trouble Maker or Built in Service
Fabric tools to randomly stop applications in production
• If your apps are able to handle this continual shutting off
of parts of the system you can sleep easy at night knowing
that the system is stable.
Failure As A Service
Dealing with mission critical failure before it happens
58. The Microservice
Manifesto
@ChaseAucoin
© 2018 Cisco and/or its affiliates. All rights reserved.
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY
AppDynamics is
now part of Cisco.
Don’t Have Company Buy-In
to Put in The Time to Set-up
For Success? Don’t do
Microservices.
61. The Microservice
Manifesto
@ChaseAucoin
© 2018 Cisco and/or its affiliates. All rights reserved.
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY
AppDynamics is
now part of Cisco.
Have a Small Team and
Software is Going Out
Smoothly? Perhaps, don’t
do Microservices.
64. The Microservice
Manifesto
@ChaseAucoin
© 2018 Cisco and/or its affiliates. All rights reserved.
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY
AppDynamics is
now part of Cisco.
Only Go As Small As
Required For People Not To
Step On Each Other
68. The Microservice
Manifesto
@ChaseAucoin
© 2018 Cisco and/or its affiliates. All rights reserved.
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY
AppDynamics is
now part of Cisco.
Service Fabric & Kubernetes
are Helpful but Not
Required
70. The Microservice
Manifesto
@ChaseAucoin
© 2018 Cisco and/or its affiliates. All rights reserved.
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY
AppDynamics is
now part of Cisco.
Data Management Requires
Some Thought but is Not
‘Hard’
73. Question & Answers
Email: chase.aucoin@appdynamics.com
Phone: 816-209-0033
Twitter: @ChaseAucoin
Github: github.com/chaseaucoin
LinkedIn: in/chaseaucoin
74. Thank You
© 2018 Cisco and/or its affiliates. All rights reserved.
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY
AppDynamics is
now part of Cisco.