আজ আমরা HashiCorp Terraform Redis Enterprise Cloud প্রোভাইডারের উপলব্ধতা ঘোষণা করছি। ডেভেলপমেন্ট টিমեր যেহেতু DevOps nguyên則 আরও বেশি আডপ্ট করছে যেমন continuous integration/continuous delivery (CI/DC), ইনফ্রাস্ট্রাকচার-এজ-কোড ম্যানেজ করার দক্ষতা почти একটি must-have ক্ষমতা হয়ে উঠেছে যেকোনো ক্লাউড সার্ভিসের জন্য। ইনফ্রাস্ট্রাকচার-এজ-কোড জায়গায় একটি নেতৃত্বকারী টুল হলো HashiCorp Terraform, যা মেজর ক্লাউড প্রোভাইডার এবং সার্ভিসগুলোকে তার প্রোভাইডার এবং মডিউলসহ সাপোর্ট করে ক্লাউড ইনফ্রাস্ট্রাকচার অটোমেশন ইকোসিস্টেমের জন্য প্রোভিশনিং, কম্প্লায়েন্স এবং যেকোনো ক্লাউড, ইনফ্রাস্ট্রাকচার এবং সার্ভিসের ম্যানেজমেন্ট।
Terraform কী?
যদি আপনি পরিচিত ন हों, Terraform হলো একটি টুল ইনফ্রাস্ট্রাকচার বিল্ড, চেঞ্জ এবং ভার্সনিং করার জন্য সুরক্ষিত এবং দক্ষভাবে, সবকিছু কোড দিয়ে ম্যানেজ করে। কনফিগারেশন ফাইলগুলো আপনার অ্যাপ্লিকেশন চালানোর জন্য প্রয়োজনীয় কম্পোনেন্টগুলোর বর্ণনা করে। Terraform প্রায় যেকোনো ইনফ্রাস্ট্রাকচার কম্পোনেন্ট ম্যানেজ করতে পারে, যার মধ্যে বেয়ার মেটাল, ভার্চুয়াল মেশিন, ক্লাউড ইনস্ট্যান্স এবং অন্যান্য জনপ্রিয় Infrastructure-as-a-Services (IaaS) সার্ভিস। আপনার অ্যাপ্লিকেশন স্ট্যাকে কম্পোনেন্টগুলো Terraform-এ রিসোর্স হিসেবে রিপ্রেজেন্ট করা হয়। একটি Terraform প্রোভাইডার সংশ্লিষ্ট রিসোর্সের API ইন্টারঅ্যাকশন বোঝার জন্য দায়বদ্ধ এবং রিসোর্সের ফিচারগুলো বাহিরের জগতে এক্সপোজ করে।
আজ আমরা কী ঘোষণা করছি?
এই বৃদ্ধিমান চাহিদা মেটাতে, Redis Redis Enterprise Cloud-র জন্য একটি Terraform প্রোভাইডার ডেভেলপ করেছে। HashiCorp Terraform Redis Enterprise Cloud Provider কাস্টমারদের Redis Enterprise Cloud সাবস্ক্রিপশন, ডেটাবেস এবং নেটওয়ার্ক পিয়ারিং সহজে কোড হিসেবে ডিপ্লয় এবং ম্যানেজ করতে দেয়, যেকোনো ক্লাউড প্রোভাইডারের ওপর।
Quick start
Redis Enterprise Cloud-এর Terraform Provider কীভাবে কাজ করে এবং কী করতে পারে তা দেখানোর জন্য, আসুন একটি স্যাম্পল সাবস্ক্রিপশন তৈরি করি দুটি ডেটাবেসের সাথে, যাদের মধ্যে একটি RedisJSON মডিউল ব্যবহার করছে।
পূর্বশর্ত:
- লোকালি Terraform ইনস্টল করা।
- একটি Redis Enterprise Cloud অ্যাকাউন্ট।
- আপনার Redis Enterprise Cloud অ্যাকাউন্টে প্রোগ্রাম্যাটিক অ্যাক্সেস সক্ষম।
আসুন আমাদের Redis Enterprise Cloud API কীগুলো এনভায়রনমেন্ট ভেরিয়েবল হিসেবে স্টোর করি:
$ export REDISCLOUD_ACCESS_KEY=<your API access key>
$ export REDISCLOUD_SECRET_KEY=<your API secret key>
এখন একটি নতুন ফোল্ডার তৈরি করি এবং নিচের Terraform HCL ফাইলটি রাখি। ফাইলের নাম দিই rediscloud-tf-example.tf:
terraform { required_providers { rediscloud = { source = "Redis/rediscloud" version = "0.2.0" } } } # আপনার ক্রেডিট কার্ড ডিটেলস প্রদান করুন data "rediscloud_payment_method" "card" { card_type = "Visa" last_four_numbers = "1234" } # ডেটাবেসের জন্য র্যান্ডম পাসওয়ার্ড জেনারেট করুন resource "random_password" "passwords" { count = 2 length = 20 upper = true lower = true number = true special = false } resource "rediscloud_subscription" "example" { name = "Demo" payment_method_id = data.rediscloud_payment_method.card.id memory_storage = "ram" cloud_provider { #Redis রিসোর্স প্রোভাইডারে AWS-এ চলছে provider = "AWS" cloud_account_id = 1 region { region = "eu-west-1" networking_deployment_cidr = "10.0.0.0/24" preferred_availability_zones = ["eu-west-1a"] } } database { name = "redis-db" protocol = "redis" memory_limit_in_gb = 1 replication = true data_persistence = "none" throughput_measurement_by = "number-of-shards" throughput_measurement_value = 2 password = random_password.passwords[0].result } database { name = "db-json" protocol = "redis" memory_limit_in_gb = 1 replication = true data_persistence = "aof-every-1-second" module { name = "RedisJSON" } throughput_measurement_by = "operations-per-second" throughput_measurement_value = 10000 password = random_password.passwords[1].result } }
পরবর্তী ধাপ হলো terraform এনভায়রনমেন্ট ইনিশিয়ালাইজ করা এই কমান্ড চালিয়ে:
$ terraform init
ফলাফলটি এরকম দেখাবে:
... Terraform has been successfully initialized! You may now begin working with Terraform. Try running "terraform plan" to see any changes that are required for your infrastructure. All Terraform commands should now work. ...
Terraform সফলভাবে ইনিশিয়ালাইজ হলে, নিচের কমান্ড চালান Terraform প্ল্যান তৈরি করতে:
$ terraform plan
আউটপুটটি এরকম দেখাবে:
... Plan: 1 to add, 0 to change, 0 to destroy. ...
এখন Terraform-কে তার জাদু দেখাতে দিই এবং আমাদের ডেটাবেস প্রোভিশন করি:
$ terraform apply
terraform apply কমান্ডটি কিছু মিনিট নিতে পারে একবার শেষ হলে, এরকম ফলাফল দেবে:
… rediscloud_subscription.example: Creation complete after 8m16s [id=103873] Apply complete! Resources: 1 added, 0 changed, 0 destroyed. ...
আপনি দেখতে পাচ্ছেন, আমরা এখন দুটি নতুন ডেটাবেস প্রোভিশন করেছি। আপনার যা করতে হবে সেটি হলো ডেটাবেসের এন্ডপয়েন্টগুলো নেওয়া এবং আপনার অ্যাপ্লিকেশনে প্লাগ ইন করা। আপনি RedisInsightও ব্যবহার করতে পারেন, স্ট্রিমলাইনড Redis অ্যাপ্লিকেশন ডেভেলপমেন্টের জন্য GUI, সংযোগ করতে এবং আপনার ডেটা এক্সপ্লোর করতে।
Redis Enterprise Cloud কনসোলে নতুন সাবস্ক্রিপশন এবং ডেটাবেস দেখাবে:
আপনি যখন ডেটাবেসের সাথে মজা করা শেষ করবেন, তখন সবকিছু টিয়ার ডাউন করতে এই কমান্ড চালান:
$ terraform destroy
আগামী কী?
আমরা HashiCorp Terraform Redis Enterprise Cloud Provider-এর ক্ষমতা প্রসারিত করতে থাকব। আপনার যদি কোনো আইডিয়া বা ফিচার থাকে যা আপনি চান আমরা প্রোভাইডারে সাপোর্ট করি বা আপনি কোনো বাগ খুঁজে পান, অনুগ্রহ করে আমাদের GitHub রিপোজিটরিতে একটি ইস্যু খোলুন আমাকে জানাতে। আপনি pm.group@redis.com-এ লাইন ড্রপ করতেও পারেন।
প্রোডাকশন ইউজ কেসের জন্য, আমরা এরকম রিকমেন্ড করি, যা HashiCorp-এর Terraform-এর জন্য ক্লাউড-ভিত্তিক অফারিং। এটি আপনাকে ক্রেডেনশিয়াল একটি সুরক্ষিত এনভায়রনমেন্টে আপনার কনফিগারেশন ফাইল এবং সোর্স কন্ট্রোলের বাইরে স্টোর করতে দেবে। Terraform Cloud সকলাবেটিভ ফিচারও দিয়ে আসে যেমন ফ্রি রিমোট স্টেট স্টোরেজ, কাস্টম ওয়ার্কস্পেস পারমিশন, ভার্সন-কন্ট্রোল সিস্টেম ইন্টিগ্রেশন, এবং পলিসি-এজ-কোড। আপনি terraform.io/cloud-এ ফ্রি সাইন আপ করতে পারেন।