معرفی ابزارها و خدمات AWS DevOps

ابزارها و خدمات AWS DevOpsدر هسته خود، DevOps تحویل برنامه ها را کارآمدتر می کند. خدمات وب آمازون (AWS) دارای پلتفرم و خدماتی است تا تغییر کد را تشخیص دهد و تحویل خودکار آن تغییر را از توسعه، از طریق محیط‌های پشتیبانی تا تولید، انجام دهد. با این حال، تحویل کد تنها یکی از جنبه های DevOps است.DevOps چیست؟اصطلاح DevOps هم به موقعیت و هم به ترکیبی از فرآیندهای اعمال شده در یک شرکت اشاره دارد. یک مهندس DevOps معمولاً یک مدیر سیستم با دانش برنامه نویسی خاص است. به عنوان یک قاعده، یک مهندس DevOps مسئول موارد زیر است:برنامه ریزی نرم افزار ها و زیرساخت های آنهاساخت و نگهداری فرآیند CI/CDنظارت و تامین امنیت توسعهاتوماسیون فرآیند توسعهوجود DevOps در تیم، عرضه روان‌تر و آسان‌تر یک محصول جدید را تضمین می‌کند و از پایداری محصولات موجود پشتیبانی می‌کند.AWS DevOps چیست؟AWS DevOps سهم آمازون در فرهنگ و فلسفه DevOps است. آنها پلتفرم ابری، ابزارها و خدمات خاص خود را برای راه اندازی پلت فرم AWS ایجاد کرده اند. همانطور که افراد AWS می‌گویند: «AWS مجموعه‌ای از خدمات انعطاف‌پذیر را ارائه می‌کند که به شرکت‌ها امکان می‌دهد تا با استفاده از شیوه‌های AWS و DevOps محصولات را با سرعت و اطمینان بیشتری بسازند و تحویل دهند. این خدمات تهیه و مدیریت زیرساخت، استقرار کد برنامه، خودکارسازی فرآیندهای انتشار نرم افزار و نظارت بر عملکرد برنامه و زیرساخت شما را ساده می کند.همانطور که تجربه DevOps من نشان می دهد، آمازون به ایده هایی که آنها صحبت می کنند پایبند است. ابزارها، خدمات و خود ابر AWS کارآمد بودن آنها را ثابت کرده است. ابزارهای توسعه AWS امکان ذخیره ایمن کد منبع برنامه و ایجاد، آزمایش و استقرار خودکار آن را نه تنها در فضای ابری AWS بلکه به صورت محلی فراهم می کند. مزایای اصلی AWS شامل سادگی، مقیاس پذیری، اتوماسیون، امنیت و قیمت گذاری بسته است.جعبه ابزار AWSAWS طیف گسترده‌ای از محصولات ابری جهانی را ارائه می‌کند که از جمله شامل پایگاه‌های داده، ذخیره‌سازی، تجزیه و تحلیل، شبکه‌ها، دستگاه‌های تلفن همراه، ابزارهای توسعه و مدیریت DevOps، اینترنت اشیا، امنیت است. به منظور راحتی، AWS خدمات DevOps خود را بر اساس عملکرد آنها تقسیم کرده است. فراوانی ابزارها و خدمات DevOps که AWS ارائه می‌دهد، بسیار غنی است. در اینجا ما کمی به موارد اصلی، موجود و محبوب برای DevOps و نه تنها اهداف می پردازیم.Continuous Integration and DeploymentAWS چهار ابزار تخصصی برای CI/CD دارد:AWS CodePipelineبرای پیکربندی، آزمایش و استقرار کد هر بار که تغییر می‌کند استفاده می‌شود.AWS CodeBuildکد منبع را جمع آوری می کند، آزمایش می کند و بسته های نرم افزاری آماده برای استقرار می سازد.AWS CodeDeployاستقرار کد را برای هر نمونه، از جمله Amazon EC2 و خدمات محلی، خودکار می کند.AWS CodeStarیک سرویس ابری است که ابزارهای DevOps را برای توسعه، ایجاد و استقرار آسان برنامه در AWS فراهم می کند.AWS Device Farmیک سرویس تست برنامه است که به شما امکان می دهد کیفیت وب و برنامه های تلفن همراه خود را با آزمایش آنها در مرورگرهای دسکتاپ واقعی و دستگاه های تلفن همراه واقعی بهبود بخشید.AWS Cloud Development Kitیک چارچوب توسعه نرم افزار منبع باز برای تعریف زیرساخت ابری در کد و ارائه آن از طریق AWS CloudFormation است. این یک انتزاع شی گرا در سطح بالا برای تعریف منابع AWS با استفاده از قدرت زبان های برنامه نویسی مدرن ارائه می دهد. (https://github.com/aws/aws-cdk)AWS Microservicesدر مورد میکروسرویس های AWS دو گزینه وجود دارد: کانتینرها و محاسبات بدون سرور.(ECS) Amazon Elastic Container Serviceسرویسی است که برای مقیاس‌بندی کانتینرها استفاده می‌شود که از Docker پشتیبانی می‌کند و اجازه راه‌اندازی و اجرای برنامه‌ها را در یک خوشه نمونه با مدیریت خودکار Amazon EC2 می‌دهد.(EKS) Amazon Elastic Kubernetes Serviceنسخه های به روز نرم افزار منبع باز Kubernetes را اجرا می کند، بنابراین می توانید از تمام افزونه ها و ابزارهای موجود در جامعه Kubernetes استفاده کنید. برنامه‌هایی که در Amazon EKS اجرا می‌شوند، کاملاً با برنامه‌هایی که در هر محیط استاندارد Kubernetes اجرا می‌شوند، چه در مراکز داده داخلی یا در ابرهای عمومی اجرا شوند، سازگار هستند.Amazon Elastic Container Registryبرای نگه داری ایمیج های بیلد شده در ریپوزیتوری مخصوص نگه داری میکند.AWS Fargateیک سرویس مدیریت کانتینر است که به شما امکان می دهد کانتینرهای بدون سرور را اجرا کنید، بنابراین نگرانی در مورد تهیه، پیکربندی و مقیاس بندی خوشه های ماشین های مجازی برای اجرای کانتینرها ندارید. با Fargate، دیگر لازم نیست نگران تهیه منابع محاسباتی کافی برای برنامه های کانتینری خود باشید. Fargate می‌تواند ده‌ها هزار کانتینر را راه‌اندازی کند و به راحتی برای اجرای حیاتی‌ترین برنامه‌های کاربردی شما مقیاس کند.AWS Lambdaکدهایی را بدون سرورهای اختصاصی اجرا می کند. شما به سادگی کد خود را آپلود می‌کنید و به Lambda اجازه می‌دهید همه چیز مورد نیاز برای اجرا را انجام دهد و اجرا را برای برآورده کردن منحنی تقاضای واقعی شما با در دسترس بودن بالا تنظیم کند. این بدان معنی است که هیچ اداره زیرساخت مورد نیاز نیست. Lambda از چندین زبان برنامه نویسی پشتیبانی می کند و می تواند از سایر سرویس های AWS فعال شود یا مستقیماً از هر برنامه وب یا تلفن همراه تماس گرفته شود. یکی از بزرگترین مزیت های AWS Lambda این است که می توانید به سرعت حرکت کنید: می توانید بر منطق کسب و کار خود تمرکز کنید زیرا AWS امنیت و مقیاس بندی را مدیریت می کند. رویکرد نظری لامبدا، پلتفرم مقیاس‌پذیر را هدایت می‌کند.Infrastructure as codeزیرساخت به عنوان کد رویکردی است که از چهار بخش برای مدیریت AWS با کمک کد و قالب تشکیل شده است:AWS CloudFormationگروه هایی از منابع AWS مرتبط ایجاد می کند و آنها را مدیریت می کند. می توان از قالب های موجود استفاده کرد یا قالب های سفارشی ایجاد کرد.AWS OpsWorksیک سرویس مدیریت پیکربندی است که نمونه های اتوماسیونی مانند Chef و Puppet را ارائه می دهد.AWS Systems Managerقابلیت مشاهده و کنترل زیرساخت AWS شما را فراهم می کند. همچنین می تواند به تعمیر سیستم عامل، ایجاد نمونه های اولیه سیستم و راه اندازی سیستم عامل های ویندوز و لینوکس کمک کند.AWS Configبه انجام تجزیه و تحلیل امنیت، مدیریت تغییرات و رفع هرگونه خطای تعمیر و نگهداری کمک می کند.MonitoringDevOps آن را نظارت می کند و یک ثبت گزارش نگه می دارد. برای انجام آن، آمازون سه ابزار ارائه می دهد:Amazon CloudWatchیک سرویس نظارتی است. این برنامه داده ها و برخی اطلاعات مفید دیگر را برای نظارت بر سلامت برنامه ها و ایجاد یک ایده جامع از وضعیت کلی آنها در اختیار DevOps قرار می دهد.AWS X-Rayیک سرویس DevOps است که ردپای برنامه‌ها را رصد می‌کند و یک نمای کلی از اجزای اصلی آن ارائه می‌دهد.AWS CloudTrailیک سرویس وب است که تماس‌های AWS API را برای حساب شما ضبط می‌کند و فایل‌های گزارش را ذخیره می‌کند. به هر حال، Slack نیز از این فناوری استفاده می کند.AWS Platform as a ServiceAWS Elastic Beanstalkبرای استقرار پشته برنامه، به‌ویژه برای محصولاتی که با استفاده از Java، .NET، PHP، Node.js، Python، Ruby، Go و Docker، سرورهای Apache، Nginx، Passenger و IIS توسعه یافته‌اند، استفاده می‌شود.AWS Versions ManagementAWS CodeCommitمی تواند برای مدیریت نسخه مفید باشد. این امکان ذخیره و کنترل کد منبع را فراهم می کند. این سرویس DevOps همچنین کار با مخازن Git را آسان‌تر می‌کند و امکان ادغام ابزارهای شما در GIT را فراهم می‌کند.منبع :https://medium.com/@serdalkepil/aws-devops-tools-and-services-a98c635cbf20