I had a great audience at the Illinois Java Uses Group at Nielsen in Schaumburg for this presentation. It is about Tvarit, a maven plugin that can fit nicely in a continuous delivery pipeline for the AWS platform. Feedback, comments and questions are all very welcome! Thank you.
Source and instruction are on github: https://github.com/sdole/tvarit-maven
2. About me
▪ AWS Certified Solutions Architect
▪ Independent AWS Consultant – Genvega Inc.
▪ Trelair.com – now defunct startup
▪ www.cricclubs.com – ½ million+ page views per month
▪ Backup & Archival on S3 – project for law firm
▪ EC2 automation for image processing
▪ Available for AWS consulting – find me: www.genvega.com
3. About CricClubs (My customer)
30th Jan
2016
@2015 CRICCLUBS.COM | www.cricclubs,.com | CONFIDENTIAL 3
Started in
2008
Geographic Usage
20+ Countries
600+ Leagues 100,000+
Players
Headquarters
Milwaukee, WI,
USA
Features
50+ features on
Website and iOS,
Android, Windows
Mobile Apps
Premium Support
24/7 via E-mail, Phone and
Ticketing Systems
Data Centers
High Availability with
servers across 12 Data
Centers
4 million pageviews/month
4. About you?
▪ Have day to day AWS experience?
▪ Have personal projects on AWS?
▪ Want a good introduction to DevOps & AWS?
11. Trelair Automation
GitCommit
• Teamcity
• JBoss
DMR
Auto-
Deploy
Selenium
Test &
Release
DevOps + 0 person hours
Custom Maven Plugin
Used AWS Java SDK
AMI DML/DDL DNS Snapshots Scaling
Auto
12. Automated Flow
A. Commit Code (the only manual step)
B. CI build
C. DB DML patches are applied to replica
D. Deploy code to candidate server
E. UI tests run
F. DML patches applied to production
G. Candidate server is added to cluster
H. Old servers are terminated
13. AWS API
us - east
AWS Java
SDK
JBoss DMR Wildfly AS
Provision
Deploy
14. Lessons
▪ Automation is easy – mindset is difficult
▪ Better to automate in small increments – big bang is a waste
▪ Automate everything – partial automation is overhead
▪ Release frequently – rely on automation
▪ Use selenium automation (e.g. saucelabs.com)
▪ Rely on AWS products
18. API structure
▪ Many flavors – Java, C++, JS, Ruby, Python, CLI etc.
▪ APIs are RESTful
▪ Deep documentation
19. API Structure
AmazonEc2Client ec2 =
new AmazonEc2Client(new BasicAwsCredentials());
SomeEc2Request req = new SomeEc2Request();
req.withSomething(thing1).withSomething(attr1);
SomeEc2Result result = ec2.submitRequest(req);
inspectWithYourLogic(result);
20. Automation Security - Individuals
IAM
us - east
us - west
Access
Keys
groups
users
roles
Authorized
21. Automation Security - Services
IAM
Other
services
Other
services
ec2
lambda
S3
Assumed
Role
Authorized
27. Tvarit Release concept (future)
ELB
ELB
Router
App Versions
Router: routes customers based on Http Headers to correct app version
28. Step Back – what is (not) DevOps?
Is…
Infrastructure as code
Not…
Auto-scale, failover, monitoring
Continuous delivery
Dedicated teams, Dev, Test, Ops
Forms, Emails, Release plans
Infrastructure Architects/EA
29. Soft side of DevOps
▪ Cloud-native vs Lift ‘n shift
▪ CALMS
▪ C – Culture
▪ A – Automation
▪ L – Lean
▪ M – Measurement
▪ S – Sharing
▪ Automation as Kaizen – not a single project
30. Costs of AWS Automation
▪ In most cases – FREE
▪ Priced as usual: Compute, Storage, Monitoring, Network
▪ Monitoring is a must
▪ CPU, Memory, Network, Disk…
▪ Health checks, failed hardware, traffic spikes
▪ Audit trail – API actions, modifications
▪ Configuration changes
31. How to improve Tvarit
▪ Open an Issue on GitHub:
“We use a customized version of tomcat – can you make the
app server container configurable so we can use our own?”
Fork it on GitHub and DIY
Email me
32. Other things
▪ Chef, Puppet, Ansible, SaltStack
▪ AWS OpsWorks, Beanstalk
▪ AWS CodeCommit, CodeDeploy
33.
34. How to find me
@sdoledotcom
https://linkedin.com/in/sdole
sdole@genvega.com
http://genvega.com/blog/
https://github.com/sdole/
Revisit the person year calculations. Annotate how I arrived at that number
FTE: 4 person dev team, 2 person test, 1 PM, 1 Manager, 1 sys ops, 1 dba, 2 other (purchasing, shipping, building, land, security) : total 12
Code commit, deploy and pipeline was released in Nov 2014
Rely on AWS – don’t write stuff that AWS already provides such as transcoding, RDS, S3 etc
Run the make infra
Show cloudformation stack progress
Filter on new vpc, show subnets,
Copy role names
Run the make asg
Show cloudformation stack progress
Show autoscaling group
Run new instance