Posts

2025 Spring CS686 DevOps - Final Project

 Final Project Overview -make MSA service -use EKS -Automate -deploy blue-green strategy  -deployment flow : Nightly Build -> QA -> UAT -> Prod  Steps 1. Make MSA codes  Dismantled existing code into three services - backend1, backend2, and frontend 2. By Git Action test and deploy Made GitAction Workflow('Nightly-Build') to start temporary EC2 and test(smoke-test) the code. Used dockers to run three different services and tested if it works. 3. Deploy to QA Server Using GitAction, deployed it on QA server(single EC2 server). Now we can see it at IP address of EC2 instance.  4. Make EKS Cluster and Deploy Blue Service of UAT  Make VPC and EKS Cluster.  Make Node Group. Need to use good enough instance.  Using Git Action and yaml file from Infra repo, apply configuration to running pods on EKS.  Now your microservice is deployed on EKS and you can access it through url.  5. Switch it to Green Service of UAT  Deployment of Gr...

Bonus Assignment for Midterm Exam of Spring 2025 DevOps Class

Image
1. Tech Stack Used : Git Action, npm[Semantic Release], maven, react, springboot, docker, AWS[EC2, RDS, Route53, ECR] 2. Repository :          -Source repo : contains FrontEnd and BackEnd Code. Added release.yml so it could do tagging with Semantic Release.          -Infra repo : contains Git Action Workflow scripts. I added “Promotion.yml” script so triggered script could pull latest docker image and deploy it on RC server.  3. Work Flow :         -source repo has a workflow that releases tag in commits by semantic release         -once the release tag is created, it will kick off a promotion workflow in the infra repo         -workflow in infra repo(promotion.yml) will pull docker image and run it on pre-installed EC2         -pre-in...

CICD Pipeline - Midterm Exam of Spring 2025 DevOps Class

Image
  Introduction  This project was making CICD pipeline with Git Action, Docker, EC2, RDS, ECR, and Route53. I used my side project Jake (Social Media platform for international students) as source code. The flow of CI/CD pipeline goes like below. Source Repo contains Dockerfile and Docker-Compose.yml. It needs to run locally without any error. Infra Repo contains GitAction workflow codes. This triggers launching a temporary EC2 and fetch codes from source repo. It builds docker files and conducts smoke test. If smoke test succeeds, it pushes docker image to ECR, and it is deployed in EC2 as a QA Server. Route 53 directs IP address to domain name. The Issue  There were many issues and errors while building the CI/CD pipeline.  Source Repo Local test CORS Error : Connecting FrontEnd and BackEnd caused CORS error, which is not letting other origin use same address. To fix it, I used Reverse Proxy by Nginx, and added annotation in SpringBoot controller(@CrossOrigin)....

Open Source Project - Open Energy Dashboard

Image
  Open Source Project - Open Energy Dashboard Introduction  During last 4 weeks our CTI team (Hyunoh, Abas, Ezequiel, and Mon) worked on Open Energy Dashboard open-source project. Open Energy Dashboard(OED) is a project where it is used as an energy dashboard so that all the users can manage the energy usage of their worksite. ( link ) The Issue  We as a team coded a line group reading test case(c11) in JavaScript and TypeScript using Docker and Visual Studio Code, ensuring values are read correctly to reflect 14 days giving hourly point and middle readings. ( Link )   Test cases are important to enhance accuracy of a software. By writing and updating test case, we estimate we improved test coverage by 30% and enhanced data accuracy by 25% in a Dockerized environment, ensuring seamless integration and reliable energy value processing.  To resolve the issue, our team 1. looked up for development document,  2.starting Docker and activate web and database...

Midterm exam2 for Discrete Math

  Topics for Midterm Exam 2 Midterm Exam 2 covers the material that we learned from Chapters 4, 6, and 7 of the textbook. This includes Sections 4.1-4.6, 6.1-6.2, 6.7-6.9, and 7.1-7.3. Topics from Chapter 4: Functions: domain, target, range Arrow diagrams Floor and ceiling functions Injective, surjective, and bijective functions Inverses of functions Composition of functions Logarithms and exponents (but mainly logarithms) Topics from Chapter 6: Binary relations on a set Examples of binary relations on graphs and trees Representing binary relations with arrow diagrams and matrices Properties of binary relations: reflexive, anti-reflexive, neither; symmetric, anti-symmetric, neither; transitive or not Order relations: partial vs. total, strict vs. non-strict Equivalence relations and equivalence classes Proving that a relation is (or is not) an order relation or an equivalence relation Topics from Chapter 7: Asymptotic growth: f is O(g), f is Ω(g), f is Θ(g) Given a complicated...

Midterm Exam Contents for CS601 Principles of Software Development

[What I learned for half of my Semester] Aug 20th - Software Development Lifecycle Model (Waterfall, Spiral Model, Agile) Aug 22th - Agile - inspired SLDC models(Scrum, XP, TDD, Kansan, User Story, Use Case). User Requirements. OOP Design principles(Abstraction, Encapsulation, Inheritance, Polymorphism). Aug 27th - Immutability, Design Principles Content. Json Files. How to read Json Files?  How to make a class immutable?  Aug 29th - Data Structure Review(Array, ArrayList, Set, Map), Interfaces How interface is different from abstract method?  Aug 30th - Comparable / Comparator Interfaces  Sep 3rd - Iterable / Iterator. Sealed Interfaces  Sep 5th - Polymorphism, Dependency Injection. Composition. Inheritance Sep 10th - Inheritance Cont(Static Methods, instance of). Abstract Class.  When is downcast used?  Sep 12th - Liskov Substitution principle. Abstract classes cont. Nested Classes(Inner class, Static Nested Class, Anonymous Inner Class)  Sep 17...

Singleton Pattern

package designPatterns.creatingObjects.singleton; /** A good implementation of a Singleton pattern. * This implementation is thread-safe. * See other implementations in lecture slides. * From Joshua Bolch, Effective Java. * */ public class Singleton { private static Singleton instance = new Singleton(); // created when the class is loaded /** * Constructor is made private so that client cannot create instances */ private Singleton () {} /** No synchronization needed, since instance exists, so all threads are just reading * * @return instance of singleton */ public static Singleton getInstance () { return instance ; } } package designPatterns.creatingObjects.singleton; public class Driver { public static void main (String[] args) { Singleton s1 = Singleton. getInstance (); Singleton s2 = Singleton. getInstance (); System. out .println(s1 == s2); } }