Friday, December 2, 2016

AWS re:Invent Day 5

Werner Vogels does his Superman impression

Werner Vogels - Keynote

Lots of announcements from the AWS CTO. Some user stories (Twilio, Netflix, Mapbox, TrainLine), lots of focus on developer tools and big data management tools.

Some highlights:


AWS Glue - ETL pipeline tool
AWS Batch - Ummm, batch processing.
Lambda@Edge - Lambda on CDNs to move processing away from your server with faster results.

Read more about the announcements here.

...on to my agenda for the day.



Configuration Management in the Cloud

This presentation fooled me - although I shouldn't have been fooled.  When people here speak of configuration management it's always in the context of running their precious Chef or Puppet scripts.  Oy.  So as it turns out the talk was all about AWS OpsWorks for Chef Automate.  For those who are not aware, Chef runs on a server and pushes configuration updates to clients.  The new AWS service allows you to create a fully managed Chef server...hmmm...ok.  The one thing that was interesting was that the pricing is based on the number of running (registered) clients with the first 10 being "free".

The presenters were a bit unpolished and that might have contributed to my negative assessment of the talk or because I just wondered if this just might be a methodology (push configuration) that might be on the way out because of evolving development patterns...like...well...yeah...serverless.  What's to push when your servers are either immutable or there are no servers because your events short lived and ephemeral?

IMHO, even if you do have to manage servers, it still seems like a really clunky way to manage them (although I don't have a farm of 1000 servers that have to be patched).  Several other presenters at the conference promoted the concept of immutable production environments.  That is becoming a more appropriate starting point if we are really going to treat servers as cattle and not as pets (this metaphor is the most overused one at the conference again this year - along with the phrase "...you can actually...".  I don't understand why people use the word actually in the context of explaining how to use some feature or function.  I can actually do without the word actually in most sentences.

Hybrid IT: A Stepping Stone to All-in

Interesting talk that focused on a short demo of showing how easy it could be to implement a hybrid cloud environment.  First the speaker created a VPN connection between a hypothetical environment and the AWS environment by creating a VPC (Virtual Private Cloud) and a VPG (Virtual Private Gateway).  He then created private/public subnets and the various components required for the demo including database servers and web servers.  The demo implemented a Magento (e-commerce) site that was migrated  to the cloud by using AWS DMS (Data Migration Services).

All-in-all I guess I expected a bit of a deeper dive into some of the options for creating hybrid cloud environments rather than a superficial demo of migrating a web store.  Oh well...he did walk through the VPG setup which was ridiculously easy (in the demo), but is probably a bit more challenging in real life as it would most likely involve opening up ports in firewalls and determining end points.

Some of the other items referenced where AWS AD (ActiveDirectory) Connector that allows user federation in the on-prem network.  He also relied heavily on OpsWork.

Application Lifecycle Management in a Serverless World

Did I mention serverless?
Okay, did I hear someone say serverless? Looks like there might be at least 1 tool emergingSAM (Serverless Application Model) - an open source , yaml based way to create, you guessed it! Even more yaml!  Yaml, yaml, yaml, I think they just like to say that word.

Yup.  You use SAM to create yaml based CloudFormation scripts (which everyone was doing in JSON but complained about the signal to noise ratio of JSON).   We'll look back on these days like developers in my day looked back at assembly language after getting a C compiler I guess.  Each new technology introduced first gives you direct access to it in some way, then we build up abstraction layers.  It's the natural order of things.

Takeaways:


  • CodeCommit/CodeBuild/Git appear to be the way so folks internalize ALM (application lifecycle management) in the serverless world right now
  • No patterns are set in stone yet, no best practices, but rather a lot of practices I think one can describe as "not best" so far. Or at least not that great.
  • Lot's of yaml, yaml, yaml, rhymes with camel - seems to be an attempt to de-emphasize JSON as a configuration representation and move toward yaml.  

All Your Chats are Belong to Bots - Building a Serverless Customer Service Bot


In this 2 1/2 hour workshop where we attempt to create an actual serverless application, I thought I might have a chance to write some code.  Nope.  It was an exercise in clicking through configurations to orchestrate a chatbot that takes Facebook messages, sends them to an NLTK (natural language toolkit) processor and responds with a message.  If the NLTK cannot come up with appropriate responses, it sends the message to a human who is (presumably) sitting somewhere on a Slack channel.

So, apparently Slack and all these young whippersnappers have reinvented IRC channels with a web UI.  Okay, so as part of this workshop I had to first create a Slack account and app and a Facebook app before I could even get started.

What did I learn?


Serverless works but is maddening to program.  The application kinda/sorta worked but for everyone in the workshop portions of it didn't, resulting in much beard scratching, instructors that could not successfully debug their own code and a display of problem solving that can best be described as a happy click fest through browser tabs, verification of configuration settings and cockamamie theories from guys that debug by a lot of trial and error - but no actual troubleshooting. They can't necessarily be blamed since there is so much to grok, such poor documentation and no real there, there (if you know what I mean), patterns or best practices yet for developing serverless applications in the cloud.  Apparently console.log() is your only real friend right now.

Serverless is a train with some momentum and it's coming - but it hasn't arrived at the station yet.  Patterns and tools will need to emerge first. But when they do, it will be the platform for microservices that run the next generation of web applications.

re:Play


How do you cap a day off that starts at 7:00 am, one filled with mind blowing announcements from the AWS CTO, and break sessions that leave you dizzy?
  
How about a party at the Linq featuring the #1 DJ in the world Martin Garrix.  I didn't really get the idea of a DJ as THE entertainment, I thought it was all about the singers and band, man!  Well, I kinda get it now.  It was loud, bright, dark, quiet, raucous and tiring.  Okay, I can now tic off "saw the #1 DJ in the world" from my bucket list.  PUT YOUR HANDS IN THE AIR!

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.