SlideShare a Scribd company logo
1 of 39
Download to read offline
Optimizely Agent:
Scale Feature Delivery and
Testing Across Service-
Oriented Architectures
Mike Davis
Sr Staff Engineer
Optimizely
Optimizely Agent: Scale Feature Delivery...
Mike Davis
Sr Staff Engineer
Optimizely
3
Defining "Progressive Delivery"
Progressive Delivery
What
• Blue/Green
• Canarying
• Rollouts
• A/B Testing
Progressive Delivery
What
• Blue/Green
• Canarying
• Rollouts
• A/B Testing
Why
• Mitigate risk
• Minimize blast radius
• Reduce the guesswork
• Ship faster
Progressive Delivery
What
• Blue/Green
• Canarying
• Rollouts
• A/B Testing
Why
• Mitigate risk
• Minimize blast radius
• Reduce the guesswork
• Ship faster
How
• CI/CD
• SOA
• Feature Flags
• Observability
“Our success at Amazon is a
function of how many
experiments we do per year,
per month, per week, per day.”
“Our company culture
encourages experimentation
and free flow of ideas.”
“We use experimentation
and testing to inform as
much of the business as we
can."
Culture of
experimentation
Ship every
11 Seconds
Ship every
22 seconds
Continuous
Code Deploys
Progressive Delivery and Experimentation
Greg Peters / Netflix CPO
Jeff Bezos / Amazon Founder
Larry Page / Google Founder
Ship every
3.5 Seconds
9
Feature Flags with Optimizely Full Stack
Starts with feature flags
Key Feature Flagging Use Cases with Optimizely
Develop features concurrently by implementing
flags set to “off”. Deploy to master at any time
while development is still in on-going.
Trunk-based development
Use a flag to send a small percentage of traffic
to a new build of your application to discovery
any unforeseen issues prior to rolling out to all
users.
Canary Releases
Give business users the power to grant
exclusive access to new features or beta
programs for your best customers or
prospects in a sales cycle.
Beta or Exclusive Access
With feature flags, you can quickly turn off
problem features without rolling back an entire
release.
Kill Switch
Deploy features behind “off” flags, then give
marketers or PMs the ability to turn on the
feature independent of a new deploy.
Dark Launches
Add parameterized variables to feature flags to
update features in real time, without a code
push or app update. Variables can also be
used to A/B test variations of features.
Remote Configuration
Full Stack Architecture Overview
JSON
Datafile
Client SDKs
Server SDKs
Remote
Config
Data
Warehouse
Remotely configure
flags / experiments in Optimizely.
(UI and/or REST API)
Update the JSON datafile
SDKs make decisions locally,
track events asynchronously
for zero latency
Analyze results through
Optimizely and/or exports
and integrations into your
other systems
Optimizely
Event Tracking
Event Tracking
17
Alternative: Build a Service around SDK
18
Alternative: Build a Service around SDK
Drawback: Requires months of engineering time
19
Benefits of Optimizely Agent
20
Faster implementation time vs. building a service
● Get started in minutes
● Reach production scale in days vs.
months
● Customizable and open source
● Cloud native
21
Maintenance and monitoring
100s to 1000s of
SDK instances
1 Service
● Single location for
upgrades
● Fits microservices pattern
● Built-in admin API to track
health, application
performance
22
Governance and Onboarding
Team A Team B Team C
Optimizely Agent
23
Security
● One implementation for
security review
● Decreased network surface
area with less external network
requests
● Predictable outbound requests
24
Explore Optimizely Agent APIs
25
Agent APIs
CLIENT APIs
● POST /v1/activate
● POST /v1/track
● GET /v1/config
● POST /v1/override
ADMIN APIs
● GET /health
● GET /metrics
● GET /info
● POST /webhooks/
26
Activate API
POST /v1/activate
Activate iterates over all qualifying features and
experiments and returns decisions for the given user.
Activate returns variables where applicable.
REQUEST BODY
● userId — string
● userAttributes — object
QUERY PARAMETERS
● featureKey — Array of strings
● experimentKey — Array of strings
● disableTracking — boolean
● type — enum array (“feature”, “experiment”)
● enabled — boolean
Example Request
{
"userId": "string",
"userAttributes": {
"country": "string",
"customer": false
}
}
Example Response
[
{
"featureKey": "string",
"experimentKey": "string",
"variationKey": "string",
"type": "feature",
"enabled": true,
"variables": {
"property1": "string",
"property2": "string"
}
}
]
27
Track API
POST /v1/track
Example Request
{
"userId": "string",
"userAttributes": {
"country": "string",
"customer": false
}
"eventTags": {
"revenue": int,
"product": "string"
}
}
Example Response
{
"userId": "string",
"eventKey": "string"
}
Track sends event and user details to Optimizely’s
analytics backend for experiment analysis.
REQUEST BODY
● userId — string
● userAttributes — object
● eventTags — object
QUERY PARAMETERS
● eventKey (required) — string
28
Config API
GET /v1/config
The config API allows you to access
the contents of your datafile — the
experiments and features required by
your application.
Example Response
{
"revision": "string",
"experimentMap": {
"experiment-key1": {
"id": 0,
"key": "string",
"variationsMap": {...}
},
"experiment-key2": {
"id": 0,
"key": "string",
"variationsMap": {...}
}
},
"featureMap": {
"feature-key1": {
"id": 0,
"key": "string",
"variablesMap": {...},
"experimentsMap": {...}
},
"feature-key2": {
"id": 0,
"key": "string",
"variablesMap": {...},
"experimentsMap": {...}
}
}
}
29
Override API
POST /v1/override
Override an experiment or feature test decision. The
override is stored in local memory. Should be used
debugging and testing purposes. Should not be
used for production overrides.
REQUEST BODY
● userId — string
● experimentKey — string
● variationKey — string
Example Request
{
"userId": "string",
"experimentKey": "string",
"variationKey": "string"
}
Example Request
{
"userId": "string",
"experimentKey": "string",
"variationKey": "string",
"prevVariationKey": "string"
}
30
Built for Enterprise Scale
● Native OAuth2 support
● Optional TLS encryption
● Network isolation between client and
admin APIs
● Support for multiple environments
● Open source software
31
Optimizely Dogfooding Case Study:
The Results Page
33
Optimizely Results API: SDK Implementation
= 70 servers
34
Optimizely Results API: SDK Implementation
= 700 SDK Instances
36
Agent and the Optimizely Results API
How it’s deployed:
● AWS Fargate
● 6 vCPUs
● 12GB RAM
What it’s doing:
● >700 clients
● 2.5K requests per second
● P95 latency* ~1ms per request
*All performance data depends on the connection speed, network, device, web page, and many other factors; actual results will vary.
38
39
40
How to get started with Agent
41
Deployment Options
Deploy as a container Compile from source
> make run
42
Recap on Optimizely Agent
1. Faster implementation in service-oriented architectures
2. Easier to maintain, monitor, and upgrade
3. Better governance and easy onboarding
4. Centralized networking and security best practices
Thank you!
Join us on
Slack for Q&A
optimize.ly/dev-community

