![Page 1: Continuous Integration and Delivery at Shapeways (Matt Boyle)](https://reader035.vdocuments.site/reader035/viewer/2022070516/5872d2341a28ab74188b5455/html5/thumbnails/1.jpg)
Continuous Integration and Delivery at Shapeways
Matt Boyle NordicAPIs Platform SummitStockholm, Sweden25 October 2016
![Page 2: Continuous Integration and Delivery at Shapeways (Matt Boyle)](https://reader035.vdocuments.site/reader035/viewer/2022070516/5872d2341a28ab74188b5455/html5/thumbnails/2.jpg)
What is Shapeways?The worlds largest 3d printing service and marketplace
Marketplace, service hub, and community hosted at Shapeways.com
REST API provided at api.shapeways.com
![Page 3: Continuous Integration and Delivery at Shapeways (Matt Boyle)](https://reader035.vdocuments.site/reader035/viewer/2022070516/5872d2341a28ab74188b5455/html5/thumbnails/3.jpg)
Why CI/CD?
Idea
Exploration
Definition
Execution
Release
Evaluation
Consider the SDLC
…except this one
All stages represent active, valuable work by software team members.
![Page 4: Continuous Integration and Delivery at Shapeways (Matt Boyle)](https://reader035.vdocuments.site/reader035/viewer/2022070516/5872d2341a28ab74188b5455/html5/thumbnails/4.jpg)
Releasing Software Starts Easy
Everything Working?
![Page 5: Continuous Integration and Delivery at Shapeways (Matt Boyle)](https://reader035.vdocuments.site/reader035/viewer/2022070516/5872d2341a28ab74188b5455/html5/thumbnails/5.jpg)
Releasing Software Gets Harder
Git pull Build FrontEnd?
Manage Symlinks?
Bounce Memcache
?
Restart Apache?
![Page 6: Continuous Integration and Delivery at Shapeways (Matt Boyle)](https://reader035.vdocuments.site/reader035/viewer/2022070516/5872d2341a28ab74188b5455/html5/thumbnails/6.jpg)
Releasing Software Gets REALLY hardBuild Artifact
Run tests
Deploy to multiple
datacenters
Intra-DC deployment to
servers
Manage artifacts on
serverRotate through load balancer
Generate documentation
Restart services
Detect regressions
Monitor for Breakages Deployments like this take time and
resources
If you don’t automate, you’ll spend as much time running deployments as you do writing code
![Page 7: Continuous Integration and Delivery at Shapeways (Matt Boyle)](https://reader035.vdocuments.site/reader035/viewer/2022070516/5872d2341a28ab74188b5455/html5/thumbnails/7.jpg)
The Shapeways CI Story
![Page 8: Continuous Integration and Delivery at Shapeways (Matt Boyle)](https://reader035.vdocuments.site/reader035/viewer/2022070516/5872d2341a28ab74188b5455/html5/thumbnails/8.jpg)
In The Beginning…
60 minute deployments No API documentation Frustrating Manual Testing
![Page 9: Continuous Integration and Delivery at Shapeways (Matt Boyle)](https://reader035.vdocuments.site/reader035/viewer/2022070516/5872d2341a28ab74188b5455/html5/thumbnails/9.jpg)
Baby Steps
Continuous Integration with Jenkins
Integration + Functional Testing with
Selenium
New tests required to ship features
![Page 10: Continuous Integration and Delivery at Shapeways (Matt Boyle)](https://reader035.vdocuments.site/reader035/viewer/2022070516/5872d2341a28ab74188b5455/html5/thumbnails/10.jpg)
Pro’ing up - JenkinsActive-Active Jenkins instances – one per datacenter
Use Jenkins API for remote execution of deployments and test jobs
Flow-based deployment using Jenkins Pipeline DDL
![Page 11: Continuous Integration and Delivery at Shapeways (Matt Boyle)](https://reader035.vdocuments.site/reader035/viewer/2022070516/5872d2341a28ab74188b5455/html5/thumbnails/11.jpg)
Pro’ing up - Coyote FrameworkIn-house FOSS testing framework for integration and functional testing
Thoughtfully developed testing infrastructure to ensure consistent, reliable, and maintainable tests
Two-level API testing: contract enforcement and functional flow
![Page 12: Continuous Integration and Delivery at Shapeways (Matt Boyle)](https://reader035.vdocuments.site/reader035/viewer/2022070516/5872d2341a28ab74188b5455/html5/thumbnails/12.jpg)
Pro’ing up - ACMEIn-house developed test management application
Schedule test runs on-demand for developers
Test analysis and intelligence
![Page 13: Continuous Integration and Delivery at Shapeways (Matt Boyle)](https://reader035.vdocuments.site/reader035/viewer/2022070516/5872d2341a28ab74188b5455/html5/thumbnails/13.jpg)
Pro’ing up - ChatOps via HubotGitHub-developed extensible chat bot written in CoffeeScript
Manage deployments, development/QA infrastructure, permission management
Acts as interface between our different tools: jenkins, coyote, acme, slack
![Page 14: Continuous Integration and Delivery at Shapeways (Matt Boyle)](https://reader035.vdocuments.site/reader035/viewer/2022070516/5872d2341a28ab74188b5455/html5/thumbnails/14.jpg)
Looking Ahead – Staged RolloutsPresent deployment is fast but requires us to be all-in on new code
Ability to use infrastructure for new feature A/B testing rather than user groups
Increased deployment time, but faster recovery should something go wrong
![Page 15: Continuous Integration and Delivery at Shapeways (Matt Boyle)](https://reader035.vdocuments.site/reader035/viewer/2022070516/5872d2341a28ab74188b5455/html5/thumbnails/15.jpg)
Looking Ahead - Swagger for all APIs, int+extEasier documentation generation
Client generation/update for multiple languages
Source of truth for service-based applications – contract enforcement, test generation
![Page 16: Continuous Integration and Delivery at Shapeways (Matt Boyle)](https://reader035.vdocuments.site/reader035/viewer/2022070516/5872d2341a28ab74188b5455/html5/thumbnails/16.jpg)
Looking Ahead - Improved Testing ToolingGenerate testing profiles based on changes made in codebase
Code coverage for functional testing via URL mapping
Performance and capacity measurement based on previous test runs and environments
![Page 17: Continuous Integration and Delivery at Shapeways (Matt Boyle)](https://reader035.vdocuments.site/reader035/viewer/2022070516/5872d2341a28ab74188b5455/html5/thumbnails/17.jpg)