আজ আমরা HashiCorp Terraform Redis এন্টারপ্রাইজ ক্লাউড প্রদানকারীর উপলব্ধতা ঘোষণা করতে পেরে আনন্দিত। যদিও ডেভেলপমেন্ট টিমগুলি ক্রমাগত ইন্টিগ্রেশন/কন্টিনিউয়াস ডেলিভারি (CI/DC) এর মতো আরও বেশি বেশি DevOps নীতিগুলিকে আলিঙ্গন করে, কোডটি যেকোন ক্লাউড পরিষেবার জন্য প্রায় অপরিহার্য ক্ষমতা হয়ে উঠেছে কারণ অবকাঠামো পরিচালনা করার প্রয়োজন। কোড স্পেস হিসাবে পরিকাঠামোর একটি শীর্ষস্থানীয় হাতিয়ার হল HashiCorp Terraform, যে কোনো ক্লাউড, পরিকাঠামো, এবং পরিষেবার বিধান, সম্মতি এবং পরিচালনার জন্য প্রধান ক্লাউড প্রদানকারী এবং পরিষেবাগুলিকে তার প্রদানকারী এবং মডিউল ক্লাউড অবকাঠামো অটোমেশন ইকোসিস্টেম সমর্থন করে৷
টেরাফর্ম কি?
আপনি যদি পরিচিত না হন, তবে টেরাফর্ম হল একটি টুল যা পরিকাঠামো নির্মাণ, পরিবর্তন এবং সংস্করণ করার জন্য নিরাপদে এবং দক্ষতার সাথে, কোডের মাধ্যমে সবকিছু পরিচালনা করে। আপনার অ্যাপ্লিকেশন চালানোর জন্য প্রয়োজনীয় উপাদানগুলি বর্ণনা করতে কনফিগারেশন ফাইলগুলি ব্যবহার করা হয়। টেরাফর্ম বেয়ার মেটাল, ভার্চুয়াল মেশিন, ক্লাউড ইনস্ট্যান্স এবং অন্যান্য অনেক জনপ্রিয় অবকাঠামো-এ-সার্ভিসেস (আইএএএস) পরিষেবা সহ প্রায় যেকোনো অবকাঠামো উপাদান পরিচালনা করতে পারে। আপনার অ্যাপ্লিকেশন স্ট্যাকের উপাদানগুলি Terraform-এ সম্পদ হিসাবে উপস্থাপিত হয়। একজন Terraform প্রদানকারী প্রাসঙ্গিক সম্পদের API ইন্টারঅ্যাকশন বোঝার জন্য এবং সম্পদের বৈশিষ্ট্যগুলিকে বিশ্বের সামনে তুলে ধরার জন্য দায়ী।
তাহলে আজ আমরা কি ঘোষণা করছি?
এই ক্রমবর্ধমান চাহিদা মেটাতে, রেডিস রেডিস এন্টারপ্রাইজ ক্লাউডের জন্য একটি টেরাফর্ম প্রদানকারী তৈরি করেছে। HashiCorp Terraform রেডিস এন্টারপ্রাইজ ক্লাউড প্রোভাইডার গ্রাহকদের যেকোন ক্লাউড প্রদানকারীতে রেডিস এন্টারপ্রাইজ ক্লাউড সাবস্ক্রিপশন, ডেটাবেস এবং নেটওয়ার্ক পিয়ারিং কোড হিসাবে সহজেই স্থাপন ও পরিচালনা করতে দেয়।
দ্রুত শুরু
রেডিস এন্টারপ্রাইজ ক্লাউডের টেরাফর্ম প্রদানকারী কীভাবে কাজ করে এবং এটি কী করতে পারে তা প্রদর্শন করতে, আসুন দুটি ডাটাবেস সহ একটি নমুনা সাবস্ক্রিপশন তৈরি করি, যার মধ্যে একটি RedisJSON মডিউল ব্যবহার করে৷
পূর্বশর্ত:
- টেরাফর্ম স্থানীয়ভাবে ইনস্টল করা হয়েছে।
- একটি রেডিস এন্টারপ্রাইজ ক্লাউড অ্যাকাউন্ট।
- আপনার রেডিস এন্টারপ্রাইজ ক্লাউড অ্যাকাউন্টে প্রোগ্রাম্যাটিক অ্যাক্সেস সক্ষম করা হয়েছে।
আমাদের Redis Enterprise ক্লাউড API কীগুলিকে পরিবেশের ভেরিয়েবল হিসাবে সংরক্ষণ করে শুরু করা যাক:
$ রপ্তানি REDISCLOUD_ACCESS_KEY=<আপনার API অ্যাক্সেস কী>
$ রপ্তানি REDISCLOUD_SECRET_KEY=<আপনার API গোপন কী>
এখন একটি নতুন ফোল্ডার তৈরি করুন এবং এখানে দেখানো Terraform HCL ফাইলটি রাখুন। আসুন ফাইলটিকে rediscloud-tf-example.tf:
বলিterraform { required_providers { rediscloud = { source = "Redis/rediscloud" version = "0.2.0" } } } # Provide your credit card details data "rediscloud_payment_method" "card" { card_type = "Visa" last_four_numbers = "1234" } # Generates a random password for the database 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 { #Running in AWS on Redis resources 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 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 পরিকল্পনা
আউটপুট এর মত দেখতে হবে:
... Plan: 1 to add, 0 to change, 0 to destroy. ...
এখন আসুন টেরাফর্মকে এর যাদু করতে দিন এবং আমাদের ডেটাবেসগুলি সরবরাহ করুন:
$ terraform প্রযোজ্য
টেরাফর্ম প্রয়োগ কমান্ডটি একবার শেষ হয়ে গেলে সম্পূর্ণ হতে কয়েক মিনিট সময় লাগতে পারে, এটি এমন একটি ফলাফল তৈরি করবে যা দেখতে এইরকম হবে:
… rediscloud_subscription.example: Creation complete after 8m16s [id=103873] Apply complete! Resources: 1 added, 0 changed, 0 destroyed. ...
আপনি দেখতে পাচ্ছেন, আমরা এখন দুটি নতুন ডাটাবেসের ব্যবস্থা করেছি। আপনাকে যা করতে হবে তা হল ডাটাবেসের শেষ পয়েন্টগুলি দখল করা এবং সেগুলিকে আপনার অ্যাপ্লিকেশনে প্লাগ করা। এছাড়াও আপনি RedisInsight ব্যবহার করতে পারেন, স্ট্রিমলাইন্ড রেডিস অ্যাপ্লিকেশন ডেভেলপমেন্টের জন্য GUI, সংযোগ করতে এবং আপনার ডেটা অন্বেষণ করতে৷
৷রেডিস এন্টারপ্রাইজ ক্লাউড কনসোল নতুন সদস্যতা এবং ডাটাবেস প্রদর্শন করে:
একবার আপনি আপনার ডাটাবেসের সাথে মজা করার পরে আপনি এই কমান্ডটি চালিয়ে সবকিছু ভেঙে ফেলতে পারেন:
$ terraform ধ্বংস
এরপর কি?
আমরা HashiCorp Terraform রেডিস এন্টারপ্রাইজ ক্লাউড প্রদানকারীর ক্ষমতা প্রসারিত করতে থাকব। আপনার যদি কোনো ধারণা বা বৈশিষ্ট্য থাকে যা আপনি আমাদের প্রদানকারীকে সমর্থন করতে চান বা আপনি একটি বাগ খুঁজে পান, দয়া করে আমাদের GitHub সংগ্রহস্থলে একটি সমস্যা খোলার মাধ্যমে আমাদের জানান। এছাড়াও আপনি [email protected] এ আমাদের একটি লাইন দিতে পারেন।
উৎপাদন ব্যবহারের ক্ষেত্রে, আমরা টেরাফর্মের জন্য HashiCorp-এর ক্লাউড-ভিত্তিক অফারও ব্যবহার করার পরামর্শ দিই। এটি আপনাকে আপনার কনফিগারেশন ফাইল এবং উত্স নিয়ন্ত্রণের বাইরে একটি নিরাপদ পরিবেশে শংসাপত্রগুলি সংরক্ষণ করতে সক্ষম করবে৷ টেরাফর্ম ক্লাউড সহযোগিতামূলক বৈশিষ্ট্যগুলির সাথে আসে যেমন ফ্রি রিমোট স্টেট স্টোরেজ, কাস্টম ওয়ার্কস্পেস অনুমতি, সংস্করণ-নিয়ন্ত্রণ সিস্টেম ইন্টিগ্রেশন, সেইসাথে নীতি এবং কোড। আপনি terraform.io/cloud এ বিনামূল্যে সাইন আপ করতে পারেন।