منظور از DevOps چیست و مهندس DevOps کیست؟
واژه یDevOps چند سالی است که در حوزه فناوری اطلاعات رواج پیدا کرده و به طور خلاصه باید گفت به مجموعه ای از روش ها و ابزارها گفته می شود که به یکپارچه سازی و اتوماسیون فرایندهای بین تیم های توسعه ی اپلیکیشن ها و تیم IT می پردازد. در حقیقت واژه ی DevOps ترکیبی از Dev (توسعه) و Ops (عملیات) بوده و به همکاری بین توسعه نرم افزارها و تضمین کیفیت و امنیت اشاره دارد. مهندسین DevOps، مسئولیتِ ترکیب کدها، حفظ و نگهداری اپلیکیشن ها و همچنین مدیریت اپلیکیشن ها را بر عهده داشته و موجب انتقال سریع نرم افزارها از مرحله ی توسعه به عملیاتی شدن می گردند. به عبارتی مهندس DevOps، یک عامل اساسی در توسعه ی سریع و عالی نرم افزارها می باشد.
در گذشته بسیاری از سازمان ها، به منظور برنامه نویسی، استفاده و مدیریت اپلیکیشن ها در یک زیرساخت، تیم هایشان را بر اساس عملکرد تفکیک می کردند. البته رقابت برای ارائه نوآوری ها در این زمینه، موجب افزایش سرعت تولید و انتشار ویژگی های جدید شده است. غالبا موضوع امنیت در اولویت بعدی قرار گرفته که همین امر موجبِ کاهش کیفیت و عدم رضایت مشتریان شده است. افزودن کد برای ایجاد تغییر به هنگام برنامه نویسیِ اپلیکیشن در مراحل پایانیِ آن، هزینه ی گزافی را متحمل خواهد کرد؛ ضمن اینکه ایده ی “امنیت، باعث کند شدن سرعت می شود” را نیز تقویت می کند.
قابل ذکر است با تسریعِ چرخه ی تولید و انتشار نرم افزارها، نسخه های بیشتر و قابلیت های پیشرفته تر از طریق تیم های DevOps عرضه می شود.
مشاهده انواع فایروال فورتی گیت |
چگونه می توان امنیت را با DevOps ادغام کرد؟
استفاده از بهترین روش های تامین امنیت در مراحل اولیه ی توسعه نرم افزارها، تاثیرات مثبت فراوانی بر روی هزینه و بهره وری آن ها دارد. با این حال هنوز هم در بسیاری از سازمان ها، نقطه ضعف های امنیتی مشاهده می شود؛ همان طور که پیش از ظهور تیم های DevOps، چالش های امنیتی بسیاری در مراحل کاری گروه های development (تیم توسعه)و operation (یا IT operation یا همان تیم عملیاتی) وجود داشت. به همین دلیل یک تیم جدیدتر نیز به وجود آمده که به طور مداوم امنیت را در مراحل “integration/deployment” القا می کند؛ که این تیم جدید را DevSecOps نامگذاری کرده اند.
تیم DevSecOps، محبوبیت روزافزون خود را مدیون روشی به نام shifting left است. Shifting left به این معناست که توسعه دهندگان نرم افزار، از همان ابتدا بر روی کد نویسی ایمن و قدرتمند تمرکز دارند. ماهیت این روش به این صورت است که به جای جلوگیری از تهدیدات، نقش پیشگیرانه دارد. تیم های امنیت، مسئولیت راهنمایی و پشتیبانی از تیم های توسعه را بر عهده گرفته و امنیتی خودکار را برای توسعه Continuous Integration/Continuous Delivery (CI/CD) رقم می زنند.
در حقیقت می توان گفت موضوع امنیت در یک فضای DevSecOps، مسئولیتی مشترک است که موانع بین تیم های development و operation را با امنیت از بین می برد تا نرم افزارهایی با کارایی بالاتر و هزینه پایین تر روانه بازار شود.
پنج راهکار برای افزایش توسعه پذیری و بهره وری
با اینکه امنیت یک مسئولیت اشتراکی است، اما باز هم نمی توان از تیم develop انتظار داشت مانند یک متخصص امنیت رفتار نموده و در لحظه، تصمیمات صحیحی بگیرد. DevSecOps نیز مانند DevOps فلسفه ای است که به تغییرات فرهنگی در نحوه ی توسعه و استفاده ی اپلیکیشن ها نیاز دارد. با این حال باید گفت چنانچه تیم امنیت بتواند بر روی پنج حوزه زیر تمرکز داشته باشد، می توان به هزینه های کمتر، افزایش بهره وری و همچنین ارتقا توسعه پذیری دست یافت:
- SHIFT LEFT : گنجاندن امنیت در اولین مراحل توسعه ی یک نرم افزار
- MAKE THE SECURE PATH THE EASY PATH: تمرکز بر ارائه ی امنیتی بدون چالش که در توسعه CI/CD نقش بسزایی دارد.
- BREAK DOWN SILOS : افزایش همکاری بین تیم های develop و operation با تیم امنیت (App Devs و DevOps با SecOps)
- NURTURE SECURITY CHAMPIONS :قرار گرفتن امنیت تیم development در اولویت
- CREATE A BUILD PIPELINE : در صورت ایجاد کنترل های امنیتی و آزمایش در همان ابزاری که تیم توسعه استفاده می کند، می توان به صورت مداوم و خودکار کنترل داشت تا تیم توسعه مجبور نباشد برای انتشار نرم افزارهای جدید، به تیم امنیت وابسته باشد.
مشاهده فایروال فورتی گیت FG-200f |