Bulutta Yerel uygulamalar nedir?What about Cloud-Native applications?

Bulutta yerel uygulamalar bu kılavuzun ana odağa sahip olmasa da, bu modernleştirme vade düzeyinin anlaşılmasında ve buluta iyileştirilmiş uygulamalardan ayırt edilebilmesi yararlı olur.Although Cloud-Native applications are not the main focus of this guide, it's helpful to have an understanding of this modernization maturity level, and to distinguish it from Cloud-Optimized applications.

Şekil 4-3, uygulama içindeki bulutta yerel uygulamaların yer aldığı konumları konumlandırır.Figure 4-3 positions Cloud-Native apps in the application modernization maturity levels:

Bulutta yerel uygulamaları konumlandırma

Şekil 4-3.Figure 4-3. Bulutta yerel uygulamaları konumlandırmaPositioning Cloud-Native applications

Bulut Yerel modernleştirme vade düzeyi genellikle yeni geliştirme yatırımları gerektirir.The Cloud-Native modernization maturity level usually requires new development investments. Bulutta yerel düzeye geçiş, genellikle, bağımsız olarak dağıtılabilecek ve ölçeklendirilebilen otonom alt sistemler (mikro hizmetler) oluşturarak büyük uygulamalardaki ölçeği büyük ölçüde artırmak için iş gereği tarafından dağıtılır uygulamanın diğer alanlarından, uzun vadede maliyetleri düşürürken ve bu otonom uygulamanın önemli rekabet avantajları sağlayan parçalarının artmasını artırma.Moving to the Cloud- Native level typically is driven by business need to modernize applications as much as possible to drastically improve scale in large applications by creating autonomous subsystems (microservices) that can be deployed and scale independently from other areas of the application while lowering costs in the long term and increase evolution agility of those autonomous app’s parts that provide significant compete advantages.

Bulutta yerel uygulamaların başlıca temel değerleri, çeviklik ile gelişebilir ve şirket içi ya da buluta dağıtılan tek parçalı bir mimariye ulaşmak zor olan sınırlara göre ölçeklenebilen mikro hizmetler mimari yaklaşımlarına dayalıdır ortamınızın.The main pillars of Cloud-Native applications are based on microservices architecture approaches, which can evolve with agility and scale to limits that would be difficult to achieve in a monolithic architecture, deployed to either on-premises or cloud environment.

Şekil 4-4, bulut Yerel modelinin ana özelliklerini gösterir.Figure 4-4 shows the main characteristics of the Cloud-Native model.

Bulutta yerel özellikler, mikro hizmetler, kapsayıcılar, bulut-dayanıklı, düzenleyiciler ve sunucusuz

Şekil 4-4.Figure 4-4. Bulutta yerel özelliklerCloud-Native characteristics

Ayrıca, yapay zeka (AI), Machine Learning (ML) ve IoT gibi diğer hizmetleri ekleyerek temel Modern Web uygulamalarını ve bulutta yerel uygulamaları genişletebilirsiniz.In addition, you can extend basic modern web apps and cloud-native apps by adding other services, like artificial intelligence (AI), machine learning (ML), and IoT. Bulut için Iyileştirilmiş olası yaklaşımlardan herhangi birini genişletmek için bu hizmetlerden herhangi birini kullanabilirsiniz.You might use any of these services to extend any of the possible Cloud-Optimized approaches.

Bulutta yerel düzeydeki uygulamalardaki temel fark, uygulama mimarisidir.The fundamental difference in applications at the Cloud-Native level is in the application architecture. Bulutta yerel uygulamalar, mikro hizmetlere dayalı uygulamalar tanımına göre yapılır.Cloud-native applications are, by definition, apps that are based on microservices. Bulutta yerel uygulamalar, tek parçalı bir Web uygulamasıyla veya geleneksel N katmanlı bir uygulamayla karşılaştırıldığında özel mimariler, teknolojiler ve platformlar gerektirir.Cloud-native apps require special architectures, technologies, and platforms, compared to a monolithic web application or traditional N-Tier application.

Bulutta yerel uygulamalar ayrıntılarıCloud-native applications details

Cloud-Native, büyük ve görev açısından kritik uygulamalar için daha gelişmiş veya yetişkin bir durumdur.Cloud-Native is a more advanced or mature state for large and mission-critical applications. Bulutta yerel uygulamalar genellikle mevcut uygulamaları modernleştirerek değil, sıfırdan oluşturulan mimari ve tasarım gerektirir.Cloud-Native applications usually require architecture and design that are created from scratch instead of by modernizing existing applications. Bulutta yerel bir uygulama ile daha basit bir buluta Iyileştirilmiş Web uygulaması arasındaki önemli fark, mikro hizmet mimarilerini bulutta yerel bir yaklaşımda kullanmanın önerisine sahiptir.The key difference between a Cloud-Native application and a simpler Cloud-Optimized web app is the recommendation to use microservices architectures in a cloud-native approach. Bulut için Iyileştirilmiş uygulamalar, tek parçalı Web uygulamaları veya N katmanlı uygulamalar da olabilir.Cloud-Optimized apps can also be monolithic web apps or N-Tier apps.

