API World 2016 presentation
-
Upload
ravi-ambati -
Category
Software
-
view
57 -
download
0
Transcript of API World 2016 presentation
Continuous Delivery in Microservices
EnvironmentRavi Ambati
Senior Engineering Manager, Workday
Agenda
1.Continuous delivery overview
2.Microservices overview
3.Artifact Types
4.Best practices with JAR artifact
5.Best Practices with Services
6.When should you start?
Continuous Delivery
What is it?
Capability to deploy any commit into production
Advantages:
1. Time to market
2. Reduced risk
3. More automation
4. Team productivity
5. Customer value
6. Agile development/planning
Continuous Delivery
Check InBuild and Unit test
Integration Test
System Tests
Visual/Perf tests
Stage in QA ( Exploratory testing)
Once approved, deploy to Production
Code-only pipeline without any infrastructure automation
Code-only pipeline + On Demand infrastructure pipeline
Code + infrastructure automation Acquire VMs -> Configure -> Code pipeline -> Release
Image as a service
Docker containers
Continuous Delivery
Microservices overview
1.Well, smaller and independent services, product-based ( !Nano)
2.Meaningful functionality
3.Own lifecycle (Build, Test and Run)
4.Provides abstraction
5.Helps scale organization
1.Artifacts that run in your service like client libraries, JARsa. Utilities/helpers
b. Service client libraries
2.Servicesa. Independent run time services
b. Runs on a web/app container
Artifact Types
Best practices - Client Libraries (JAR files)
Semantic versioning major.minor.patch
Backward compatibility
Publishes source jars to help in debugging
Publish release notes along with artifact/accessible location
Migration documentation for major version changes
At last, Communication about new release
MS1 MS2 MS3
MS4 MS5 MS6
Your Product Runtime in an Environment
● Imagine this kind of product with microservices
● Work with each other● Brings up shared services
like service discovery, standardized logging/monitoring/alerting service
● Health API
Best practices - Services
1.Versioning to allow all consumers some flexibilitya. Backward compatibility
b. If breaking change, use consumer based switches to serve both old/new
2.Edge/Interface testing with other service dependenciesa. Test Service contract against service sandbox in your pipeline
3.Automation across all layersa. Testing ( functional, performance, visual)
b. Configuration management
c. Application deployment
d. Log monitoring
Best practices - Services - Contd
●Feature togglesa. By Feature
b. By Environment
c. By Customer
●Environment uniformitya. Number of servers, spec should be representative
b. No surprises in production
When should you start CD?
As soon as you start
Requires extensive automation
Requires DevOps Engineers
Culture - Product managers to support