Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

점진적인 레거시 웹 애플리케이션 개선 과정

11,363 views

Published on

지난 1년 6개월간 배민찬 레거시 시스템을 개선하는 과정에서 주어졌던 고민거리 생각했던 아이디어 만들었던 결과물을 공유합니다.

Published in: Software
  • My personal experience with research paper writing services was highly positive. I sent a request to ⇒ www.WritePaper.info ⇐ and found a writer within a few minutes. Because I had to move house and I literally didn’t have any time to sit on a computer for many hours every evening. Thankfully, the writer I chose followed my instructions to the letter. I know we can all write essays ourselves. For those in the same situation I was in, I recommend ⇒ www.WritePaper.info ⇐.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Hi there! I just wanted to share a list of sites that helped me a lot during my studies: .................................................................................................................................... www.EssayWrite.best - Write an essay .................................................................................................................................... www.LitReview.xyz - Summary of books .................................................................................................................................... www.Coursework.best - Online coursework .................................................................................................................................... www.Dissertations.me - proquest dissertations .................................................................................................................................... www.ReMovie.club - Movies reviews .................................................................................................................................... www.WebSlides.vip - Best powerpoint presentations .................................................................................................................................... www.WritePaper.info - Write a research paper .................................................................................................................................... www.EddyHelp.com - Homework help online .................................................................................................................................... www.MyResumeHelp.net - Professional resume writing service .................................................................................................................................. www.HelpWriting.net - Help with writing any papers ......................................................................................................................................... Save so as not to lose
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://soo.gd/qURD } ......................................................................................................................... Download Full EPUB Ebook here { https://soo.gd/qURD } ......................................................................................................................... Download Full doc Ebook here { https://soo.gd/qURD } ......................................................................................................................... Download PDF EBOOK here { https://soo.gd/qURD } ......................................................................................................................... Download EPUB Ebook here { https://soo.gd/qURD } ......................................................................................................................... Download doc Ebook here { https://soo.gd/qURD } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book THIS can be read by using a personal computer or by using an eBook reader. (An eBook reader can be a software application for use on a computer such as Microsoft's free Reader application, or a book-sized computer THIS is used solely as a reading device such as Nuvomedia's Rocket eBook.) Users can purchase an eBook on diskette or CD, but the most popular method of getting an eBook is to purchase a downloadable file of the eBook (or other reading material) from a Web site (such as Barnes and Noble) to be read from the user's computer or reading device. Generally, an eBook can be downloaded in five minutes or less ......................................................................................................................... .............. Browse by Genre Available eBooks .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, ......................................................................................................................... ......................................................................................................................... .....BEST SELLER FOR EBOOK RECOMMEND............................................................. ......................................................................................................................... Blowout: Corrupted Democracy, Rogue State Russia, and the Richest, Most Destructive Industry on Earth,-- The Ride of a Lifetime: Lessons Learned from 15 Years as CEO of the Walt Disney Company,-- Call Sign Chaos: Learning to Lead,-- StrengthsFinder 2.0,-- Stillness Is the Key,-- She Said: Breaking the Sexual Harassment Story THIS Helped Ignite a Movement,-- Atomic Habits: An Easy & Proven Way to Build Good Habits & Break Bad Ones,-- Everything Is Figureoutable,-- What It Takes: Lessons in the Pursuit of Excellence,-- Rich Dad Poor Dad: What the Rich Teach Their Kids About Money THIS the Poor and Middle Class Do Not!,-- The Total Money Makeover: Classic Edition: A Proven Plan for Financial Fitness,-- Shut Up and Listen!: Hard Business Truths THIS Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

