Melhores práticas para desenvolvimento de contêineres

Mejores prácticas para el desarrollo de contenedores

Al desarrollar para el mundo de los contenedores, es fundamental trabajar de forma inteligente. Descubra las mejores prácticas para ello.

Imagem em destaque

En algún momento, su desarrollo pasará de aplicaciones monolíticas tradicionales a microservicios. Eso significa contenedores. El mundo del desarrollo de contenedores es un poco diferente a lo que estamos acostumbrados, lo que significa que muchas de las antiguas mejores prácticas ya no se aplican.

Entonces, si buscas un cambio con respecto al desarrollo de aplicaciones estándar, ¿qué haces? Aprendes lo más rápido que puedes. Y dada la rapidez con la que el mundo del desarrollo está evolucionando en estos días, ese ritmo ha alcanzado una velocidad vertiginosa. Por lo tanto, necesita aprender las mejores prácticas rápidamente o corre el riesgo de ser expulsado del juego o de implementar constantemente aplicaciones que no funcionan, no son confiables, no se pueden escalar o son demasiado inseguras para implementar. ser utilizado en un entorno corporativo.

¿Cuáles son algunas de las mejores prácticas que ya debería adoptar para el desarrollo de contenedores? Veamos algunos de ellos que son más inmediatos y pueden implementarse desde el comienzo de su viaje.

Utilice imágenes estables de entidades conocidas

Esto está en lo más alto de la lista, simplemente porque se ha convertido en uno de los problemas más importantes a los que se enfrenta la seguridad de los contenedores. Todo lo que desarrollas en un mundo en contenedores comienza con una imagen. Puede crear el suyo propio desde cero o tomar la ruta rápida y extraer una imagen de, por ejemplo, Docker Hub. Si opta por la ruta de terceros, siempre debe utilizar únicamente imágenes estables de entidades conocidas.

Digamos, por ejemplo, que desea basar la implementación de un contenedor en la última imagen de Python. Si busca en Docker Hub, encontrará muchas imágenes para Python, pero solo una imagen oficial de los desarrolladores reales de Python. Esta es la imagen que debes usar. Cualquier imagen proveniente de una entidad oficial será marcada como tal. Es importante que utilices únicamente estas imágenes. No extraigas una imagen de una fuente desconocida, porque nunca se sabe lo que podría contener.

Mantenga sus imágenes pequeñas

Es posible que tenga la tentación de formar sus contenedores en una imagen que incluya múltiples recursos. Tenga esto en cuenta: cuanto más grande sea la imagen, más grande será su contenedor. Si basa todos estos contenedores en imágenes más grandes al implementar una aplicación que incluye muchas partes móviles, además de introducir servicios innecesarios, corre el riesgo de acumular una factura de alojamiento en la nube significativamente mayor.

Recuerde, la idea detrás de la contenedorización es lograr una escalabilidad masiva a precios reducidos. Por lo tanto, implementar contenedores basados ​​en imágenes de gran tamaño anula este propósito.

No haga eso. Utilice siempre la imagen (oficial) más pequeña que pueda encontrar. Y si no encuentras una imagen oficial lo suficientemente pequeña, crea la tuya propia. Además, con un panorama más amplio, el plan de ataque puede crecer exponencialmente.

Mantenlo pequeño.

Utilice datos persistentes

Debe evitar almacenar datos en la capa de almacenamiento de un contenedor. ¿Por qué? Dos razones: almacenamiento y accesibilidad. Considere esto: si almacenara datos en la capa de almacenamiento de un contenedor, ese contenedor crecería exponencialmente. Esto no es todo. Si el contenedor falla, ya no se podrá acceder a los datos. En su lugar, deberías almacenar tus datos en volúmenes persistentes.

Al utilizar volúmenes, se asegura de que el tamaño de los contenedores no aumente a medida que se recopilen más datos y que varios contenedores puedan acceder a los datos almacenados.

Emplear CI/CD para pruebas e implementación

