Sunucusuzluk hızla artıyor, Ali, Microsoft ve AWS neden açık kaynaklı OAM'yi benimsiyor?

[Önsöz] Dünyanın ilk bulutta yerel uygulama standart tanımı ve mimari modeli olarak, Açık Uygulama Modelinin (OAM) temel kavramı: "uygulama merkezli" dir. Ar-Ge ve operasyon ve bakımın, bildirimsel, esnek ve Doğrudan karmaşık ve belirsiz altyapı katmanı API'lerini kullanmak yerine işbirliği yapmak için üst düzey soyutlamayı genişletin. Kısa süre önce, AWS ECS ekibi resmi GitHub'da Amazon ECS for Open Application Model adlı açık kaynaklı bir proje yayınladı. Giderek daha fazla üretici OAM uygulamasını keşfetmeye başlıyor. Birden çok bulut satıcısının bir araya gelip birlikte kucaklaşmasına olanak tanıyan OAM'nin cazibesi nedir?

Yazar | Zhang Lei, Alibaba Bulut Yerel Uygulama Platformu Kıdemli Teknik Uzmanı

Deng Hongchao, Alibaba Bulut Teknik Uzmanı

Editör | Tang Xiaoyin

Baş resmi | Oriental IC'den indirilen CSDN

Üretildi | CSDN (ID: CSDNnews)

Sunucusuz terimi ilk olarak "Yazılım ve Uygulamaların Geleceği Neden Sunucusuzdur" adlı 2012 makalesinde kullanılmıştır. Ancak, gerçekten arkeolojiye giderseniz, bu makalenin aslında sürekli entegrasyon ve kod sürümü kontrolünün yazılım mühendisliği kavramı olduğunu göreceksiniz. Bugün Serverless'ın bahsettiği "sıfıra ölçekleme" ve "ödeme" hakkında konuşalım. "gittikçe", FaaS / BaaS, bu şeyler hiç de aynı şey değil.

AWS, 2014 yılında "Lambda" adlı bir ürün piyasaya sürdü. Bu ürünün tasarım konsepti çok basittir - bulut bilişimin nihayetinde uygulamalar için hizmetler sağladığına inanır ve kullanıcılar bir uygulamayı dağıtmak istediklerinde, umursamadan belirli görevleri yerine getirmek için yalnızca kendi programlarını yazabilecekleri bir yere ihtiyaç duyar. Bu programın hangi makine veya sanal makinede çalıştığı.

"Sunucusuz" paradigmasının yepyeni bir düzeye yükseltilmesine izin veren, Lambda'nın piyasaya sürülmesiydi. Sunucusuz, uygulamaları bulutta dağıtmak ve çalıştırmak için yeni bir sistem mimarisi sunarak, kullanıcıların karmaşık sunucu yapılandırmasıyla ilgilenmelerine gerek olmadığını, yalnızca kendi kodlarını ve kodu barındırılabilen bir bulut bilişim platformuna nasıl paketleneceğini vurgulayarak " Çalıştırılabilir varlıklar ". Önceden ayrılmış kaynaklar yerine gerçek kullanıma dayalı olarak uygulama örneklerini gerçek trafiğe ve faturalandırmaya göre genişletme gibi bir dizi klasik özelliğin sonraki sürümlerinden sonra, AWS aşamalı olarak sunucusuz alanda fiili standardı oluşturdu.

AWS, 2017'de Sunucusuz kavramını kapsayıcı tabanlı çalıştırılabilir varlıklara genişleten Fargate hizmetini piyasaya sürdü. Kısa süre sonra bu fikir Google Cloud Run ve diğerleri tarafından takip edilerek "yeni nesil" kapsayıcı tabanlı Sunucusuz çalışma zamanını açtı yükseliş.

Sunucusuz ve Açık Uygulama Modeli (OAM)?

Peki OAM'nin AWS ve Sunucusuz ile ne ilgisi var?

