Uygulama geçişi

Tamamlandı

Veritabanınızı şirket içinden Azure'a geçirdikten sonra, postgreSQL'e yeni konumunda erişebilmeleri için mevcut uygulamalarınızı güncelleştirmeniz gerekir.

Özgün şirket içi sunucunuz ve veritabanınız kullanıcılarla ilişkili ayrıcalıkları, yapabilecekleri işlemleri ve bu işlemleri gerçekleştirdikleri nesneleri tanımlayan roller içerir. PostgreSQL için Azure Veritabanı, şirket içinde çalışan PostgreSQL ile aynı kimlik doğrulama ve yetkilendirme mekanizmalarını kullanır.

Bu ünitede, yeni geçirilen PostgreSQL için Azure Veritabanı bağlanmak için uygulamalarınızda yapmanız gereken güncelleştirmeleri keşfedeceksiniz.

Kullanıcı rollerini el ile oluşturma

PostgreSQL veritabanını Azure Veritabanı Geçiş Hizmeti kullanarak PostgreSQL için Azure Veritabanı aktardığınızda roller ve rol atamaları kopyalanır. Yönetici ve hedef veritabanındaki tabloların kullanıcıları için gerekli rolleri ve kullanıcı hesaplarını el ile yeniden oluşturmanız gerekir. Bu görevleri gerçekleştirmek için psql veya pg Yönetici yardımcı programlarını kullanırsınız. CREATE ROLE komutunu çalıştırın. Bir role gerekli ayrıcalıkları atamak için komutunu kullanırsınız GRANT . Örnek olarak:

CREATE ROLE myuseraccount WITH LOGIN NOSUPERUSER CREATEDB PASSWORD 'mY!P@ss0rd';
GRANT ALL PRIVILEGES ON DATABASE mydatabase TO myuseraccount;

Dekont

PostgreSQL rolleri oluşturmak için bash isteminden komutunu da kullanırsınız createuser .

Şirket içi veritabanındaki mevcut rolleri görüntülemek için aşağıdaki SQL deyimini çalıştırın:

SELECT rolname
FROM pg_roles;

Rollere atanan ayrıcalıkları görüntülemek için psql yardımcı programındaki \du komutunu kullanabilirsiniz.

                              List of roles
   Role name   |               Attributes                                   | Member of
---------------+------------------------------------------------------------+-----------
 azureuser     | Superuser, Create DB                                       | {}
 myuseraccount | Create DB                                                  | {}
 postgres      | Superuser, Create role, Create DB, Replication, Bypass RLS | {}

Dekont

PostgreSQL için Azure Veritabanı kendi rollerini eklediğini unutmayın. Bu roller, , azure_superuserve hizmetini oluştururken belirttiğiniz yönetici kullanıcıyı içerirazure_pg_admin. Yönetim hesaplarınızı kullanarak oturum açarsınız, ancak diğer iki rol Azure tarafından kullanılmak üzere ayrılmıştır; bunları kullanmayı denememelisiniz.

Uygulamaları yeniden yapılandırma

Bir uygulamayı PostgreSQL için Azure Veritabanı bağlanacak şekilde yeniden yapılandırmak basit bir işlemdir. Ancak, geçiş uygulamaları için bir strateji belirlemek daha önemlidir.

PostgreSQL uygulamalarını yeniden yapılandırırken dikkat edilmesi gerekenler

Kurumsal bir ortamda, aynı PostgreSQL veritabanlarında çalışan birçok uygulama olabilir. Bu uygulamaları çalıştıran çok sayıda kullanıcı olabilir. Mevcut sistemden PostgreSQL için Azure Veritabanı geçiş yaptığınızda sistemlerinizin çalışmaya devam edeceğinden, kullanıcıların işlerini yapmaya devam edeceğinden ve iş açısından kritik operasyonlarınızın çalışır durumda kaldığından emin olmak istiyorsunuz. Modül 1, Ders 2, Geçişle ilgili dikkat edilmesi gerekenler, sorunların birçoğu genel olarak ele alınmıştı. PostgreSQL veritabanını Azure'a geçirirken dikkate alınacak bazı ayrıntılar vardır:

  • Çevrimdışı geçiş gerçekleştiriyorsanız, eski veritabanı hala kullanılıyorsa özgün PostgreSQL veritabanındaki veriler ve Azure'da çalışan yeni veritabanları hızla ayrışmaya başlayabilir. Çevrimdışı geçiş, bir sistemi kısa bir süre tamamen çalışma dışı bırakır ve sonra yeniden başlamadan önce tüm uygulamaları yeni sisteme geçirirseniz uygundur. İş açısından kritik bir sistem için bu yaklaşım mümkün olmayabilir. Azure sanal makinesinde çalışan PostgreSQL'e geçiş gerçekleştiriyorsanız, şirket içi sisteminiz ile Azure'da çalışan sistem arasında PostgreSQL çoğaltmasını yapılandırabilirsiniz. Yerel PostgreSQL çoğaltması yalnızca bir yönde çalışır, ancak PostgreSQL sunucuları arasında çift yönlü çoğaltmayı destekleyen üçüncü taraf çözümler mevcuttur (bu çözümler PostgreSQL için Azure Veritabanı ile çalışmaz).
  • Çevrimiçi geçiş gerçekleştiriyorsanız, PostgreSQL için Azure Veritabanı hizmeti şirket içi veritabanından Azure'da çalışan veritabanına çoğaltmayı ayarlar. İlk veri aktarımından sonra çoğaltma, şirket içi veritabanında yapılan tüm değişikliklerin Azure'daki veritabanına kopyalanmasını sağlar, ancak tersi yönde kopyalanmaz.

