고 완전도입 2년 차 겨울이 온 소감.

3187 단어 Goadventcalendar2017

개시하다


얼음벽돌 Advent Calendar 2017째 날이다.
@ytake 투고를 기대하신 여러분, 죄송합니다.
다양한 상황에 따라 오늘 고/스카라 등이 개발한 얼음벽돌 서버 사이드 엔지니어@ginshari가 제공한다.

TL;DR

  • Go를 사내 애플리케이션에 정식으로 도입한 지 2년 차
  • REST-AAPI의 개발 용도와 데이터 이전 횟수 등으로 널리 사용
  • 회사의 고 학습회도 활발해졌다
  • 우리의 전투는 지금부터 시작된다!

    2년 동안 한번 돌아볼게요.


  • 알다@ginshari 입사 2개월, 실제로 Go
  • 를 조금 사용했다
  • Go로 서비스용 REST-AAPI를 제작해 천천히 정식 발표→운행
  • goji, echo를 사용하지만 goa를 만났기 때문에 goa를 사용해 보세요
  • 고아 너무 좋아... 존귀해... 그래서 2017년에는 고아
  • 다른 부서에서 Go를 도입할 기회도 높아졌고 사내 학습회의 실시!
  • 가져오기


    당사는 현재 여러 개의 서로 다른 서비스가 서로 관련되어 있기 때문에 다른 부서의 시스템에서 API 인터페이스를 강연할 시기는 어느 부서에서 상당한 주파수로 발생한다.
    그러므로
  • 유지보수되지 않는 API 문서가 되지 않는 개발 주기
  • Swagger가 정형으로 제공한 문서이기 때문에 습관이 전제적이지만 읽기 쉽다
  • 의 효과로 gooa를 가져왔습니다.
    저는 개인적으로 API 문서의 유지 보수 비용이 많이 삭감되었고 Sample의 반응도 디자인 정의의 내용으로 나타낼 수 있기 때문에 인터페이스의 이해에 문제가 생겼다고 생각합니다.
    2017년에는 학습회라는 제목으로 우리 회사에서 gooa의 학습회 행사도 개최했다.기회가 된다면 2018년에도 개최할 예정이어서 관심 있는 분들의 참여를 기대합니다.

    어플리케이션 배포 등


    당사의 얼음 벽돌은 PHP 제품의 비율이 많고 제인킨스를 통해 자동 설계 도구를 이용하는 경우가 많지만 코드 기반의 크기와 발송 목적지 서버 수 등의 영향으로 디자인에 수분이 걸렸다.
    Go를 사용하는 응용 프로그램에 대해 다음과 같은 노력을 했습니다.
    GO-bindata 등의 정적 파일을 이용한go 파일화
  • 파일을 이진식으로 실행하고 작동해야 하는 서버에 배포
  • 응용 프로그램을 실행하는 서버에서 슈퍼visord를 통해 나누어 주는 이진 여러 프로세스를 시작합니다.
  • 따라서 응용 프로그램은 명령줄 옵션 등에서 포트 번호를 미리 지정
  • nginx에서 각 포트에 대한 서버 응용 정의upstream, 부하 평형기가 여러 서버에 대한nginx 분배 요청

  • 이렇게 하면...
  • 분배의 번거로움을 줄이고 분배물을 응용된 2진법으로 축소하여 간소화
  • 규모화하려면 바이너리만 나눠주면 되기 때문에 고부하 상황에 대한 대책 마련이 용이하다
  • 이렇게 좋은 결과가 나왔다.
    ※ 동일한 서버를 사용해 2개의 프로세스 동작을 하는 곳은 Go의 CPU 사용법이 큰 의미가 없을 수 있지만, 한 개씩 재부팅하면 떨어지지 않는 상태를 유지할 수 있을 것 같아 그렇게 합니다.

    사내 고 학습회에 대해서.


    이제 시작이니까 회사 내 멤버에게 어떤 형태가 어울릴지 모색하는 상태로 진행되고 있습니다.
  • 고 입문
  • goa 시작하기
  • 포인터 및 수신기 정보
  • 인터페이스 및 이전
  • 테스트 시작 방법 및 테스트 시 유용한 도구
  • 이런 주제로 10월 후반부터 몇 차례 시행됐다.
    이 점에 관해서는 앞으로 지식 자체의 읽을거리와 손댈 시간 등의 내용을 늘려야 더욱 좋을 수 있다.

    끝말


    얼토당토않지만 아이스벽돌의 고 앱 개발에 대한 해설은 어땠나요?
    내일 당사advent 달력에서 DBA@sugat1679는 "MarriaDB의 메모리 엔진을 이용하여 RDS-로 시작하는 한 걸음"을 주제로 투고합니다. 꼭 보세요!

    좋은 웹페이지 즐겨찾기