İlk olarak, Açık Uygulama Modeli (OAM), Alibaba Cloud ve Microsoft tarafından ortaklaşa başlatılan ve bulut yerel topluluğu tarafından sürdürülen bir dizi uygulama açıklaması spesifikasyonudur (spec). OAM'nin temel kavramı: "uygulama merkezli" olup, Ar-Ge ve operasyon ve bakımın, doğrudan karmaşık ve belirsiz altyapı katmanı API'lerini kullanmak yerine, bir dizi bildirimsel, esnek ve genişletilebilir üst düzey soyutlamalar etrafında koordine edildiğini vurgulamaktadır.

Örneğin, yatay genişletme için K8s HPA kullanan konteyner tabanlı bir uygulama için, OAM spesifikasyonu altında aşağıdaki iki YAML dosyasıyla tanımlanacaktır:

# Bu YAML dosyasını yazmaktan Ar-Ge sorumludur apiVersion: core.oam.dev/v1alpha2 tür: Bileşen meta veriler: isim: web sunucusu spec: # Dağıtılacak uygulamanın ayrıntıları iş yoğunluğu: apiVersion: core.oam.dev/v1alpha2 tür: Sunucu spec: kaplar: -name: ön uç görüntü: ön uç: en son --- # Bu YAML dosyasını yazmaktan işletme ve bakım (veya PaaS platformu) sorumludur apiVersion: core.oam.dev/v1alpha2 tür: ApplicationConfiguration meta veriler: isim: helloworld spec: bileşenler: -name: ön uç # Uygulama için gerekli olan işletme ve bakım yetenekleri özellikler: -kişisel özellik: apiVersion: autoscaling.k8s.io/v2beta2 tür: HorizontalPodAutoscaler meta veriler: isim: scale-merhaba spec: minReplikalar: 1 maxReplicas: 10

Böyle bir YAML dosyası K8'lere gönderildikten sonra, OAM eklentisi tarafından otomatik olarak tam bir Dağıtım ve gerçekten çalıştırılmak üzere HPA nesnesine dönüştürülecektir. OAM şartnamesinin altında, Ar-Ge ile işletme ve bakım endişelerinin tamamen ayrı olduğu görülebilir.Ar-Ge'nin K8'lerin tam API'sini öğrenmeye gerek kalmadan, sadece kendisiyle ilgili çok az sayıda alan yazması gerekir. Uygulamanın tanımı ve yayınlanması.

OAM, "uygulama", "çalıştırma ve bakım yetenekleri" ve "sürüm sınırı" gibi bir dizi bulutta yerel uygulama teslimi tanımı standardını standartlaştırdığı için, uygulama yönetimi platformu geliştiricileri, her uygulamayı daha kısa bir YAML dosyası aracılığıyla açıklamak için bu özelliği kullanabilir. Çeşitli uygulama ve işletim ve bakım stratejileri ve son olarak bu YAML dosyalarını OAM eklentisi aracılığıyla K8'lerin (CRD dahil) gerçek kaynakları ile eşleştirin.

Başka bir deyişle, OAM, "üst soyutlamayı" tanımlayan fiili bir standart sağlar ve bu "üst soyutlamanın" en önemli rolü, çeşitli altyapı ayrıntılarını (HPA, Ingress, container, Pod, Service gibi) engellemektir. Vb.) Gereksiz karmaşıklık getiren Ar-Ge öğrencilerine sızmak. Bu nedenle, OAM piyasaya sürüldüğünde, K8s uygulama platformunu geliştirmek için "sihirli silah" olarak bilinir.

Ancak daha da önemlisi, uygulama açıklamasından "altyapı katmanının ayrıntılarını çıkarma ve geliştiricilere en kolay üst düzey soyutlamayı sağlama" fikri, Sunucusuz "altyapıdan kaldırma" fikri ile örtüşüyor. Daha doğrusu, OAM doğası gereği sunucusuzdur .

Tam da bu nedenle, OAM piyasaya sürüldükten sonra, sunucusuz alanın odağını aldı. Elbette AWS de vazgeçilmezdir.

Nihai deneyim: OAM için AWS ECS

Mart 2020'nin sonunda AWS ECS ekibi, resmi GitHub'da Açık Uygulama Modeli için Amazon ECS adlı açık kaynaklı bir proje yayınladı.

Proje adresi: https://github.com/awslabs/amazon-ecs-for-open-application-model