More Related Content

What's hot

What's hot (20)

Evolving Experimentation from CRO to Product Development
Evolving Experimentation from CRO to Product DevelopmentEvolving Experimentation from CRO to Product Development
Evolving Experimentation from CRO to Product Development
 
Opticon 2017 Decisions at Scale
Opticon 2017 Decisions at ScaleOpticon 2017 Decisions at Scale
Opticon 2017 Decisions at Scale
 
[Webinar] Innovate Faster by Adopting The Modern Growth Stack
[Webinar] Innovate Faster by Adopting The Modern Growth Stack[Webinar] Innovate Faster by Adopting The Modern Growth Stack
[Webinar] Innovate Faster by Adopting The Modern Growth Stack
 
Optimizely's Vision for Product Development Teams
Optimizely's Vision for Product Development TeamsOptimizely's Vision for Product Development Teams
Optimizely's Vision for Product Development Teams
 
Opticon 2017 How Developers Can Take Experimentation
Opticon 2017 How Developers Can Take ExperimentationOpticon 2017 How Developers Can Take Experimentation
Opticon 2017 How Developers Can Take Experimentation
 
Ahead of the Curve: How 23andMe Improved UX with Performance Edge
Ahead of the Curve: How 23andMe Improved UX with Performance EdgeAhead of the Curve: How 23andMe Improved UX with Performance Edge
Ahead of the Curve: How 23andMe Improved UX with Performance Edge
 
