Devops for Growth
107.5K views | +9 today
Follow
Devops for Growth
For Product Owners/Product Managers and Scrum Teams: Growth Hacking, Devops, Agile, Lean for IT, Lean Startup, customer centric, software quality...
Curated by Mickael Ruau
Your new post is loading...
Your new post is loading...

Popular Tags

Current selected tag: 'serverless'. Clear
Scooped by Mickael Ruau
Scoop.it!

Getting started with Jamstack

Getting started with Jamstack | Devops for Growth | Scoop.it


Jamstack’s core ideas are not something new. If you go back to the origins of the web, you’ll recap how developers used to create static HTML content manually, page by page, to serve the clients.

The whole cycle from development to deployment was simpler for everyone involved. Obviously, with the complexities required for the systems nowadays, we can not go back to the way it used to be.

However, Jamstack’s not focused on simply serving manually-created static HTML contents to gain in page load speed. It’s goal is on extracting the best out of these experiences to improve performance, productivity, and flexibility while keeping maintenance simpler.

Aside from that, there’s a famous article from AWS known as The 5 Pillars of the AWS Well-Architected Framework, which the company wrote to share with the community their extensive experience in making great architectures. They are:

Operational Excellence
Security
Reliability
Efficiency (in terms of performance)
Optimization (in terms of costs)

When looking at a Jamstack architecture, you can spot each one of these pillars well implemented through:

Reducing the number of internal architectural pieces that move within the systems to decrease the need for Ops people and, therefore, have better operational excellence.
Making sure the app follows the consolidated best practices for security means which increases the overall security.
Providing endless scalability to the various nodes in which your app may be running so that it’s reliable.
Delivering the fastest experience possible due to the static nature of all website resources, including CDN.
Decreasing costs since there are only static resources to host .
No comment yet.
Scooped by Mickael Ruau
Scoop.it!

Securing Serverless Architectures [Infographics] - DZone Security

Securing Serverless Architectures [Infographics] - DZone Security | Devops for Growth | Scoop.it
From web threats over IAM principles to auditing and monitoring, learn more about securing serverless architectures in this 2-parter infographic.
No comment yet.
Scooped by Mickael Ruau
Scoop.it!

The 5 Pillars of the AWS Well-Architected Framework | AWS Partner Network (APN) Blog

The 5 Pillars of the AWS Well-Architected Framework | AWS Partner Network (APN) Blog | Devops for Growth | Scoop.it


The AWS Well-Architected Framework helps cloud architects build the most secure, high-performing, resilient, and efficient infrastructure possible for their applications. The framework provides a consistent approach for customers and AWS Partner Network (APN) Partners to evaluate architectures, and provides guidance to implement designs that scale with your application needs over time.

In this post, we provide an overview of the Well-Architected Framework’s five pillars and explore design principles and best practices. You can find more details—including definitions, FAQs, and resources—in each pillar’s whitepaper we link to below.

Read the full Well-Architected whitepaper >>
1. Operational Excellence
No comment yet.
Scooped by Mickael Ruau
Scoop.it!

Le Serverless : prochaine pierre angulaire des applications pour IoT et Assistants virtuels | OCTO Talks !

Le Serverless : prochaine pierre angulaire des applications pour IoT et Assistants virtuels | OCTO Talks ! | Devops for Growth | Scoop.it


Ce premier article de notre série consacrée au serverless analysera les principaux enjeux des objets connectés. Puis il abordera les promesses liées aux plateformes Serverless. Enfin il finira par s’interroger sur les écueils à éviter. Les solutions à ces questions seront l’objet des prochains articles de cette série.

Mickael Ruau's insight:

Au niveau de la conception tout d’abord, l’approche microservice semble naturelle aujourd’hui. Les Fonctions as a Service incitent à partitionner l’application en une multitude de fonctions qui se coordonnent entre elles. Ce découpage favorise la modularité et le choix des technologies les plus appropriées. Mais le mieux est souvent l’ennemi du bien. Prenons l’exemple d’une modularité à l’extrême avec une fonction par ressource et par verbe HTTP. Une petite application avec 6 ressources et n’utilisant que 2 verbes par ressource nécessitera pas moins de 12 fonctions. Cela va nécessiter 12 processus de builds indépendants, 12 configurations d’Infra as Code donc beaucoup de complexité et de temps de déploiement. N’y a-t-il pas une meilleure façon de faire ?

La programmation fonctionnelle et la programmation évènementielle mises en avant par les plateformes de Functions As a Service répondent très bien à l’enjeu de l’informatique pervasive. À l’inverse, elles présentent un challenge très important pour réaliser des applications plus classiques. En effet, le temps de démarrage d’une Fonction as a Service peut atteindre quelques secondes lors du premier appel.

