Компания жаңалықтары
21 Ақпан 2019
Корпоративтік бағдарламалық жасақтаманы әзірлеу үшін технологиялар стегі мен дерекқор таңдау
“Корпоративтік бағдарламалық жасақтаманы әзірлеуді бастағанда, ірі кәсіпорынның міндеттерін шешуге қандай технологиялар стегін пайдалана отырып кірісуге болатындығын, тапсырыс беруші үшін бағдарламалық өнімнің негізгі көрсеткіштері қандай екендігін түсіну маңызды.”
— Микита Васильєв, Almexoft ЦТЖ
Шынында да, ірі кәсіпорынның жаңа бағдарламалық жасақтаманы таңдауы өте баяу процесс болып табылады, оның барысында жұмыстың 50% астамы алдын-ала талаптарды талдау кезеңінде жасалады. Бұл қазіргі әлемнің негізгі сын – қатерлеріне – автоматтандырудың жоғары дәрежесіне және процестер мен жүйелердің тұтынушылар мен нарық қажеттіліктеріне жылдам бейімделуіне байланысты.
Тиісінше, бағдарламалық жасақтаманы жасау барысында қолданылатын технологиялар жоғары тұрақтылықты, ұзақ уақыт бойы кепілдендірілген сабақтастықты, масштабталуды және ең бастысы – инфрақұрылымның қайталанғыштығы мен көшірілуін қамтамасыз етуі керек.
IT саласында 20 жылдық тәжірибесі бар сарапшы. Оның басшылығымен бизнесті автоматтандыру үшін көптеген шешімдер (соның ішінде Altium, Alfabank, Kazakhmys, VISA International үшін) іске асырылды.
Мен корпоративтік бағдарламалық жасақтаманы құру үшін қолданылатын барлық тілдер мен платформаларды егжей – тегжейлі қарастырмай ақ, тек компаниямыздың жобаларды, соның ішінде Almexoft-Java EE әзірлеу барысында жинаған өзіндік оң тәжірибесіне тоқтала кетейін. Шынында да, Java EE кеңінен қолданылады, әсіресе ірі компанияларда.
Шынында да, Java EE кеңінен қолданылады, әсіресе ірі компанияларда. Артықшылықтардың бірі болып платформа ерте нұсқалармен үйлесімділікке кепілдік беретін стандарттар жиынтығынантұратынддығы табылады. Тіпті ескі J2EE қосымшаларының өздері де болашақта нәтижелі жұмысістейтін болады. Бұл әрқашан ұзақ мерзімді жоспар құратын компаниялар үшін маңызды дәлел болды.
Java EE API негізіндегі қосымшалар барлық Java EE серверлерінде жұмыс істей алады.
Өндірушіден тәуелсіз қосымшалар компанияларға кез-келген нақты өнімнің шеңберімен
шектелмейтін болашағы зор бағдарламалық жасақтама жасауға мүмкіндік береді.
Компаниялар Java EE платформаның сенімділігі, қарапайымдылығы және өнімділігі үшін таңдайды – Java тілінде жазылған бағдарламалардың төмен жылдамдығы дегеніміз – дақпырт. Java-негізді заманауи HTTP серверлері өнімділігі жағынан C/C++ орындааумен бірдей деңгейде (Дегенмен, алғашқылардың жадты пайдалануы жоғарырақ екендігін мойындалуы керек).
Бағдарламашылардың басқа дәлелдері бар. Тілдің қарапайым синтаксисі (лямбда өрнектері сияқты сәнді дизайнын ескермей ақ қояйық), кітапханаларды ыңғайлы ұйымдастыру және тәуелділікті басқарудың сапалы құралдары үлкен жобаларды оңай қалыптастыруға және алуан үшінші тарап кітапханаларын қосуға мүмкіндік береді. Көптеген қауымдастықтар Java тілінде сапалы ашық әзірлемелер жасайды. Java дегеніміз – ойластырылған және жылдам көп ағындылық, әсіресе платформаның соңғы нұсқаларында және go (Goroutines) стиліндегі миллиондаған жеңіл ағындарды ұйымдастыру мүмкіндігі.
Ол ол ма, Scala, Groovy, Python, Ruby, JavaScript, Kotlin, Ceylon және басқа бағдарламалау тілдерінде бағдарламалауға мүмкіндік беретін Java Virtual Machine (JVM) айта кету керек. Бұл жағдайда, мысалы Python тілінде жазылғанның барлығы Java тілінде қол жетімді болады және керісінше.
Жоғарыда айтылғандардың барлығы стандарттар жалпы жағдайды жақсартатын корпоративтік бағдарламалық жасақтаманың тұтас индустриялық мәдениетін тудырды.
Кәсіпорынның бағдарламалық жасақтамасындағы көп нәрсе дерекқорларды басқару жүйесін (ДҚБЖ) таңдауға да байланысты.
Барлық ДҚБЖ бірдей негізгі тапсырманы – пайдаланушыларға дерекқорларда сақталатын ақпаратты қалыптастыруға, өңдеуге және оларға қол жеткізуге мүмкіндік береуді орындайтындығына қарамастан – тапсырманы орындау процесінің өзі кең ауқымда құбылып отырады. Сонымен қатар, әрбір ДҚБЖ функциялары мен мүмкіндіктері айтарлықтай айырмашылықтарға ие болуы мүмкін.
Oracle (сонымен қатар PL/SQL) тілдерінен бастаған жөн болар.
Бұл өнімнің тарихы 1970 жылдары басталды және қазіргі уақытта аттас компания корпоративтік дерекқорлар нарығында сенімділік стандартына айнала отырып, керемет беделге ие болды.
Oracle соңғы нұсқасы бұлтты ортаға арналған және оны бір немесе бірнеше серверлерге орналастырыла алады, бұл миллиардтаған жазбалары бар дерекқорларды басқаруға мүмкіндік береді және деректерді физикалық басқарудың қисынды құрылымдарға қол жеткізуге кедергі жасамайды. Сонымен қатар, бұл нұсқадағы қауіпсіздік ең жоғары деңгейге жеткізілген, себебі әрбір транзакция басқалардан оқшауланған.
Қазіргі уақытта Oracle ДҚБЖ желісі бірден бірнеше толық үйлесімді өнімдерді қамтиды, бұл корпоративтік Тапсырыс берушінің мүдделеріне барынша сәйкестікті табуға мүмкіндік береді. Oracle жалғыз кемшілігі деп ДҚБЖ лицензиялаудың жоғары құнын атауға болады. Дегенмен, Oracle орасан дерекқорлармен және түрлі мүмкіндіктермен жұмыс істейтін ірі ұйымдар үшін өте қолайлы болып табылады.
ДҚБЖ бірнеше шартты түрде ақысыз деп тануға болатын нұсқаларді бірі болып PostgreSQL табылады.
PostgreSQL веб-портал дерекқорларын жүргізу үшін жиі қолданылады. Алғашқы әзірленген дерекқорды басқару жүйелерінің бірі ретінде PostgreSQL қазіргі уақытта жақсы дамыған және құрылымдалған және құрылымдалмаған деректерді басқаруға мүмкіндік береді. PostgreSQL көптеген негізгі платформаларда, соның ішінде Linux жүйесінде пайдалануға болады және өзінің құралдар жинағы арқылы дерекқордың басқа түрлерінен ақпаратты импорттау тапсырмаларын өте жақсы орындайды.
PostgreSQL қазіргі нұсқасы SQL: 2011 стандартына толық сәйкес келеді және бір уақытта жұмыс істейтін пайдаланушылар санын көбейту жағдайында үлкен көлемдегі деректерді өңдеуді ұсынады. PostgreSQL – ақысыз дерекқор болып табылады, сондықтан бюджеттік жобалар үшін қолайлы.
Танымал ДҚБЖ тағы бірі – Microsoft SQL Server (және T-SQL).
Ең алдымен, бұл ядросы бұлтта да, жергілікті серверлерде де жұмыс істейтін, сонымен бірге қолданылатын серверлердің түрлерін бір уақытта біріктіруге мүмкіндік беретін ДҚБЖ болып табылады. SQL Server 2016 шығарылымынан бастап Microsoft өнімді Linux операциялық
жүйесінде жұмыс істеуге бейімдеді.
2016 жылғы нұсқаның бірегей ерекшеліктерінің бірі – деректердің уақыт бойынша өзгеруін бақылауға мүмкіндік беретін temporal data support (уақытша деректерді қолдау), ал dynamic data masking (динамикалық деректерді жасыру) технологиясы тек рұқсат етілген пайдаланушылардың құпия деректерді көруін қамтамасыз етеді. Бұл өнім Microsoft корпорациясының басқа өнімдерімен жақсы үйлеседі және корпорацияның өнім желісін қолданатын ірі ұйымдар үшін өте қолайлы.
Өнімнің кемшілігі ретінде мен лицензиялаудың жоғары құнын және өнімділікті мұқият реттеген жағдайда де барлық қол жетімді ресурстарды өнімнің жоғары ресурс сыйымдылығын ғана бөліп көрсете аламын.
MySQL – веб-қосымшалар үшін ең танымал дірекқордың бірі болып табылады.
Кәсіпорындарға арналған бағдарламалық жасақтаманың профильдік жүйесі болмаса да, MySQL Linux операциялық жүйесінде жұмыс істейтін веб-серверлер үшін стандарт болып табылады. MySQL – Oracle корпорациясы әзірлейтін және қолдайтын ақысыз бағдарламалар пакеті. MySQL жаңа нұсқалары үнемі жұмыс істейді, функционалдығын кеңейтеді және ДҚБЖ қауіпсіздігін жақсартады. Коммерциялық мақсатта пайдалануға арналған арнайы ақылы нұсқалары да бар. Коммерциялық клиенттер үшін жаңа функционалдылыққа тапсырыс беруге болады.
Тегін нұсқада функционалдылықтың толықтығына емес, жылдамдық пен сенімділікке баса назар аударылады, бұл артықшылық та, кемшілік те болуы мүмкін — ол дерекқорды пайдалану саласына байланысты. MySQL ДҚБЖ икемділігі көптеген кесте түрлеріне қолдау көрсетеді: пайдаланушылар толық мәтінді іздеуді қолдайтын MyISAM типті кестелерді де, жеке жазбалар деңгейіндегі транзакцияларды қолдайтын InnoDB кестелерін де таңдай алады.
Жүйе сенімділіктің жеткілікті деңгейіне ие және сенімді, бірақ ақысыз дерекқорды басқару құралын қажет ететін ұйымдар үшін өте қолайлы. Өкінішке орай, ақысыз нұсқа үшін тек ақылы қолдау қол жетімді. Сонымен қатар, MySQL қарапайым тапсырмаларды орындауға мәжбүрлеу үшін көп уақыт пен күш жұмсауға тура келеді, ал басқа ДҚБЖ мұны автоматты түрде жасайды.
Коммерциялық нұсқасы бар тағы бір ақысыз дерекқор — MongoDB.
MongoDB құрылымдық және құрылымдалмаған деректерді пайдаланатын қосымшаларға арналған. Бастапқыда MongoDB жүйесі реляциялық деректер модельдерін өңдеуге арналмағандықтан (оның бұны істей алатындығына қарамастан), MongoDB осылай қолдануға тырысқанда өнімділік мәселелері туындауы мүмкін.
Дегенмен, MongoDB басқа ДҚБЖ баяу немесе әлсіз жұмыс істейтін жерлерде жақсы жұмыс істей алады.
Ақпараттың үлкен көлемін өңдеу үшін Vertica немесе SAP HANA сияқты бағаналы шешімдер жиірек қолданыла бастады.
Мысалы, соңғысы SQL, OLTP және OLAP қолдайды, ал SAP HANA ядросы қысуды қолдану
арқылы ресурстарға қойылатын талаптарды төмендетеді. Бұл жағдайда деректер жадта сақталады, қол жеткізу уақытын, кейбір жағдайларда айтарлықтай қысқартады. Бағаналы шешімдер бірнеше сақтау деңгейлеріне бөлінген ақпаратты сақтау, алу және статистикалық талдау үшін өте қолайлы және кәсіпорынның деректер қоймаларын (DWH) құру үшін қажет.
Кемшілігі – арзан деп сөз корпоративтік бағдарламалық жасақтаманың жоғары құны туралы қозғалса да, лицензиялардың құнының жоғары болуы.
Кәсіпорынның бағдарламалық жасақтамасының нәтижелілігі үшін ұзақ мерзімді перспективада бизнестің дамуымен қадамды қозғала отырып, бір ДҚБЖ екіншісімен неғұрлым қуатты дерек алмасу мүмкіндігі маңызды рөл атқарады
Бұл мүмкіндікке қол жеткізудің кілті болып платформаның бағдарламалық коды мен ДҚБЖ
арасында объектілік-реляциялық байланыс құрайтын ORM Hibernate табылады. Осының
арқасында Almexoft стандартты жеткізілімі аясында біз өз клиенттерімізге қолдау көрсетілетін
ДҚБЖ бірін таңдау мүмкіндігін ұсынамыз:
- Oracle
- Postgre
- Microsoft SQL Server
Жоғарыда жазылғандарды қорытындылай келе және бағдарламалық жасақтаманы әзірлеудегі 20
жылдан астам тәжірибеме сүйене отырып, мен біздің компания корпоративтік клиенттерге жиі
ұсынатын және Almexoft бизнес-процестерді автоматтандыру және электрондық құжат айналымы
жүйесінде пайдаланатын тамаша технологиялар стегін сипаттағым келеді:
- Java EE (AOP, EJB, ORM)
- СУБД Oracle/Postgree
- REST/Thrift API