અમે શા માટે મોડ્યુલર મોનોલિથ તરફ પાછા ફર્યા
સોફ્ટવેર ટીમો તેમની વ્યૂહરચના બદલી રહી છે. ઘણી ટીમોએ એપ્સને માઇક્રોસર્વિસીસ (microservices) માં વિભાજિત કરવામાં વર્ષો વિતાવ્યા છે. હવે, તેઓ આ ટુકડાઓને ફરીથી એકસાથે જોડી રહ્યા છે. તેઓ જૂના, અસ્તવ્યસ્ત મોનોલિથ્સ નથી બનાવી રહ્યા, પરંતુ તેઓ મોડ્યુલર મોનોલિથ્સ (modular monoliths) બનાવી રહ્યા છે.
માઇક્રોસર્વિસીસ છુપા ખર્ચ ઊભા કરે છે. ડિસ્ટ્રિબ્યુટેડ સિસ્ટમ્સ (Distributed systems) ભારે જટિલતા વધારે છે. ઘણી ટીમો માઇક્રોસર્વિસીસનો ઉપયોગ માત્ર હાઇપ (hype) ને કારણે કરે છે, નહીં કે તેમને સ્કેલની જરૂર હોય તે માટે. જો તમારી પાસે નાની ટીમ હોય, તો માઇક્રોસર્વિસીસ તમારી ગતિ ધીમી કરી શકે છે.
મોડ્યુલર મોનોલિથ તમને બંને વિશ્વના શ્રેષ્ઠ ફાયદા આપે છે. તે એક ડિપ્લોય કરી શકાય તેવી યુનિટ (deployable unit) તરીકે રહે છે, પરંતુ કોડને કડક મોડ્યુલ્સમાં ગોઠવવામાં આવે છે. તમને ડિસ્ટ્રિબ્યુટેડ સિસ્ટમ ચલાવવાનો ઊંચો ખર્ચ કર્યા વિના સ્પષ્ટ સીમાઓ (boundaries) મળે છે.
બંને અભિગમોની તુલના કરો:
• Deployment: મોનોલિથ્સ એક યુનિટનો ઉપયોગ કરે છે. માઇક્રોસર્વિસીસ ઘણા યુનિટ્સનો ઉપયોગ કરે છે. • Boundaries: મોનોલિથ્સ કડક કોડ નિયમોનો ઉપયોગ કરે છે. માઇક્રોસર્વિસીસ નેટવર્કનો ઉપયોગ કરે છે. • Communication: મોનોલિથ્સ સાદા ફંક્શન કોલ્સ (function calls) નો ઉપયોગ કરે છે. માઇક્રોસર્વિસીસ નેટવર્ક કોલ્સનો ઉપયોગ કરે છે. • Overhead: મોનોલિથ્સમાં ઓપરેશનલ ખર્ચ ઓછો હોય છે. માઇક્રોસર્વિસીસમાં ખર્ચ વધુ હોય છે.
તમારે ક્યારે મોડ્યુલર મોનોલિથ પસંદ કરવો જોઈએ?
- તમારી ટીમમાં 50 થી ઓછા એન્જિનિયરો છે.
- તમારે ક્લાઉડ ઇન્ફ્રાસ્ટ્રક્ચર ખર્ચ ઘટાડવાની જરૂર છે.
- તમે ડિબગિંગ (debugging) અને ટેસ્ટિંગને સરળ બનાવવા માંગો છો.
- તમારી સેવાઓને અવારનવાર સાથે જ ડિપ્લોય કરવાની જરૂર પડે છે.
વાસ્તવિક કંપનીઓ પહેલેથી જ આવું કરી રહી છે. Shopify લાખો મર્ચન્ટ્સનું સંચાલન કરવા માટે મોડ્યુલર અભિગમનો ઉપયોગ કરે છે. Amazon Prime Video એ એક ચોક્કસ વર્કલોડને માઇક્રોસર્વિસીસમાંથી પાછું મોનોલિથમાં ખસેડ્યું. તેઓએ ઇન્ફ્રાસ્ટ્રક્ચર ખર્ચમાં 90% નો ઘટાડો જોયો.
જો તમે નાની ટીમ હોવ, તો Netflix ના સ્કેલ માટે નિર્માણ ન કરો. મોડ્યુલર રીતે શરૂઆત કરો. સર્વિસને ત્યારે જ અલગ કરો જ્યારે તમારો ડેટા બતાવે કે તમને ખરેખર તેની જરૂર છે.
તમારે એકીકૃત (consolidate) કરવાની જરૂર છે કે નહીં તે જોવા માટે આ ચેકલિસ્ટનો ઉપયોગ કરો:
- શું તમે ફીચર્સ બનાવતા કરતાં સર્વિસ કનેક્શનના ડિબગિંગમાં વધુ સમય વિતાવો છો?
- શું તમારું ક્લાઉડ બિલ તમારા વપરાશકર્તાઓની સરખામણીએ વધુ ઝડપથી વધી રહ્યું છે?
- શું તમારી પાસે ઘણી સેવાઓ માટે 5 થી ઓછા DevOps એન્જિનિયરો છે?
- શું એન્જિનિયરો બગ શોધવા માટે એક રિક્વેસ્ટને 3 અથવા વધુ સેવાઓ પર ટ્રેસ કરી રહ્યા છે?
જો તમારો જવાબ 'હા' હોય, તો મોડ્યુલર મોનોલિથ સંભવિત રીતે સાચું પગલું છે.
વૈકલ્પિક લર્નિંગ કોમ્યુનિટી: https://t.me/GyaanSetuAi