Certaines propositions émergent comme l’architecture en service block. Cette architecture ré-introduit une instance de type microservice pour gérer l’interaction avec l’utilisateur (ce que nous avons nommé informatique interactive). Là encore, n’y a-t-il pas une meilleure façon de faire ?

Le debuggage ensuite. Lorsqu’on développe du code destiné à être déployé sur des Plateformes as a Service, son exécution est dépendante de cette plateforme.

Celle-ci devra à la fois faire office d’environnement de développement, de qualification et de production. Gérer de multiples environnements dans un même service est complexe si le service n’offre pas de support aux environnements multiples.

La boucle de feedback est longue du fait du temps de déploiement de l’application.

La plateforme fournit des logs à l’exécution, mais ceux-ci peuvent s’avérer trop limités dans un besoin de développement. L’usage d’un outil de debuggage devient indispensable. Certaines plateformes permettent d’exécuter leur runtime dans un conteneur docker sur le poste développeur mais au prix de certaines limitations quant aux services managés testés.

A l’inverse des frameworks applicatifs permettent de se rendre indépendant de la plateforme. Quelle solution doit-on privilégier ?

L’intégration des différents services joue un rôle crucial en miroir des choix de conception. Faut-il privilégier des fonctions extrêmement simples en confiant beaucoup de responsabilités à des plateformes d’intégration : une API Gateway ou une plateforme de type Kubernetes (si on utilise un FaaS comme RIFF) ? En d’autres termes, faut-il privilégier une approche très orientée Service Mesh ou redonner un peu de responsabilité à l’application ?

Dans une plateforme de Function et de Backend as a Service, l’infrastructure est prise en charge par la plateforme. Est-ce que l’Infrastructure As Code ne devient pas superflue ? Nos premières expériences montrent qu’avec l’augmentation du nombre de fonctions, l’organisation du déploiement devient au contraire un enjeu majeur pour gérer la complexité liée aux grands nombres de services.

L’observabilité enfin est un enjeu majeur, car les infrastructures sont on ne peut plus volatiles. Le meilleur moyen pour diagnostiquer un problème sur une application Serverless repose sur l’observabilité. Or, il n’y a plus aucun serveur sur lequel stocker ses logs ni même se connecter. Tout est à réinventer.

Chacune de ces questions pourrait nécessiter un article à part entière.

No comment yet.
Scooped by Mickael Ruau
Scoop.it!

Le Serverless ne convient pas à toutes les applications

Même si les plateformes dites Serverless ont la capacité de réduire à la fois la complexité de l’infrastructure et les coûts, elles ne constituent la meilleure option pour certaines applications, comme celles exploitant les mécanismes du multi-cloud.
No comment yet.
Scooped by Mickael Ruau
Scoop.it!

Software Architecture is Overrated, Clear and Simple Design is Underrated

Software Architecture is Overrated, Clear and Simple Design is Underrated | Devops for Growth | Scoop.it


I had my fair share in designing and building large systems. I've taken part in rewriting Uber's distributed payment systems, designing and shipping Skype on Xbox One and open-sourcing RIBs, Uber's mobile architecture framework. All of these systems had thorough designs, going through multiple iterations and had lots of whiteboarding and discussion. The designs then boiled down to a design document that was circulated for more feedback before we started building.

All of these systems were large at scale: hundreds of developers build them - or on top of them - and they power systems used by millions of people per day. They were also not just greenfield projects. The payments system rewrite had to replace two, existing payments systems, used by tens of systems and dozens of teams, all without having any business impact. Rewriting the Uber app was a project that a few hundred engineers worked simultaneously on, porting existing functionality to a new architecture.

Let me start with a few things that might sound surprising. First, none of these designs used any of the standard software architecture planning tools. We did not use UML, nor the 4+1 model, nor ADR, nor C4, nor dependency diagrams. We created plenty of diagrams, but none of them followed any strict rules. Just plain old boxes and arrows, similar this one describing information flow or this one outlining class structure and relationships between components. Two diagrams within the same design document often had a different layout and were often added and modified by different engineers.

Second, there were no architects on the teams that owned the design. No IT architects or enterprise architects. True, neither Uber nor Skype/Microsoft have hands-off software architect positions. Engineers at higher levels, like staff engineers, are expected to still regularly code. For all the projects, we did have experienced engineers involved. However, no one person owned the architecture or design. While these experienced developers drove the design process, even the most junior team members were involved, often challenging decisions and offering other alternatives to discuss.

