SlideShare une entreprise Scribd logo
1  sur  53
Télécharger pour lire hors ligne
© 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Lucy Chang
Sr. Software Engineer in Quality, Intuit
CI/CD with Mocking &
Resiliency Testing Using AWS
Alfred Tan
Sr. DevOps Manager, Intuit
Session Overview
• CI/CD and AWS onboarding
• Cross team AWS strategy alignment
• Automating AWS deployment
• Development work is blocked by dependency
• Integration tests fails due to unreliable dependency
• Need to do resiliency testing
CI/CD in AWS
Our Challenges
• Security requirements
• Onboarding into CI/CD
• Highly Available
Our Solution - Slingshot
• Build security in
• Automate onboarding to CI/CD
• Build HA/DR in
CI/CD Pipeline
Continuous Integration
Continuous Delivery/Deployment Pipeline
Promotion Criteria:
• Build pass: 100%
• Unit Test pass: 100%
• Code Coverage: >80%
Build
Promotion Criteria:
• BAT pass: 100%
CI
Promotion Criteria:
• Regression Test
pass: 100%
QA
Promotion Criteria:
• E2E Test pass:
100%
Test Run:
• E2E Test
• Performance Test
E2E/Perf
Test Run:
• Smoke Test pass: 100%
Prod
Slingshot Setup
Initial Setup
GitHub Repo
CI/CD Pipeline
KMS/SSH keys
S3 Buckets
Egress Proxy and Bastion Host
Splunk Forwarder
AWS Account Setup
AWS Account
VPC, Subnets, Routing tables, Route 53 Zone Delegation
One time events
Slingshot Initial Setup
Region US-WEST-2
Bucket for Artifacts KMS Key for SecretsKMS Key for EBSBucket for Secrets
Internet
Gateway
Bastion
ASG
Splunk
Forwarder
Egress
ASG
Public Bastion Subnets Public Egress Subnets
Private DB Subnets
Private APP Subnets
Public ELB Subnets
Private WEB Subnets
Delegated DNS Zones
Slingshot Setup
Initial Setup
GitHub Repo
CI/CD Pipeline
KMS/SSH keys
S3 Buckets
Egress Proxy and Bastion Host
Splunk Forwarder
CI/CD
ELB
Web Tier
App Tier
CNAME
Recurring events
AWS Account Setup
AWS Account
VPC, Subnets, Routing tables, Route 53 Zone Delegation
One time events
CD with Blue-Green Deployment
ci-svc.intuit.com qa-svc.intuit.com svc.intuit.com
PreProd
Account
Prod
Account
Public ELB
Subnets
Private Web
Subnets
Private App
Subnets
100% 5%95% 100%0%
CI Web
Build 10
CI App
Build 10
CI Web
Build 12
CI App
Build 12
QA App
Build 10
QA Web
Build 10
QA App
Build 10
QA Web
Build 12
QA App
Build 12
Prod App
Build 10
Prod Web
Build 10
Prod App
Build 10
Prod Web
Build 12
Prod App
Build 12
Benefits
• Early feedback on changes flowing through the system
• Increase in quality
• Frequent releases to production
• Development productivity from day 1
Slingshot Demo
Recap
Challenges
• Security requirements
• Onboarding into CI/CD
• Highly Available
The Solution: Slingshot
• Build security in
• Automate onboarding to CI/CD
• Build HA/DR in
The Next Problem
• Automation tests failed due to unreliable dependency server
• Builds are not promoted
Our Solution
Overview of Wiremock
Wiremock is a library for stubbing and proxying web services
• Stubbing
• Fault Injection
• Easy Set up
• Easy onboarding
How does Wiremock work?
System
Under Test
Wiremock
Server
Dependency
Server
Automation
Test
• Configure the Wiremock server to be man-in-the-middle
• Increased integration test pass rate
• Increased code coverage
• Does not interrupt other team’s calling the SUT
= Stubs
Before Wiremock
Subnet
ELB for SUT
SUT 1
SUT 2
Dependency
Server
Subnet
Automation
Test
We tried this
Subnet
ELB for SUT
SUT 1
SUT 2
Subnet
Automation
Test
• Deploy Wiremock on SUT EC2 instance
• No consistent stub response!
= Stubs
Our Solution
ELB for WM
SUT 1
SUT 2
Automation
Test
Wiremock
(Stub
Dependency)
ELB for SUT
• Deploy Wiremock on dedicated EC2 and ELB
• Consistent Stub responses!
= Stubs
If no stubs…
ELB for WM
SUT 1
SUT 2
Automation
Test
Wiremock
ELB for SUT
Dependency
Server
WM will proxy the
request to
dependency
server
Wiremock Code Snipets
Starting Up Wiremock Server
java -jar wiremock-1.53-standalone.jar --verbose --
port 8080 --proxy-all=[Dependency Server DNS Name]
Stubbing the response
//This calls Wiremock API to stub the response
stubFor(get(urlEqualTo(“/from/where”))
.willReturn(aResponse().withStatus(200)
.withHeader("Cache-Control", "no-cache")
.withHeader("Content-Type", ”text/plain")
.withBody(“Taiwan” )));
Simulating Fault
//This calls Wiremock API for fault injection
stubFor(get(urlEqualTo(“/some/thing”))
.willReturn(aResponse()
.withFault(Fault.EMPTY_RESPONSE)));
Benefits
• We fixed the CI/CD pipeline
• No more unnecessary test failures debugging
• Less production escapes and firefighting
Recap
The Second Challenge
• Integration tests failures broke CICD pipeline
• Hard to do resiliency testing
The Solution : Wiremock
Next Step
Why don’t we combine them?
Slingshot With Wiremock
Slingshot with Wiremock
W
ASG
Web
ASG
App
ASG
System Under Test
Region US-WEST-2
Availability Zone #1
Wiremock
ASG
Wiremock
Internet Gateway
Dependency
Server
AWS Region X / Datacenter X
Automate WM Deployment
Automate Wiremock Deployment
Chef is an infrastructure automation code tool we use
• Code how you deploy and manage your infrastructure
• Allows version control
• Code can be reused
Automate Wiremock Deployment
We wrote a Wiremock Recipe
• Download the Wiremock jar
• Start up the Wiremock server
Automate Wiremock Deployment
Berkshelf is a dependency manager for chef
• Get the Java recipe to download Java
• Get the Wiremock recipe to deploy Wiremock server
Chef Snipet
#This will start the wiremock server with the
parameters passed in
function start { cd "${USER_DIRECTORY}" ;java -jar
wiremock-${WIREMOCK_VERSION}-standalone.jar --port
${PORT} --proxy-via ${PROXY_VIA} -–proxy-all=
${PROXY_ALL} --verbose > /var/log/wiremock.log 2>&1
& }
Automate Wiremock Stack Creation
Use AWS CloudFormation API
• Provision EC2 instances and ELB
• Create Auto Scaling Group
• Set up other AWS resources
Use WireMock in Slingshot
Call Chef from CloudFormation
How to Call Cookbook From CloudFormation
Write shell scripts In the InstanceLaunchConfig section
1. Download and install chef
2. Run Chef. In this case we created a Wiremock role to
execute the java and Wiremock cookbooks.
Call Chef from CloudFormation
"5_run_chef": {
"command": { "Fn::Join": [ "", [
"/usr/bin/chef-solo -c /var/chef/config/solo.rb -o
'role[", { "Ref": "Role" }, "]' -E '", { "Ref":
"Environment" },"'" ] ]
}
Benefits
• A simplified CI/CD pipeline onboarding
• A successful CI/CD pipeline with increased test pass rate
• Resiliency testing capability built in
• Security features built in
Deep Dives
Demo
SUT Wiremock
Server
YelpTest
Automation
Recap
Recap
Combined Solution: Slingshot with Wiremock
• CI/CD pipeline easy onboarding
• Builds are auto-promoted
• Less Engineers’ time spent on debugging
• Resiliency issue found before production
• Happy Engineers
What we learned
What We Learned
• The initial investment is worth it
• Try to be flexible
• Set up DNS
References
• http://www.pnsqc.org/the-journey-of-mocking-in-aws/
• http://wiremock.org/
• https://www.chef.io/
• http://docs.aws.amazon.com/AWSCloudFormation/latest
/APIReference/Welcome.html
Related Sessions
Breakout Session:
ARC344
How Intuit Improves Security and Productivity with
AWS Virtual Networking, identity, and Account
Services
Track: Architecture
Session Level: Advanced (300 level)
Session Time: Thursday, Oct 8, 2:45 PM – 3:45 PM–
Palazzo
Contact
Lucy Chang
Sr. Software Engineer in Quality , Intuit
https://www.linkedin.com/pub/lucy-chang/11/312/a83
Alfred Tan
Sr. DevOps Manager, Intuit
https://www.linkedin.com/pub/alfred-tan/1/938/9b
Thank you!
Remember to complete
your evaluations!

Contenu connexe

Tendances

An Introduction To Automated API Testing
An Introduction To Automated API TestingAn Introduction To Automated API Testing
An Introduction To Automated API TestingSauce Labs
 
Why API Ops is the Next Wave of DevOps
Why API Ops is the Next Wave of DevOpsWhy API Ops is the Next Wave of DevOps
Why API Ops is the Next Wave of DevOpsJohn Musser
 
Hexagonal Architecture
Hexagonal ArchitectureHexagonal Architecture
Hexagonal ArchitectureMarcelo Cure
 
Reasons To Automate API Testing Process
Reasons To Automate API Testing ProcessReasons To Automate API Testing Process
Reasons To Automate API Testing ProcessQASource
 
How to implement DevOps in your Organization
How to implement DevOps in your OrganizationHow to implement DevOps in your Organization
How to implement DevOps in your OrganizationDalibor Blazevic
 
Anatomy of a Continuous Integration and Delivery (CICD) Pipeline
Anatomy of a Continuous Integration and Delivery (CICD) PipelineAnatomy of a Continuous Integration and Delivery (CICD) Pipeline
Anatomy of a Continuous Integration and Delivery (CICD) PipelineRobert McDermott
 
Automation testing strategy, approach & planning
Automation testing  strategy, approach & planningAutomation testing  strategy, approach & planning
Automation testing strategy, approach & planningSivaprasanthRentala1975
 
RESTful API Testing using Postman, Newman, and Jenkins
RESTful API Testing using Postman, Newman, and JenkinsRESTful API Testing using Postman, Newman, and Jenkins
RESTful API Testing using Postman, Newman, and JenkinsQASymphony
 
API Testing: The heart of functional testing" with Bj Rollison
API Testing: The heart of functional testing" with Bj RollisonAPI Testing: The heart of functional testing" with Bj Rollison
API Testing: The heart of functional testing" with Bj RollisonTEST Huddle
 
API first Design and Microservices
API first Design and MicroservicesAPI first Design and Microservices
API first Design and MicroservicesSven Bernhardt
 
Designing APIs and Microservices Using Domain-Driven Design
Designing APIs and Microservices Using Domain-Driven DesignDesigning APIs and Microservices Using Domain-Driven Design
Designing APIs and Microservices Using Domain-Driven DesignLaunchAny
 
API Strategy Evolution at Netflix
API Strategy Evolution at NetflixAPI Strategy Evolution at Netflix
API Strategy Evolution at NetflixMichael Hart
 
APIs with Bounded Contexts: Modelling Apis with Domain-Driven Design
APIs with Bounded Contexts: Modelling Apis with Domain-Driven DesignAPIs with Bounded Contexts: Modelling Apis with Domain-Driven Design
APIs with Bounded Contexts: Modelling Apis with Domain-Driven DesignJosé Haro Peralta
 

Tendances (20)

API Governance in the Enterprise
API Governance in the EnterpriseAPI Governance in the Enterprise
API Governance in the Enterprise
 
An Introduction To Automated API Testing
An Introduction To Automated API TestingAn Introduction To Automated API Testing
An Introduction To Automated API Testing
 
API Testing for everyone.pptx
API Testing for everyone.pptxAPI Testing for everyone.pptx
API Testing for everyone.pptx
 
Why API Ops is the Next Wave of DevOps
Why API Ops is the Next Wave of DevOpsWhy API Ops is the Next Wave of DevOps
Why API Ops is the Next Wave of DevOps
 
Api types
Api typesApi types
Api types
 
Hexagonal Architecture
Hexagonal ArchitectureHexagonal Architecture
Hexagonal Architecture
 
API TESTING
API TESTINGAPI TESTING
API TESTING
 
Reasons To Automate API Testing Process
Reasons To Automate API Testing ProcessReasons To Automate API Testing Process
Reasons To Automate API Testing Process
 
Definitive Guide to API Management
Definitive Guide to API ManagementDefinitive Guide to API Management
Definitive Guide to API Management
 
API Testing
API TestingAPI Testing
API Testing
 
How to implement DevOps in your Organization
How to implement DevOps in your OrganizationHow to implement DevOps in your Organization
How to implement DevOps in your Organization
 
Anatomy of a Continuous Integration and Delivery (CICD) Pipeline
Anatomy of a Continuous Integration and Delivery (CICD) PipelineAnatomy of a Continuous Integration and Delivery (CICD) Pipeline
Anatomy of a Continuous Integration and Delivery (CICD) Pipeline
 
Automation testing strategy, approach & planning
Automation testing  strategy, approach & planningAutomation testing  strategy, approach & planning
Automation testing strategy, approach & planning
 
RESTful API Testing using Postman, Newman, and Jenkins
RESTful API Testing using Postman, Newman, and JenkinsRESTful API Testing using Postman, Newman, and Jenkins
RESTful API Testing using Postman, Newman, and Jenkins
 
API Testing: The heart of functional testing" with Bj Rollison
API Testing: The heart of functional testing" with Bj RollisonAPI Testing: The heart of functional testing" with Bj Rollison
API Testing: The heart of functional testing" with Bj Rollison
 
API first Design and Microservices
API first Design and MicroservicesAPI first Design and Microservices
API first Design and Microservices
 
Designing APIs and Microservices Using Domain-Driven Design
Designing APIs and Microservices Using Domain-Driven DesignDesigning APIs and Microservices Using Domain-Driven Design
Designing APIs and Microservices Using Domain-Driven Design
 
Apigee Edge Overview and Roadmap
Apigee Edge Overview and RoadmapApigee Edge Overview and Roadmap
Apigee Edge Overview and Roadmap
 
API Strategy Evolution at Netflix
API Strategy Evolution at NetflixAPI Strategy Evolution at Netflix
API Strategy Evolution at Netflix
 
APIs with Bounded Contexts: Modelling Apis with Domain-Driven Design
APIs with Bounded Contexts: Modelling Apis with Domain-Driven DesignAPIs with Bounded Contexts: Modelling Apis with Domain-Driven Design
APIs with Bounded Contexts: Modelling Apis with Domain-Driven Design
 

Similaire à CI/CD with Mocking & Resiliency Testing Using AWS

Towards automated testing - CloudStack Collab Conference
Towards automated testing - CloudStack Collab ConferenceTowards automated testing - CloudStack Collab Conference
Towards automated testing - CloudStack Collab Conferenceamoghvk
 
Containerising bootiful microservices javaeeconf
Containerising bootiful microservices javaeeconfContainerising bootiful microservices javaeeconf
Containerising bootiful microservices javaeeconfIvan Vasyliev
 
Getting to Walk with DevOps
Getting to Walk with DevOpsGetting to Walk with DevOps
Getting to Walk with DevOpsEklove Mohan
 
Andreas Grabner - Performance as Code, Let's Make It a Standard
Andreas Grabner - Performance as Code, Let's Make It a StandardAndreas Grabner - Performance as Code, Let's Make It a Standard
Andreas Grabner - Performance as Code, Let's Make It a StandardNeotys_Partner
 
Continuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWSContinuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWSAmazon Web Services
 
Aws Amity University Presentation Mar-10-2022
Aws Amity University Presentation Mar-10-2022Aws Amity University Presentation Mar-10-2022
Aws Amity University Presentation Mar-10-2022Varun Manik
 
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsDevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsAmazon Web Services
 
Putting it All Together: Securing Systems at Cloud Scale
Putting it All Together: Securing Systems at Cloud ScalePutting it All Together: Securing Systems at Cloud Scale
Putting it All Together: Securing Systems at Cloud ScaleAmazon Web Services
 
Continuous Integration with Amazon ECS and Docker
Continuous Integration with Amazon ECS and DockerContinuous Integration with Amazon ECS and Docker
Continuous Integration with Amazon ECS and DockerAmazon Web Services
 
Automated Virtualized Testing (AVT) with Docker, Kubernetes, WireMock and Gat...
Automated Virtualized Testing (AVT) with Docker, Kubernetes, WireMock and Gat...Automated Virtualized Testing (AVT) with Docker, Kubernetes, WireMock and Gat...
Automated Virtualized Testing (AVT) with Docker, Kubernetes, WireMock and Gat...VMware Tanzu
 
Advanced Continuous Delivery on AWS
Advanced Continuous Delivery on AWSAdvanced Continuous Delivery on AWS
Advanced Continuous Delivery on AWSAmazon Web Services
 
TestCorner#22 - Evolving QA implementation for Microservices in Viveport
TestCorner#22 - Evolving QA implementation for Microservices in ViveportTestCorner#22 - Evolving QA implementation for Microservices in Viveport
TestCorner#22 - Evolving QA implementation for Microservices in ViveportHTC
 
Introduction to Spring Cloud
Introduction to Spring Cloud           Introduction to Spring Cloud
Introduction to Spring Cloud VMware Tanzu
 
Integrating Security into DevOps and CI / CD Environments - Pop-up Loft TLV 2017
Integrating Security into DevOps and CI / CD Environments - Pop-up Loft TLV 2017Integrating Security into DevOps and CI / CD Environments - Pop-up Loft TLV 2017
Integrating Security into DevOps and CI / CD Environments - Pop-up Loft TLV 2017Amazon Web Services
 
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsDevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsAmazon Web Services
 
Application Delivery Patterns for Developers - Technical 401
Application Delivery Patterns for Developers - Technical 401Application Delivery Patterns for Developers - Technical 401
Application Delivery Patterns for Developers - Technical 401Amazon Web Services
 
Kubernetes your tests! automation with docker on google cloud platform
Kubernetes your tests! automation with docker on google cloud platformKubernetes your tests! automation with docker on google cloud platform
Kubernetes your tests! automation with docker on google cloud platformLivePerson
 
Dropwizard and Groovy
Dropwizard and GroovyDropwizard and Groovy
Dropwizard and Groovytomaslin
 
AWS Summit Auckland - Application Delivery Patterns for Developers
AWS Summit Auckland - Application Delivery Patterns for DevelopersAWS Summit Auckland - Application Delivery Patterns for Developers
AWS Summit Auckland - Application Delivery Patterns for DevelopersAmazon Web Services
 

Similaire à CI/CD with Mocking & Resiliency Testing Using AWS (20)

Towards automated testing - CloudStack Collab Conference
Towards automated testing - CloudStack Collab ConferenceTowards automated testing - CloudStack Collab Conference
Towards automated testing - CloudStack Collab Conference
 
Containerising bootiful microservices javaeeconf
Containerising bootiful microservices javaeeconfContainerising bootiful microservices javaeeconf
Containerising bootiful microservices javaeeconf
 
Cypress Automation
Cypress  AutomationCypress  Automation
Cypress Automation
 
Getting to Walk with DevOps
Getting to Walk with DevOpsGetting to Walk with DevOps
Getting to Walk with DevOps
 
Andreas Grabner - Performance as Code, Let's Make It a Standard
Andreas Grabner - Performance as Code, Let's Make It a StandardAndreas Grabner - Performance as Code, Let's Make It a Standard
Andreas Grabner - Performance as Code, Let's Make It a Standard
 
Continuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWSContinuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWS
 
Aws Amity University Presentation Mar-10-2022
Aws Amity University Presentation Mar-10-2022Aws Amity University Presentation Mar-10-2022
Aws Amity University Presentation Mar-10-2022
 
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsDevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
 
Putting it All Together: Securing Systems at Cloud Scale
Putting it All Together: Securing Systems at Cloud ScalePutting it All Together: Securing Systems at Cloud Scale
Putting it All Together: Securing Systems at Cloud Scale
 
Continuous Integration with Amazon ECS and Docker
Continuous Integration with Amazon ECS and DockerContinuous Integration with Amazon ECS and Docker
Continuous Integration with Amazon ECS and Docker
 
Automated Virtualized Testing (AVT) with Docker, Kubernetes, WireMock and Gat...
Automated Virtualized Testing (AVT) with Docker, Kubernetes, WireMock and Gat...Automated Virtualized Testing (AVT) with Docker, Kubernetes, WireMock and Gat...
Automated Virtualized Testing (AVT) with Docker, Kubernetes, WireMock and Gat...
 
Advanced Continuous Delivery on AWS
Advanced Continuous Delivery on AWSAdvanced Continuous Delivery on AWS
Advanced Continuous Delivery on AWS
 
TestCorner#22 - Evolving QA implementation for Microservices in Viveport
TestCorner#22 - Evolving QA implementation for Microservices in ViveportTestCorner#22 - Evolving QA implementation for Microservices in Viveport
TestCorner#22 - Evolving QA implementation for Microservices in Viveport
 
Introduction to Spring Cloud
Introduction to Spring Cloud           Introduction to Spring Cloud
Introduction to Spring Cloud
 
Integrating Security into DevOps and CI / CD Environments - Pop-up Loft TLV 2017
Integrating Security into DevOps and CI / CD Environments - Pop-up Loft TLV 2017Integrating Security into DevOps and CI / CD Environments - Pop-up Loft TLV 2017
Integrating Security into DevOps and CI / CD Environments - Pop-up Loft TLV 2017
 
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsDevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
 
Application Delivery Patterns for Developers - Technical 401
Application Delivery Patterns for Developers - Technical 401Application Delivery Patterns for Developers - Technical 401
Application Delivery Patterns for Developers - Technical 401
 
Kubernetes your tests! automation with docker on google cloud platform
Kubernetes your tests! automation with docker on google cloud platformKubernetes your tests! automation with docker on google cloud platform
Kubernetes your tests! automation with docker on google cloud platform
 
Dropwizard and Groovy
Dropwizard and GroovyDropwizard and Groovy
Dropwizard and Groovy
 
AWS Summit Auckland - Application Delivery Patterns for Developers
AWS Summit Auckland - Application Delivery Patterns for DevelopersAWS Summit Auckland - Application Delivery Patterns for Developers
AWS Summit Auckland - Application Delivery Patterns for Developers
 

Plus de Amazon Web Services

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Amazon Web Services
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Amazon Web Services
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateAmazon Web Services
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSAmazon Web Services
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Amazon Web Services
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Amazon Web Services
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...Amazon Web Services
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsAmazon Web Services
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareAmazon Web Services
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSAmazon Web Services
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAmazon Web Services
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareAmazon Web Services
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWSAmazon Web Services
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckAmazon Web Services
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without serversAmazon Web Services
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...Amazon Web Services
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceAmazon Web Services
 

Plus de Amazon Web Services (20)

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS Fargate
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWS
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot
 
Open banking as a service
Open banking as a serviceOpen banking as a service
Open banking as a service
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
 
Computer Vision con AWS
Computer Vision con AWSComputer Vision con AWS
Computer Vision con AWS
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatare
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e web
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWS
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch Deck
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without servers
 
Fundraising Essentials
Fundraising EssentialsFundraising Essentials
Fundraising Essentials
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container Service
 

Dernier

08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 

Dernier (20)

08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 

CI/CD with Mocking & Resiliency Testing Using AWS

  • 1. © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Lucy Chang Sr. Software Engineer in Quality, Intuit CI/CD with Mocking & Resiliency Testing Using AWS Alfred Tan Sr. DevOps Manager, Intuit
  • 2.
  • 3.
  • 4. Session Overview • CI/CD and AWS onboarding • Cross team AWS strategy alignment • Automating AWS deployment • Development work is blocked by dependency • Integration tests fails due to unreliable dependency • Need to do resiliency testing
  • 6. Our Challenges • Security requirements • Onboarding into CI/CD • Highly Available
  • 7. Our Solution - Slingshot • Build security in • Automate onboarding to CI/CD • Build HA/DR in
  • 8. CI/CD Pipeline Continuous Integration Continuous Delivery/Deployment Pipeline Promotion Criteria: • Build pass: 100% • Unit Test pass: 100% • Code Coverage: >80% Build Promotion Criteria: • BAT pass: 100% CI Promotion Criteria: • Regression Test pass: 100% QA Promotion Criteria: • E2E Test pass: 100% Test Run: • E2E Test • Performance Test E2E/Perf Test Run: • Smoke Test pass: 100% Prod
  • 9. Slingshot Setup Initial Setup GitHub Repo CI/CD Pipeline KMS/SSH keys S3 Buckets Egress Proxy and Bastion Host Splunk Forwarder AWS Account Setup AWS Account VPC, Subnets, Routing tables, Route 53 Zone Delegation One time events
  • 10. Slingshot Initial Setup Region US-WEST-2 Bucket for Artifacts KMS Key for SecretsKMS Key for EBSBucket for Secrets Internet Gateway Bastion ASG Splunk Forwarder Egress ASG Public Bastion Subnets Public Egress Subnets Private DB Subnets Private APP Subnets Public ELB Subnets Private WEB Subnets Delegated DNS Zones
  • 11. Slingshot Setup Initial Setup GitHub Repo CI/CD Pipeline KMS/SSH keys S3 Buckets Egress Proxy and Bastion Host Splunk Forwarder CI/CD ELB Web Tier App Tier CNAME Recurring events AWS Account Setup AWS Account VPC, Subnets, Routing tables, Route 53 Zone Delegation One time events
  • 12. CD with Blue-Green Deployment ci-svc.intuit.com qa-svc.intuit.com svc.intuit.com PreProd Account Prod Account Public ELB Subnets Private Web Subnets Private App Subnets 100% 5%95% 100%0% CI Web Build 10 CI App Build 10 CI Web Build 12 CI App Build 12 QA App Build 10 QA Web Build 10 QA App Build 10 QA Web Build 12 QA App Build 12 Prod App Build 10 Prod Web Build 10 Prod App Build 10 Prod Web Build 12 Prod App Build 12
  • 13. Benefits • Early feedback on changes flowing through the system • Increase in quality • Frequent releases to production • Development productivity from day 1
  • 15. Recap Challenges • Security requirements • Onboarding into CI/CD • Highly Available The Solution: Slingshot • Build security in • Automate onboarding to CI/CD • Build HA/DR in
  • 16. The Next Problem • Automation tests failed due to unreliable dependency server • Builds are not promoted
  • 18. Overview of Wiremock Wiremock is a library for stubbing and proxying web services • Stubbing • Fault Injection • Easy Set up • Easy onboarding
  • 19. How does Wiremock work? System Under Test Wiremock Server Dependency Server Automation Test • Configure the Wiremock server to be man-in-the-middle • Increased integration test pass rate • Increased code coverage • Does not interrupt other team’s calling the SUT = Stubs
  • 20. Before Wiremock Subnet ELB for SUT SUT 1 SUT 2 Dependency Server Subnet Automation Test
  • 21. We tried this Subnet ELB for SUT SUT 1 SUT 2 Subnet Automation Test • Deploy Wiremock on SUT EC2 instance • No consistent stub response! = Stubs
  • 22. Our Solution ELB for WM SUT 1 SUT 2 Automation Test Wiremock (Stub Dependency) ELB for SUT • Deploy Wiremock on dedicated EC2 and ELB • Consistent Stub responses! = Stubs
  • 23. If no stubs… ELB for WM SUT 1 SUT 2 Automation Test Wiremock ELB for SUT Dependency Server WM will proxy the request to dependency server
  • 25. Starting Up Wiremock Server java -jar wiremock-1.53-standalone.jar --verbose -- port 8080 --proxy-all=[Dependency Server DNS Name]
  • 26. Stubbing the response //This calls Wiremock API to stub the response stubFor(get(urlEqualTo(“/from/where”)) .willReturn(aResponse().withStatus(200) .withHeader("Cache-Control", "no-cache") .withHeader("Content-Type", ”text/plain") .withBody(“Taiwan” )));
  • 27. Simulating Fault //This calls Wiremock API for fault injection stubFor(get(urlEqualTo(“/some/thing”)) .willReturn(aResponse() .withFault(Fault.EMPTY_RESPONSE)));
  • 28. Benefits • We fixed the CI/CD pipeline • No more unnecessary test failures debugging • Less production escapes and firefighting
  • 29. Recap The Second Challenge • Integration tests failures broke CICD pipeline • Hard to do resiliency testing The Solution : Wiremock
  • 30. Next Step Why don’t we combine them?
  • 32. Slingshot with Wiremock W ASG Web ASG App ASG System Under Test Region US-WEST-2 Availability Zone #1 Wiremock ASG Wiremock Internet Gateway Dependency Server AWS Region X / Datacenter X
  • 34. Automate Wiremock Deployment Chef is an infrastructure automation code tool we use • Code how you deploy and manage your infrastructure • Allows version control • Code can be reused
  • 35. Automate Wiremock Deployment We wrote a Wiremock Recipe • Download the Wiremock jar • Start up the Wiremock server
  • 36. Automate Wiremock Deployment Berkshelf is a dependency manager for chef • Get the Java recipe to download Java • Get the Wiremock recipe to deploy Wiremock server
  • 37. Chef Snipet #This will start the wiremock server with the parameters passed in function start { cd "${USER_DIRECTORY}" ;java -jar wiremock-${WIREMOCK_VERSION}-standalone.jar --port ${PORT} --proxy-via ${PROXY_VIA} -–proxy-all= ${PROXY_ALL} --verbose > /var/log/wiremock.log 2>&1 & }
  • 38. Automate Wiremock Stack Creation Use AWS CloudFormation API • Provision EC2 instances and ELB • Create Auto Scaling Group • Set up other AWS resources
  • 39. Use WireMock in Slingshot Call Chef from CloudFormation
  • 40. How to Call Cookbook From CloudFormation Write shell scripts In the InstanceLaunchConfig section 1. Download and install chef 2. Run Chef. In this case we created a Wiremock role to execute the java and Wiremock cookbooks.
  • 41. Call Chef from CloudFormation "5_run_chef": { "command": { "Fn::Join": [ "", [ "/usr/bin/chef-solo -c /var/chef/config/solo.rb -o 'role[", { "Ref": "Role" }, "]' -E '", { "Ref": "Environment" },"'" ] ] }
  • 42. Benefits • A simplified CI/CD pipeline onboarding • A successful CI/CD pipeline with increased test pass rate • Resiliency testing capability built in • Security features built in
  • 45. Recap
  • 46. Recap Combined Solution: Slingshot with Wiremock • CI/CD pipeline easy onboarding • Builds are auto-promoted • Less Engineers’ time spent on debugging • Resiliency issue found before production • Happy Engineers
  • 48. What We Learned • The initial investment is worth it • Try to be flexible • Set up DNS
  • 49. References • http://www.pnsqc.org/the-journey-of-mocking-in-aws/ • http://wiremock.org/ • https://www.chef.io/ • http://docs.aws.amazon.com/AWSCloudFormation/latest /APIReference/Welcome.html
  • 50. Related Sessions Breakout Session: ARC344 How Intuit Improves Security and Productivity with AWS Virtual Networking, identity, and Account Services Track: Architecture Session Level: Advanced (300 level) Session Time: Thursday, Oct 8, 2:45 PM – 3:45 PM– Palazzo
  • 51. Contact Lucy Chang Sr. Software Engineer in Quality , Intuit https://www.linkedin.com/pub/lucy-chang/11/312/a83 Alfred Tan Sr. DevOps Manager, Intuit https://www.linkedin.com/pub/alfred-tan/1/938/9b