Necesitará muchas pruebas. Y la implementación será un tema continuo. Recuerde, cuando coloca una aplicación en contenedores, el objetivo es la automatización. No querrás ralentizar el tiempo de implementación al tener que probar y volver a implementar todo manualmente. En su lugar, adopte un enfoque de integración continua/implementación continua (CI/CD).

Con CI/CD el objetivo es automatizar tanto como sea posible. Una vez que utilice CI/CD para las pruebas y la implementación, descubrirá que todo funciona de manera mucho más eficiente.

Identifique de forma inteligente imágenes de contenedores

Al crear sus propias imágenes (o modificar las que haya extraído), deberá etiquetarlas antes de que puedan volver a cargarse en sus repositorios. Al etiquetar estas imágenes, asegúrese de hacerlo de forma inteligente. No se limite a etiquetar una imagen con "más reciente" o la fecha. Es posible que haya incluido una característica específica en una imagen o haya creado una imagen para un propósito determinado.

Asegúrate de etiquetar estas imágenes para saber siempre su propósito.

Considere la seguridad en cada paso

Con el desarrollo de contenedores, la seguridad comienza desde el punto de partida y nunca se detiene. Esto es especialmente cierto cuando su objetivo es la automatización. En este punto, debe considerar la seguridad como un círculo que rodea todos los aspectos de su implementación.

La seguridad comienza con las imágenes base, pasa por los manifiestos de los contenedores, verifica DevOps, GitOps y las herramientas de automatización, avanza a través de la implementación y regresa a los repositorios que albergan su código. Si considera la seguridad como un componente interminable que debe seguir al contenedor de principio a fin, encontrará que vale la pena utilizar estas implementaciones.

Recuerde, la seguridad en el desarrollo de contenedores nunca descansa.

Una aplicación por contenedor

Si bien puede implementar un único contenedor que albergue todas las aplicaciones necesarias para un servicio, no debería hacerlo. ¿Por qué? La razón principal es que los contenedores de una sola aplicación son más fáciles de escalar. Y dado que la escalabilidad es uno de los principales objetivos de la contenedorización, es obvio.

La escalabilidad es posible porque un administrador de clúster puede implementar más contenedores cuando sea necesario. Por ejemplo, si su aplicación solo requiere más instancias de una base de datos para escalar, si ha movido esa base de datos a un contenedor con otras aplicaciones, el escalado incluirá esas otras aplicaciones, lo cual no es eficiente.

Los contenedores de una sola aplicación también son mucho más fáciles de crear y probar.

Conclusión

Si comienza su viaje de desarrollo de contenedores con estas mejores prácticas, irá con el pie derecho. Por supuesto, siempre hay más prácticas recomendadas, algunas de las cuales vendrán dictadas por el proyecto en cuestión. Pero, en general, lo que ve aquí debería ser útil en la mayoría de las implementaciones de contenedores.

Conteúdo Relacionado

O Rails 8 sempre foi um divisor de águas...
A GenAI está transformando a força de trabalho com...
Entenda o papel fundamental dos testes unitários na validação...
Aprenda como os testes de carga garantem que seu...
Aprofunde-se nas funções complementares dos testes positivos e negativos...
Vídeos deep fake ao vivo cada vez mais sofisticados...
Entenda a metodologia por trás dos testes de estresse...
Descubra a imprevisibilidade dos testes ad hoc e seu...
A nomeação de Nacho De Marco para o Fast...
Aprenda como os processos baseados em IA aprimoram o...
A web está em constante evolução, e com ela,...
A Inteligência Artificial (IA) tem sido um tema cada...
Você já se sentiu frustrado com a complexidade de...
O OpenStack é uma plataforma de computação em nuvem...
Você já se sentiu frustrado com a criação de...
A era digital trouxe uma transformação profunda na forma...
Nos dias atuais, a presença digital é fundamental para...
Introdução Quando se trata de desenvolvimento de software, a...
Como desenvolvedor Dart, você provavelmente já se deparou com...
Regresar al blog

Deja un comentario

Ten en cuenta que los comentarios deben aprobarse antes de que se publiquen.