Cloud technology has dramatically changed the potential and the ways of modern companies to scale, organize security, integrate services, and expand capabilities. Providing on-demand network access to IT resources such as servers and data stores, it requires as little effort as possible and reduces the costs at that. Users need not interact with the provider, can subscribe only to specific services and later extend or cancel them at any time, pay only for the resources they have used thanks to cloud technology’s measurement capabilities, and access shared computing resources.
We at Slash are cloud-agnostic, meaning that we can and do work on multi-cloud solutions. In this article, we go through the services provided by the main cloud platforms and their capabilities in key areas, and present what cloud technologies Slash works with.
The main options in the market
Currently, the cloud market has three leading actors: Amazon AWS, Microsoft Azure, and Google Cloud. AWS holds the largest share in the market – 32%. The platform’s dominance is secured thanks to a large set of tools it provides – around 200 – computing, storage, database, analytics, networking, mobile, developer and management, IoT, security. Microsoft Azure follows with 21% and strong capability to satisfy the client company’s computing needs on a single platform. Google Cloud is yet further behind with 8%, but its powerful search algorithm and expertise in open-source technologies give it an advantage. Creation of two industry standard technologies – the Kubernetes system for containerized apps and the Istio system for microservices – has contributed to pushing Google Cloud closer to where it wants to be.
Let’s look at what each of these three platforms has to offer in terms of stable computing, database and storage, security, cost, support quality, infrastructure, containerization, tools for DevOps, IsaaC support, solutions for IoT, cloud native development, and multi-cloud architecture patterns. As we complete our concise but comprehensive review, you will be better able to navigate your choice.
AWS, Azure, and Google Cloud offer a variety of computing services and tools to meet different needs:
- AWS offers EC2 instances and related services, e.g. ECS for Kubernetes, Elastic Beanstalk (for application deployment), AWS Lambda and Autoscaling.
- Azure bases the computing service around its Virtual Machines and offers tools like Resource Manager (for app deployment) and Azure Autoscaling.
- Google’s Compute Engine provides Virtual Machines (VMs) in the platform’s data centers. Google’s VMs have fast boot and consistent performance, and they are highly customizable.
Database and storage
All 3 platforms support relational databases and NoSQL databases: Amazon DynamoDB, Azure DocumentDB, and Google Bigtable. Here are the main storage services the platforms offer:
- AWS: Simple Storage Service (S3) for object storage, Elastic Block Storage (EBS) for persistent block storage for use with EC2, and Elastic File System (EFS) for file storage.
- Azure: Blob Storage for REST-based object storage of unstructured data, Queue Storage for large-volume workloads, File Storage and Disk Storage, and Data Lake Store useful for big data apps.
- Google Cloud: Cloud Storage (the unified object storage service), Persistent Disk, Transfer Appliance, and online transfer services.
AWS, Azure, and Google Cloud all offer security and disaster recovery capabilities, end-to-end encryption, SSL protocol, remote user authentication, single-sign-on protocol, and cloud trust protocol. The visual controls for firewall and security settings management are easy on all three platforms. We will look at the tools that each platform offers for:
- Monitoring: Amazon CloudWatch with a view of app performance, its changes and bugs; Azure Monitor with Log analytics and Application Insights, Google Operations;
- Disaster recovery: AWS Cloud Endure tool, Azure Site Recovery, and no tool yet from Google.
The three platforms use the same pricing method now, since AWS made the shift to the by-second pricing for EC2 and EBS services. For comparison, 2 virtual CPUs and 8 GB RAM will cost you $70/month on AWS and Azure and a bit less on Google – $60. You can try free introductory plans and see if you are satisfied with the services you consider buying, and discounts are available too as the providers are keen to attract startups.
Tools for DevOps
In the realm of DevOps, each major cloud provider offers a variety of tools to streamline development, testing, and deployment processes:
- AWS offers tools for DevOps and IaaC such as AWS Cloud Development Kit (for cloud apps definition), Selenium, AWS Lambda, AWS Dev Tools (for serverless UI-testing), AWS Elastic Beanstalk (an orchestration service for app deployment);
- Azure provides Ansible, Chef, Puppet, Azure Automation (for configuration management), Grafana, Kibana, Azure portal (for monitoring of infrastructure health and integration into single dashboards).
- Google Cloud offers Cloud Build (for custom workflow definition for building, testing and deployment across multiple environments), Artifact Registry (for storage and management of containers and language packages), Tekton (for continuous integration and delivery of CI/CD), Operations Suite (for monitoring and improvement of app performance).
All three platforms offer containerization (containers are portable assets, which turn the code base into smaller, easily managed modules), implemented with Docker and Kubernetes. Google gets the lead here as it is the first to provide new versions, but it does not provide integration of Active Directory. AWS has three container environments: Elastic Container service, Elastic Kubernetes service, and Fargate. Azure Container Service is the newest in the cloud market and still improving.
The three dominant cloud platforms also provide solutions for IoT: IoT Core, SiteWise, IoT Analytics, and IoT Greengrass on AWS, IoT platform (particularly IoT Central) on Azure, and finally, Google Cloud IoT platform that offers fewer services than the other two but still has an advantage thanks to Google’s search and security capabilities. For IaaC support for companies that want to automate their infrastructure, Azure offers Terraform, whose templates can be used for other platforms with Azure, for instance, Google uses Terraform as well, while AWS has the Cloud Formation configuration orchestration tool, but it can be used only with AWS;
What we do at Slash
Slash works on multi-cloud solutions. We have worked extensively with AWS, and we have some experience with Google Cloud, Azure, and Oracle. We at Slash evolve custom solutions on top of any cloud and develop cloud-native applications.
Cloud-native development is an approach to building and running software apps, which works by utilizing the advantages of cloud computing – flexibility, scalability, resilience. It includes the tools and techniques that software developers use nowadays to create apps for public clouds. Cloud-native applications live in a cloud and use its functions to be enabled. Developers create cloud-native apps by marrying microservices, cloud platforms, containers, Kubernetes, immutable infrastructure, and declarative APIs, and with techniques like DevOps and Agile methodology.
For multi-cloud solutions, there are three multi-cloud architecture patterns:
- Data-oriented – the pattern focuses on one common source of core data, shared among public clouds; by this pattern, data is coupled to the cloud provider running the app, e.g. SQL Server may be bound to Azure-based apps and MySQL – to AWS-based apps;
- Service-oriented – this one is centered on the sharing of services among cloud providers, as services built on one public cloud can be reused on others;
- Process-oriented – apps and data are bound together through processes going across multiple public clouds; by the way, this pattern is usually service-oriented and data-oriented as well.
And that is all for our brief review. Take your time reading up on each cloud platform’s services and capabilities and choose what is right specifically for your company and your project!