'Articles'에 해당되는 글 116건

  1. 2021/03/19 용비 Ubuntu Server 사용기
  2. 2021/01/29 용비 KT EPC Cloud 사용기
  3. 2021/01/20 용비 Pattern-Oriented Software Architecture Summary
  4. 2020/10/27 용비 Cent OS 7 Desktop 크롬 브라우저 설치
  5. 2020/10/05 용비 multiple ping test in windows batch file

Ubuntu Server 사용기

Articles 2021/03/19 20:45 용비
리눅스 Desktop으로는 Ubuntu를, Server로는 CentOS를 사용해 왔는데,
RedHat에서 CentOS를 향후에는 자사의 테스트 용도로만 사용한다는 소식이 있네요.

선택의 폭이 좁아져 안타깝지만, Server도 Ubuntu 서버 버전을 설치하여 사용해야 할 듯 합니다.

VirtualBox에 Ubuntu 18.04 LTS 서버를 설치하고,
개발한 어플리케이션을 배포하여 테스트할 환경을 구성하고자 했는데...

CentOS처럼 Ubuntu 서버를 VirtualBox에 설치하고,
Putty나 Solar-Putty와 같은 오픈소스 콘솔을 통해서 서버에 접속하려고 했더니 접속이 안 되어 이상하다 여겼는데...

openssh-server가 default로 설치되어 있지 않네요, Ubuntu 서버에는.

다음 명령어로 openssh-server를 설치해 주어야 VirtualBox Port Forward 기능을 이용하여 Putty로 접속할 수 있습니다.

sudo apt install -y openssh-server

뭔가를 새롭게 알아가는 것은 즐거운 일입니다.
받은 트랙백이 없고, 댓글이 없습니다.

댓글+트랙백 RSS :: http://www.yongbi.net/rss/response/881

KT EPC Cloud 사용기

Articles 2021/01/29 20:49 용비
오늘 팀원 중 한명이 KT EPC Cloud에 AWX를 설치하다 실패한 이야기를 했다.

밤을 새워가며 ansible, redis, nginx, memcached, postgresql, rabbitmq, erlang 등을 설치했는데...
결국 실패하여 오늘까지도 설치하지 못했다는 이야기를 듣고 뭔가 이상하다고 생각했다.

사내 보안망에 있는 서버도 아니고, Public Cloud에 있는데 왜 설치가 안 될까?

그래서 개발용 노트북에 VirutalBox를 설치하고, Cent OS 7을 minimal로 설치했다.
그리고 AWX를 설치해 봤는데... 설치가 잘 되더라.

VirtualBox, Cent OS, AWX를 모두 설치하기까지 걸린 시간이 약 2시간 정도.

팀원을 불러서 설치가 잘 된다고 알려줬다.
그런데, 내가 알려준 대로 모든 것을 해봤는데도 안 된다고 했다.

그래서 직접 EPC에 VM을 생성하여 설치를 해 봤는데, yum 설치가 안 된다.

동일한 버전의 Cent OS 서버인데도 VirtualBox에서는 설치가 되고, EPC에서는 설치가 안 된다면...
가장 먼저 들여다 봐야 하는 것은 바로 Cent OS의 Repository.

바로 /etc/yum.repos.d/에 있는 CentOS의 Repository 파일 내용을 살펴보니...
역시, Repository 문제였다.

CentOS-Base.repo 파일을 원복시키고 설치해 보니 AWX 설치가 잘 된다.

2시간 반 만에 모든 문제 해결!!
받은 트랙백이 없고, 댓글이 없습니다.