Her iki durumda da, yanlışlıkla üzerine yazma yoluyla canlı verileri kaybetmediğinizden emin olmanız gerekir. Örneğin, çevrimiçi senaryoda, PostgreSQL için Azure Veritabanı çalıştıran veritabanına bağlı bir uygulama, değişikliklerinin şirket içi veritabanını kullanan bir uygulama tarafından körü körüne üzerine yazılabilir. Bunu göz önünde bulundurarak aşağıdaki yaklaşımları dikkate almanız gerekir:

  • Uygulamaları iş yükü türlerine göre geçirin. Yalnızca okumak üzere verilere erişen bir uygulama, PostgreSQL için Azure Veritabanı'da çalışan veritabanına güvenli bir şekilde taşınabilir ve şirket içi veritabanını kullanan uygulamalar tarafından yapılan tüm değişiklikleri görür. Salt okunur uygulamalar tam olarak güncel veriler gerektirmiyorsa, ters stratejiyi de benimseyebilirsiniz.
  • Kullanıcıları iş yükü türlerine göre geçirin. Bu strateji öncekine benzer, ancak yalnızca rapor oluşturan kullanıcılarınız olabilirken diğer kullanıcılar verileri değiştirir. Kullanıcı gereksinimlerine göre uygun veritabanına bağlanmak için aynı uygulamayı yapılandırmış olabilirsiniz.
  • Uygulamaları kullandıkları veri kümelerine göre geçirin. Farklı uygulamalar verilerin farklı alt kümelerini kullanıyorsa, bu uygulamaları birbirinden bağımsız olarak geçirebilirsiniz.

Uygulamayı yeniden yapılandırma

Bir uygulamayı yeniden yapılandırmak için yeni veritabanına işaret edersiniz. İyi yazılmış uygulamaların çoğu bağlantı mantığını yalıtacaktır ve kodun değiştirilmesini gerektiren tek parçası bu olmalıdır. Çoğu durumda, bağlantı bilgileri yapılandırma bilgileri olarak depolanabilir; yalnızca bu bilgileri güncelleştirmeniz yeterlidir.

PostgreSQL için Azure Veritabanı hizmetinizin bağlantı bilgilerini Azure portalında, hizmetinizin Bağlan dizeleri sayfasında bulabilirsiniz. Azure, birçok yaygın programlama dili ve çerçevesi için bilgi sağlar.

Image showing the Connection strings page for Azure Database for PostgreSQL item in the Azure portal

Ağ bağlantı noktalarını açma

Bu modülün 1. Dersinde belirtildiği gibi, PostgreSQL için Azure Veritabanı bir güvenlik duvarının arkasında çalışan korumalı bir hizmettir. İstemciler, IP adresleri hizmet tarafından tanınmadığı sürece bağlanamaz. Veritabanlarınıza bağlanması gereken uygulamaları çalıştıran istemciler için IP adreslerini veya adres bloğu aralıklarını eklemeniz gerekir.

Uygulamaları test edin ve doğrulayın

Uygulamalarınızı ve kullanıcılarınızı yeni veritabanına geçirmeden önce her şeyi doğru yapılandırdığınızdan emin olmanız önemlidir.

"Kuru çalışan" uygulamalarla başlayın ve doğru işlevselliğin kullanılabilir olduğundan emin olmak için her rolü bağlayın.

Ardından, belirli bir süre boyunca temsili iş yüklerini eşzamanlı olarak çalıştıran tipik kullanıcı sayısını taklit etmek için "bekletme testleri" gerçekleştirin. Sistemi izleyin ve PostgreSQL için Azure Veritabanı hizmetinize yeterli kaynak ayırdığınızdan emin olun.

Bu noktada, sistemi kullanıcılara dağıtabilirsiniz. Küçük bir kullanıcı alt kümesinin farkında olmayan bir şekilde sisteme aktarıldığı bir tür "kanarya testi" uygulamak yararlı olabilir. Bu, kullanıcıların yeni veritabanıyla aynı, daha iyi veya daha kötü bir deneyime sahip olup olmadığı konusunda tarafsız bir fikir verir.