분류 전체보기 1274

조직의 성숙도별 개발 모델 (Devops & CD)

오랜만의 포스팅입니다. 그간 많이 바뻤습니다.요즘 시스템 운영쪽에 관심이 많아서 Devops (Development + Operation)쪽을 틈틈이 보고 있습니다. 오늘은 조직의 성숙도별 개발 모델과 함께, CD (Continuous Delivery)와 Devops에 대해서 설명해보고자 합니다. 회사의 규모나 성숙도에 따라서 개발 모델을 크게 다음과 같이 3단계로 나눠볼 수 있습니다. 1. 스타트업 소규모에 처음 서비스 개발을 시작한 스타트업 기업 같은 경우에는 일단 모든 의사 결정이 빠르다. 아이디어가 나오면 별도의 승인이나 분석 없이 바로 개발하고, 개발이 끝나면 바로 배포 한다. 규모가 작고 모든 의사 결정이 팀내에서 이루어지기 때문에 매우 빠르다. 그리고 인력이 적기 때문에, 분석/설계/개발 및..

Tomcat 7.0 Parameter Tuning

server.xml-- root 사용자로 start 하지 못하게 함 메모리 leak detector dbcp 말고 tomcat pool 사용context.xml에 설정애플리케이션 배포를 쉽게 하기 위해서, 위의 Context.xml은 war/META-INF/context.xml을 사용하는게 좋음 shared lib 처리 필요JVM은 -server -Xms1024m -Xmx1024m -XX:NewSize=384m -XX:PermSize=128m + ParallelGC, GCThread=3, +PrintGCDetial디렉토리 처리 (1 server , 1was를 기준으로 함)tomcat 설치는 /usr/local/tomcatJVM은 /usr/local/jvmapplication은 /applications/w..

Amazon의 설치 배포 자동화 솔루션 Opsworks

Amazon Opsworks 소개 시스템에 설치와, 애플리케이션을 자동화 배경 얼마전에, Amazon에서 새로운 클라우드 서비스인 Opsworks를 발표하였다. [출처:Amazon Opsworks 소개 페이지] 비단 클라우드 뿐만 아니라, 서버 시스템을 개발하다보면, 당면 하는 과제중의 하나가, 소프트웨어 설치와, 애플리케이션의 배포이다. 예전에야 큰 서버 한대에, WAS 하나 설치하고, DB를 다른 서버에 설치해서 사용했지만, 요즘 같은 시대에는 x86 서버 여러대에 WAS를 분산 배치하고, 여러 솔루션들 설치해서 사용하고, 시스템의 구조 역시 훨씬 더 복잡해 졌다. 그래서, 이러한 제품 설치를 자동화 하는 영역이 생겼는데, 이를 Configuration Management(이하 CM)이라고 한다. 이..

JCO 13회 컨퍼런스 발표-Server Side Development

조대협입니다. 오늘 JCO 컨퍼런스에서 발표한 자료입니다 제13회컨퍼런스 조대협 서버사이드개발 from Terry Cho > 시간이 짧아서 하고 싶은 이야기를 다 쏟아 놓지 못했습니다. 자세한 설명들은 http://bcho.tistory.com/category/조대협의%20소프트웨어%20개발 (링크 다시 걸었습니다) 에 자세한 문서로 올려놓았습니다 참고하시구요. 피드백 많이 부탁드립니다.

Apache Camel Error Handling

Camel의 에러처리 먼저 Camel의 에러 타입에 대해서 살펴보자. 이 에러 타입은 Camel 이 아니더라도, 일반적인 integration 시나리오에서는 공통적으로 존재하는 에러 타입으로, 복구 가능한 에러와 복구 불가능한 에러가 있다. 에러의 종류 복구 가능한 에러 (Recoverable error) 복구 가능한 에러는 다시 시도 했을 경우 정상 처리 할 수 있는 에러이다. 예를 들어 순간적으로 네트워크 Connection이 끊어졌을때는 대부분, 다시 시도 하면 재처리가 가능하다. 복구 불가능한 에러 (Irrecoverable error) 복구 불가능한 에러는 내부 로직 문제나 잘못된 데이타 입력으로 인하여 다시 시도했을때에도 에러가 예상되는 에러를 복구 불가능 에러로 분리한다. Camel에서 수신..

아키텍쳐 /EAI 2013.02.20

Apache Camel Overview

조대협 (http://bcho.tistory.com) 서문 예전 BEA나 오라클 시절에, EAI, ESB 등을 가지고 시스템간의 연계 업무를 많이 해왔던 나로써는 오픈 소스 기반의 EAI 프레임웍인 Apache Camel의 경우 상당히 흥미로운 주제였다. 과연 상용 제품 대비 얼마나 현실성있는 integration 기능을 제공할 것인가? 가 가장 큰 궁금증이었다. BEA WebLogic EAI나, Oracle Service Bus, AIA 등 여러 제품을 이용해서 직접 시스템간의 연계 시나리오도 구현해보고, BMT에서 타社의 솔루션을 테스트도 해봤지만, 먼저 상용 솔루션의 약점은, 솔루션에서 제공하는 시스템간의 연계에 있어서 성능적인 제약이 매우 많이 따른 다는 것이다. 대부분 Message Queue ..

아키텍쳐 /EAI 2013.02.17

Apache Camel note

1. 프로젝트 생성하기mvn archetype:create -DarchetypeGroupId=org.apache.camel.archetypes -DarchetypeArtifactId=camel-archetype-java -DarchetypeVersion=2.5.0 -DgroupId=camelinaction -DartifactId=order-router 으로 Camel Project 생성 2. 코드 아래는 Spring을 이용하여, FTP로 파일을 읽어서 Local의 C:\temp에 복사하는 코드 public class MyRouteBuilder extends RouteBuilder { /** * A main() so we can easily run these routing rules in our IDE *..

Maven 스터디 노트

Maven의 가장큰 특징은 best practice를 기반으로 하며, 마치 표준 처럼 제공하기 때문에, 모든 개발자가 공통으로 사용할 수 있다.디렉토리 구조, 빌드 배포의 절차등을 템플릿 형태로 제공한다. mvn archetype:generate \ -DarchetypeGroupId=org.apache.maven.archetypes \ -DgroupId=com.mycompany.app \ -DartifactId=my-app groupId - 조직이나 도메인을 구별하기 위한 identitifier (mvn install시 이 구조로 source directory가 생성됨)version - 빌드 버전 (artifact 버전)artifactId - project에 의해서 생성되는 파일명 예를들어 jar를 만드..

Maven

http://www.sonatype.com/books/mvnex-book/pdf/mvnex-pdf.pdf Maven은 빌드 결과물을 goal이라는 개념으로 정의하며 . war,jar, Ruby on Rails 를 만드는 goal, junit을 수행하는 goal, jar로 패키징 하는 goal등이 구체적인 goal이 될 수 있다.이러한 goal을 지원하기 위해서는 Maven에서 plug in 이라는 개념을 사용한다.하나의 plug in 은 여러개의 goal을 지원한다.예를 들어 jar를 만드는 plug in의 경우, compiler plug in, jar file 만드는 플러그인등을 지원한다.(goal 들이 모여서 하나의 build를 만든다. ant의 각 task 개념과 유사하다.) archetype에 따..