Cloud Solutions
No longer useful
Sometimes its time to retire your application. If you aren't seeing much use, or if your use case is being met by something else, consider dropping the application.
Software as a Service (SaaS)
Many technical needs have been anticipated already, and sometimes solutions exist that will work "right out of the box." Software as a Service or other paid licensing often ends up saving more time and money than creating a custom application. OIT's official policy is SaaS first when feasible, so do your research before deciding to develop.
In some cases, OIT may already have a license that you can make use of. Check the service catalog to see OIT offerings, or view the user-friendly decision tree. If you think a SaaS solution not already offered may be a good fit for your use case, the cloud office is happy to consult with you before you purchase.
IaaS Solutions
OIT has licenses with Brightspot and Mendix, two Infrastructure as a Service products which allow you to create websites and web apps very quickly! They are low-code, sometimes no-code required tools to fulfill some of the most common IT needs. If you want a static website with a "byu.edu" URL, use BYU Sites powered through Brightspot. Other sites and web applications may be a good fit for Mendix. The cloud team can help you decide and find support developing with either of these options.
Serverless
Going serverless means you will need to write a lot of code from scratch, but when you are finished your application will be more resilient, scalable, and autonomous than ever. It will almost certainly be much cheaper. Serverless architecture is where the cloud shines most, hardware gets abstracted away and all you have to manage is the code itself. Decide whether the initial development cost will be worth the long-term benefits. If you are building a totally new application, there are few reasons not to go serverless.
This AWS site is a good starting resource if you are thinking of developing a serverless application. Services like AWS Lambda, DynamoDB, and Amazon API Gateway are utilized in many serverless applications. You'll probably want to consult with the cloud office if you're thinking of developing a serverless application.
Rearchitect for the Cloud
If you are willing to refactor your code, there are probably many ways to streamline your application for the cloud.
Some applications can be split into a collection of microservices. Maybe you need to take advantage of AWS's content delivery network, CloudFront, or perhaps you want more scalability through an application load balancer. There are many possibilities when trying to rearchitect for the cloud. You can even rearchitect after you've started with a simple "lift-and-shift." The cloud office is happy to consult with you to see what changes might be right for your application.
Start Leveraging Cloud Services
Without needing to refactor your code, you can take advantage of some cloud features. A container is a package of software which can run in versatile environments because all dependencies are included. Containerizing your application will make migration simple, whether between on-prem data centers and the cloud, or even between cloud providers. Many management and patching tasks can be off-loaded to the cloud provider, and scaling may be easier.
If you use containers, or are considering using them, AWS offerings include ECS (with Docker functionality) and the serverless Fargate. Click here to read more about the differences. The cloud office can help you figure out the best fit for your application.
"Lift and shift"
Rehosting refers to a simple migration of the on-premises application to an Infrastructure as a Service (IaaS) product in the cloud without modifying the application's architecture. This is much easier than most other options, but will not take advantage of the long-term savings and other benefits possible with cloud-minded architecture. The main difference is you run your virtual machines in your cloud provider's data center instead of your own.
Within AWS, you can use the EC2 service to provision servers, or the RDS service to create databases, mirroring whatever set-up you use on-prem. AWS Elastic Beanstalk will automatically provision, manage, and scale all the architecture necessary for a web application. The cloud office can help you migrate your application to the cloud.