GithubHelp home page GithubHelp logo

joydsouza / aws-jenkins-study Goto Github PK

View Code? Open in Web Editor NEW

This project forked from dennyzhang/challenges-cloudformation-jenkins

0.0 2.0 0.0 1.21 MB

:school: Case study using AWS techstack to setup Jenkins env

Home Page: https://www.dennyzhang.com/battle

Shell 100.00%

aws-jenkins-study's Introduction

aws-jenkins-study

Build Status PRs Welcome

LinkedIn Slack Github

File me tickets or star the repo.

Table of Contents

Case study using AWS techstack to setup Jenkins env

Scenarios

Scenario-101: Docker Single-Node Jenkins Deployment I

  • 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

Scenario-102: Docker Single-Node Jenkins Deployment II

  • 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.

Scenario-201: VM Single-Node Jenkins Deployment I

  • 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

Scenario-202: VM Single-Node Jenkins Deployment II

  • 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

Scenario-301: VM 2-Nodes Jenkins Deployment I

  • 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?

Scenario-302: VM 2-Nodes Jenkins Deployment II

  • 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

Scenario-401: ECS Jenkins Deployment I

  • 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

Scenario-402: ECS Jenkins Deployment II

  • 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?

Follow Up

  • 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

License

aws-jenkins-study's People

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.