스타트업OS
Google의 오픈소스 스택 및 클라우드 배포에 대한 예입니다.
스택의 주요 기술은 다음과 같습니다.
실습 경험
다음 Google Cloud Shell 튜토리얼을 사용해 보세요.
Bazel로 구축된 다중 언어 코드 서식 지정 도구:
필드 및 열거형 이름 변경 API 이전 버전과의 호환성 1: 이름을 바꾼 후에도 새 릴리스에서 이전 데이터를 계속 읽을 수 있는 방법:
필드 및 열거형 이름 변경 API 이전 버전과의 호환성 2: 이전 릴리스가 중단 없이 새 릴리스와 통신할 수 있는 방법:
미정
지원되는 언어
Protos, gRPC 및 Bazel은 다중 언어입니다. 이 저장소의 예제는 대부분 Java 및 Typescript로 되어 있지만 다른 많은 언어도 지원됩니다.
- gRPC 및 프로토콜 버퍼는 Google의 C++, Java(및 Android Java), Python, Go, C#, Objective-C, PHP, Dart, Ruby 및 JavaScript(Node.js 포함)에서 지원됩니다.
- Bazel은 Google의 Java(Android 빌드 포함), Objective-C(iOS 빌드 포함), C++, Go, Dart, Rust, Sass 및 Scala에서 지원됩니다.
- 커뮤니티에서는 다른 많은 언어에 대한 지원을 추가했습니다. 프로토콜 버퍼 및 gRPC에 대해서는 이 목록을 참조하고 Bazel에 대해서는 이 목록을 참조하세요.
주요 사례
- 많은 프로토콜 버퍼 예제.
- gRPC-Web: 브라우저에서 실행되는 js 클라이언트 라이브러리로, HTTP 프록시를 통해 gRPC 서버에 연결됩니다. 서버와 클라이언트 모두 gRPC 자동 생성 스텁을 사용하여 통신을 처리합니다.
- gRPC 마이크로서비스 예시.
- Docker 예: Bazel을 사용하여 컨테이너 구축(dockerfile이 필요하지 않습니다!)
- Kubernetes: k8s에서 Bazel로 구축된 컨테이너를 실행하는 방법을 보여주는 구성 파일입니다.
- CI 예: CircleCI를 사용하여 CI(지속적 통합)를 실행하고 모든 Bazel 대상을 테스트합니다.
- Firebase: 프로토콜 버퍼를 저장하기 위한 Java 클라이언트입니다.
- Dagger: Java 종속성 주입 프레임워크("Next gen Guice"), 여기에서 예를 참조하세요.
- Flogger: 유창한 API를 갖춘 Java 로거입니다. 여기에서 예제를 참조하세요.
- Android 앱: Bazel로 구축되고 Firebase에 통합된 Android 앱입니다.
도구
도구 섹션에는 몇 가지 유용한 도구가 있습니다.
StartupOS를 사용하는 방법
사전 구축된 설정 및 관련 도구를 사용하여 StartupOS를 "개발자 이미지"로 처리할 수 있습니다.
다음 중 하나를 수행할 수 있습니다.
- 이 저장소를 복제하고 스스로 발전시키세요.
- 자신의 저장소에 대한 종속성으로 취급하십시오. 이에 대한 예는 다음과 같습니다: https://github.com/oferb/startup-os-example
설치
바젤을 설치합니다. 그게 다야!
빌드 및 테스트
- 모든 것을 빌드하세요:
./build.sh
- 모든 테스트 실행:
./test.sh
모노레포에 대하여
모노레포는 모든 코드가 단일 저장소에 저장되는 소프트웨어 개발 접근 방식입니다. 프런트엔드와 백엔드에서 proto 파일을 공유하는 것과 같은 일부 작업은 모노 저장소에서 수행하기 더 쉽고, 공동 작업자에 대한 저장소별 제어, 이메일 알림, 커밋 기록 등과 같은 일부 작업은 더 어렵습니다. 다중 저장소 코드 검토와 같은 다중 저장소 도구를 사용하여 여러 저장소가 단일 저장소로 작동하면서도 별도의 저장소로 작동할 수 있는 접근 방식입니다.
monorepo 접근 방식에 대한 좋은 내용은 다음과 같습니다.
- 트렁크 기반 개발.com/monorepos
- Google이 수십억 줄의 코드를 단일 저장소에 저장하는 이유
플랫폼
Bazel은 Linux, Mac 및 Windows를 지원하지만 이 저장소는 Linux 및 Mac을 지원합니다. Windows 10을 사용하는 경우 WSL(Linux용 Windows 하위 시스템)을 사용할 수 있습니다. 가상 머신의 오버헤드 없이 Linux 환경을 제공합니다.
Linux용 Windows 하위 시스템 설치:
가이드를 따라주세요. 참고: Windows 업그레이드를 수행해야 할 수도 있습니다. 필요한 경우 설치 시작 시 요청합니다.
기여
여러분은 기꺼이 기여하고 그렇게 함으로써 이러한 기술을 배울 수 있습니다. 문제 목록이나 프로젝트 마일스톤을 살펴볼 수 있습니다.