This document discusses an SDLC (Software Development Life Cycle) process for developing microservices. It begins by defining key terms like SDLC, microservices, and APIs. It then outlines a 10-step process for taking a microservice from concept to production, including specifying APIs, prototyping, testing, and reviews. It emphasizes practices like API versioning, testing in production, and treating failures as normal occurrences. The presentation is delivered by David Asher, an experienced software and product manager providing the perspective of developing cloud-based microservices at large companies.
5. Which begs one more question:
What is an API?
API?
Asher – SDLC for Microservices5
6. API is Application Programming Interface
request
responseresponse
API
Asher – SDLC for Microservices6
service with goodies
7. This is a talk about how to build
services in the cloud that are:
• Robust
• Scalable
• Secure
• Delivered on time
• Generally, marvelous
Asher – SDLC for Microservices7
8. Who is your presenter?
• David Asher is…
• Software manager at Bose Corp
• Product manager at Iron Mountain Digital
• Software and product management at
ViziApps, Dialogic, NMS Communications,
Banyan Systems, SystemSoft, …
Asher – SDLC for Microservices8
9. Why is he talking about SDLC for
microservices?
• Wrote SDLC for Bose, Iron Mountain,
NMS Communications
• Team of ~50 developers at Bose
• Built an IoT cloud platform
• For connected audio products
• Millions of them
Asher – SDLC for Microservices9
10. API Formalism
Use an API Description Language
• OpenAPI (Swagger)
• RAML
• json:api
• Apache Avro
Put your API descriptions in a repo
Asher – SDLC for Microservices10
12. 0.0 – API Style Guide
Start your journey by writing a Style Guide
Find examples on the Internet and modify
No, really. DO THIS.
Asher – SDLC for Microservices12
13. 0.1 – Concept
Why? Clarify ideas and align with market requirements
How? Document requirements in your favorite tools
(wiki, Jira, etc.)
Hint: Look at technology options and have the arguments
Hint: Inform developers what the Production Readiness
end-state looks like (emotionally prepare them!)
Asher – SDLC for Microservices13
14. 0.2 – API Specification
Why? Everything follows from the API design.
Get that right and the rest is easier.
How? Use an API Design Language
Asher – SDLC for Microservices14
15. 0.3 – API Operating Model
Why? Validate the API design from a client
perspective; unblock client developers
How? Writing code, might be a lightweight mock
service or prototype.
Asher – SDLC for Microservices15
16. 0.4 – µService Prototype
Why? Enable client teams to validate their code as
early as possible
Why? Enable cloud ops, systems quality, security,
etc. – to plan their support of the new service
Hint: Build an API client reference design
Asher – SDLC for Microservices16
17. 0.5 – µService Alpha/Beta
Why? A service can’t be ready for production if it
hasn’t been thrashed by real users
Hint: Do not declare your API to be “in production”
until you have completed Beta, in other
words, allow things to break
Asher – SDLC for Microservices17
18. 0.9 – System Testing
Why? You just won’t believe all of the things that you
messed up – wrong error codes, huge latencies,
won’t scale, security vulnerabilities, …
Hint: This is where a quality function belongs
Hint: System quality is all of functional correctness +
scalability + robustness + security + proper
logging & alarming, …
Asher – SDLC for Microservices18
19. 1.0 – Production
Why? You’re not done yet! Run books, smoke tests,
health checks, roll-out plan, provisioning,
deprecate old services, …
Hint: “Release” is just an ordinary day in the lifecycle
Asher – SDLC for Microservices19
20. 1.0+ – End-of-Service
Why? The day will come when your service is no
longer needed. So be prepared for it.
Hint: “Release” is just an ordinary day in the lifecycle
Asher – SDLC for Microservices20
21. µServices Artifacts and Reviews
• API Design
Review
• µService
Architecture
Review
• Test Plan
• Ops Plan
• API Spec Review
1.0+
End-of-
Service
1.0
Production
0.9
System
Test
0.5
µService
Alpha/Beta
0.4
µService
Prototype
0.3
API Model
0.2
API Spec
0.1
Concept
• System and
Security Test
• Production
Readiness Review
• Production Review
• Performance Review
Asher – SDLC for Microservices21
• µService
Concept
Document
22. µServices Culture
• Do not version your APIs
• You build it, you own it
• You own it, you own what it costs
• Build test standards, not a QA team
• Test in production
• It will fail, now deal with it
Asher – SDLC for Microservices22
24. Thanks:
http://www.bose.com
https://thenounproject.com/
Icons made by Freepik, Smashicons,
from Flatiron are licensed by
Creative Commons BY 3.0
Asher – SDLC for Microservices24
David Asher
June 2019
dasher@computer.org
https://www.linkedin.com/in/davidasher/
Feedback Survey
http://www.productcampboston.org/2019sessions