Coder Social home page Coder Social logo

grilla99 / enimapod Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 61.8 MB

A multi tier web application deployed on AWS using Terraform and CircleCI.

License: GNU General Public License v2.0

Dockerfile 0.08% HTML 0.76% CSS 0.07% Java 1.85% HCL 1.61% JavaScript 95.60% Shell 0.04%

enimapod's Introduction

enimapod

Architecture Diagram

Screenshot 2022-12-13 at 14 32 17

Purpose

  • To improve our AWS knowledge and Terraform writing skills using modules
  • Gain a broader insight into components of a cloud native web application, interacting with all sections to understand how components fit together.
  • Improve architectural design skills and security considerations of apps in the cloud.

What was built

  • Multi-tier web Application
  • Front end technologies:
    • HTML, CSS, JS, Nginx
  • API written using Java with Spring Boot
  • Backend used MySQL Hosted in RDS
    • 3 tables consisting of a 1 to many and 1 to 1 relationship.
  • Using Terraform for deployment of all necessary infrastructure.
  • CircleCI pipeline that runs the TF build and building / deployment of docker containers automatically on merging to master.

Method

  • Created an initial 3 sprints worth of tickets using Jira and assign them to the 2 team members
  • Refined these tickets as we discovered more about the architecture and requirements
  • Documenting development steps and build processes using a Confluence page for smoother testing and picking up others work as and where was necessary.
  • Reviewing architecture diagram and tickets at each sprint and refinwing these as necessary.

Learning Takeaways

During the build of this project we've had the chance to try out many new technologies that we'd never used previously including:

  • Spring Boot and Java
  • Nginx
  • Docker
  • AWS: Secrets Manager, RDS, ECS, ECR, R53
  • CircleCI

New Concepts:

  • Build pipelines
  • Automated testing with build pipelines
  • Creating a cloud native app
  • Database administration (Schema design, provisioning infrastructure)
  • Terraform Modules to keep the primary main.tf clear and concise

Soft Skills:

  • Develop approaches to learning new technologies
  • Problem decomposition
    • Breaking down an unknown task of 'a cloud native web app' into reasonable logical steps and then executing it.
  • Iterative Development Process
  • Take charge of sprint planning and documenting processes using Confluence

Improvements for next time:

  • Architectural Design
    • Put all ECS tasks inside of the private subnet and use an API gateway to route requests to this. NAT gateway would be required also for updates.
  • Spend less time on problems before asking for help, whilst it allowed for a lot of learning it was sometimes to excessive detriment to development time.

enimapod's People

Contributors

grilla99 avatar aidan-sweeney avatar

Stargazers

 avatar

Watchers

 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.