[Webinar] How Vivid Seats Ensures Experimentation Success
[Webinar] How Vivid Seats Ensures Experimentation Success [Webinar] How Vivid Seats Ensures Experimentation Success
[Webinar] How Vivid Seats Ensures Experimentation Success
 
How FOX Tests Everything from Mobile, Web, to Living Room Devices
How FOX Tests Everything from Mobile, Web, to Living Room DevicesHow FOX Tests Everything from Mobile, Web, to Living Room Devices
How FOX Tests Everything from Mobile, Web, to Living Room Devices
 
Making the Switch from HP Quality Center to qTest
Making the Switch from HP Quality Center to qTestMaking the Switch from HP Quality Center to qTest
Making the Switch from HP Quality Center to qTest
 
Take Your Experimentation Program to the Next Level
Take Your Experimentation Program to the Next LevelTake Your Experimentation Program to the Next Level
Take Your Experimentation Program to the Next Level
 
[Webinar] Visa's Journey to a Culture of Experimentation
[Webinar] Visa's Journey to a Culture of Experimentation[Webinar] Visa's Journey to a Culture of Experimentation
[Webinar] Visa's Journey to a Culture of Experimentation
 
Streamlining Automation Scripts and Test Data Management
Streamlining Automation Scripts and Test Data ManagementStreamlining Automation Scripts and Test Data Management
Streamlining Automation Scripts and Test Data Management
 
Delivering Excellent Digital Quality to Your Customers
Delivering Excellent Digital Quality to Your CustomersDelivering Excellent Digital Quality to Your Customers
Delivering Excellent Digital Quality to Your Customers
 
Tackling Strategic Engineering Challenges
Tackling Strategic Engineering ChallengesTackling Strategic Engineering Challenges
Tackling Strategic Engineering Challenges
 
Kick-Starting BDD for Your Organization
Kick-Starting BDD for Your OrganizationKick-Starting BDD for Your Organization
Kick-Starting BDD for Your Organization
 
Evolve or Die: Healthcare IT Testing | QASymphony Webinar
Evolve or Die: Healthcare IT Testing | QASymphony WebinarEvolve or Die: Healthcare IT Testing | QASymphony Webinar
Evolve or Die: Healthcare IT Testing | QASymphony Webinar
 
Mobile DevOps: Rapid Response to Feedback and continuous delivery in a mobile...
Mobile DevOps: Rapid Response to Feedback and continuous delivery in a mobile...Mobile DevOps: Rapid Response to Feedback and continuous delivery in a mobile...
Mobile DevOps: Rapid Response to Feedback and continuous delivery in a mobile...
 
DOES15 - Marc Hornbeek - Best Practices for Accelerating Continuous Testing
DOES15 - Marc Hornbeek - Best Practices for Accelerating Continuous TestingDOES15 - Marc Hornbeek - Best Practices for Accelerating Continuous Testing
DOES15 - Marc Hornbeek - Best Practices for Accelerating Continuous Testing
 
Thinking Beyond HPQC ALM
Thinking Beyond HPQC ALMThinking Beyond HPQC ALM
Thinking Beyond HPQC ALM
 
Weber’s Journey: How a Top Grill Maker Serves Up Connected Cooking
Weber’s Journey: How a Top Grill Maker Serves Up Connected CookingWeber’s Journey: How a Top Grill Maker Serves Up Connected Cooking
Weber’s Journey: How a Top Grill Maker Serves Up Connected Cooking
 

Similar to Optimizely Agent: Scaling Resilient Feature Delivery

An Architecture for Agile Machine Learning in Real-Time Applications
An Architecture for Agile Machine Learning in Real-Time ApplicationsAn Architecture for Agile Machine Learning in Real-Time Applications
An Architecture for Agile Machine Learning in Real-Time Applications
Johann Schleier-Smith
 
AWS re:Invent 2016: Effective Application Data Analytics for Modern Applicati...
AWS re:Invent 2016: Effective Application Data Analytics for Modern Applicati...AWS re:Invent 2016: Effective Application Data Analytics for Modern Applicati...
AWS re:Invent 2016: Effective Application Data Analytics for Modern Applicati...
Amazon Web Services
 
Monitoring AI with AI
Monitoring AI with AIMonitoring AI with AI
Monitoring AI with AI
Stepan Pushkarev
 

