
Разработчики сегодня создают новые классы приложений. Эти приложения разрабатываются уже не под отдельный сервер, а запускаются с нескольких серверов в дата-центре. Примеры включают фреймворки, реализующие аналитические вычисления, такие как Apache Hadoop и Apache Spark, брокеров сообщений, вроде Apache Kafka, key-value хранилища, например Apache Cassandra, а также приложения, с которыми работают непосредственно конечные пользователи, вроде тех, которые используются компаниями Twitter и Netflix.
Эти новые приложения – больше, чем просто приложения, это – распределенные системы. Точно так же, как когда-то для разработчиков стало привычным создавать многопоточные приложения для отдельных машин, становится общепринятым проектировать распределенные системы для дата-центров.
Но разработчикам довольно сложно создавать такие системы, а администраторам тяжело их поддерживать. Почему? Потому что мы используем неверный уровень абстракции, как в отношении разработчиков, так и в отношении администраторов – уровень машин.Читать полностью »