Кіріспе

Конфигурацияны басқару бағдарламалық жасақтамасы

CFEngine – Марк Берджесс жазған конфигурацияны басқару жүйесі. Оның басты міндеті – серверлерді, жұмыс үстелдерін, тұтынушылық және өнеркәсіптік құрылғыларды, енгізілген желілік құрылғыларды, ұялы телефондар мен планшеттерді біріктіріп басқаруды қамтамасыз ете отырып, кең көлемді компьютерлік жүйелерді автоматтандырылған түрде конфигурациялау және күтіп-жөндеу болып табылады. GNU General Public License шарты бойынша таратылатын CFEngine – ақысыз бағдарламалық қамтамасыз ету.

Тарих

CFEngine жобасы 1993 жылы автор Марк Берджесс (содан кейін Норвегияның Осло университетіндегі Корольдік қоғамның докторанты) теориялық физика кафедрасындағы жұмыс орындарының шағын тобының басқаруын автоматтандыру арқылы жұмысын атқару жолы ретінде басталды. Берджесс Unix жұмыс станцияларын басқарды, скрипттер жазып, пайдаланушылар үшін проблемаларды қолмен шешті. Скрипттерді жасау тым көп уақыт алды, Unix жүйелерінің түрлері айтарлықтай ерекшеленді және скрипттерді бірнеше платформа үшін ұстап тұру қажет болды, олар ерекшелік логикасына батып кетті. Бір әріптесімен мәселелерді талқылағаннан кейін, Берджесс CFEngine (конфигурациялық қозғалтқыш) бағдарламасының бірінші нұсқасын жазды, ол ішкі есеп ретінде жарияланып, CERN есептеу конференциясында ұсынылды. Ол кең қауымдастықтың назарын аударды, өйткені домендік тілді пайдалана отырып, платформалардың айырмашылықтарын жасырды. Бір жылдан кейін Берджесс докторантурасын аяқтады, бірақ Ослода қалуға шешім қабылдады және Осло университетінің колледжінде дәріс беру жұмысын қабылдады. Мұнда ол конфигурацияны басқару саласындағы зерттеулердің аз немесе жоқ екенін түсінді және компьютерлік жүйелерді түсіну үшін ғылыми модельдеу принциптерін қолдануға кірісті. Ол конвергентті операторлар тұжырымын дамытты, ол CFEngine-нің негізгі бөлігі болып табылады. 1998 жылы Берджесс USENIX/LISA98 конференциясында "Компьютерлік иммунология" атты мақала жазды. Ол өзін-өзі жазылатын жүйелерді құруға арналған манифест ұсынды, бірнеше жылдан кейін IBM автономды есептеу түрінде қайталады. Бұл зерттеу жұмысының басталуы болды, ол CFEngine 2 деген үлкен қайта жазуға әкелді, ол машиналық оқыту, аномалияны анықтау және қауіпсіз байланыс мүмкіндіктерін қосты. 1998 және 2004 жылдар аралығында CFEngine Linux-тың танымалдылығымен бірге есептеу платформасы ретінде өсті. Осы уақыт аралығында Марк Берджесс өзін-өзі жазылатын автоматтандыру үшін үлестірілген ынтымақтастық моделі – уәде теориясын жасады. 2008 жылы бес жылдан астам зерттеулер жүргізілгеннен кейін, CFEngine 3 енгізілді, ол "CFEngine-ді бір уақытта қарапайым және қуатты етудің жолы" ретінде уәде теориясын енгізді, деп мәлімдеді Берджесс. CFEngine 3 жобасының ең маңызды нұсқасы білімді басқару және ашу механизмдерін біріктірді, бұл конфигурацияны басқаруды корпоративтік класты инфрақұрылымды автоматтандыруға мүмкіндік берді. 2008 жылдың маусым айында CFEngine AS компаниясы автор Марк Берджесс, Осло университетінің колледжі және Осло инновациялық орталығы арасында CFEngine пайдаланушыларын қолдау мақсатында құрылды. 2009 жылдың сәуірінде компания CFEngine Enterprise бағдарламасының алғашқы коммерциялық нұсқасын іске қосты. Enterprise нұсқасын 25 агентке дейін (клиенттер) тегін жүктеуге болады. 2011 жылдың ақпан айында компания FERD Capital компаниясынан алғашқы қаржыландыруды алды. Компанияның Ослода (Норвегия) және Маунтин-Вьюде (Калифорния, АҚШ) кеңселері бар. 2017 жылы компания өзінің атын Northern.tech деп өзгертті, CFEngine ғана емес, бірнеше бағдарламалық өнімдермен жұмыс істеп жатқанын көрсету үшін.

Дизайн

CFEngine-нің басты идеяларының бірі – компьютер конфигурациясындағы өзгерістер жинақталу принципі бойынша жүзеге асырылуы керек. Бұл агент жасаған әрбір өзгеріс белгілі бір тұрақты нүктеге жетуге бағытталған болуы керек дегенді білдіреді. CFEngine тілі өзгеріс жасау үшін қажетті қадамдарды сипаттаудың орнына, қол жеткізілгісі келетін соңғы күйді сипаттайды. Ал агент осы "саясатқа сәйкес келетін күйге" жету үшін қажетті қадамдардың орындалуын қамтамасыз етеді. Осылайша, CFEngine жүйенің бастапқы күйіне қарамастан, қайта-қайта іске қосылып, әрқашан болжамды нәтижеге жетеді. CFEngine саясатқа статистикалық сәйкестік принципін қолдайды, яғни жүйе идеалды немесе қажетті күйде екендігіне толық кепілдік бере алмайды, керісінше, ең жақсы күш-жігермен қажетті күйге жақындап (жинақталады), бұл жақындасу жылдамдығы ортаның өзгеру жиілігі мен CFEngine-нің орындалу жиілігі арақатынасымен анықталады. CFEngine Unix сияқты жүйелерде хост конфигурациясын жүзеге асыру үшін операциялық жүйеден тәуелсіз интерфейс ұсынады. Әртүрлі операциялық жүйелердің ерекшеліктерін ескеру үшін белгілі бір білім қажет, бірақ ол бірнеше хостта техникалық қызмет көрсету шараларын орындауға мүмкіндік береді. CFEngine Windows жүйелерінде де қолданылуы мүмкін және әртүрлі операциялық жүйелерде (мысалы, Solaris, Linux, AIX, Tru64 және HP UX) жұмыс істейтін көптеген Unix хосттарын басқару үшін кеңінен пайдаланылады.

Пайдаланушылар

CFEngine үлкен және кіші компанияларда, сондай-ақ көптеген университеттер мен мемлекеттік мекемелерде қолданылады. CFEngine басқаруындағы ең ірі деректер орталығы миллионнан астам серверді құрайды, ал 40,000 машинаға дейінгі объектілер (сайттар) жарияланған (LinkedIn), ал CFEngine аясында жұмыс істейтін бірнеше мың хосттан тұратын объектілер жиі кездеседі. CFEngine AS статистикасына сәйкес, әлем бойынша бірнеше миллион компьютерде CFEngine жұмыс істейді және 100-ден астам елден пайдаланушылар тіркелген.

Зерттеу

CFEngine құрылғалы бері көп ұзамай, автоматтандырылған конфигурациялық басқару саласындағы зерттеулерге түрткі болды. CFEngine жобасы конфигурациялық басқару мәселесін ғылыми тұрғыдан қарастыруға ұмтылады. Оның авторы Марк Берджесс осы мәселені талқылау үшін бірқатар теориялық құралдар мен нәтижелерді жасады және оларды түсіндіретін бірнеше оқулықтар мен монографиялар жазды.