Similar to Optimizely Agent: Scaling Resilient Feature Delivery (20)

Failure is an Option: Scaling Resilient Feature Delivery
Failure is an Option: Scaling Resilient Feature DeliveryFailure is an Option: Scaling Resilient Feature Delivery
Failure is an Option: Scaling Resilient Feature Delivery
 
Large scale data capture and experimentation platform at Grab
Large scale data capture and experimentation platform at GrabLarge scale data capture and experimentation platform at Grab
Large scale data capture and experimentation platform at Grab
 
An Architecture for Agile Machine Learning in Real-Time Applications
An Architecture for Agile Machine Learning in Real-Time ApplicationsAn Architecture for Agile Machine Learning in Real-Time Applications
An Architecture for Agile Machine Learning in Real-Time Applications
 
DevOps in the Cloud with Microsoft Azure
DevOps in the Cloud with Microsoft AzureDevOps in the Cloud with Microsoft Azure
DevOps in the Cloud with Microsoft Azure
 
AWS re:Invent 2016: Effective Application Data Analytics for Modern Applicati...
AWS re:Invent 2016: Effective Application Data Analytics for Modern Applicati...AWS re:Invent 2016: Effective Application Data Analytics for Modern Applicati...
AWS re:Invent 2016: Effective Application Data Analytics for Modern Applicati...
 
2014 DATA @ NFLX (Tableau Customer Conference)
2014 DATA @ NFLX (Tableau Customer Conference)2014 DATA @ NFLX (Tableau Customer Conference)
2014 DATA @ NFLX (Tableau Customer Conference)
 
DevOps Powered by Splunk
DevOps Powered by SplunkDevOps Powered by Splunk
DevOps Powered by Splunk
 
AWS Summit Auckland - Introducing Well-Architected for Developers
AWS Summit Auckland  - Introducing Well-Architected for DevelopersAWS Summit Auckland  - Introducing Well-Architected for Developers
AWS Summit Auckland - Introducing Well-Architected for Developers
 
Modernizing Testing as Apps Re-Architect
Modernizing Testing as Apps Re-ArchitectModernizing Testing as Apps Re-Architect
Modernizing Testing as Apps Re-Architect
 
How To Build, Integrate, and Deploy Real-Time Streaming Pipelines On Kubernetes
How To Build, Integrate, and Deploy Real-Time Streaming Pipelines On KubernetesHow To Build, Integrate, and Deploy Real-Time Streaming Pipelines On Kubernetes
How To Build, Integrate, and Deploy Real-Time Streaming Pipelines On Kubernetes
 
Scaling Experimentation & Data Capture at Grab
Scaling Experimentation & Data Capture at GrabScaling Experimentation & Data Capture at Grab
Scaling Experimentation & Data Capture at Grab
 
Monitoring AI with AI
Monitoring AI with AIMonitoring AI with AI
Monitoring AI with AI
 
Data Summer Conf 2018, “Monitoring AI with AI (RUS)” — Stepan Pushkarev, CTO ...
Data Summer Conf 2018, “Monitoring AI with AI (RUS)” — Stepan Pushkarev, CTO ...Data Summer Conf 2018, “Monitoring AI with AI (RUS)” — Stepan Pushkarev, CTO ...
Data Summer Conf 2018, “Monitoring AI with AI (RUS)” — Stepan Pushkarev, CTO ...
 
CI/CD and TDD in deploying kamailio
CI/CD and TDD in deploying kamailioCI/CD and TDD in deploying kamailio
CI/CD and TDD in deploying kamailio
 
DATA @ NFLX (Tableau Conference 2014 Presentation)
DATA @ NFLX (Tableau Conference 2014 Presentation)DATA @ NFLX (Tableau Conference 2014 Presentation)
DATA @ NFLX (Tableau Conference 2014 Presentation)
 
The Quest for Continuous Delivery at Pluralsight
The Quest for Continuous Delivery at PluralsightThe Quest for Continuous Delivery at Pluralsight
The Quest for Continuous Delivery at Pluralsight
 
Jonathon Wright - Intelligent Performance Cognitive Learning (AIOps)
Jonathon Wright - Intelligent Performance Cognitive Learning (AIOps)Jonathon Wright - Intelligent Performance Cognitive Learning (AIOps)
Jonathon Wright - Intelligent Performance Cognitive Learning (AIOps)
 
