Home > AWS, re:Invent > AWS re:Invent 2018: Modern Application Development: A Leadership Discussion – SRV325

AWS re:Invent 2018: Modern Application Development: A Leadership Discussion – SRV325

November 29th, 2018

20181129_200651529_iOSDavid Richardson, Deepak Singh & Ken Exner from AWS

This was in the beautiful Venetian Theatre.

This was a leadership discussion which had interested me as I wanted to hear a different perspective. I’ve done a fair few deep dive technical sessions so wanted an executive higher level view particularly looking at how to “do” faster innovation. AWS has so many choices across serverless, containers, and developer tools, how and what do you pick?

David, Deepak and Ken went through their executive view of development best practices and how they see developers actually being able to consume all the AWS toys to run those all important business applications.

David realised early on when joining AWS how it was a different company which institutionalised innovation by being able to make lot and lots of experiments. Moving to microservices with 2 pizza teams meant it wasn’t just a technology change but a leadership and culture change giving teams autonomy with accountability.

20181129_201933412_iOS

Microservices approach particularly serverless is the modern way of only using business logic.

Changes to architectural patterns

  • AWS services made to work well together with architectural changes.
  • Lots of experiments
  • When change impact is small, release velocity can increase.
  • This has a secondary effect, smaller services means less communication to make a decision
  • APIs are the front door of microservices, managing APIs with API Gateway is a very good way to control connections across your environment.
  • WebSockets support in API Gateway means now two-way communication for statefull connections when you need to manage persistence and also have event-based triggers.
  • CloudMap which is recently announced is a way to increase application availability, it’s a app discovery and naming system.
    App Mesh is a service mesh for observability and traffic control

Event-driven architectures

Decouple state from code using messaging: SQS, SNS and CloudWatch

Data streams

  • Kinesis for ingesting and DynamoDB for storing. now supported with Lamdba and Kinesis data streams.

Build workflows to orchestrate everything

  • Track status of data and execution
  • Remove redundant code
  • Step Functions now with richer workflows which can remove a lot of Lamdba functions.
  • Cloud-native architectures are small pieces, loosly joined.

Changes to the operational model

Other than the changes to architectural patterns which are technical, there are some lessons on changing the operating model

  • With microservices, doesn’t it get more complicated with all the pieces?
  • You need to operate with better observability.

An update on the AWS operational responsibility models.

20181129_203642398_iOS

Cluster huggers are the new server huggers, how can we get away from cluster management and transition to serverless.

Serverless is an operational model that spans many different categories of services

  • Lambda for short-lived code execution
  • Fargate for long-running things where you need to run existing code but describes as “serverless containers”. Bring existing code.
  • Lambda layers, code sharing.
  • Custom Runtimes, bring any linux compatible languages

How do you monitor and control all of these microservices?

Putting logic inside each microservice is complex. You should decouple the operational logic and SDKs (with a sidecar container). Managing all the proxies becomes tough hence App Mesh which is a control plane for Envoy but for all compute services.

Firecracker then talked about. Micro VM for Lambda, open source, built for security, speed by design, scale and efficiency.

20181129_204915942_iOS

How do I develop code in a microservices serverless architecture?

How to manage the release process? No central release process, developer teams have own tools to automate everything and manage their own release process. Micro pipelines using CodePipeline with its constituent services.

How do I observe distributed and ephemeral applications? X-Ray is the AWS product for this, analyse and debug issues quickly with an end-to-end view. X-Ray Root Cause which is new, identify a custom alarm. Also new support for API Gateway.

How to I edit and debug my serverless application?  Cloud9 is the IDE product announced last year which I’ve used extensively during the workshops, three toolkits added today. Also AWS Toolkit for VSCode.

How can we best model and provision our infrastructure? Infrastructure as code with thew new Cloud Development Kit (CDK) Author CloudFormation templates in other languages which compile down to CloudFormation. You can do more programming type functions. SAM is sister project, higher level opinionated for declaritive ways to model applications.

Summary from them:

Building the best cloud to support modern applications across the entire stack.

A interesting enough session, however it easily becomes a sales list of all the AWS services they have to solve whatever problems you have.

Categories: AWS, re:Invent Tags: , , ,
Comments are closed.