agenda - stpcon · what about this docker thing? •containerization software •uses resource...
TRANSCRIPT
![Page 1: Agenda - STPCon · What about this Docker thing? •Containerization software •Uses resource isolation features of Linux in order to allow isolated OS's to run on a single machine](https://reader034.vdocuments.us/reader034/viewer/2022042219/5ec5ad88e46f8c3c8073d546/html5/thumbnails/1.jpg)
3/25/2019
1
1© 2018 Rogue Wave Software, Inc. All Rights Reserved.
Warp Speed Testing at an Enterprise LevelScott MillsAndrei Juc
2© 2018 Rogue Wave Software, Inc. All Rights Reserved.
Agenda
1
2
![Page 2: Agenda - STPCon · What about this Docker thing? •Containerization software •Uses resource isolation features of Linux in order to allow isolated OS's to run on a single machine](https://reader034.vdocuments.us/reader034/viewer/2022042219/5ec5ad88e46f8c3c8073d546/html5/thumbnails/2.jpg)
3/25/2019
2
3© 2018 Rogue Wave Software, Inc. All Rights Reserved.
What are we covering in this session?
1. About us
2. About Rogue Wave
3. The problem
4. The challenge
5. The solution
6. AWS Tips
7. Jenkins plugins
8. What’s next
9. Closing thoughts
4© 2018 Rogue Wave Software, Inc. All Rights Reserved.
What will you take away from this session?
1. Configuring Jenkins to work with AWS
2. Setting up Jenkins jobs to use AWS resources
3. Using Docker with AWS
4. Useful Jenkins Plugins
5. Using on-demand resources
6. AWS Tips
7. Potential pitfalls & limitations
3
4
![Page 3: Agenda - STPCon · What about this Docker thing? •Containerization software •Uses resource isolation features of Linux in order to allow isolated OS's to run on a single machine](https://reader034.vdocuments.us/reader034/viewer/2022042219/5ec5ad88e46f8c3c8073d546/html5/thumbnails/3.jpg)
3/25/2019
3
5© 2018 Rogue Wave Software, Inc. All Rights Reserved.
About us
6© 2018 Rogue Wave Software, Inc. All Rights Reserved.
Ottawa, ON
San Francisco
CA
5
6
![Page 4: Agenda - STPCon · What about this Docker thing? •Containerization software •Uses resource isolation features of Linux in order to allow isolated OS's to run on a single machine](https://reader034.vdocuments.us/reader034/viewer/2022042219/5ec5ad88e46f8c3c8073d546/html5/thumbnails/4.jpg)
3/25/2019
4
7© 2018 Rogue Wave Software, Inc. All Rights Reserved.
Scott Mills
Technical background
• Almost 20 years designing, developing, maintain and supporting
automation systems
• Application performance testing
• Application security testing (OWASP Top 10)
• Automated web testing
• Build & test automation framework development and evolution
utilizing Python, Jenkins, Docker and Amazon Web Services
8© 2018 Rogue Wave Software, Inc. All Rights Reserved.
Scott Mills
While not automating…
7
8
![Page 5: Agenda - STPCon · What about this Docker thing? •Containerization software •Uses resource isolation features of Linux in order to allow isolated OS's to run on a single machine](https://reader034.vdocuments.us/reader034/viewer/2022042219/5ec5ad88e46f8c3c8073d546/html5/thumbnails/5.jpg)
3/25/2019
5
9© 2018 Rogue Wave Software, Inc. All Rights Reserved.
Andrei Juc
Technical background
• Automation framework developer
• VM to Docker migration
• Amazon Web Services migration
• Troubleshooting enthusiast
• Innovator
10© 2018 Rogue Wave Software, Inc. All Rights Reserved.
Andrei Juc
While not problem solving…
9
10
![Page 6: Agenda - STPCon · What about this Docker thing? •Containerization software •Uses resource isolation features of Linux in order to allow isolated OS's to run on a single machine](https://reader034.vdocuments.us/reader034/viewer/2022042219/5ec5ad88e46f8c3c8073d546/html5/thumbnails/6.jpg)
3/25/2019
6
11© 2018 Rogue Wave Software, Inc. All Rights Reserved.
About Rogue Wave Software
12© 2018 Rogue Wave Software, Inc. All Rights Reserved.
“We help software eat the world faster”
• Our Mission: We simplify complex software development, improve
application quality and security, and shorten cycle times.
• Founded in 1989
• Global company, headquartered in Louisville, CO.
– 400 employees, 13 offices worldwide, 53 patents.
• Our customers:
– Automotive Software Development
– Military and Aerospace
– Medical Devices and Software
– Embedded Software
– Mobile and Communications
– Game Development
11
12
![Page 7: Agenda - STPCon · What about this Docker thing? •Containerization software •Uses resource isolation features of Linux in order to allow isolated OS's to run on a single machine](https://reader034.vdocuments.us/reader034/viewer/2022042219/5ec5ad88e46f8c3c8073d546/html5/thumbnails/7.jpg)
3/25/2019
7
13© 2018 Rogue Wave Software, Inc. All Rights Reserved.
Rogue Wave Customers
We ensure the most critical and complex aspects of the entire software
lifecycle to support strategic business goals while minimizing risk.
14© 2018 Rogue Wave Software, Inc. All Rights Reserved.
• Continuous Static Code Analysis• Find defects early!• Web-based portal for reporting and analyzing results• Ability to be built into your Continuous Integration process• Very popular with mission critical industries• Allows customers to meet industry standards
13
14
![Page 8: Agenda - STPCon · What about this Docker thing? •Containerization software •Uses resource isolation features of Linux in order to allow isolated OS's to run on a single machine](https://reader034.vdocuments.us/reader034/viewer/2022042219/5ec5ad88e46f8c3c8073d546/html5/thumbnails/8.jpg)
3/25/2019
8
15© 2018 Rogue Wave Software, Inc. All Rights Reserved.
The Problem
16© 2018 Rogue Wave Software, Inc. All Rights Reserved.
Testing at scale
Requirements
• Reliable, repeatable and timely test results
• Easy to reproduce/verify test results with high level of confidence
• Scalable
• Highly dynamic
• Easy to maintain
15
16
![Page 9: Agenda - STPCon · What about this Docker thing? •Containerization software •Uses resource isolation features of Linux in order to allow isolated OS's to run on a single machine](https://reader034.vdocuments.us/reader034/viewer/2022042219/5ec5ad88e46f8c3c8073d546/html5/thumbnails/9.jpg)
3/25/2019
9
17© 2018 Rogue Wave Software, Inc. All Rights Reserved.
The Challenge
18© 2018 Rogue Wave Software, Inc. All Rights Reserved.
The early beginnings
• Test Lab filled with physical machines
• Maintenance nightmare
• Every machine is slightly different
–Hard to replicate and pin down test failure causes
• “Dirty” environment
• Long execution time (18 hours per machine per run)
Let’s get physical!
17
18
![Page 10: Agenda - STPCon · What about this Docker thing? •Containerization software •Uses resource isolation features of Linux in order to allow isolated OS's to run on a single machine](https://reader034.vdocuments.us/reader034/viewer/2022042219/5ec5ad88e46f8c3c8073d546/html5/thumbnails/10.jpg)
3/25/2019
10
19© 2018 Rogue Wave Software, Inc. All Rights Reserved.
Evolution started…
• VMWare and Jenkins
• Easier to maintain
• Pooled resources
• Template functionality helps with machine continuity
Virtually first steps!
20© 2018 Rogue Wave Software, Inc. All Rights Reserved.
Stunted growth…
• Limited scalability with VMs
– "We're giving her all she's got!"
• "Dirty" machines
• Test all the things!!
The terrible twos
19
20
![Page 11: Agenda - STPCon · What about this Docker thing? •Containerization software •Uses resource isolation features of Linux in order to allow isolated OS's to run on a single machine](https://reader034.vdocuments.us/reader034/viewer/2022042219/5ec5ad88e46f8c3c8073d546/html5/thumbnails/11.jpg)
3/25/2019
11
21© 2018 Rogue Wave Software, Inc. All Rights Reserved.
What about this Docker thing?
• Containerization software
• Uses resource isolation features of Linux in order to allow
isolated OS's to run on a single machine at once.
• Unlike VMs, Docker containers share the host OS kernel.
(Lightweight)
• Capture, store and replicate OS state
• Images and containers and Dockerfiles! Oh, my!
Docker 101
22© 2018 Rogue Wave Software, Inc. All Rights Reserved.
What about this Docker thing?
• Images to share with testers and developers
• Clean machine image for every test execution
• Reliable, repeatable results
• More scalability
The good!☺
21
22
![Page 12: Agenda - STPCon · What about this Docker thing? •Containerization software •Uses resource isolation features of Linux in order to allow isolated OS's to run on a single machine](https://reader034.vdocuments.us/reader034/viewer/2022042219/5ec5ad88e46f8c3c8073d546/html5/thumbnails/12.jpg)
3/25/2019
12
23© 2018 Rogue Wave Software, Inc. All Rights Reserved.
What about this Docker thing?
• Scalable to a point, limited # of hosts
–CPU thermal throttling
–Hardware degradation
• Environment overhead (Mesos)
The not so good☹
24© 2018 Rogue Wave Software, Inc. All Rights Reserved.
What about this Docker thing?
• How can we reap the benefits of the system and make it
scalable?
• And remember, TEST ALL THE THINGS!!!
But this Docker shows a LOT of promise!
23
24
![Page 13: Agenda - STPCon · What about this Docker thing? •Containerization software •Uses resource isolation features of Linux in order to allow isolated OS's to run on a single machine](https://reader034.vdocuments.us/reader034/viewer/2022042219/5ec5ad88e46f8c3c8073d546/html5/thumbnails/13.jpg)
3/25/2019
13
25© 2018 Rogue Wave Software, Inc. All Rights Reserved.
The Solution Future!
26© 2018 Rogue Wave Software, Inc. All Rights Reserved.
Introducing AWS
• Essentially unlimited resources
• Very scalable
• No more hardware woes
• On-demand resources
• Tools
– So many tools…
Resources as far as the eye can see…
25
26
![Page 14: Agenda - STPCon · What about this Docker thing? •Containerization software •Uses resource isolation features of Linux in order to allow isolated OS's to run on a single machine](https://reader034.vdocuments.us/reader034/viewer/2022042219/5ec5ad88e46f8c3c8073d546/html5/thumbnails/14.jpg)
3/25/2019
14
27© 2018 Rogue Wave Software, Inc. All Rights Reserved.
Amazon Elastic Compute
• Amazon Machine Images
• Preconfigured services, service optimized images or a blank canvas
• Elastic Container Service optimized AMIs
Turning dreams into reality!
28© 2018 Rogue Wave Software, Inc. All Rights Reserved.
Amazon Elastic Container Registry (ECR)
• Docker container registry for storage and deployment
• Used everywhere in our build and test automation
• Images updated nightly with latest build
• Allows developers and testers to use the same images
used in building and testing
Essential part of our infrastructure!
27
28
![Page 15: Agenda - STPCon · What about this Docker thing? •Containerization software •Uses resource isolation features of Linux in order to allow isolated OS's to run on a single machine](https://reader034.vdocuments.us/reader034/viewer/2022042219/5ec5ad88e46f8c3c8073d546/html5/thumbnails/15.jpg)
3/25/2019
15
29© 2018 Rogue Wave Software, Inc. All Rights Reserved.
Amazon Elastic Container Registry (ECR)
30© 2018 Rogue Wave Software, Inc. All Rights Reserved.
Amazon Elastic Container Registry (ECR)
29
30
![Page 16: Agenda - STPCon · What about this Docker thing? •Containerization software •Uses resource isolation features of Linux in order to allow isolated OS's to run on a single machine](https://reader034.vdocuments.us/reader034/viewer/2022042219/5ec5ad88e46f8c3c8073d546/html5/thumbnails/16.jpg)
3/25/2019
16
31© 2018 Rogue Wave Software, Inc. All Rights Reserved.
Amazon Elastic Container Registry (ECR)
echo "Logging in to docker registry..."
export AWS_ACCESS_KEY_ID=<key>
export AWS_SECRET_ACCESS_KEY=<key>
export AWS_DEFAULT_REGION=<region>
/usr/local/bin/aws ecr get-login --no-include-email --region <region>
environment="-e SUITE_NAME=$SUITE_NAME -e RELEASE=$RELEASE -e USE_COMPILER=$CC \
–e release=$RELEASE -v /sharedbuild:/sharedbuild -p 8080:8080 \
--entrypoint /sharedbuild/utils/run_scripts.sh "
docker pull <ecr-url>.amazonaws.com/$image:$build_type #For example: ubuntu18:nightly
docker run -i $environment <ecr-url>.amazonaws.com/$image:$build_type
Accessing ECR images from our Jenkins test jobs
32© 2018 Rogue Wave Software, Inc. All Rights Reserved.
AWS Tips
31
32
![Page 17: Agenda - STPCon · What about this Docker thing? •Containerization software •Uses resource isolation features of Linux in order to allow isolated OS's to run on a single machine](https://reader034.vdocuments.us/reader034/viewer/2022042219/5ec5ad88e46f8c3c8073d546/html5/thumbnails/17.jpg)
3/25/2019
17
33© 2018 Rogue Wave Software, Inc. All Rights Reserved.
Mind the firehose!
• Start small and work your way up.
• Sometimes it's better to stay lightweight
• AWS offers a lot of tools, all great under the right
application, but some more cumbersome than needed
AWS Offers many services
34© 2018 Rogue Wave Software, Inc. All Rights Reserved.
Keep a good balance of AMIs
• Avoid homebrew AMIs as much as possible
• Use out-of-the-box solutions for parts of the framework
you don't want to maintain
• Instance snapshots are an acceptable substitute for
docker
Don't spend more time than necessary
33
34
![Page 18: Agenda - STPCon · What about this Docker thing? •Containerization software •Uses resource isolation features of Linux in order to allow isolated OS's to run on a single machine](https://reader034.vdocuments.us/reader034/viewer/2022042219/5ec5ad88e46f8c3c8073d546/html5/thumbnails/18.jpg)
3/25/2019
18
35© 2018 Rogue Wave Software, Inc. All Rights Reserved.
Instance type selection is important
• Use appropriate application types
• Conduct experiments to find the best size for you
• Process intensive applications benefit from higher core
count
Cheaper is not always cheaper
36© 2018 Rogue Wave Software, Inc. All Rights Reserved.
Cattle not pets
• Use portable initialize scripts as much as possible to
keep agile
• Always think in terms of scale
What's good for one is good for all
35
36
![Page 19: Agenda - STPCon · What about this Docker thing? •Containerization software •Uses resource isolation features of Linux in order to allow isolated OS's to run on a single machine](https://reader034.vdocuments.us/reader034/viewer/2022042219/5ec5ad88e46f8c3c8073d546/html5/thumbnails/19.jpg)
3/25/2019
19
37© 2018 Rogue Wave Software, Inc. All Rights Reserved.
Shepherd your flock
• What goes up must come down
• Minimize idle uptime but maximize usage of AWS hourly
cycle
• Mistakes can be costly
Management of your resources
38© 2018 Rogue Wave Software, Inc. All Rights Reserved.
Be prepared to maintain two systems
• Some legacy hardware may remain
• AWS only offers Linux and Windows Server AMIs
• AWS OVA to AMI Service
• AWS File Syncs
Some tasks are just not possible...
37
38
![Page 20: Agenda - STPCon · What about this Docker thing? •Containerization software •Uses resource isolation features of Linux in order to allow isolated OS's to run on a single machine](https://reader034.vdocuments.us/reader034/viewer/2022042219/5ec5ad88e46f8c3c8073d546/html5/thumbnails/20.jpg)
3/25/2019
20
39© 2018 Rogue Wave Software, Inc. All Rights Reserved.
Jenkins Plugins
40© 2018 Rogue Wave Software, Inc. All Rights Reserved.
Jenkins Matrix Project Plugin
• The Configuration Matrix allows users create a multiple-
axis graph of the configurations to run
• In other words, "Run each of these test suites on each of
these platforms with each of these modes"
• Filters can be set to prevent some configs from running
Makes our testing possible
39
40
![Page 21: Agenda - STPCon · What about this Docker thing? •Containerization software •Uses resource isolation features of Linux in order to allow isolated OS's to run on a single machine](https://reader034.vdocuments.us/reader034/viewer/2022042219/5ec5ad88e46f8c3c8073d546/html5/thumbnails/21.jpg)
3/25/2019
21
41© 2018 Rogue Wave Software, Inc. All Rights Reserved.
Jenkins Matrix Project Plugin
All tests passed
Some tests failed
Failure within the configuration
Not run
42© 2018 Rogue Wave Software, Inc. All Rights Reserved.
Jenkins Matrix Project Plugin
41
42
![Page 22: Agenda - STPCon · What about this Docker thing? •Containerization software •Uses resource isolation features of Linux in order to allow isolated OS's to run on a single machine](https://reader034.vdocuments.us/reader034/viewer/2022042219/5ec5ad88e46f8c3c8073d546/html5/thumbnails/22.jpg)
3/25/2019
22
43© 2018 Rogue Wave Software, Inc. All Rights Reserved.
Matrix Combinations Parameter Plugin
44© 2018 Rogue Wave Software, Inc. All Rights Reserved.
Matrix Combinations Parameter Plugin
43
44
![Page 23: Agenda - STPCon · What about this Docker thing? •Containerization software •Uses resource isolation features of Linux in order to allow isolated OS's to run on a single machine](https://reader034.vdocuments.us/reader034/viewer/2022042219/5ec5ad88e46f8c3c8073d546/html5/thumbnails/23.jpg)
3/25/2019
23
45© 2018 Rogue Wave Software, Inc. All Rights Reserved.
EC2 Plugin
46© 2018 Rogue Wave Software, Inc. All Rights Reserved.
EC2 Plugin
45
46
![Page 24: Agenda - STPCon · What about this Docker thing? •Containerization software •Uses resource isolation features of Linux in order to allow isolated OS's to run on a single machine](https://reader034.vdocuments.us/reader034/viewer/2022042219/5ec5ad88e46f8c3c8073d546/html5/thumbnails/24.jpg)
3/25/2019
24
47© 2018 Rogue Wave Software, Inc. All Rights Reserved.
What’s Next
48© 2018 Rogue Wave Software, Inc. All Rights Reserved.
AWS is much more
• AWS offers enough services to allow for full system
migration
• Can be used for more than just development and R&D
• Marketing, customer services, support and interactions
This is just the tip of the iceberg
47
48
![Page 25: Agenda - STPCon · What about this Docker thing? •Containerization software •Uses resource isolation features of Linux in order to allow isolated OS's to run on a single machine](https://reader034.vdocuments.us/reader034/viewer/2022042219/5ec5ad88e46f8c3c8073d546/html5/thumbnails/25.jpg)
3/25/2019
25
49© 2018 Rogue Wave Software, Inc. All Rights Reserved.
More OS Support?
• OSX Support
• AIX and Solaris
• “Delayed” Windows releases
The selection is great, but could be better
50© 2018 Rogue Wave Software, Inc. All Rights Reserved.
Closing Thoughts
49
50
![Page 26: Agenda - STPCon · What about this Docker thing? •Containerization software •Uses resource isolation features of Linux in order to allow isolated OS's to run on a single machine](https://reader034.vdocuments.us/reader034/viewer/2022042219/5ec5ad88e46f8c3c8073d546/html5/thumbnails/26.jpg)
3/25/2019
26
51© 2018 Rogue Wave Software, Inc. All Rights Reserved.
Closing Thoughts
• Invest in your automation infrastructure
• Look for opportunities to evolve
• "There's a plugin for that"
• AWS does cost $$$
Always be improving
52© 2018 Rogue Wave Software, Inc. All Rights Reserved.
Questions?
51
52
![Page 27: Agenda - STPCon · What about this Docker thing? •Containerization software •Uses resource isolation features of Linux in order to allow isolated OS's to run on a single machine](https://reader034.vdocuments.us/reader034/viewer/2022042219/5ec5ad88e46f8c3c8073d546/html5/thumbnails/27.jpg)
3/25/2019
27
53© 2018 Rogue Wave Software, Inc. All Rights Reserved.
Contact Us!
• Scott Mills
– Twitter: @ScoringHen
– LinkedIn: Look for Ottawa Scott, not the DJ in the UK.
• Andrei Juc
– Twitter: @Andrei_Juc
54© 2018 Rogue Wave Software, Inc. All Rights Reserved.
53
54