아키텍처: 엔터프라이즈 애플리케이션 구축 방법

3817 단어 architecture
물론 모든 기업이 같은 방식으로 일하는 것은 아니지만 대다수 기업, 특히 세계적으로 은행업, 금융업 등은 이런 방식으로 일한다.
새로운 고객을 추가하기 위해 시스템을 만들어야 한다고 가정하면 최종 사용자가 그 안에 정보를 입력하고 처리하고 검증하며 데이터베이스에 보낼 수 있는 응용 프로그램을 만들 수 있다.
간단하게 들려요?응, 아니야.
이것은 첫 번째 버전이다.

간단한 고객 삽입 방법
엔터프라이즈 애플리케이션이 아닙니다.

이 판본에 무슨 문제가 있습니까?

  • 안전합니다.그것은 안전성이 부족하다.만약 시각 인터페이스가 해커에게 공격당하면 어떻게 합니까?그리고 전체 데이터베이스를 공개할 수 있다.그래서 이것은 매우 큰 숫자이다.
  • 의 지속성.그것은 우리가 데이터베이스의 소유자라고 가정한다.우리는 업무의 일부분이지만 모든 업무를 가지고 있지 않다.적당한 회사에는 DBA가 있는데, 그들은 데이터베이스의 진정한 소유자이기 때문에, 그들은 우리에게 권한을 부여할 수 있다.그 밖에 우리는 데이터베이스를 직접 공개했는데 만약 조회가 데이터베이스를 과부하시키면 어떻게 합니까?대부분의 데이터베이스는 큰 수요가 있을 수 있지만 성능을 희생하는 대가를 치른다.잘못된 조회는 전체 데이터베이스의 속도를 늦출 수 있습니다.
  • 뭐가 잘못된 조회야?


    만약 이 표의 고객이 1억 건의 기록을 가지고 있다면?
    이것은 나쁜 문제다.
    select * from customers.
    
    간단한 조회가 전체 데이터베이스의 성능을 파괴할 수 있다는 말입니까?네, 그렇습니다.
  • DBA는 실행할 때 실행되는 조회를 감사할 수 있지만 이것은 반응적인 작업이므로 반드시 자발적으로 조회를 심사해야 한다.
  • 이 시스템은 중용성이 부족하다.다른 시스템이 같은 테이블에 접근하고 같은 작업을 수행하려면 어떻게 해야 합니까?우리는 매번 새로운 테이블을 구축해야 한다. 우리는 이 테이블과 연결을 다시 사용해야 한다.
  • 엔터프라이즈 버전:

    엔터프라이즈 버전



    어떻게 변했어?우리는 우리의 시스템을 두 부분으로 나눈다(만약 우리가 데이터베이스를 계산한다면 세 부분으로 나눈다), 일부는 시각화 인터페이스(웹, 서버 1), 다른 일부는 지속성(논리, 서버 2)이다.데이터베이스(서버 3)를 분할하고 저장 프로세스를 추가했습니다.
    더 많은 코드인가요?네, 더 많은 관료주의가 있습니다.

    우리 왜 이러는 거야?


    내가 설명할게.
  • 시각적 서버를 분리합니다(서버 1).
  • 만약 우리의 응용 프로그램이 인터넷에 노출된다고 가정하면 우리의 응용 프로그램은 해커에게 공격당할 수 있다.이제 해커에게 공격당했다고 가정해 보세요.만약 그것이 해커에게 공격당한다면 해커는 시각층이 제공하는 서비스에만 접근할 수 있을 것이다.예를 들어 그(또는 그녀)는 테이블customer를 삭제할 수 없다. 이런 서비스가 없으면 해커만 이 서비스를 안다.
  • 웹 서비스(서버 2)
  • 웹 서비스는 두 가지 임무를 완성했다. 하나는 안전성이고, 다른 하나는 중용성이다.
    모든 응용 프로그램 (내부 네트워크) 은 웹 서비스에 접근하여 사용할 수 있습니다.이 프로그램은 어떻게 완성되었는지 알 필요가 없습니다. 웹 서비스만 호출하면 작업을 완성할 수 있습니다.따라서 이론적으로 말하자면 어떠한 시스템에도 영향을 주지 않는 상황에서 데이터베이스(결합 해제로)를 변경할 수 있다.
    안전성에 대해 만약에 우리의 영상 서버가 해커에게 공격당했다고 가정하면 해커가 우리의 웹 서비스를 공격할 가능성은 매우 적다. 우리의 해커는 데이터베이스를 어떻게 공격하는지 모르고 심지어 데이터베이스가 있는지 모른다.
    이 밖에 웹 서비스는 캐시, 부하 균형, 군더더기 등 다른 목적에도 사용할 수 있다.
    일반적으로 웹 서비스는 서비스 버스라고 불리는 그룹으로 나뉜다.
  • 데이터베이스(서버 3)
  • 저장 프로세스를 통해 이루어지지 않는 한 데이터베이스에 직접 접속할 수 없는 기업은 드물지 않다.왜?우선 저장 프로세스를 심사하고 다시 사용할 수 있다.또한 안전성을 높여 DBA가 무엇을 실행하는지 알기 때문에 데이터베이스 모델의 사용 위치를 파악함으로써 데이터베이스 모델을 유지할 수 있다.

    주:


    만약 당신이 한 기업에서 일한다면, 당신은 "응, 나는 이미 알고 있어"라고 말할 수 있다. 그래, 이것이 핵심이다.기업에서 일하는 것은 매우 쉽다. 왜냐하면 그것은 중복되기 때문이다.이것은 결코 이상하지 않다.
    주2:신사를 죽이지 마라.
    미디어에도 발표https://medium.com/cook-php/architecture-how-to-build-an-enterprise-application-9c649018e537

    그러나 이것은 전체 응용 프로그램이다.


    네, 그렇습니다.
    그런데 마이크로서비스, AWS, 클라우드 등은요?

    기업은 클라우드와 마이크로서비스를 일부 프로젝트(예를 들어 기업 포털)에 사용할 수 있지만 기업 응용 프로그램에 사용할 수 없다.예외도 있지만 다른 규칙과 함께 사용됩니다. 예를 들어 AWS for Enterprise(EDP)는 서로 다른 규칙을 사용합니다. 계약, NDA 및 기타 요소(서명된 SLA)가 필요합니다. 클라우드가 아니라 아웃소싱과 같습니다.

    좋은 웹페이지 즐겨찾기