Useful practices of creation automatic tests by using cucumber jvm
Useful practices of creation automatic tests by using cucumber jvmUseful practices of creation automatic tests by using cucumber jvm
Useful practices of creation automatic tests by using cucumber jvm
 
Fostering Long-Term Test Automation Success
Fostering Long-Term Test Automation SuccessFostering Long-Term Test Automation Success
Fostering Long-Term Test Automation Success
 
Splunk Ninjas: New Features, Pivot, and Search Dojo
Splunk Ninjas: New Features, Pivot, and Search DojoSplunk Ninjas: New Features, Pivot, and Search Dojo
Splunk Ninjas: New Features, Pivot, and Search Dojo
 

More from Optimizely

More from Optimizely (20)

Clover Rings Up Digital Growth to Drive Experimentation
Clover Rings Up Digital Growth to Drive ExperimentationClover Rings Up Digital Growth to Drive Experimentation
Clover Rings Up Digital Growth to Drive Experimentation
 
Make Every Touchpoint Count: How to Drive Revenue in an Increasingly Online W...
Make Every Touchpoint Count: How to Drive Revenue in an Increasingly Online W...Make Every Touchpoint Count: How to Drive Revenue in an Increasingly Online W...
Make Every Touchpoint Count: How to Drive Revenue in an Increasingly Online W...
 
The Science of Getting Testing Right
The Science of Getting Testing RightThe Science of Getting Testing Right
The Science of Getting Testing Right
 
Autotrader Case Study: Migrating from Home-Grown Testing to Best-in-Class Too...
Autotrader Case Study: Migrating from Home-Grown Testing to Best-in-Class Too...Autotrader Case Study: Migrating from Home-Grown Testing to Best-in-Class Too...
Autotrader Case Study: Migrating from Home-Grown Testing to Best-in-Class Too...
 
Zillow + Optimizely: Building the Bridge to $20 Billion Revenue
Zillow + Optimizely: Building the Bridge to $20 Billion RevenueZillow + Optimizely: Building the Bridge to $20 Billion Revenue
Zillow + Optimizely: Building the Bridge to $20 Billion Revenue
 
Empowering Agents to Provide Service from Anywhere: Contact Centers in the Ti...
Empowering Agents to Provide Service from Anywhere: Contact Centers in the Ti...Empowering Agents to Provide Service from Anywhere: Contact Centers in the Ti...
Empowering Agents to Provide Service from Anywhere: Contact Centers in the Ti...
 
Experimentation Everywhere: Create Exceptional Online Shopping Experiences an...
Experimentation Everywhere: Create Exceptional Online Shopping Experiences an...Experimentation Everywhere: Create Exceptional Online Shopping Experiences an...
Experimentation Everywhere: Create Exceptional Online Shopping Experiences an...
 
Building an Experiment Pipeline for GitHub’s New Free Team Offering
Building an Experiment Pipeline for GitHub’s New Free Team OfferingBuilding an Experiment Pipeline for GitHub’s New Free Team Offering
Building an Experiment Pipeline for GitHub’s New Free Team Offering
 
Making Your Hypothesis Work Harder to Inform Future Product Strategy
Making Your Hypothesis Work Harder to Inform Future Product StrategyMaking Your Hypothesis Work Harder to Inform Future Product Strategy
Making Your Hypothesis Work Harder to Inform Future Product Strategy
 
Kick Your Assumptions: How Scholl's Test-Everything Culture Drives Revenue
Kick Your Assumptions: How Scholl's Test-Everything Culture Drives RevenueKick Your Assumptions: How Scholl's Test-Everything Culture Drives Revenue
Kick Your Assumptions: How Scholl's Test-Everything Culture Drives Revenue
 
Experimentation through Clients' Eyes
Experimentation through Clients' EyesExperimentation through Clients' Eyes
Experimentation through Clients' Eyes
 
Practical Use Case: How Dosh Uses Feature Experiments To Accelerate Mobile De...
Practical Use Case: How Dosh Uses Feature Experiments To Accelerate Mobile De...Practical Use Case: How Dosh Uses Feature Experiments To Accelerate Mobile De...
Practical Use Case: How Dosh Uses Feature Experiments To Accelerate Mobile De...
 
