Статьи

Топ 5 IaaS-решений для размещения приложений Java

В наше время облачные вычисления есть везде. Проще говоря, облачные вычисления — это хранение и доступ к различным данным и программам через Интернет, и основным строительным блоком для этого является инфраструктура как услуга (IaaS). IaaS обеспечивает поддержку естественной разработки, тестирования и использования приложения в облачной среде. В этой статье я кратко ознакомлю вас с IaaS, а затем сравню пять провайдеров: Amazon EC2 , Google Compute Engine , SoftLayer от IBM , Microsoft Azure и Digital Ocean .

IaaS помогает нам избежать сложности покупки и эксплуатации наших собственных серверов. Более того, обслуживание и обновление программного обеспечения не требуется. С этими преимуществами очевидно, что во многих сценариях затраты на инфраструктуру ниже, что помогает новым организациям, у которых нет времени и средств, вкладывать средства в собственное оборудование.

Некоторые из других преимуществ IaaS включают в себя:

  • услуги распространяются в виде огромного количества ресурсов
  • будучи гибким, IaaS обеспечивает динамическое масштабирование
  • стоимость варьируется в зависимости от использования
  • несколько пользователей могут использовать одно оборудование
  • независимость от местоположения: к сервису обычно можно получить доступ из любого места, если есть подключение к интернету и протокол безопасности облака позволяет ему

Теперь, когда вы знаете о преимуществах IaaS для создания своего веб-приложения, вам остается только решить, какое решение выбрать. Единственная проблема заключается в том, что сегодня так много вариантов. Как разработчик Java, я сначала испытывал некоторые трудности при оценке различных поставщиков IaaS. Итак, в этой статье я собираюсь описать пять лучших решений для размещения веб-приложений Java и сравнить их друг с другом.

Инфраструктура как услуга

Amazon EC2

Amazon Elastic Compute Cloud (Amazon EC2) — это веб-сервис, который позволяет изменять объем вычислительных ресурсов в облаке. Он помогает в запуске и управлении экземплярами сервера, что делает его пригодным для разработчиков для вычислений в масштабах сети. Вы можете использовать экземпляры сервера для любых законных целей согласно вашему требованию.

Экземпляры доступны в разных размерах и конфигурациях. EC2 позволяет AWS предоставлять различные типы экземпляров, которые вы можете использовать для удовлетворения конкретных потребностей. Таким образом, вы можете запускать разные виртуальные машины в зависимости от ваших потребностей. Если вы развертываете приложение Java, вы можете установить сервер приложений (Tomcat, Web Sphere и т. Д.) В одну виртуальную машину и использовать другие службы, такие как микросервисы, базы данных и т. Д., На отдельных виртуальных машинах с соответствующими конфигурациями. Более подробную информацию о том, как AWS работает с Java, можно найти здесь .

С Amazon EC2 у вас есть выбор различных типов экземпляров, операционных систем и пакетов программного обеспечения, что делает его гибким. Amazon EC2 имеет конфигурацию памяти, процессора и экземпляра, которая помогает в выборе хранилища. Кроме того, вы можете выбрать размер загрузочного раздела, оптимальный для вашей операционной системы и приложения.

Единственным недостатком использования EC2 могут быть расходы . Поскольку мои рабочие процессы стали более сложными, и я использовал больше услуг, было трудно прогнозировать затраты. Однако, чтобы помочь оценить затраты, Amazon предлагает ежемесячный калькулятор.

Сеть не такая гибкая по сравнению с другими поставщиками услуг. Поскольку большая часть данных должна перемещаться из одного конца локальной сети в другую, расстояние перемещения данных намного больше, чем это должно приводить к проблемам с перегрузкой, обычно наблюдаемым в Интернете.

Amazon EC2 сегодня является отраслевым стандартом. Многие ведущие сайты и приложения используют EC2. Некоторые из наиболее известных — это Instagram , Reddit , Netflix , Adobe Systems , Smugmug и многие другие. Есть много статей о сотрудничестве Amazon, например, почему Netflix выбирает Amazon .

Google Compute Engine

Google Compute Engine (GCE) — это продукт IaaS, который помогает вам запускать виртуальные машины в той же инфраструктуре, которую Google использует для своих собственных служб. GCE дает вам большую гибкость и контроль, а также доступ к вычислительным ресурсам в масштабе, который может коренным образом изменить ваше отношение к решению проблемы. GCE очень похож на EC2, но ваши виртуальные машины работают на инфраструктуре Google. Развертывание Java на платформе Google Compute очень просто.

Ценообразование в сети дорого. Поскольку GCE сравнительно новый, выбор языков программирования ограничен, в отличие от AWS. Некоторые API Java, поддерживаемые в AWS, недоступны в Google Compute Engine. Переход с GCE на любую другую платформу не так прост. Следует также отметить, что для запуска любой среды Java GCE требует больше усилий от пользователя, поскольку он не имеет интегрированных пакетов для них.

Наиболее распространенными клиентами GCE являются EverNote , Philips , CocoCola , HTC , Motorola , которым удалось преобразовать свои хранилища данных и аналитику с помощью GCE, KhanAcademy , Spotify , PocketGems и BestBuy .

IBM SoftLayer

Как говорят в IBM «Облако без компромиссов», технологический гигант обеспечивает высокую емкость, масштабируемость и безопасность. Высокоскоростные интранет-соединения IBM / SoftLayer могут быть именно тем, что нужно вашим сложным приложениям от решения IaaS, но вам придется доплачивать, чтобы оно работало.

