클라우드 네이티브 세계의 기본 속도
일단 흔들리지 않는 엔터프라이즈 개발 왕이되면 Java는 이제 창조 이후 가장 중요한 실존 순간에 직면 해 있습니다. Java가 실패한 것은 아닙니다; 주변 세계가 바뀌 었습니다. 그리고 전통적인 런타임 모델과 헤비급 아키텍처를 갖춘 Java는 항상 유지되지는 않았습니다.
민첩성, 속도 및 효율성이 그 어느 때보 다 중요한 클라우드 네이티브 세계에서 전통적인 Java 스택은 종종 어려움을 겪고 있습니다. 시작하기에는 너무 느리고 메모리가 너무 무겁고 오늘날의 인프라의 임시 탄력적 환경에 대해 너무 견고합니다.
그러나 그것은 이야기의 끝이 아닙니다.
Java의 르네상스는 JVM에 대한 점진적인 조정이 아니라 기본 편집을 통해 일어나고 있습니다. Graalvm, Micronaut와 같은 현대 프레임 워크 및 컨테이너리스 실행과 같은 새로운 아이디어와 같은 도구를 통해 Java는 새로운 세대의 클라우드 네이티브 애플리케이션으로 재구성되고 있습니다.
“Old Java”의 문제
수년 동안 Java의 가장 큰 강점은 JVM (Java Virtual Machine)이었습니다. 이식성, 성숙한 성능 최적화 및 광범위한 생태계는 대규모 시스템에서는 타의 추종을 불허했습니다. 그러나 2000 년대에 효과가있는 것이 오늘날 항상 작동하지는 않습니다.
Cloud-Native Development는 컨테이너 또는 서버리스 환경에서 즉시 시작하고 탄력적으로 확장하며 효율적으로 실행되는 가벼운 응용 프로그램을 요구합니다. 시작 시간의 2 초마다, 메모리의 모든 메가 바이트는 이제 실제 비용으로 해석됩니다..
전통적인 JVM 응용 프로그램, 특히 Spring과 같은 헤비급 프레임 워크로 구축 된 응용 프로그램은 종종 간단한 서비스를 위해서도 수백 개의 메가 바이트의 메모리를 시작하고 소비하는 데 몇 초가 걸립니다. 최신 마이크로 서비스 또는 서버리스 설정에서는 비효율적이지 않습니다.
그리고 Java의 융통성있는 동적 기능, 런타임 반사, 클래스 스팟 스캔, 바이트 코드 조작은 이제 미리 최적화를위한 마찰을 만듭니다. 그들은 메모리 사용을 시작 시간을 제어하고 상처를 입기 어렵게 만듭니다.
Graalvm을 통한 기본 편집 : Java는 재구성되었습니다
Graalvm은 Java에 대한 미리 시간 (AoT) 컴파일을 도입하여 게임을 변경합니다. 그것으로 기본 이미지 도구, 개발자는 JVM을 실행할 필요가없는 기본 실행 파일로 Java 코드를 컴파일 할 수 있습니다.
성능 이점은 놀라운 일입니다. 기본 이미지는 할 수 있습니다 시작 시간을 줄입니다 초에서 밀리 초까지 메모리 소비를 최대 90%줄이고 JIT (Just-In-Time) 컴파일 오버 헤드를 완전히 제거하십시오. 실제로, 이는 Java 응용 프로그램이 최신 클라우드 플랫폼, 서버리스 환경 및 에지 컴퓨팅 노드에 대한 더 빠르게 확장되고 유휴 상태이며 더욱 예측할 수있는 이상적인 특성에 응답 할 수 있음을 의미합니다.
그러나 Graalvm은 단지 속도에 관한 것이 아닙니다 지속 가능성.
JVM 에너지 효율에 관한 기사에서 살펴보면 Graalvm Native Applications는 종종 전통적인 JVM보다 훨씬 적은 전력을 소비합니다. 이는 CPU 상옥업을 최소화하고 메모리 압력을 줄이며 쓰레기 수집 워밍업 또는 JIT 튜닝의 런타임 오버 헤드를 피하기 때문입니다. Hyperscale에서 운영되거나 저전력 에지 장치를 대상으로하는 조직의 경우, 이는 에너지 요금이 낮고 탄소 발자국이 줄어든다. 이는 공공 및 민간 부문 모두에서 점점 더 중요한 관심사이다.
또한도 있습니다 보안 혜택. 기본 이미지 컴파일은 사용되지 않은 클래스와 동적 기능을 제거하여 공격의 표면적을 줄이는 폐쇄 세계 실행 파일을 생성합니다. 클래스 경로 스캔, 런타임 반사, 동적 프록시 없음 : 앱이 필요한 것만으로 단단하고 린 바이너리 만 있습니다.
graalvm은 틈새 최적화가 아닙니다 : 그것은 게이트웨이입니다 Java를 다시 경쟁력있게 만듭니다 전통적으로 Go, Rust 및 Node.js가 지배하는 환경에서 그것은 기본적으로 편집 된 바이너리의 원시 성능 및 배치 민첩성과 함께 Java의 표현력과 생태계 성숙과 결혼합니다. 그리고 지속 가능성, 응답 성 및 비용 관리 우선 순위가 수렴되는 세상에서 Graalvm Native Java는 다음과 같이 두드러집니다. 현명한 기술 선택뿐만 아니라 전략적 선택.
Micronaut : 클라우드 용으로 제작 된 Java
물론 빠른 런타임으로는 충분하지 않습니다. 이 새로운 원주민 세계를 위해 설계된 프레임 워크가 필요합니다. Micronaut는 그 프레임 워크입니다.
Micronaut는 단순히 현대적인 프레임 워크가 아닙니다. 오늘날의 마이크로 서비스 환경의 요구에 맞게 조정 된 건축 적 재구성입니다. 런타임 반사, 동적 프록시 및 런타임 종속성 주입에 크게 의존하는 레거시 Java 프레임 워크와 달리 Micronaut는 처음부터 구축됩니다. 핵심에서 미리 (AOT) 원칙. 이 디자인 철학은 스타일에 관한 것이 아니라 측정 가능한 영향을 미칩니다.
Micronaut는 Micronaut를 Spring Boot 및 Quarkus와 비교하는 벤치마킹 연구에서 전통적인 항아리로 포장 된 경우 가장 빠른 응용 프로그램 시작 시간과 가장 작은 실행 가능한 크기를 지속적으로 제공했습니다. 이것은 우연이 아닙니다. Micronaut는 전통적인 JVM 앱을 괴롭히는 비용이 많이 드는 런타임 초기화를 피하기 위해 의존성 주입, 구성 해상도 및 경로 컴파일을 수행합니다. 결과는 빠른 콜드 스타트, 메모리 발자국 및 최소 CPU 사용량으로 클라우드 및 서버리스 환경에서 자동 스케일링에 적합합니다.
Graalvm을 통한 Micronaut의 기본 이미지 지원도 일류입니다. 평균 부하에서 성능 테스트에서 Micronaut Native 이미지는 Spring Boot보다 RAM 및 CPU 소비를 낮추었으며 Quarkus와 경쟁했습니다. 이 효율성은 특히 밀리 초 및 메가 바이트가 계산되는 에지 장치 및 제한된 환경에 특히 가치가 있습니다. 빌드 타임 최적화, 유연한 모듈 식 디자인 및 원활한 Graalvm 통합에 탁월합니다. 서버리스 플랫폼에서 IoT 에지 노드에 이르기까지 클라우드 연속체에서 효율적으로 확장하는 기본 최초의 Java 경험을 원하는 개발자에게 이상적입니다.
Graalos와 컨테이너가없는 Java의 비전
이 이야기의 마지막 국경은입니다 어떻게 우리는이 기본 응용 프로그램을 실행합니다.
입력하다 그랄 로스: 기본 바이너리를 위해 설계된 컨테이너가없고 안전한 자바 실행 환경에 대한 비전. 여전히 초기 단계에서 Graalos는 개념 증명으로 발표되었으며 OCI (Oracle Cloud Infrastructure)와 같은 플랫폼에 기능을 제공 할 계획이 있습니다.
Oracle 기능에서는 아직 사용할 수 없지만 Graalos의 아이디어는 강력합니다. 용기의 필요성을 모두 제거하고 자체 포함 된 기본 바이너리를 배치하며, 유휴 상태에서 유휴 상태에 매달리고 넓은 콜드 시작 시간으로 출시되는 빠르게 시작하는 자동 스케일링 Java 워크로드를 활성화합니다.
시작 시간, 메모리 효율성 및 단순성이 최고를 통치하는 서버리스 시대의 Java에 대한 야심 찬 재확인입니다. 그리고 여전히 개발 중이지만 구름 네이티브 Java의 대담한 방향을 나타냅니다.
이것이 중요한 이유
이것들은 기술적 개선만이 아니라 건축 변곡점입니다.
기본 편집은 클라우드 네이티브 세상에서 Java를 다시 진지하게 경합하게합니다. 기존의 JVM 기반 앱이 300MB의 RAM을 부팅하고 연소하는 데 8 초가 걸릴 수있는 경우 GraalVM 컴파일 된 기본 이미지는 50 밀리 초로 시작하여 10 분의 1의 메모리를 사용할 수 있습니다.
그것은 의미 :
- 더 낮은 클라우드 청구서
- 더 빠른 스케일링
- 가장자리에서 더 나은 성능
- 더 간단하고 leaner 배포
그것은 한계 이익이 아닙니다 : 그것은 기본적인 변화입니다.
개발자 경험 : 여전히 Java, 더 좋습니다
개발자 생산성이 걱정된다면 그렇지 마십시오.
기본 Java 개발은 현대적인 도구를 통해 지원됩니다. Maven, Gradle, Micronaut CliIDE 플러그인. 기본 이미지 생성은 빌드 명령입니다. 디버깅, 관찰 가능성, 스택 추적 및 GitHub 동작 또는 컨테이너 레지스트리와의 통합? 모든 것이 거기에 있습니다.
코드에서 더 명확해야합니다. AOT 컴파일러는 예측 가능성을 좋아하지만 결함이 아닌 기능입니다. 청소기, 더 빠르고 안전한 자바를 쓸 것입니다.
그리고 생태계가 성장함에 따라 원주민 Java 경험은 계속 향상됩니다.
최종 생각 : Java, 다시 경쟁
솔직히합시다. 블로 된 컨테이너 내부의 전체 JVM에 모 놀리 식 스프링 부팅 앱을 여전히 배포하고 있다면 잘못된 것은 아니지만 뒤에 있습니다.
Java의 미래는 기본입니다. Graalvm, Micronaut 및 기본 실행 플랫폼 주변의 혁신은 Java에게 두 번째 바람을주고 있습니다.
이것은 클라우드 시대에 Java를 살아있게 유지하는 것이 아닙니다. Java를 만들고 있습니다 경쟁력 있는 GO, 녹 및 다른 클라우드 네이티브 개발이이를 던질 수 있습니다.
따라서 문제는 원주민 Java가 준비되었는지 여부가 아닙니다. 문제는 다음과 같습니다. 당신은?
Post Comment