Bu proje, AWS ekibinin Sunucusuz hizmetlere dayalı OAM'yi destekleme girişimidir. Bu projenin temelindeki çalışma zamanı, daha önce bahsettiğimiz Sunucusuz konteyner hizmetidir: Fargate. Bu AWS ECS for OAM projesinin geliştiricilere sağladığı deneyim çok ilginç, hadi bir göz atalım.

Bir seferde yapılabilen hazırlığın üç adımı vardır.

  • Kullanıcının AWS hesabının kimlik doğrulama bilgilerine yerel olarak sahip olması gerekir; bu, AWS resmi istemcisi aws configure komutu aracılığıyla tek tıklamayla oluşturulabilir.

  • Projeyi derleyin ve sonra oam-ecs adlı bir yürütülebilir dosya elde edebilirsiniz.

  • Ortamı gelecekteki dağıtımınıza hazırlamak için oam-ecs env komutunu yürütmeniz gerekir. Bu komut bittikten sonra AWS sizin için otomatik olarak bir VPC ve buna karşılık gelen genel / özel alt ağlar oluşturacaktır.

Hazırlık çalışması tamamlandıktan sonra, yalnızca yerel olarak bir OAM uygulaması YAML dosyası tanımlamanız gerekir (yukarıda bahsedilen helloworld uygulama örneği gibi), ardından Fargate'e HPA ile eksiksiz bir uygulama koymak için aşağıdaki tek satırlık komutu kullanabilirsiniz. İnternette dağıtılır ve doğrudan genel ağ üzerinden erişilebilir:

oam-ecs app deploy -f helloworld-app.yaml

Çok basit mi

AWS ECS for OAM projesinin resmi belgelerinde daha karmaşık bir örnek veriyor, hadi açıklayalım.

Bu sefer dağıtacağımız uygulama, hala Ar-Ge ve İşletme ve Bakım kaygılarına bölünmüş olan üç YAML dosyasından oluşuyor:

  • Ar-Ge şunları yazmaktan sorumludur:

server-component.yaml

Bu dosyadaki içerik, dağıtmak istediğimiz uygulama konteynerini açıklayan uygulamanın ilk bileşenidir.

işçi-bileşeni.yaml

Bu dosyadaki içerik uygulamasının ikinci bileşeni, özellikle mevcut ortamdaki ağın engellenmemiş olup olmadığını kontrol etmekten sorumlu olan döngüsel bir işi açıklar.

  • O&M aşağıdakileri yazmaktan sorumludur:

example-app.yaml

Bu dosyadaki içerik, özellikle çalışan bileşenini genişletmek için kullanılan, özellikle bir "manuel ölçekleyici" çalıştırma ve bakım stratejisini tanımlayan eksiksiz uygulama bileşeni topolojisi ve her bileşenin (özellikler) işletim ve bakım karakteristikleridir.

Bu nedenle, tam uygulama açıklaması olan yukarıdaki example-app.yaml'nin içeriği aşağıdaki gibidir:

apiVersion: core.oam.dev/v1alpha1 tür: ApplicationConfiguration meta veriler: ad: örnek uygulama spec: bileşenler: -componentName: işçi-v1 instanceName: örnek işçi özellikler: -name: manuel ölçekleyici özellikleri: replicaCount: 2 -componentName: sunucu-v1 instanceName: örnek-sunucu parameterValues: -name: WorldValue değer: Herkes

Gördüğünüz gibi, iki bileşeni (işçi-v1 ve sunucu-v1) tanımlar ve worker-v1 bileşeninin manuel ölçekleyici adı verilen bir manuel ölçeklendirme stratejisi vardır.

Bu Demo'nun üç YAML dosyası için bu dizinin içeriğini görüntüleyebilirsiniz:

https://github.com/awslabs/amazon-ecs-for-open-application-model/tree/master/examples

Yukarıda bahsedilen karmaşık uygulamaların konuşlandırılması hala çok basit olan tek bir talimatla yapılmaktadır:

oam-ecs uygulama dağıtımı \ -f örnekler / example-app.yaml \ -f örnekler / işçi-component.yaml \ -f örnekler / server-component.yaml