댓글+트랙백 RSS :: http://www.yongbi.net/rss/response/878

  • Pattern Architecture = Architectural Style
  • Pattern 다음 3가지로 분류될 있음
    • Architectural Pattern / Framework Pattern : Highest Level of abstraction in software pattern. 전체 시스템 차원의 구조와 관계에 대한 정의
    • Design Pattern : collection of class or subsystem 통해 문제를 해결하는 방법에 대한 서술
    • Idiom (표현 양식, 언어) : the lowest level of pattern. 특정 프로그래밍 언어로 어떻게 개발되는지에 대한 코드 레벨
    • 다만, MVC 같이 3가지 카테고리로 분류하기 어려운 패턴도 등장. 한계가 있음.
  • Pattern-Oriented Software Architecture
    • Software 개발에 대한 또다른 접근 방법
    • POSA에서는 아키텍처를 다음 4가지 그룹으로 분류함
    • From Mud to Structure Category
      • 시스템의 전체 task 상호 동작하는 컴포넌트, subsystem, 레이어로 분해
      • Layers Pattern
        • Task 서로 다른 Layer 분리. 각각의 Layer 특정 수준으로 추상화.
        • 크고 복잡한 시스템을 구현하기 쉽게 분리 가능
        • 유지보수성과 확장성 측면에서 강점
        • 비싼 시스템 리소스는 단점
      • Blackboard Pattern
        • 여러 개의 특정 subsystem 결합하여 각각의 솔루션에 대한 지식을 활용.
        • 결정적인 솔루션을 가지고 있지 않은 경우에 적합
        • 서로 연관이 없는 컴포넌트나 subsystem 집합
        • 복잡한 에러 핸들링에 효율적임
      • Pipes & Filters Pattern
        • Stream data 처리 시스템에 대한 구조
        • 데이터 처리에 여러 단계의 step/pipe 순차적인 처리.
        • pipe 프로세스는 filter 포함하고 있음.
        • 데이터는 pipe filter 통과. 데이터 처리는 빠르지만, 데이터 처리에 대한 오버헤드와 static 정보 공유에 비용이 비싸고 flexible하지 않다. (유연하지 않음)
        • XML Streaming 데이터 처리와 같은 경우에 적합
    • Distributed System Category
      • 분산 어플리케이션에 대한 완전한 구조 제공
      • Broker 유일한 패턴임
      • Pipes and Filters 패턴이나 Microkernel 패턴도 카테고리에 속하지만, 다른 카테고리에 적합함
      • Broker Pattern
        • 분산 시스템에서 주로 사용하는 패턴
        • 원격 서비스를 호출하는 decoupled component 대한 시스템 구조
        • Client / Server 좋은 decoupling 제공할 있음
        • 변경성, 확장성, 위치 투명성 많은 장점이 있지만 디버그와 테스트가 어려움
        • CORBA : Common Object Request Broker Architecture 사용
    • Interactive Systems Category
      • 인간과 컴퓨터간의 상호작용과 같은 software 시스템 구조.
      • 인간의 상호작용을 handling하는 초점
      • Model-View-Controller Pattern Presentation-Abstraction-Control Pattern 카테고리에 속함
      • MVC Pattern
        • 시스템을 Model, View, Controller 3가지 파트로 분리
        • Model : 전체 시스템이 어떻게 동작하는지 설명
        • View : 모델이 어떻게 보여지는지 설명
        • Controller : 시스템과 User 사이 상호작용 제공
        • 유지보수성과 확장성을 증대시키지만, 디자인 복잡성도 증가함
        • 알려진 예제는 smalltalk 아키텍처
      • PAC Pattern
        • 협업 에이전트(cooperating agent) 계층 형태(hierarchy form) software system 상호작용 구조를 정의
        • agent 특정 application function 대해 책임을 지는 3개의 컴포넌트(presentation, abstraction, control) 이루어져 있음
        • 인간과 컴퓨터가 상호작용할 , functional core 다른 agent와의 communication 분리함
    • Adaptable System Category
      • 시스템은 시간이 지나감에 따라 발전하여 디자인이나 기능이 변경됨
      • Adaptable System(적응형 시스템) Application 확장과 개발된 기술의 조정, 기능 요구사항의 변경으로 이러한 문제를 극복함
      • Microkernel Pattern
        • Microkernel Pattern 확장된 기능성과 고객별(customer-specific) 파트(part)로부터 최소 기능 코어를 분리.
        • 확장 기능을 연결하고 협업을 조정하는 소켓을 제공.
        • 다른 프로세스에서 실행되는 컴포넌트간 서로 통신 가능.
        • 카네기 멜론 대학에서 개발된 mach(마하) 운영 체제가 패턴을 사용.
        • Chorus 상용 시스템도 패턴을 사용.
      • Reflection Pattern
        • Reflection Pattern 소프트웨어 시스템이 구조와 동작을 동적으로 변경하는 메커니즘 제공
        • Type structure (유형 구조), date element (날짜 요소), function call(함수 호출) 메커니즘 수정 지원
        • 패턴에서 application Meta level, Base level 2 분야로 분리됨
        • Meta level : 소프트웨어 자체를 인식하고, 선택된 시스템 속성에 대한 정보를 제공
        • Base level : Application Logic 담당. Implementation meta level에서 유지.
  • 결론
    • 시스템 아키텍처는 사용 가능한 아키텍처 패턴과 사용법을 이해해야
    • 시스템 아키텍처를 설계할 , 인간과 환경적 요소들도 중요
    • 프로젝트 수행 , 예산과 아키텍처의 아름다움 아래 프로젝트에 사용할 있는 회사 정책, 리소스는 사용된 아키텍처 패턴이 아니라 아키텍트에 의해서 결정됨.
