File me tickets or star the repo.
- aws-jenkins-study
- Scenarios
- Scenario-101: Docker Single-Node Jenkins Deployment I
- Scenario-102: Docker Single-Node Jenkins Deployment II
- Scenario-201: VM Single-Node Jenkins Deployment I
- Scenario-202: VM Single-Node Jenkins Deployment II
- Scenario-301: VM 2-Nodes Jenkins Deployment I
- Scenario-302: VM 2-Nodes Jenkins Deployment II
- Scenario-401: ECS Jenkins Deployment I
- Scenario-402: ECS Jenkins Deployment II
- Follow Up
- License
Case study using AWS techstack to setup Jenkins env
- Objective: Deploy Docker container in AWS
- Requirements:
1. Start an EC2 instance by cloudformation
2. Provision the instance as docker daemon
3. Setup Jenkins container inside the instance
- Main Tech: Cloudformation, Docker
- See more: Scenario-101
- Objective: Customize Jenkins docker deployment in AWS
- Requirements:
1. Finish Scenario-101, create a jenkins user by code.
2. Anonymous user can't open the jenkins. Only login user can.
3. When Jenkins is down, get alerts
4. Make sure Jenkins GUI changes can be seamless tracked in git repo.
- Main Tech: Cloudformation, Docker
- See more: Scenario-102
- Objective: We need a live Jenkins env in public Cloud. Fast and easy.
- Requirements:
1. Use cloudformation to start an EC2 instance
2. Start Jenkins inside the EC2 instance
- Main Tech: Cloudformation, Chef
- See more: Scenario-201
- Objective: Customize Jenkins docker deployment in AWS
- Requirements:
1. Finish Scenario-201, create a jenkins user by code.
2. Anonymous user can't open the jenkins. Only login user can.
3. When Jenkins is down, get slack notification
4. Make sure Jenkins GUI changes can be seamless tracked in git repo.
- Main Tech: Cloudformation, Chef, VPC, CloudWatch
- See more: Scenario-202
- TODO
- Objective: Avoid SPOF by adding 2 Jenkins instance
- Requirements:
1. Start 2 Jenkins instance behind one ALB
2. Enable autoscaling with minimum instance 2 and max 4.
- Main Tech: Cloudformation, Chef, VPC, CloudWatch, Jenkins Slack Integration, ALB
- See more: Scenario-301
- TODO
- TODO: how the 2 Jenkins instance gonna to coordinate with each other?
- Objective: Jenkins cluster deployment
- Requirements:
1. Start 1 jenkins master and 1 jenkins slave
2. Enable auto-scaling
3. Customized VPC to allow limited network access
- Main Tech: Cloudformation, Chef, VPC, CloudWatch, EBS, Jenkins Slack Integration, ALB
- See more: Scenario-302
- TODO
- Objective: Get exposed to docker orchestration service.
- Requirements:
1. Start ECS with 1 node
2. Install a single Jenkins instance
- Main Tech: Cloudformation, ECS, EBS
- See more: Scenario-401
- TODO
- Objective: Deploy a 2-nodes Jenkins cluster
- Requirements:
1. Start ECS with 2 node
2. Start Jenkins service with 2 instances managed by ECS
3. Enable ALB for two Jenkins instances
- Main Tech: Cloudformation, ECS, ELB, CloudWatch, ALB
- See more: Scenario-402
- TODO
- TODO: How to avoid Jenkins SPOF, theoretically speaking?
- Principle:
1. Fully automated
2. Improve HA
- Future Improvements:
- TODO: What about backup, and Jenkins two-way sync
- TODO: HA jenkins env
- TODO: How to test customization: multiple kitchen
- More Resources:
https://github.com/awslabs/startup-kit-templates
https://github.com/awslabs
- Code is licensed under MIT License.