Thursday, September 19, 2019

Amazon Needs Another Training Track

I spent a day recently taking Amazon's "AWS Technical Essentials" course.  I had originally opted not to go, but a summons went out that we had already paid for seats and that everyone using AWS should really go.  I've been in far worse courses and certainly had no complaints with our instructor, a former mechanical engineer who knew his stuff and was never in salesman mode.  Indeed, many of the tips I extracted had to do with how to save money.  No, the problem is that the course is designed for a very, very different use case than anyone in my shoes is interested in.  It's a use case that I'm sure Amazon has a few bazillion customers for, but I'm just not one of them.
Amazon has a whole series of courses for learning how to use AWS; this is the prerequisite for the rest of them.  That's unsurprising, as AWS sometimes seems to be like a yeast culture in exponential phase, constantly budding off new services with new names -- as well as new options on old services.  The number of machine classes keeps growing too, and understanding the difference between M4 and M5 and M5A is important. 

Most of the presented material was actually very general and our instructor was happy to go off-trail based on our questions; that is where a lot of the value lay (again, a testament to his skill and experience).  But the course exercises were not at all appropriate.

The three exercises were designed around setting up the virtual private network to support a webserver, setting up a load balancer to handle requests and hooking it to a database.  Great stuff if you want to set up the one trillionith web-based business.  Tedious stuff otherwise.  We have a whole Dev Ops group that does this, for which I now have even more gratitude.  More importantly, they'd never ever not ever trust me to do this, as the consequences of getting it wrong are so disastrous!  Hook up the wrong routing table to a public subnet, and voila! you have exposed all the most sensitive innards of your employer to every bot and hacker there is.

Amazon needs to recognize that there is a significant and growing cadre of businesses and developers that are completely internal, working on virtual intranets on high performance problems.  There are some issues in correct network configuration there; our instructor pointed that out.  You might be paying extra tolls in time or money if you're not careful.  But again, useful for me to have some mental priming that the issue can exist; worthless to have me try to muddle my way through actually implementing this.  

No, what we need are serious tutorials in the various database and high throughput computing options.  How to set up clusters or moral equivalents of clusters (AWS Batch) to munge huge amounts of data.  How to share disk across multiple machines (AWS Elastic File Share).   More of that.

Perhaps these are covered in some of the follow-on courses.  But now I'm nervous: those are 2-3 day investments meaning a serious opportunity cost.  Will they be having me set up an eCommerce or personal networking site? Or will I get the real, practical experience I need?  Frankly, I'd probably be happier with a half-day "Pro Tips and Pitfalls" course than one with hands-on exercises (they take some major time).  Plus a lot of the learning curve between me and something like AWS Batch is getting through the very site-specific setup questions -- such as all the pre-determined security strategies and network configurations and such which I kvetched about above.

Of course, that is the complication of having such a training curriculum - it's a lot easier to manage if you have a single base course that then everything else can reasonably assume as a foundation, rather than having several customized intro tracks that have differences.  So perhaps my ploughing through that class is a necessary evil.  But I was certainly not alone in finding the intro course material less than compelling.  Indeed, many of my colleagues didn't feel compelled to return from breaks, with a steady attrition across the day.  

1 comment:

cdwScience said...

Yeah - I kind of had to teach myself how to use AWS, and I ultimately decided to then learn how to set up a server locally (since figuring things out could cost 100s of dollars in weeks).

Learning about EFS was important, and I agree that should probably be one of the first things.

As I mention in this blog post, there was a window of time when I paid for the support (but I thought that was less than optimal).

To be fair, my interpretation is that trying to offer a catch-all service for beginners who need to become functional / proficient can be hard (particularly if they don't understand how much work is required to learn all of the necessary skills).

In other situations, I wonder if requiring training before starting a project in a new area could help. I suppose this also creates the opportunities for tutoring from local 3rd parties, but you still have to have realistic time-frames (if it costs $30/hr for 1-on-1 support, you should probably have an idea about whether you need 10 hours, 50 hours, 200 hours, etc.).

As much as possible, my personal preference is to use free self-help when I have free time (but limit how often I branch out into something new). However, you are absolutely right about responsibilities for a job: this is for beginner cloud computing. If you are a system admin, you are right that it can be unsafe if you are either rushed or you try to take on more than you can handle.