받은 트랙백이 없고, 댓글이 없습니다.

댓글+트랙백 RSS :: http://www.yongbi.net/rss/response/876

Cent OS 7 Desktop에서 크롬 브라우저를 설치하기 위해서는 다음과 같은 순서로 실행한다.

1. 터미널에서 크롬 브라우저 다운로드
wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm
2. 다운로드 받은 크롬 브라우저 설치
yum -y install google-chrome-stable_current_x86_64.rpm

3. 설치된 크롬 브라우저 실행
상단 왼쪽 [프로그램] > [인터넷] > [Google Chrome] 메뉴 클릭

받은 트랙백이 없고, 댓글이 없습니다.

댓글+트랙백 RSS :: http://www.yongbi.net/rss/response/875

윈도우즈 batch 파일에서 여러 서버에 ping test하는 스크립트를 작성해 보자.
우선 배치 파일은 2개가 필요하다.
- ping_server.bat 파일 : 하나의 서버 주소를 인자로 받아서 ping 테스트를 수행하고, 결과를 로그로 저장하는 파일
- multiple_servers.bat 파일 : 서버 목록이 저장되어 있는 파일을 읽어서, 서버 개수만큼 ping_server.bat 파일을 실행하는 파일
ping을 테스트하는 서버 목록은 servers.txt 파일에 작성하여 저장한다.
각각의 배치 파일은 다음과 같이 스크립트를 작성한다.

<ping_server.bat>
@echo off

REM set /p addr=Address:
set addr=%1

@echo Ping Test for : %addr%

:loop
for /f "delims=" %%a in ('ping %addr% -n 1 -l 1024 ^| findstr "TTL out"') do echo %date% %time% - %%a
for /f "delims=" %%a in ('ping %addr% -n 1 -l 1024 ^| findstr "TTL out"') do echo %date% %time% - %%a >> %addr%.log
timeout 1 > NUL
goto :loop

또는
<ping_server.bat>

@echo off

set addr=%1

@echo Ping Test for : %addr%

ping -t %addr%|cmd /q /v /c "(pause&pause)>nul & for /l %%a in () do (set /p "data=" && echo(!date! !time! !data!)" >> %addr%.log


<multiple_servers.bat>
@echo off

set /p file=Server List File:

FOR /F %%I IN (%file%) DO START cmd /k ping_server.bat %%I

Windows PowerShell 창을 띄운 후, multiple_servers.bat 파일을 실행하면 Server List File을 입력할 수 있다.
그 때, 서버 목록이 저장되어 있는 servers.txt 를 입력하면, 서버 목록 수만큼 cmd 창이 뜨고 ping 테스트를 1초에 한번씩 실행하여 로그에 저장한다.
받은 트랙백이 없고, 댓글이 없습니다.

댓글+트랙백 RSS :: http://www.yongbi.net/rss/response/874