Third, we had practically no references to the common architecture patterns and other jargon referenced in common software architecture literature, such as Martin Fowler's architecture guide. No mentions of microservices, serverless architecture, application boundaries, event-driven architecture, and the lot. Some of these did come up during brainstormings. However, there was no need to reference them in the design documents themselves.
Mickael Ruau's insight:

The best software design is simple and easy to understand. The next time you're starting a new project, instead of thinking, "How will I architect this system, what battle-tested patterns should I use and what formal methodology should I document it with?", think "How can I come up with the simplest possible design, in a way that's easy for anyone to understand?".

Software architecture best practices, enterprise architecture patterns, and formalized ways to describe systems are all tools that are useful to know of and might come in handy one day. But when designing systems, start simple and stay as simple as you can. Try to avoid the complexity that more complex architecture and formal tools inherently introduce.

No comment yet.
Scooped by Mickael Ruau
Scoop.it!

Design Patterns for Serverless Systems

Design Patterns for Serverless Systems | Devops for Growth | Scoop.it
Key Takeaways

We can define different categories of design patterns, including OOP design patterns, organizational patterns, and so on.
A number of design patterns are specifically suited to the serverless paradigm.
The Pipes and Filters design pattern can be used to decouple a serveless system into simple functional units interconnected in a chain.
No comment yet.
Scooped by Mickael Ruau
Scoop.it!

2021: Low code serverless functions with WebAssembly-powered DSLs

2021: Low code serverless functions with WebAssembly-powered DSLs | Devops for Growth | Scoop.it
Serverless functions are the "A" in JAMstack. However, traditional serverless functions from public clouds have poor performance, limited language and framework selections, and are generally not well suited for complex tasks such as AI inference. In this talk, we will present a new type of serverless functions, based on WebAssembly, that supports Domain Specific Languages (DSLs) specifically designed for application tasks. The WebAssembly functions are low code, very fast, and can be deployed on edge network nodes.
No comment yet.
Scooped by Mickael Ruau
Scoop.it!

Part 1: Microservices: Technical, Business, or Organizational Architecture? Yes | AWS Cloud Enterprise Strategy Blog

Part 1: Microservices: Technical, Business, or Organizational Architecture? Yes | AWS Cloud Enterprise Strategy Blog | Devops for Growth | Scoop.it

With a bucket of Legos, you can tell any story. You can build an airplane or a dragon or a pirate ship—it’s whatever you can imagine.
Christopher Miller

One of the hallmarks of any digital transformation is increased speed and agility. Decisions need to be made more quickly using data and algorithms. Digital services need to be created rapidly to capture new revenue streams and increase customer experience. You might have heard your CTO or Chief Architect (or AWS) talk excitedly about a new software architecture that is going to save your business, make it more agile, innovative, and solve world hunger called microservices. Much has been written about the technical aspects of microservices architecture, but the non-technical aspects (business, organization, etc.) of microservices I find are not covered with the same frequency or energy. But before I cover the non-technical aspects of microservices, I think it’s worth trying to explain it in layman’s terms and the connection to business value.

Mickael Ruau's insight:

Microservices is a technical architecture approach that emphasizes modularity and independence of software and hardware components. The separation and independence are arguably the most important characteristics. Just as physical objects cannot share the same space, microservices should not share the same digital space. If you have younger kids, you know that having them share the same toys is a recipe for a fight. Therefore, as crazy it sounds, you end up buying the same toy for each kid, like I have. In the IT world, buying everyone the same toy is equivalent to giving everyone their own servers or data centers, which seems very expensive, but this leads to “fighting” in civilized forums like Change Control Board meetings. In the world of cloud, the economics change because of the pay-as-you-go utility model and new paradigms where you don’t even have to worry about servers at all called, wait for it…Serverless. So, PlayStations for all!

No comment yet.
Scooped by Mickael Ruau
Scoop.it!

2018 ne sera pas binaire

2018 ne sera pas binaire | Devops for Growth | Scoop.it
Ne nous laissons pas distraire par les gadgets présentés à Vegas, la vraie innovation est du côté de l'architecture logicielle.
Mickael Ruau's insight:

La suppression des serveurs et les modèles de programmation pilotés par des événements vont révolutionner l'architecture logicielle. C'est la recette secrète qui se cache derrière nombre des innovations technologiques qui font la une des journaux à Vegas. Pourtant, elle n'est pas sans controverse ; un observateur du marché a fait remarquer que "la suppression des serveurs est l'une des pires formes de verrouillage propriétaire que nous n’ayons jamais vues dans l'histoire de l'humanité". Des mots forts peut-être, mais qui illustrent l’impact du changement qui traverse le monde du logiciel.

No comment yet.