On Iki öğeli uygulama (mikro hizmetler yaklaşımının yakından ilişkili desenlerinin bir koleksiyonu), bulut Yerel uygulama mimarileri için de gereksinim olarak kabul edilir.The Twelve-Factor App (a collection of patterns that are closely related to microservices approaches) is also considered a requirement for cloud-native application architectures.

Bulut Yerel Bilgi Işlem altyapısı (CNCF) , bulutta yerel ilkelerin birincil promokdır.The Cloud Native Computing Foundation (CNCF) is a primary promoter of cloud-native principles. Microsoft, CNCF 'nin bir üyesidir.Microsoft is a member of the CNCF.

Örnek bir tanım ve bulut Yerel uygulamalarının özellikleri hakkında daha fazla bilgi için bkz. Gartner, bulutta yerel uygulamaları mimari ve tasarlama.For a sample definition and for more information about the characteristics of cloud-native applications, see the Gartner article How to architect and design cloud-native applications. Microsoft 'un bulut Yerel uygulamasının nasıl uygulanacağı hakkında belirli yönergeler için bkz . .net mikro hizmetleri: Kapsayıcılı .NET uygulamalarıiçin mimari.For specific guidance from Microsoft about how to implement a cloud-native application, see .NET microservices: Architecture for containerized .NET applications.

Tam bir uygulamayı bulutta yerel modele geçirdiğinizde göz önünde bulundurmanız gereken en önemli faktör, mikro hizmet tabanlı bir mimariye yeniden mimarinizin olması gerekir.The most important factor to consider if you migrate a full application to the cloud-native model is that you must rearchitect to a microservices-based architecture. Bu, ilgili büyük yeniden düzenleme süreci nedeniyle geliştirmede önemli bir yatırım gerektirir.This clearly requires a significant investment in development because of the large refactoring process involved. Bu seçenek genellikle yeni ölçeklenebilirlik düzeyi ve uzun süreli çeviklik gerektiren görev açısından kritik uygulamalar için seçilir.This option usually is chosen for mission-critical applications that need new levels of scalability and long-term agility. Ancak, yalnızca birkaç yeni senaryo için mikro hizmetler ekleyerek buluta yerel olarak taşımaya başlayabilir ve sonunda uygulamayı mikro hizmet olarak tamamen yeniden düzenleyin.But, you could start moving toward cloud-native by adding microservices for just a few new scenarios, and eventually refactor the application fully as microservices. Bu, bazı senaryolar için en iyi seçenek olan artımlı bir yaklaşımdır.This is an incremental approach that is the best option for some scenarios.

Mikro hizmetler hakkında ne var?What about microservices?

Mikro hizmetleri ve bunların nasıl çalıştığını anlamak, kuruluşunuz için bulutta yerel uygulamalar düşünürken önem taşımaktadır.Understanding microservices and how they work is important when you are considering cloud-native applications for your organization.

Mikro hizmet mimarisi, sıfırdan oluşturulan veya bulut Yerel uygulamalarına yönelik mevcut uygulamaları geliştirmiş olduğunuz uygulamalar için kullanabileceğiniz gelişmiş bir yaklaşımdır.The microservices architecture is an advanced approach that you can use for applications that are created from scratch or when you evolve existing applications toward cloud-native applications. Yeni mikro hizmetler paradigmalarına hakkında bilgi edinmek için mevcut uygulamalara birkaç mikro hizmet ekleyerek başlayabilirsiniz.You can start by adding a few microservices to existing applications to learn about the new microservices paradigms. Ancak, özellikle de bu tür mimari yaklaşım için mimariyi ve kodlabilmeniz gerekir.But clearly, you need to architect and code, especially for this type of architectural approach.

Ancak, mikro hizmetler yeni veya modern uygulamalar için zorunlu değildir.However, microservices are not mandatory for any new or modern application. Mikro hizmetler bir "sihirli madde işareti" değil, her uygulamayı oluşturmanın tek ve en iyi yolu değildir.Microservices are not a "magic bullet," and they aren't the single, best way to create every application. Mikro hizmetleri nasıl ve ne zaman kullanacağınızı oluşturmanız gereken uygulama türüne bağlıdır.How and when you use microservices depends on the type of application that you need to build.

