How to host a service
At GDS, you should use the following cloud platforms to host your service:
- GOV.UK Platform as a Service (PaaS) to manage deployment of apps and services
- Amazon Web Services (AWS) for scalable computing, storage and deployment services
We follow the Government Cloud First policy and use Platform as a Service (PaaS) and Infrastructure as a Service (IaaS) solutions to host our services rather than using our own hardware.
Our choice of cloud platforms:
- are highly scalable and available to meet the needs of service users
- have automated tools for GDS administrators to manage their environments
See the Service Manual for more information on how to host your service.
Consider vendor switching costs
AWS has a large number of available services. Some services, such as compute capacity and email and file storage, are common to other providers like Microsoft Azure and Google Cloud Platform. Other services are specific to AWS.
You should be aware that it’s generally easier, quicker and cheaper to switch from common AWS services to other suppliers than from AWS-only services. For example, it is more difficult to migrate a web API service to another provider if the API is built using Amazon API Gateway instead of as a traditional web application and then deployed to EC2.
You could also use a Lambda function to ship AWS CloudTrail activity logs to a log provider such as Logit. It would not make sense to rewrite a Lambda function to run on EC2 hardware because this would not reduce your switching costs.
Core AWS services that are common with its biggest competitors include:
- Amazon Elastic Compute Cloud (Amazon EC2)
- Networking Products with AWS
- Amazon Elastic Block Store (EBS) and Amazon S3
- Amazon Relational Database Service (RDS)
Less common Amazon Web Services include:
- Amazon API Gateway
- AWS Directory Service for Microsoft Active Directory
- Amazon CloudFront
- Amazon DynamoDB
- AWS Lambda
- Amazon Simple Notification Service (SNS)
- Amazon Simple Queue Service (SQS)
If you’re starting a new project or application, contact Reliability Engineering by email using email@example.com or using the #reliability-eng Slack channel to discuss your needs before implementing new infrastructure.