Yukarıdaki talimatlar uygulandıktan sonra (Çin'deki öğrencilerin özel ağ sorunları nedeniyle biraz sabra ihtiyacı olabilir), oam-ecs app show komutu ile uygulamanın erişim bilgilerini ve DNS adını görüntüleyebilirsiniz. Tarayıcıyı açın, bu erişim bilgilerini girin, aşağıda gösterildiği gibi bu uygulamaya doğrudan erişebilirsiniz:

Yansıtmayı güncellemek veya replicaCount değerini değiştirmek gibi uygulama yapılandırmasını değiştirmek istiyorsanız, yalnızca yukarıdaki YAML dosyasını değiştirmeniz ve ardından tamamen bildirimsel yönetim olan yeniden dağıtmanız gerekir.

Aslında, yukarıdaki işlemler AWS Konsolu aracılığıyla yapılıyorsa, çeşitli yapılandırmalar için en az beş bulut ürün sayfasının birbirine atlanması gerekir; veya CloudFormation sözdizimini öğrenmeniz ve çok, çok uzun bir CF yazmanız gerekir. Uygulamanın çalışması için gerekli olan Fargate örneğinin, LoadBalancer'ın, ağın, DNS yapılandırmasının, vb. Tüm kaynaklarını çekmek için dosyalar.

Bununla birlikte, OAM spesifikasyonu sayesinde, yukarıdaki tanımlama ve dağıtım uygulama süreci yalnızca son derece basit hale gelmekle kalmaz, aynı zamanda orijinal süreç odaklı bulut hizmeti işlemlerini doğrudan daha kısa ve kolay bildirimsel YAML dosyasına dönüştürür. OAM belirtimini uygulamak için gereken özel çalışma, aslında yalnızca birkaç yüz satır koddur.

Daha da önemlisi, AWS Fargate gibi sunucusuz hizmetler, OAM gibi geliştirici dostu uygulama tanımlarıyla birleştirildiğinde gerçekten hissedeceksiniz: Bu basit, canlandırıcı ve son derece düşük zihinsel yükün Sunucusuz olduğu ortaya çıkıyor Geliştiriciler için nihai deneyim.

Son olarak: uygulama modeli Sunucusuz ile karşılaştığında

OAM modeli, bulut tabanlı uygulama sunma ekosisteminde büyük bir tepki uyandırdı. Şu anda, Alibaba Cloud EDAS hizmeti, endüstrinin OAM tabanlı ilk üretim seviyesi uygulama yönetimi platformu haline geldi ve yakında CNCF topluluğunda, tanınmış çapraz bulut uygulama yönetimi ve yeni nesil "uygulama merkezli" ürün deneyimini başlatacak. Teslimat platformu Crossplane projesi de OAM spesifikasyonunun önemli bir uygulayıcısı ve koruyucusu haline geldi.

EDAS resmi web sitesi: https://help.aliyun.com/product/29500.html

Çapraz Uçak: https://github.com/crossplane/crossplane

Aslında, yalnızca AWS Fargate değil, bulut bilişim ekosistemimizdeki tüm sunucusuz hizmetler, OAM'yi geliştirici odaklı bir sunum katmanı ve uygulama tanımı olarak kolayca kullanabilir, böylece başlangıçtaki karmaşık altyapı API'lerini basitleştirip soyutlayabilir. Başlangıçta karmaşık süreç tabanlı işlem "tek tıklama", Kubernetes tarzı bildirim temelli uygulama yönetimi yöntemine yükseltilir.

Daha da önemlisi, OAM'ın yüksek ölçeklenebilirliği sayesinde, yalnızca Fargate'de konteyner uygulamalarını dağıtmakla kalmaz, aynı zamanda OAM'yi işlevleri, sanal makineleri, WebAssembly ve hatta aklınıza gelebilecek her tür iş yükünü tanımlamak için de kullanabilirsiniz. Sunucusuz hizmetlere kolayca dağıtılır ve hatta farklı bulut hizmetleri arasında sorunsuz bir şekilde geçiş yaparlar. Bu görünüşte "sihirli" yetenekler, standartlaştırılmış ve genişletilebilir bir "uygulama modeli" Sunucusuz bir platformla karşılaştığında çarpışabilen yenilik kıvılcımlarıdır.

Uygulama modeli + Sunucusuz, kademeli olarak bulut yerel ekosistemindeki en sıcak konulardan biri haline geldi. Bulut bilgi işlem ekosistemini "uygulama merkezli" bir düzeye doğru ilerletmek için CNCF Bulut Yerel Uygulama Teslimi Alan Grubu'na (SIG Uygulama Teslimi) katılabilirsiniz. Yön ilerlemeye devam ediyor!

OAM projesinde AWS ECS: https://github.com/awslabs/amazon-ecs-for-open-application-model/

Açık Uygulama Modeli projesi: https://github.com/oam-dev/spec

CNCF SIG Uygulama Teslimi: https://github.com/cncf/sig-app-delivery

Yazar hakkında:

Zhang Lei, Alibaba Bulut Yerel Uygulama Platformu Kıdemli Teknik Uzmanı, CNCF Çin Büyükelçisi, CNCF Uygulama Teslimatı Başkanı Sig.

Kubernetes Operatör mekanizmasının orijinal yazarlarından Alibaba Cloud teknik uzmanı Deng Hongchao, K8s uygulama yönetim sistemi hakkında daha fazla araştırma ve deneyime sahip.

Bugünün faydaları

Lu Qi ile tanışın

Ayrıca "Milyonlarca Kişi Yapay Zekayı Öğreniyor" un önemli bir parçası olarak, 2020 AIProCon Geliştiriciler Konferansı 3 - 4 Temmuz tarihleri arasında çevrimiçi olarak canlı yayınlanacak ve geliştiricilerin mevcut yapay zeka en son teknolojisini tek noktadan öğrenmelerine olanak tanıyacak Araştırma, temel teknoloji ve uygulamalar ile kurumsal vakalarda pratik deneyim ve ayrıca heyecan verici ve çeşitli geliştirici salonlarına ve programlama projelerine çevrimiçi olarak katılabilirsiniz. Bir dizi ileriye dönük aktiviteye ve çevrimiçi canlı yayın etkileşimlerine katılın. Yalnızca on binlerce geliştiriciyle iletişim kurmakla kalmaz, aynı zamanda özel canlı yayın hediyeleri kazanma ve teknik uzmanlarla bağlantı kurma fırsatına da sahip olursunuz.

Açık kaynak sadece arkadaş edinebilir mi?
önceki
Google'ın yaşamak için "kemeri germesi" gerekiyor
Sonraki
5G Altyapısı: Yüz milyonlarca kullanıcının IPv6'yı sorunsuz bir şekilde desteklemesi nasıl sağlanır?
Cidden | En iyi "toprak aromalı CP" hangisi? Lütfen Hu Yitian ve Zhang Yunlong'u bulun
Bitki Dikimi Dudak Makyajı, lütfen Kendall ve Hyuna'yı masum olmaları için iade edin
Erkek yıldız sokak çekimleri | Zhu Xingjienin dondurma takımı, yaz için sabırsızlanmamı sağlıyor
Rainbow Fart | Liu Shishinin canlı yayınında ağladı mı? Bakalım beyaz giymeye ne kadar uygun
Gökkuşağı osuruğu | Yang Mi'nin sadece aşık olmayı bildiğini kim söyledi? Bak, başka bir oyuncuyu popüler yaptı.
Lin Yun'un kazağı, Yang Mi'nin çubuk bacakları ve orada hiçbir şekilde yaşayamayan Avrupalı ve Amerikalı yıldızlar "poster sokak çekimleri"
Sana güzelliği öğret Bir konuşma, sonunda Liu Yifeinin özçekimini geliştirdiğini gördüm
Patlamış mısır Kore'nin en güzel ünlüleri seçildi, Deppin oğlu biraz yakışıklı
Cidden | "Grubumuz" u izledim ve yılın "kasetçilerini" hatırladım
Cidden | Bu yabancı moda blog yazarı, "Tik Tok" un popüler hale gelen bir bölümünü filme aldı?
Kızları aynaya bakarak% 78 daha fazla zaman geçiren nedir?
To Top