Mikro hizmetler mimarisi, özerk hizmetler biçiminde birden çok bağımsız alt sistemi temel alan dağıtılmış ve büyük veya karmaşık görev açısından kritik uygulamalar için tercih edilen yaklaşım haline geliyor.The microservices architecture is becoming the preferred approach for distributed and large or complex mission-critical applications that are based on multiple, independent subsystems in the form of autonomous services. Mikro hizmet tabanlı bir mimaride, bir uygulama bağımsız olarak geliştirilen, test edilmiş, sürümlü, dağıtılan ve ölçeklendirilen bir hizmetler koleksiyonu olarak oluşturulur.In a microservices-based architecture, an application is built as a collection of services that can be independently developed, tested, versioned, deployed, and scaled. Bu, mikro hizmet başına herhangi bir ilgili, özerk veritabanı içerebilir.This can include any related, autonomous database per microservice.

.NET Core kullanarak uygulayabileceğiniz mikro hizmetler mimarisine ayrıntılı bir bakış için bkz. indirilebilir PDF e-book .net mikro hizmetleri: Kapsayıcılı .NET uygulamalarıiçin mimari.For a detailed look at a microservices architecture that you can implement by using .NET Core, see the downloadable PDF e-book .NET microservices: Architecture for containerized .NET applications. Kılavuz ayrıca çevrimiçiolarak da kullanılabilir.The guide also is available online.

Ayrıca, mikro hizmetlerin güçlü yetenekler bağımsız dağıtım, güçlü alt sistem sınırları ve teknoloji çeşitlemesi sunabileceği senaryolarda bile, birçok yeni zorluk da daha da çalışırlar.But even in scenarios in which microservices offer powerful capabilities-independent deployment, strong subsystem boundaries, and technology diversity-they also raise many new challenges. Sorunlar, parçalanmış ve bağımsız veri modelleri gibi dağıtılmış uygulama geliştirmeyle ilgilidir; Mikro hizmetler arasında esnek iletişim sağlama; nihai tutarlılık gereksinimi; ve işlemsel karmaşıklık.The challenges are related to distributed application development, such as fragmented and independent data models; achieving resilient communication between microservices; the need for eventual consistency; and operational complexity. Mikro hizmetler geleneksel tek parçalı uygulamalar ile karşılaştırıldığında daha yüksek düzeyde karmaşıklığa sahiptir.Microservices introduce a higher level of complexity compared to traditional monolithic applications.

Mikro hizmetler mimarisinin karmaşıklığı nedeniyle, mikro hizmet tabanlı uygulamalar için yalnızca belirli senaryolar ve belirli uygulama türleri uygundur.Because of the complexity of a microservices architecture, only specific scenarios and certain application types are suitable for microservice-based applications. Bunlar, birden çok, gelişen alt sistemi olan büyük ve karmaşık uygulamaları içerir.These include large and complex applications that have multiple, evolving subsystems. Bu gibi durumlarda, uzun süreli çevikliği ve daha verimli uygulama bakımı için daha karmaşık bir yazılım mimarisine yatırım harcamıştır.In these cases, it's worth investing in a more complex software architecture, for increased long-term agility and more efficient application maintenance. Ancak, daha az karmaşık senaryolar için tek parçalı bir uygulama yaklaşımına veya daha basit N katmanlı yaklaşımla devam etmek daha iyi olabilir.But for less complex scenarios, it might be better to continue with a monolithic application approach or simpler N-Tier approaches.

Son bir notta, bu kavram hakkında tekrarlanabilecek risklere bile, uygulamalarınızda "hepsi veya hiçbir şey yok" gibi mikro hizmetleri kullanma konusuna bakmamanız gerekir.As a final note, even at the risk of being repetitive about this concept, you shouldn't look at using microservices in your applications as "all-in or nothing at all." Mikro hizmetlere dayalı yeni, küçük senaryolar ekleyerek mevcut tek parçalı uygulamaları genişletebilir ve geliştirebilirsiniz.You can extend and evolve existing monolithic applications by adding new, small scenarios based on microservices. Mikro hizmet mimarisi yaklaşımıyla çalışmaya başlamak için sıfırdan başlamanız gerekmez.You don't need to start from scratch to start working with a microservices architecture approach. Aslında, yeni senaryolar ekleyerek mevcut bir monoparçalı veya N katmanlı uygulamayı kullanmayı öneririz.In fact, we recommend that you evolve from using an existing monolithic or N-Tier application by adding new scenarios. Sonuç olarak, uygulamayı otonom bileşenlere veya mikro hizmetlere kesebilirsiniz.Eventually, you can break down the application into autonomous components or microservices. Tek parçalı uygulamalarınızı, bir mikro hizmet yönünde, adım adım ' da gelişen şekilde başlatabilirsiniz.You can start evolving your monolithic applications in a microservices direction, step by step.

Herhangi bir durumda, bu kılavuz genellikle tek parçalı veya N katmanlı mimarilere sahip olan mevcut uygulamaların modernisini hedeflediğinden, bu mevcut yönergelerin geri kalanı tüm "mikro hizmet tabanlı uygulamalar yok" kısmında odaklanır.In any case, the rest of this present guidance focuses most of all on "no microservices-based apps" because this guidance is mainly targeting the modernization of existing apps that usually have monolithic or N-Tier architectures.