점진적인 레거시 웹 애플리케이션 개선 과정

  1. 1. ✔ ✔ (customizing) ✔ , 5 ✔ (Amazon Web Service)
  2. 2. legacy.php { HTML += CSS += JAVASCRIPT += PHP += SQL }
  3. 3. STRANGLER FACADE LEGACY MODERN STRANGLER FACADE MODERN LEGACY MODERN STRANGLER FACADE
  4. 4. 
   Backend Frontend
  5. 5. Embedded servlet containers(undertow.io) jOOQ 3.xSpring MVC 4.x Spring Boot 1.5.x, Spring Framework 4.x, Spring Cloud AWS 1.2.x  BackendAWS Elastic Beanstalk / JVM(Java 1.8) Presentation Application Business (Domain) Data Access
  6. 6.  Backend Frontend 
 
  7. 7. 
   Backend Frontend
  8. 8. RPC Stub RPC Server SHARED LIBRARY
  9. 9. HTTP Client HTTP Server - (RESOURCE) - URI - (Verb) - HTTP Method - (Representations)
  10. 10. TWELVE-FACTOR APP METHODOLOGY
  11. 11. . . . . , , . (Codebase): . (Dependencies): . (Config): . (Backing services): . , , (Build, Release, Run): , . (Processes): . (Port binding): . (Concurrency): . (Disposability): . / (Dev/Prod parity): , . (Logs): . (Admin Process): (admin/management) .
  12. 12. Backend Frontend 
  function getUsableMileage(){ if (FeatureToggle::create()->isEnable(FeatureToggle::USE_BE_MILEAGE)) { // Backend } // return $usable_mileage; } https://martinfowler.com/articles/feature-toggles.html 
  13. 13.  API GATEWAY Backend Frontend 
 
  14. 14. Eureka Client (service discovery) Ribbon (load balancer) Zuul Proxy (edge service) Eureka Server Hystrix Dashboard, Turbine Hystrix
 (circuit breaker)
  15. 15. http://woowabros.github.io/experience/2017/08/21/hystrix-tunning.html
  16. 16. http://woowabros.github.io/experience/2018/06/07/vue-story-of-baminchan.html
  17. 17.  API GATEWAY Backend Frontend . .
  18. 18. legacy.php { require_once '/common/config.php'; require '/common/init.php'; include 'header'; include 'view'; include 'footer'; } Frontend
  19. 19.  API GATEWAY
  20. 20.  API GATEWAY
  21. 21.  API GATEWAY
  22. 22. babel(ES6), sass, webpack Node.js v8.x http-proxy, requestExpress.js, Handlebars Vue.js v2.x axios gradle, babel(ES6), sass, webpack Java 1.8, Node.js v8.x Spring Cloud NetflixSpring MVC, Thymeleaf Vue.js v2.x axios Spring Boot 1.5.x
  23. 23. babel(ES6), sass, webpack Node.js v8.x http-proxy, requestExpress.js, Handlebars Vue.js v2.x axios gradle, babel(ES6), sass, webpack Java 1.8, Node.js v8.x Spring Cloud NetflixSpring MVC, Thymeleaf Vue.js v2.x axios Spring Boot 1.5.x
  24. 24. babel(ES6), sass, webpack Node.js v8.x http-proxy, requestExpress.js, Handlebars Vue.js v2.x axios gradle, babel(ES6), sass, webpack Java 1.8, Node.js v8.x Spring Cloud NetflixSpring MVC, Thymeleaf Vue.js v2.x axios Spring Boot 1.5.x
  25. 25. https://github.com/arawn/continual-improve-legacy-web
  26. 26. ORDER SYSTEM [ WEB ]
 USER-SERVICE API GATEWAY PRODUCT SYSTEM SCM SYSTEM EXTERNAL SYSTEMS 
 
 MDM SYSTEM[ WEB ]
 BACK-OFFICE
  27. 27. ORDER SYSTEM [ WEB ]
 USER-SERVICE API GATEWAY PRODUCT SYSTEM SCM SYSTEM EXTERNAL SYSTEMS 
 
 MDM SYSTEM[ WEB ]
 BACK-OFFICE
  28. 28. ORDER SYSTEM PRODUCT SYSTEM SCM SYSTEM EXTERNAL SYSTEMS 
 
 MDM SYSTEM local.baeminchan.com dev.baeminchan.com test.baeminchan.com staging.baeminchan.com production.baeminchan.com
  29. 29. local.baeminchan.com dev.baeminchan.com test.baeminchan.com staging.baeminchan.com production.baeminchan.com Application Code https://12factor.net/config
  30. 30. └── resources ├── application.yml # ├── application-local.yml # ├── application-dev.yml # ├── application-test.yml # ├── application-staging.yml # ├── application-production.yml # └── application-ec2.yml # AWS EC2 > java -jar application.jar --spring.profiles.active=dev,ec2 + OS environment variables (AWS Elastic Beanstalk) { export DB_USERNAME="order_service" export DB_PASSWORD="7%wo9;ttArRYMfYp" } https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html
  31. 31. AWS Elastic Beanstalk { WEB UI } AWS EC2 { SSH } AWS LAMBDA { WEB UI } WEB APP BATCH APP SERVERLESS APP
  32. 32. https://projects.spring.io/spring-cloud/
  33. 33. SERVICE#1 Config Server  SERVICE#2 SERVICE#3 Config Repository Config Client Config Client Config Client
  34. 34. SERVICE#1 Config Server  Config Repository Config Client └── resources ├── application.yml # Spring Boot └── bootstrap.yml # Spring Cloud > service#1.jar spring: application.name: application cloud.config.uri: https://config.arawn.io
  35. 35. Service discovery and configuration management with Apache Zookeeper. Service discovery and configuration management with Hashicorp Consul. Centralized external configuration management backed by a git repository. The configuration resources map directly to Spring `Environment` but could be used by non-Spring applications if desired.
  36. 36. Consul Server (Cluster) Consul Server (Cluster) SERVICE#1 Consul Server (Cluster)  SERVICE#2 SERVICE#3 Git Repository Consul Client Consul Client Consul Template Jenkins application.yml https://www.consul.io DNS (load balancer)
  37. 37. https://github.com/hashicorp/consul-template Consul Server (Cluster) Consul Server (Cluster) SERVICE#1 Consul Server (Cluster)  SERVICE#2 SERVICE#3 Git Repository Consul Client Consul Client Consul Template Jenkins application.yml DNS (load balancer)
  38. 38. datasource: username: '{cipher}65794a6492kfc627782d59534d4845355167' password: '{cipher}6575f2d938928525976712e6d7a679616641' AWS Key Management Service AWS LAMBDA Consul Server (Cluster) SERVICE#1  Git Repository Consul Client Jenkins application.yml DNS (load balancer)
  39. 39. ORDER SYSTEMUSER SERVICE API GW PRODUCT SYSTEM SCM SYSTEM EXTERNAL SYSTEMS 
 MDM SYSTEMBACK-OFFICE SCM SYSTEM
  40. 40. ORDER SYSTEMUSER SERVICE API GW PRODUCT SYSTEM SCM SYSTEM EXTERNAL SYSTEMS 
 MDM SYSTEMBACK-OFFICE SCM SYSTEM
  41. 41. ✔ (strangler patterns) ✔ (strangler application) ✔ Refactoring a Monolith into Microservices ✔ API ✔ Pattern: API Gateway / Backend for Front-End ✔ Netflix Zuul : Importance of Reverse Proxy in Microservices Architecture ✔ Cloud Native Java ✔ The Twelve-Factor app (12 )

×