Top Banner
Continuous Delivery in Microservices Environment Ravi Ambati Senior Engineering Manager, Workday
13

API World 2016 presentation

Apr 16, 2017

Download

Software

Ravi Ambati
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: API World 2016 presentation

Continuous Delivery in Microservices

EnvironmentRavi Ambati

Senior Engineering Manager, Workday

Page 2: API World 2016 presentation

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?

Page 3: API World 2016 presentation

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

Page 4: API World 2016 presentation

Continuous Delivery

Check InBuild and Unit test

Integration Test

System Tests

Visual/Perf tests

Stage in QA ( Exploratory testing)

Once approved, deploy to Production

Page 5: API World 2016 presentation

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

Page 6: API World 2016 presentation

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

Page 7: API World 2016 presentation

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

Page 8: API World 2016 presentation

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

Page 9: API World 2016 presentation

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

Page 10: API World 2016 presentation

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

Page 11: API World 2016 presentation

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

Page 12: API World 2016 presentation

When should you start CD?

As soon as you start

Requires extensive automation

Requires DevOps Engineers

Culture - Product managers to support