에너지 절약 서비스를위한 가장 달콤한 과일 샐러드 레시피

0 장. 에너지 절약형 로켓을 별에 발사

새로운 서비스를 제공하는 과정에서 직면 한 (고통과 즐거웠 던) 결정과 과제를 설명하는 기사 시리즈의 첫 번째 장에 오신 것을 환영합니다.

이 새로운 도전에서 우리는 미래 서비스에 대한 우리의 표준을 정의 할 수있는 생산적인 예로서 시장에서 현대적이고 성숙한 기술을 탐구했습니다. 서비스 개발 템플릿의 씨앗이 되십시오.

주요 목표는 모든면에서 최고 중의 최고가 만든 서비스로 끝나는 것입니다. 이에 대한 주관적인 접근 방식이 분명합니다. 최고는 무엇입니까? 정말로 가장 좋은가? 그렇다면 얼마나 오래 걸릴까요? 우리 부문에서는 아마도 몇 달이 될 것입니다.

에서 DEXMA 우리는 로켓을 설계되지 않은, 그러나 이것은 우리가 개발 과정에서 느낀 방법이다. 우리는 에너지 관리 및 효율성 향상에 초점을 맞추고 있으며 모든 것이 알려지지 않은 다양한 IoT 장치의 메시지를 처리, 강화 및 당사의 수집 플랫폼으로 전달하는 새로운 서비스를 구축하는 사명으로 시작되었습니다.

기본 설정에 대한 초기 브레인 스토밍으로 다음과 같이 기술적 욕구를 요약 할 수 있습니다.

Kubernetes에서 실행되는 Kotlin, Spring, Webflux, Caffeine 및 Cucumber로 빌드 된 아웃 바운드 압력 제어 기능이있는 비동기 서비스

한 줄로 어떻게 그렇게 많은 두통과 기쁨을 줄 수 있습니까? 전체 이야기를 들려 드리겠습니다.

목표와 과제 정의

앞서 설명했듯이 팀의 목표는 우리가 직면 한 각 요구 사항에 가장 적합한 것을 선택하여 최신 기술을 최대한 활용하는 것이 었습니다. 이것이 우리의 스택 선택입니다.

기술 요약

  • Kotlin 및 Spring
  • 비동기 통신을위한 WebFlux :
  • Fire & Forget 패턴 → 요청 수신, 클라이언트에 응답 (연결 해제) 후 백그라운드에서 처리
  • 소비 된 서비스가 넘치지 않도록 클라이언트 수준에서 아웃 바운드 압력 제어
  • 클라이언트 측 캐시로서의 카페인
  • 프레임 워크 테스트를위한 Cucumber + Junit + Mockito
  • Docker + Kubernetes
  • 종속성 관리를위한 Maven
  • 서비스 문서 용 Swagger
  • 기능 테스트 Suite 용 Postman 및로드 / 스트레스 테스트 용 Newman (둘 다 회사의 우편 배달부 팀 작업 공간에 게시 됨)
  1. 비동기식 : 요청이 처리되는 동안 소비자를 차단하지 않습니다. 이 디자인 패턴은 SOA 시간 동안 Fire & Forget이라고 불렀습니다. ;-) 기술적 세부 사항으로 내려 가면 요청이 수신 (및 구문 유효성 검사)되는 즉시 HTTP 202 (수락 됨) 응답을 반환하고 서비스가 백그라운드에서 처리하도록합니다. .
  2. 아웃 바운드 압력 제어 : SLA를 기반으로 소비 된 서비스를 보호하여 오버플로를 방지합니다.
  3. 재시도 메커니즘 : 사용 된 서비스를 사용할 수 없거나 문제 (재시도 가능 또는 재시도 불가능 오류)가있는 경우 올바르게 대응합니다.
  4. HealthCheck : 서비스에 대한 완전한 상태 점검 요약 및 모니터링을 제공합니다.
  5. 프로파일 링 : 구성 요소의 내부를 감독하는 데 필요한 요소를 제공합니다.
  6. 캐싱 : 불필요하고 반복되는 호출을 피하십시오.
  7. 인간 친화적 인 소프트웨어 수명주기 : 필요한 동작을 정의하고 그에 따라 코드를 원활하게 개발합니다 (BDD가이를 지원합니다).
  8. 검색 가능 / 테스트 가능 : 서비스 기능에 대한 이해를 촉진하고 각 기능을 쉽게 테스트합니다.

Suggested posts

개발자가 하루 종일하는 일

생산성 측정 기준에 만족하지 않는 방법.

개발자가 하루 종일하는 일

최근에 나는 놀라운 대화를 우연히 들었습니다. 교육 시간에 다양한 제품 관리자가 두 명의 제품 소유자와 함께 어느 팀이 가장 생산적 이었는지 토론했습니다.

개발 : IoT에서 IoM까지

개발 : IoT에서 IoM까지

"사물 인터넷"이라고도하는 IoT에 대해 이미 들어 보셨을 것입니다. 사물 인터넷 (IoT)은 다음과 같은 목적으로 센서, 소프트웨어 및 기타 기술이 내장 된 물리적 객체, "사물"의 네트워크를 설명합니다. 인터넷을 통해 다른 장치 및 시스템과 연결하고 데이터를 교환합니다. 소비자 가전 회사는 수년 동안 모든 종류의 개인 및 가정 용품을 인터넷에 연결하여 기능을 확장하는 방법을 연구 해 왔습니다.