Over the next decade and beyond there is going to be a huge shift toward cloud if it hasn’t already happened for most by now. Anyway familiarizing yourself with cloud services will put your ahead of the curve in many respects. There are still a lot of people using outdated technologies like php and dedicated servers. Eventually those people lagging behind will need to pivot and migrate modern infrastructure+programming to compete in the marketplace. My recommendation would be learning AWS services and possibly even becoming certified. I’ve been considering developer certification myself even though my day to day is full stack and involves little cloud development beyond discussions and overall architecture approaches. I’ve been working on my own project where one of the major goals has been to familiarize myself with cloud and specifically aws and serverless development. Effectively its a fully cloud driven serverless publishing platform using Angular and distributed aws services for storage, authorization, and searching.
This is the website for aws cloud.
https://aws.amazon.com/
The two hot topics these days are containerization and server-less infrastructure. AWS offers solutions for using those technologies.
Serverless:
Containerization
The appeal of server-less instead of containers is server-less cost are based on usage whereas containerization is fixed cost per hour/time interval. For example, at 3am when no one is using your services or site you will still be charged if the container is running. In contract no costs are incurred using lambda and api gateway unless someone where to use/access api gateway and run the lambda at 3am. There are ways to mitigate container costs but those methods require understanding infrastructure as code with a large learning curve.
An important part of any infrastructure or application is authentication and authorization. In context of AWS/cloud there are two environments to really consider.
- Cloud Infrastructure
- Application Authentication and Authorization
AWS offers to separate services to manage users that can change modify and access loud infrastructure. Another services to separate application users and manage authentication and authorization to using services in the cloud via way of cli, web request, sdk, etc.
Lastly AWS offers a slew of low cost relational database alternatives while also providing RDS which supports several relational databases including Mysql, Oracle, Postgres, Mariadb, etc. I myself prefer to use lower cost cloud driven solutions that storage data in its natural forms most likely using json.
AWS also offers several machine learning and ai focused services. Those are things I’m not familiar with though because I have not had a reason to look into them.
All my familiarity with these things comes from reading the excellent documentation, manually setting them up in the aws web console and using the Javascript AWS v3 SDK to speak to them.
One of the most difficult things for me to figure out in that regards was being able to speak to them directly rather than needing a server-side proxy. The project I’m working on actually communicates directly with AWS web services without needing a server-side proxy or wrapper. It also does so securely using signed request which was a gigantic pita to figure out with the limited documentation on that topic rather than using the sdk which can’t always be used in the browser for some services like open search.
Also while people may be reluctant to migrate to modern programming languages and frameworks with completely valid reasons. There really isn’t any valid reason or advantages to be using shared or dedicated servers except for stubborness and laziness. Any existing application whether it be a brand new shiny react project or a old janky php site and/or monolith can be migrated to the cloud. Once moved to the cloud there are significant advantages like lower cost when done right, scaling ease (down and up), replication, testing, performance and observability. For example, it doesn’t really make much sense to place static sites on a dedicated or shared server when with a little work they can be placed in the cloud as a lambda or hosted on cdn.