Run High Impact Experimentation with High-quality Customer Discovery
Run High Impact Experimentation with High-quality Customer DiscoveryRun High Impact Experimentation with High-quality Customer Discovery
Run High Impact Experimentation with High-quality Customer Discovery
 
Using Empathy to Build Custom Solutions at Scale
Using Empathy to Build Custom Solutions at ScaleUsing Empathy to Build Custom Solutions at Scale
Using Empathy to Build Custom Solutions at Scale
 
How to find data insights that will drive a 10X impact
How to find data insights that will drive a 10X impact How to find data insights that will drive a 10X impact
How to find data insights that will drive a 10X impact
 
Targeted Rollouts: How to Release Features to Multiple Audiences
Targeted Rollouts: How to Release Features to Multiple AudiencesTargeted Rollouts: How to Release Features to Multiple Audiences
Targeted Rollouts: How to Release Features to Multiple Audiences
 
Deploying Fearlessly in a Continuous World
Deploying Fearlessly in a Continuous WorldDeploying Fearlessly in a Continuous World
Deploying Fearlessly in a Continuous World
 
Detecting incorrectly implemented experiments
Detecting incorrectly implemented experimentsDetecting incorrectly implemented experiments
Detecting incorrectly implemented experiments
 
Move Fast in the Age of Uncertainty
Move Fast in the Age of UncertaintyMove Fast in the Age of Uncertainty
Move Fast in the Age of Uncertainty
 
The Future of Building Good Products: Progressive Delivery and Experimentation
The Future of Building Good Products: Progressive Delivery and ExperimentationThe Future of Building Good Products: Progressive Delivery and Experimentation
The Future of Building Good Products: Progressive Delivery and Experimentation
 

Recently uploaded

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Recently uploaded (20)

DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 