Чистая металлическая инфраструктура Softlayer может быть объединена с виртуализированными серверами для решений с различными технологиями Hyper-V, что позволяет оптимизировать рабочие нагрузки. Он обеспечивает высокую пропускную способность между центрами обработки данных SoftLayer и дает вашей облачной среде возможность справляться с резкими скачками данных, переносимых из одного центра обработки данных в другой. Между тем, модель единого арендатора SoftLayer защищает ваши данные с помощью комплексных брандмауэров, обеспечивающих полную защиту конфиденциальной информации. За исключением IBM / SoftLayer, ни один другой облачный провайдер не предлагает настраиваемые типы виртуальных машин. SoftLayer предоставляет maven-зависимости для вызова своих API.

Недостатком является то, что услуги SoftLayer не связаны друг с другом. IBM предлагает широкий спектр услуг, но это не просто облачные сервисы. Вместо этого они предлагают сочетание общедоступных облачных сервисов с собственными и фирменными сервисами IBM, предлагая, таким образом, «виртуальный ИТ-отдел», т. Е. Обращаясь в IBM за управляемыми услугами для любого обновления и обслуживания программного обеспечения.

Лучшие пользователи Artomatix , Cedato и ClickTale .

Microsoft Azure

Комплексный набор услуг, который поможет вам быстро разрабатывать, развертывать и управлять приложениями в центрах обработки данных, управляемых Microsoft, по всему миру. Он поддерживает Windows, Linux (да, верно, Microsoft теперь любит Linux) и образы виртуальных машин сообщества, а также выбор кроссплатформенных инструментов и сред разработки. Вы будете платить за то, что используете, а это значит, что вы значительно сэкономите и сможете добиться большей эффективности.

Сервер Azure дает вам полный контроль в облаке. Application Insights — это сервис для веб-разработчиков на нескольких платформах. Он уделяет большое внимание безопасности в соответствии со стандартной моделью безопасности: обнаружение , оценка, диагностика, стабилизация и закрытие . Azure также предоставляет простые и удобные службы для повышения уровня защиты, такие как многофакторная проверка подлинности и требования к паролю приложения. Если вам нужно использовать решения стороннего программного обеспечения или многочисленные приложения для запуска на одном компьютере, то решение Aza IaaS поможет вам. Как Java-разработчик, вы легко сможете развернуть и масштабировать свои WebApps здесь .

Распределение нагрузки между экземплярами может прерывать состояние приложения; т.е. нет гарантии, что два запроса от одного пользователя будут направлены в один и тот же экземпляр. Azure не предоставляет гибкости при выборе типа экземпляра. Кроме того, он должен быть квалифицированно управляем и поддерживаться, что включает в себя исправления и мониторинг сервера.

Лучшие веб-сайты, размещенные в Microsoft Azure, — это Essar , экономия 65% в развертывании с использованием Azure , CloudMunch , AppPoint и ShepHertz .

Цифровой океан

Digital Ocean ориентирован на разработчиков Linux. Он предлагает простую, несложную настройку и предоставляет пользователю чистый, простой в использовании интерфейс с небольшим количеством функций и развертываний в один клик. Он имеет панель управления для управления такими функциями, как двухфакторная аутентификация, хороший API, автоматическое резервное копирование и управление DNS. Он предлагает хостинг SSD, который является довольно дешевым по сравнению с другими услугами.

Предоставляемые услуги являются основными, такими как управление виртуальными машинами и DNS без балансировки нагрузки, размещенные базы данных, аналитика, кластеры Hadoop и т. Д. Если вас интересует не только автоматическое масштабирование и высокая доступность, но и инвестиции в управление серверами, тогда Digital Ocean подходит для ваше использование. Для разработчиков Java у них есть сообщество, которое предоставляет учебники на своем официальном сайте.

Недостатком Digital Ocean является то, что их диски расположены в гипервизоре, и они не используют централизованное хранилище, что приводит к относительно высокому риску полной потери данных, если они размещены на неисправном гипервизоре. Однако, если вы можете смириться с этим риском и у вас есть резервная копия, вы получите несколько отличных серверов по отличной цене.

Лучшие веб-сайты, размещенные на Digital Ocean: NodeBB , Rockerbox , Ghost и taskRabbit . Одна из историй успеха digitalocean — это то, как jQuery использует его .

Резюме

Позвольте мне обобщить вышеизложенное в таблице:

свойства AWS EC2 GCE IBM Softlayer Microsoft Azure Цифровой океан
Ключевая особенность Поддерживает как Windows, так и Linux-серверы. Много сервисных опций, API доступны. Отличное выступление. Масштабирование это хорошо. Комбинация функций управления, программного обеспечения и безопасности хороша для администраторов корпоративного облака. Инструменты администрирования просты в использовании. Настройка проста. Дешевле для стартапов.
ценообразование Вижу это Вижу это Вижу это Вижу это Вижу это
Центры данных 7 6 19 14 11
Поддержка CoreOS нет да нет да да
Поддержка Docker да да нет да да
Hyper-V Гипервизор нет да нет да да
VPN-доступ на основе пользователя нет нет нет да да
Ограничения Дорогие. Сеть не настолько гибкая, что приводит к проблемам с перегрузкой. Функции администрирования не так полезны. Ограниченный выбор языка программирования. Услуги не связаны друг с другом. Стоимость высокая. Производительность средняя. Нет централизованного хранилища.

Обладая этими знаниями, вы сможете решить, какая платформа IaaS подходит для ваших приложений. Мы обсудим альтернативы IaaS в следующей статье.