معماری برنامه، تعیین‌کننده‌ی عملکرد برنامه است. شاید این موضوع بدیهی به نظر برسد، اما تجربیات دنیای واقعی نشان می‌دهد که چنین نیست. به عنوان مثال، معماران نرم‌افزار اغلب تصور می‌کنند که صرفاً تعویض یک برند زیرساخت نرم‌افزاری با برندی دیگر برای رفع چالش‌های عملکردی یک برنامه کافی است. این باورها معمولاً بر اساس بنچمارک‌های فروشندگانی شکل می‌گیرد که ادعا می‌کنند عملکردشان مثلاً 25 درصد بهتر از نزدیک‌ترین رقیبشان است. اما اگر محصول فروشنده‌ای عملیاتی را در سه میلی‌ثانیه انجام دهد و محصول رقیب همان عملیات را در چهار میلی‌ثانیه، این برتری 25 درصدی یا یک میلی‌ثانیه‌ای در بستر معماری بسیار ناکارآمد برنامه که ریشه اصلی مشکلات عملکردی آن است، تفاوت چندانی ایجاد نمی‌کند.

علاوه بر مدیران IT و تیم‌های بنچمارک فروشندگان، گروه‌های دیگری مانند بخش‌های پشتیبانی فروشندگان و نویسندگان ادبیات مدیریت عملکرد برنامه نیز توصیه می‌کنند که با تغییراتی جزئی مانند تخصیص حافظه، اندازه مخازن اتصال یا اندازه مخازن رشته (thread pools) مشکلات را حل کنند. اما اگر استقرار یک برنامه به اندازه کافی برای بار مورد انتظار طراحی نشده باشد یا اگر معماری عملکردی برنامه در بهره‌برداری از منابع محاسباتی بیش از حد ناکارآمد باشد، هیچ میزان تنظیم و اصلاحی عملکرد و مقیاس‌پذیری مورد نظر را ایجاد نخواهد کرد. در این حالت لازم است منطق داخلی برنامه یا استراتژی استقرار، یا هر دو، بازطراحی شوند.

در نهایت، تمام محصولات فروشندگان و معماری‌های برنامه تحت محدودیت‌های مشترکی از اصول بنیادین محاسبات توزیع‌شده و قوانین فیزیک قرار دارند: برنامه‌ها و محصولاتی که از آنها استفاده می‌کنند، به صورت فرایندهایی روی رایانه‌هایی با ظرفیت محدود اجرا می‌شوند و از طریق پشته‌های پروتکل و اتصالاتی با تأخیر غیرصفر با یکدیگر ارتباط برقرار می‌کنند. بنابراین، مردم باید درک کنند که معماری برنامه، تعیین‌کننده‌ی اصلی عملکرد و مقیاس‌پذیری آن است. این ویژگی‌های کیفی نمی‌توانند به صورت معجزه‌آسا با تعویض برندهای نرم‌افزار یا «تنظیم» زیرساخت بهبود یابند. در عوض، بهبود در این زمینه‌ها نیازمند بازطراحی دقیق و حساب‌شده است.

نویسنده: Randy Stafford

Randy Stafford متخصص حوزه نرم‌افزار با ۲۰ سال تجربه به عنوان توسعه‌دهنده، تحلیل‌گر، معمار، مدیر، مشاور و نویسنده/سخنران است. او در حال حاضر عضو تیم توسعه میان‌افزار Oracle بوده و در پروژه‌های اثبات مفهوم، بررسی معماری و حل بحران‌های تولید با مشتریان گوناگون در سراسر جهان فعالیت می‌کند و تخصص وی در زمینه‌های Grid، SOA، عملکرد، دسترس‌پذیری بالا (HA)، و JEE/ORM است.