Optimizely Agent: Scaling Resilient Feature Delivery

  • 1. Optimizely Agent: Scale Feature Delivery and Testing Across Service- Oriented Architectures Mike Davis Sr Staff Engineer Optimizely
  • 2. Optimizely Agent: Scale Feature Delivery... Mike Davis Sr Staff Engineer Optimizely
  • 4. Progressive Delivery What • Blue/Green • Canarying • Rollouts • A/B Testing
  • 5. Progressive Delivery What • Blue/Green • Canarying • Rollouts • A/B Testing Why • Mitigate risk • Minimize blast radius • Reduce the guesswork • Ship faster
  • 6. Progressive Delivery What • Blue/Green • Canarying • Rollouts • A/B Testing Why • Mitigate risk • Minimize blast radius • Reduce the guesswork • Ship faster How • CI/CD • SOA • Feature Flags • Observability
  • 7.
  • 8. “Our success at Amazon is a function of how many experiments we do per year, per month, per week, per day.” “Our company culture encourages experimentation and free flow of ideas.” “We use experimentation and testing to inform as much of the business as we can." Culture of experimentation Ship every 11 Seconds Ship every 22 seconds Continuous Code Deploys Progressive Delivery and Experimentation Greg Peters / Netflix CPO Jeff Bezos / Amazon Founder Larry Page / Google Founder Ship every 3.5 Seconds
  • 9. 9 Feature Flags with Optimizely Full Stack
  • 11. Key Feature Flagging Use Cases with Optimizely Develop features concurrently by implementing flags set to “off”. Deploy to master at any time while development is still in on-going. Trunk-based development Use a flag to send a small percentage of traffic to a new build of your application to discovery any unforeseen issues prior to rolling out to all users. Canary Releases Give business users the power to grant exclusive access to new features or beta programs for your best customers or prospects in a sales cycle. Beta or Exclusive Access With feature flags, you can quickly turn off problem features without rolling back an entire release. Kill Switch Deploy features behind “off” flags, then give marketers or PMs the ability to turn on the feature independent of a new deploy. Dark Launches Add parameterized variables to feature flags to update features in real time, without a code push or app update. Variables can also be used to A/B test variations of features. Remote Configuration
  • 12. Full Stack Architecture Overview JSON Datafile Client SDKs Server SDKs Remote Config Data Warehouse Remotely configure flags / experiments in Optimizely. (UI and/or REST API) Update the JSON datafile SDKs make decisions locally, track events asynchronously for zero latency Analyze results through Optimizely and/or exports and integrations into your other systems Optimizely Event Tracking Event Tracking
  • 13.
  • 14.
  • 15. 17 Alternative: Build a Service around SDK
  • 16. 18 Alternative: Build a Service around SDK Drawback: Requires months of engineering time
  • 18. 20 Faster implementation time vs. building a service ● Get started in minutes ● Reach production scale in days vs. months ● Customizable and open source ● Cloud native
  • 19. 21 Maintenance and monitoring 100s to 1000s of SDK instances 1 Service ● Single location for upgrades ● Fits microservices pattern ● Built-in admin API to track health, application performance
  • 20. 22 Governance and Onboarding Team A Team B Team C Optimizely Agent
  • 21. 23 Security ● One implementation for security review ● Decreased network surface area with less external network requests ● Predictable outbound requests
  • 23. 25 Agent APIs CLIENT APIs ● POST /v1/activate ● POST /v1/track ● GET /v1/config ● POST /v1/override ADMIN APIs ● GET /health ● GET /metrics ● GET /info ● POST /webhooks/
  • 24. 26 Activate API POST /v1/activate Activate iterates over all qualifying features and experiments and returns decisions for the given user. Activate returns variables where applicable. REQUEST BODY ● userId — string ● userAttributes — object QUERY PARAMETERS ● featureKey — Array of strings ● experimentKey — Array of strings ● disableTracking — boolean ● type — enum array (“feature”, “experiment”) ● enabled — boolean Example Request { "userId": "string", "userAttributes": { "country": "string", "customer": false } } Example Response [ { "featureKey": "string", "experimentKey": "string", "variationKey": "string", "type": "feature", "enabled": true, "variables": { "property1": "string", "property2": "string" } } ]
  • 25. 27 Track API POST /v1/track Example Request { "userId": "string", "userAttributes": { "country": "string", "customer": false } "eventTags": { "revenue": int, "product": "string" } } Example Response { "userId": "string", "eventKey": "string" } Track sends event and user details to Optimizely’s analytics backend for experiment analysis. REQUEST BODY ● userId — string ● userAttributes — object ● eventTags — object QUERY PARAMETERS ● eventKey (required) — string
  • 26. 28 Config API GET /v1/config The config API allows you to access the contents of your datafile — the experiments and features required by your application. Example Response { "revision": "string", "experimentMap": { "experiment-key1": { "id": 0, "key": "string", "variationsMap": {...} }, "experiment-key2": { "id": 0, "key": "string", "variationsMap": {...} } }, "featureMap": { "feature-key1": { "id": 0, "key": "string", "variablesMap": {...}, "experimentsMap": {...} }, "feature-key2": { "id": 0, "key": "string", "variablesMap": {...}, "experimentsMap": {...} } } }
  • 27. 29 Override API POST /v1/override Override an experiment or feature test decision. The override is stored in local memory. Should be used debugging and testing purposes. Should not be used for production overrides. REQUEST BODY ● userId — string ● experimentKey — string ● variationKey — string Example Request { "userId": "string", "experimentKey": "string", "variationKey": "string" } Example Request { "userId": "string", "experimentKey": "string", "variationKey": "string", "prevVariationKey": "string" }
  • 28. 30 Built for Enterprise Scale ● Native OAuth2 support ● Optional TLS encryption ● Network isolation between client and admin APIs ● Support for multiple environments ● Open source software
  • 29. 31 Optimizely Dogfooding Case Study: The Results Page
  • 30.
  • 31. 33 Optimizely Results API: SDK Implementation = 70 servers
  • 32. 34 Optimizely Results API: SDK Implementation = 700 SDK Instances
  • 33. 36 Agent and the Optimizely Results API How it’s deployed: ● AWS Fargate ● 6 vCPUs ● 12GB RAM What it’s doing: ● >700 clients ● 2.5K requests per second ● P95 latency* ~1ms per request *All performance data depends on the connection speed, network, device, web page, and many other factors; actual results will vary.
  • 34. 38
  • 35. 39
  • 36. 40 How to get started with Agent
  • 37. 41 Deployment Options Deploy as a container Compile from source > make run
  • 38. 42 Recap on Optimizely Agent 1. Faster implementation in service-oriented architectures 2. Easier to maintain, monitor, and upgrade 3. Better governance and easy onboarding 4. Centralized networking and security best practices
  • 39. Thank you! Join us on Slack for Q&A optimize.ly/dev-community