TL Consulting Group

kubernetes

Building a Secure & Scalable Microservices Authorisation Architecture with Kubernetes

Microservices architecture has become the go-to choice for modern companies, offering unparalleled flexibility and scalability, especially in cloud-native environments. However, this architectural shift introduces new and unique security challenges, with authorisation standing out as a paramount concern.

Building a Secure & Scalable Microservices Authorisation Architecture with Kubernetes Read More »

Cloud-Native, , , , , , ,

The Journey from Traditional Ops to NoOps

The Journey from Traditional Ops to NoOps In the fast-changing software development landscape, organisations strive to improve their operational processes. Market studies project a 23.95% growth in the global DevOps market, with an estimated value of USD 56.2 Billion by 2030. This blog discusses the shift from traditional ops to NoOps, emphasising automation practices that boost software delivery’s efficiency, scalability, and resiliency. NoOps, short for “no operations,” represents a paradigm shift towards complete automation, eliminating the need for an operations team to manage the environment. This section clarifies the concept of NoOps, debunking misconceptions and emphasising the role of automation, AI/ML, and various technologies in achieving fully automated operations. NoOps represents the pinnacle of the DevOps journey, driving automation to enable developers to focus more on coding. Advancements in cloud services, containerisation, and serverless technologies converge to facilitate increasing levels of automation within the software lifecycle. However, achieving true NoOps environments requires incremental implementation based on organisational maturity. Recognising the significance of stability, reliability, and human expertise is crucial, despite the growing popularity of NoOps. According to a Deloitte survey, 92% of IT executives believe that the human element is crucial for successful automation. Rather than striving for total automation, organisations can take a practical approach by automating specific segments while retaining human involvement in vital areas. This approach acknowledges the value of human skills in monitoring, troubleshooting, and maintenance, serving as a transition towards increased automation and efficiency. Key Steps in the Transition to NoOps: Understanding Traditional Ops: Before embarking on the NoOps journey, it is essential to understand the complexities of traditional operations. Take a deep dive into the practices of manual infrastructure provisioning, deployment, monitoring, and troubleshooting commonly associated with traditional ops. Additionally, explore the limitations and challenges that come with these practices. Embracing the DevOps Culture: To successfully transition to NoOps, it is crucial to adopt the DevOps culture, which places strong emphasis on collaboration, automation, and continuous improvement. This involves exploring the principles and advantages of DevOps, as it sets the foundation for a smooth and effective transition to NoOps. Infrastructure as Code (IaC): The use of declarative configuration files in Infrastructure as Code (IaC) introduces a ground breaking transformation in the management of infrastructure. It is crucial to highlight the advantages of IaC, such as scalability, reproducibility, and version control, and acknowledge its pivotal role in enabling the concept of NoOps. IaC plays a critical role in enabling the NoOps approach, granting organisations the ability to automate the provisioning and management of infrastructure, minimise manual interventions, and attain increased efficiency and agility. Continuous Integration and Continuous Deployment (CI/CD): The automation of software delivery through CI/CD pipelines reduces the need for manual work and guarantees consistent deployments. This highlights the importance of continuous integration, automated testing, and continuous deployment in ensuring smooth transitions to production environments. Containerisation and Orchestration: Containerisation offers a compact and adaptable method for bundling applications, while orchestration platforms such as Kubernetes streamline the process of deploying, scaling, and overseeing them. Take advantage of containerisation and the significance of orchestration in facilitating seamless operations without the need for extensive manual intervention, especially in large-scale environments. Monitoring and Alerting: The presence of strong monitoring and alert systems guarantees the well-being and efficiency of applications and infrastructure. This encompasses the utilisation of tools to capture and analyse metrics, distributed traces, and logs from applications which aid in the proactive detection of problems. Self-Healing Systems: The implementation of methods such as auto-scaling, load balancing, and fault tolerance mechanisms promotes resilience by creating self-healing systems. These mechanisms enable automated handling of failures and resource scaling according to demand. Serverless Architecture: Serverless architecture platforms remove the need for managing and scaling servers, streamlining the deployment process. It examines the advantages of serverless design and how it speeds up development while minimising operational burden. Continuous Learning and Improvement: The continuous learning process of the NoOps journey highlights the significance of keeping abreast of emerging technologies and optimal approaches, while encouraging a culture of experimentation, feedback loops, and knowledge exchange. Conclusion: Transitioning from traditional ops to NoOps involves embracing automation, DevOps practices, and leveraging various technologies. The market trends and statistics highlight the growing adoption of automation practices and the significant market potential. By grasping the constraints of full automation and attaining a harmony between automation and engineering, organizations can improve software delivery, reliability, and scalability. The NoOps journey is an ongoing process of improvement and optimisation, enabling organisations to deliver software faster, more reliably, and at scale.

The Journey from Traditional Ops to NoOps Read More »

Cloud-Native, , ,

Top Cloud Plays in 2023: Unlocking Innovation and Agility

Top Cloud Plays in 2023: Unlocking Innovation and Agility Cloud Computing has been around since the early 2000’s, while the technology landscape continues to evolve rapidly and adoption increased (20% CAGR), offering unprecedented opportunities for innovation and digital transformation. The meaning of digital transformation is also changing with cloud decision makers viewing Digital transformation as more than a “lift and shift”, instead they see vast opportunity within the Cloud ecosystems to help reinforce their long-term success. As businesses increasingly embrace cloud, certain cloud plays have emerged as key drivers of success, underpinned by companies including Microsoft, AWS, Google Cloud and VMWare who have all developed very strong technology ecosystems that have transitioned from a manual and costly Data Centre model. In this blog, we will explore the top cloud plays, from our perspective, that organisations should consider unlocking to reach their full potential in 2023. Multi-Cloud and Hybrid Cloud Strategies Multi-Cloud and Hybrid Cloud Strategies: Multi-cloud and hybrid cloud strategies have gained significant traction in 2023. Organisations are leveraging multiple cloud providers and combining public and private cloud environments to achieve greater flexibility, scalability, and resilience through their investment. Multi-cloud and hybrid cloud approaches allow businesses to choose the best services from different providers while maintaining control over critical data and applications. This strategy helps mitigate vendor lock-in leveraging Kubernetes Container orchestration, including AKS, EKS & GKE and VMWare Tanzu, optimise costs, and tailor cloud deployments to specific business requirements and use cases. Cloud-Native Application Development Cloud-Native Application Development: Cloud-native application development is a transformative cloud play that enables organisations to build and deploy applications, through optimised DevSecOps practices, specifically designed for advanced cloud environments. This model leverages containerization, CICD, microservices architecture, and orchestration platforms again emphasising Kubernetes, a strong Cloud Native foundational play. Cloud-native applications are designed to be highly scalable, resilient, and agile, allowing organisations to rapidly adapt to changing business needs. By embracing cloud-native development, businesses can accelerate time-to-market, improve scalability, and enhance developer productivity embedding strong Developer Experience (DevEx) practices. Serverless Computing Serverless computing: is a game-changer for businesses seeking to build applications without worrying about server management. With serverless computing, developers can focus solely on writing code while the cloud provider handles infrastructure provisioning and scaling. An example of this is Microsoft Azure Serverless Platform or AWS Lambda. This cloud play offers automatic scaling, cost optimisation, and event-driven architectures, allowing businesses to build highly scalable and cost-effective applications. Serverless computing simplifies development efforts, reduces operational overhead, and enables companies to quickly respond to changing application workloads. Cloud Security and Compliance Cloud security and compliance: are critical cloud plays that organisations cannot afford to overlook in 2023 particularly with recent data breaches at Optus and Medicare. Leveraging security as a foundational element of your cloud native journey is crucial for ensuring the protection, integrity, and compliance of your applications and data. Cloud providers offer robust security frameworks, encryption services, identity and access management solutions, and compliance certifications. By leveraging these cloud security products and practices, businesses can enhance their data protection, safeguard customer information, and ensure regulatory compliance. Strong security and compliance measures build trust, mitigate risks, and protect organisations from potential data breaches. Data Analytics and Machine Learning:  Data analytics and machine learning (ML) are powerful cloud plays that drive data-driven decision-making and unlock actionable insights. Cloud providers offer advanced analytics and ML services that enable businesses to leverage their data effectively. By harnessing cloud-based data analytics and ML capabilities, businesses can gain valuable insights, predict trends, automate processes, and enhance customer experiences. These cloud plays empower organisations to extract value from their data, optimize operations, and drive innovation while providing an enhanced customer experience. As the evolution of Cloud Native, Multi-Cloud and Hybrid Cloud Strategies accelerate, strategically adopting the above drivers help enable innovation, agility, and business growth. Importantly Multi-cloud and hybrid cloud strategies provide enhanced security, flexibility, while cloud-native application development empowers rapid application deployment and better developer experience (DevEx), leveraging DevSecOps and Automation practices. These are critical initiatives to consider, if you are looking to advance your technology ecosystem and migrate and/or port workloads for optimum flexibility and Return on Investment (ROI). It is evident the traditional “lift and shift strategy” does not provide this level of value to the consumer. Instead, the above “on-demand cloud plays” may not be realised, with inefficient cloud resource management and unexpected expenses, leading to increased OPEX and TCO. By embracing these top cloud plays, it enables businesses investing in innovation to develop and deploy applications that can scale seamlessly on Cloud, adapting to changing customer demands, reduce TCO/ OPEX, accelerate time-to-market, maintain high availability and security, while future proofing themselves in this competitive digital landscape. For more information about Cloud, Cloud-Native, Data Analytics and more, visit our services page.

Top Cloud Plays in 2023: Unlocking Innovation and Agility Read More »

Cloud-Native, Data & AI, DevSecOps, , , , , , , ,

The State of Observability 2023

The State of Observability 2023: Unlocking the Power of Observability The State of Observability 2023 study, recently released by Splunk, provides insights into the crucial role observability plays in minimising costs related to unforeseen disruptions in digital systems. In the fast-paced and intricate digital landscapes of today, observability has emerged as a beacon of light, illuminating the path towards efficient monitoring and oversight. Gone are the days of relying solely on traditional monitoring methods; observability offers a holistic perspective of complex systems by gathering and analysing data from diverse sources across the entire technology stack. With its comprehensive approach, observability has become an indispensable tool for comprehending the inner workings of digital ecosystems.  While DevOps and cloud-native architectures have become cornerstones of digital transformation, they also introduce a host of intricate observability challenges. The hurdles faced by organisations when implementing observability and security in Kubernetes were brought into focus in this year’s State of Observability survey conducted by Splunk. Respondents acknowledged the difficulties of effectively monitoring Kubernetes itself, which serves as a significant obstacle to achieving complete observability in their environments.  Now, let us explore some of the main findings uncovered in this report.  Main discoveries from this survey Observability leaders outshine beginners: Those who have embraced observability as a core practice outperform their counterparts in various aspects. These leaders experience a staggering 7.9 times higher return on investment (ROI) with observability tools, showing 3.9 times more confidence in meeting requirements, and resolving downtime or service issues four times faster.  The expanding observability ecosystem: The study reveals that the observability landscape has witnessed a recent surge in the adoption of observability tools and capabilities. An impressive 81% of respondents reported using an increasing number of observability tools, with 32% noting a significant rise. However, managing multiple vendors and tools presents a challenge when it comes to achieving a unified view for IT professionals.  Changing expectations around cloud-native apps: While the percentage of respondents expecting a larger portion of internally developed apps to be cloud-native has declined (from 67% to 58%), there has been an increase in those anticipating the same proportion (from 32% to 40%). A small percentage (2%) expects a decrease. This shift highlights the evolving landscape of application development and the growing importance of cloud-native technologies.  The convergence of observability and security monitoring: Organisations are recognising the benefits of merging observability and security monitoring disciplines. By combining these practices, enhanced visibility and faster incident resolution can be achieved, ensuring the overall robustness of digital systems.  Harnessing the power of AI and ML: AI and ML have become integral components of observability practices, with 66% of respondents already incorporating them into their workflows. An additional 26% are in the process of implementing these advanced technologies, leveraging their capabilities to gain deeper insights and drive proactive monitoring.  Centralised teams and talent challenges: Organisations are increasingly consolidating their observability experts into centralised teams equipped with standardised tools (58%), rather than embedding them within application development teams (42%). However, recruiting observability talent remains a significant challenge, with difficulties in hiring ITOps team members (85%), SRE (86%), and DevOps engineers (86%) being highlighted.  Conclusion In conclusion, observability has become an indispensable force in today’s hypercomplex digital environments. By providing complete visibility and context across the full stack, observability empowers organisations to ensure digital health, reliability, resilience, and high performance. Building a centralised observability capability enables proactive monitoring, issue detection and diagnosis, performance optimisation, and enhanced customer experiences. This goes beyond simply adopting tools into a more strategic approach that involves rolling out standardised practices across the full stack in which both platform teams and application teams participate to build and consume. As digital ecosystems continue to evolve, harnessing the power of observability will be key to unlocking the full potential of modern technologies and achieving digital transformation goals.

The State of Observability 2023 Read More »

Cloud-Native, DevSecOps, , , ,

Kubernetes container design patterns

Kubernetes container design patterns Kubernetes is a robust container orchestration tool, but deploying and managing containerised applications can be complex. Fortunately, Kubernetes container design patterns can help simplify the process by segregating concerns, enhancing scalability and resilience, and streamlining management. In this blog post, we will delve into five popular Kubernetes container design patterns, showcasing real-world examples of how they can be employed to create powerful and effective containerised applications. Additionally, we’ll provide valuable insights and tool recommendations to help you implement these patterns with ease. Sidecar Pattern: The first design pattern we’ll discuss is the sidecar pattern. The sidecar pattern involves deploying a secondary container alongside the primary application container to provide additional functionality. For example, you can deploy a logging sidecar container to collect and store logs generated by the application container. This improves the scalability and resiliency of your application and simplifies its management. Similarly, you can deploy a monitoring sidecar container to collect metrics and monitor the health of the application container. The sidecar pattern is a popular design pattern for Kubernetes, with many open-source tools available to simplify implementation. For example, Istio is a popular service mesh that provides sidecar proxies to handle traffic routing, load balancing, and other networking concerns. Ambassador Pattern: The ambassador pattern is another popular Kubernetes container design pattern. This pattern involves using a proxy container to decouple the application container from its external dependencies. For example, you can use an API gateway as an ambassador container to handle authentication, rate limiting, and other API-related concerns. This simplifies the management of your application and improves its scalability and reliability. Similarly, you can use a caching sidecar container to cache responses from external APIs and reduce latency and improve performance. This ensures that the application is properly configured and ready to run when the primary container runs. The ambassador pattern is commonly used for API management in Kubernetes. Tools like Nginx,Kong and Traefik provide API gateways that can be deployed as ambassador containers to handle authentication, rate limiting, and other API-related concerns. Adapter Pattern: The adapter pattern is another powerful Kubernetes container design pattern. This pattern involves using a container to modify an existing application to make it compatible with Kubernetes. For example, you can use an adapter container to add health checks, liveness probes, or readiness checks to an application that was not originally designed to run in a containerised environment. This can help ensure the availability and reliability of your application when running in Kubernetes. Similarly, you can use an adapter container to modify an application to work with Kubernetes secrets, environment variables, or other Kubernetes-specific features. The adapter pattern is often used to migrate legacy applications to Kubernetes. Tools like Kubernetes inlets and kompose provide an easy way to convert Docker Compose files to Kubernetes YAML and make the migration process smoother Sidecar injector Pattern: The sidecar injector pattern is another useful Kubernetes container design pattern. This pattern involves dynamically injecting a sidecar container into a primary application container at runtime. For example, you can inject a container that performs security checks and monitoring functions into an existing application container. This can help improve the security and reliability of your application without having to modify the application container’s code or configuration. Similarly, you can inject a sidecar container that provides additional functionality such as authentication, rate limiting, or caching. The Sidecar Injector pattern is a dynamic method of injecting sidecar containers into Kubernetes applications during runtime. By utilizing the Kubernetes admission controller webhook, the injection process can be automated to guarantee that the sidecar container is always present when the primary container initiates. An excellent instance of the Sidecar Injector pattern is the HashiCorp Vault Injector, which enables the injection of secrets into pods. Init container pattern: Finally, the init container pattern is a valuable Kubernetes container design pattern. This pattern involves using a separate container to perform initialization tasks before the primary application container starts. For example, you can use an init container to perform database migrations, configuration file generation, or application setup. This ensures that the application is properly configured and ready to run when the primary container. In conclusion, Kubernetes container design patterns are essential for building robust and efficient containerised applications. By using these patterns, you can simplify the deployment, management, and scaling of your applications. The patterns we discussed in this blog are just a few examples of the many design patterns available for Kubernetes, and they can help you build powerful and reliable containerised applications that meet the demands of modern cloud computing. Whether you’re a seasoned Kubernetes user or just starting out, these container design patterns are sure to help you streamline your containerised applications and take your development to the next level.

Kubernetes container design patterns Read More »

Cloud-Native, DevSecOps, , , , ,

Maximising Kubernetes ROI

Maximising ROI and Minimising OPEX with Kubernetes At TL Consulting, we offer specialised services in managing Kubernetes instances, including AKS, EKS, and GKE, as well as bare metal setups and VMWare Tanzu on private cloud. Our Kubernetes consulting services are tailored to help businesses optimise their IT costs and improve their ROI, enabling them to leverage the full potential of Kubernetes. We streamline operations, optimise resource utilisation, and reduce infrastructure expenses, ensuring that our clients get the most out of their Kubernetes deployments. Thus ensuring that your teams are maximising Kubernetes ROI while minimising IT costs. With our expertise, we can work with organisations to assess their current infrastructure and identify areas where Kubernetes can be implemented to achieve better ROI. Our services cover advisory, design and architecture, engineering, and operations. We guide organisations on containerisation, scalability, and automation best practices to optimise their use of Kubernetes. We provide customised Kubernetes solutions and ensure seamless implementation, management, and maintenance. With our help, businesses can streamline operations, enhance resource utilisation, and reduce infrastructure costs. We do not just provide one-off Kubernetes solutions. We’re committed to ongoing management and support, staying up to date with the latest innovations and best practices in Kubernetes. By collaborating with us, organisations can stay ahead of the curve and continue to optimise their IT costs and improve their ROI over time. Our partnership ensures that businesses can adapt and thrive in an ever-changing technological landscape, confidently leveraging Kubernetes’ full potential. Additionally, we offer a cloud-agnostic approach to Kubernetes, enabling businesses to choose the cloud platform that best fits their requirements. Our team provides guidance on cloud platform selection, deployment, and optimisation to ensure that clients can maximise their investments in the cloud. We specialise in multi-cloud approaches, making it seamless for organisations to manage Kubernetes across various cloud providers.

Maximising Kubernetes ROI Read More »

Cloud-Native, DevSecOps, ,

What can we expect for Kubernetes in 2023?

What can we expect for Kubernetes in 2023? As Kubernetes approaches the eighth anniversary of its first version launch, we look into the areas of significant change. So what does the Kubernetes ecosystem look like and What can we expect for Kubernetes in 2023? In short, is huge and continues to grow. As more businesses, teams, and people use it as a platform for innovation, more new applications will be created and old ones will be scaled more quickly than ever before, fuelling its continual development. The State of Kubernetes 2022 study from VMware Tanzu and the most recent Annual Cloud Native Computing Foundation (CNCF) Survey both indicate that Kubernetes is widely adopted and continues to grow in popularity as a platform for container orchestration. These studies suggest that Kubernetes has become a de facto standard in the industry and its adoption will likely continue to increase in the coming years. Anticipated Shift towards Kubernetes on multi cloud As we move forward into 2023, it’s becoming increasingly common for businesses to utilize multiple cloud providers for their Kubernetes deployments. This trend, known as multi-cloud/hybrid deployments, often involves the use of container orchestration and federated development and deployment strategies. While there are already tools available for deploying and managing containers across a variety of cloud providers and on-premises platforms, we can expect to see even more advancements in this area. Specifically, there will likely be an increase in technology that makes it easier to create and deploy multi-cloud systems using native cloud services that work seamlessly across different providers. Multi-cloud adoption allows businesses to take advantage of the strengths of different cloud providers, such as leveraging the best database solutions from one provider and the best serverless offerings from another. This approach can also increase flexibility, reduce vendor lock-in, and provide redundancy and disaster recovery options. Additionally, it can allow for cost optimization by taking advantage of different pricing models and promotions offered by different providers. Continual Evolution of DevOps and Platform Teams: To survive in this digital age, businesses need to have a diverse set of skills and knowledge areas within their workforce. Close collaboration between different departments and disciplines is essential for leveraging new technologies like Kubernetes and other cloud platforms. However, these technologies can be difficult to learn and maintain, and teams may struggle to gain in-depth understanding of them. Businesses should focus on automation and acceleration, but also invest in training and development programs to help their teams acquire the necessary skills to effectively use these technologies. Companies of all sizes should think about where they want to develop their Kubernetes knowledge base. Many businesses choose a platform team to develop and implement this knowledge. Multiple DevOps teams can be supported by a single platform team. This separation allows DevOps teams to continue concentrating on creating and running business applications while the platform team looks after a solid and dependable underpinning platform. Improved Stateful Application Management: Containers were originally intended to be a means of operating stateless applications. However, the value of running stateful workloads in containers has been recognised by the community over the last few years, and the newer versions of Kubernetes have added the required functionalities. Now there are better ways to deploy stateful applications, but the outcome is far from ideal and inconsistent. By including a controller in the cluster, K8s operators can resolve this difficulty. Reconciliation loops are controller loops that monitor differences between the current and intended states and adjust return the current state to the desired state. Maturity in Policy-as-Code for Kubernetes The goal has been to give teams more autonomy when delivering applications to Kubernetes for several years. In many businesses today, creating pipelines that can quickly send out apps is standard procedure. Although having autonomy is a great advantage, maintaining some manual control still requires finding the proper balance. The transition to everything as a code has opened a plethora of opportunities. Following accepted engineering principles will make it simple to validate and review policies defined as-code. As a result, the importance of policy frameworks will increase. Within the CNCF, Open Policy Agent (OPA) is the most common policy framework. Practices like this will advance concurrently with the adoption of Kubernetes and autonomous teams to enable continual growth while preserving or even gaining more control. Adoption enables you to control how Kubernetes is used by a wide range of teams. Enhanced Observability and Troubleshooting capabilities: Troubleshooting applications running on a Kubernetes cluster at scale can be challenging due to the complexity of Kubernetes and the relationships between different elements. Providing teams with effective troubleshooting solutions can give an organization a competitive advantage. The Four elements (Events, Logs, Traces, Metrics) are important in understanding the performance and behaviour of a system. They provide different perspectives and details on system activity, and when combined, give a more complete picture of the issue. Solutions that integrate these four elements can aid in faster troubleshooting and problem resolution and can also help in identifying and preventing future issues. Vendors and open-source frameworks will continue to drive this trend. Focus on supply chain security: Software supply chain security has been in laser sights for a while now, as most software rooted from other software. The necessity of ensuring Kubernetes’ strength has increased along with its importance as it becomes more widely adopted, it is important to ensure its security as it is a critical component of the software supply chain. This includes securing the infrastructure on which it runs, as well as securing the containerized applications that are deployed on it. The “4C’s of cloud native security” model is a good place to start thinking about the security of the different layers of a cloud native application: Cloud, Clusters, Containers, and Code. Each layer of the Cloud Native security model builds upon the next outermost layer, and they are equally important when considering security practices and tools. This can be done through a variety of methods, such as using secure configurations, implementing network

What can we expect for Kubernetes in 2023? Read More »

Cloud-Native, DevSecOps, , , ,

Progressive Delivery with Kubernetes:

Progressive Delivery (the GitOps way) with Kubernetes: One of the biggest challenges organisations faces, especially when running microservices, is managing application deployments. Having a proper deployment strategy is necessary. For instance, in a production environment, it is always a change management process requirement to ensure that the downtime impact on the end-user is minimised and maintenance windows need to be planned to cater for any changes that will cause an outage. It is also mandated that in case of any issues when deploying the change, a rollback plan must be ready for execution to recover from any failures. These challenges amplify with the increase of the number of microservices and makes it more difficult to assess the result of the deployment and execute the rollback if required. Enter progressive delivery. Thankfully, cloud native architectures using Kubernetes running microservices addresses this problem by offering increased flexibility, allowing teams to publish more useful updates more frequently and progressively. The use of release techniques like Canary, Blue-Green, and Feature flagging as part of progressive delivery enables teams to maximise an enterprise’s software delivery. It is predicated on the notion that consumers desire to test features prior to completion to enhance the user experience. In Kubernetes, there are different ways to release an application. It is necessary to choose the right strategy to make the infrastructure reliable and more resilient during an application deployment or update. The out of the box Kubernetes Deployment Object supports the Rolling Update strategy which comes as a standard and provides a basic set of safety guarantees (aka. readiness probes) during an update. When deploying into a development/staging environment, standard Kubernetes deployment strategies such as a recreate or rolling deployment might be a good option. However, the rolling update strategy faces may limitations such as controlling the speed and flow of the rollout. in large scale high-volume production environments, a rolling update is often considered too risky of an update procedure since it provides no control over the blast radius, may rollout too aggressively, and provides no automated rollback upon failures. In production environments, more advanced deployment strategies are much needed to satisfy the business requirements. These advanced strategies are called “Progressive Deployments”. An example of these deployment strategies is the Blue/Green deployment which allows for a quick transition between the old version and the new version by deploying them side by side and then switching to the new version when testing has been successful. This testing of the platform needs to be thorough to avoid having to rollback frequently. If unsure of the platform’s stability or the potential effects of releasing a new software version, a canary deployment offers a smaller scale next version of the release running side by side the current version in production. By doing so, the new release is rolled-out to a small subset of users to test the application and provide their feedback. Once the change is accepted, it is rolled out to the rest of the users. Benefits of Progressive Delivery: Progressive delivery lowers the risk of releasing new features, as well as identifying and resolving possible issues with those additions. It also offers early feedback on any version of your application. Before a feature is fully deployed, the developer can test out various changes on the product to see how the application behaves. The idea is that the developer can alter the release strategy if the modifications are unfavourable to prevent end users from experiencing any glitches. Secondly, improved release frequency results from sequential delivery. While the primary goal of progressive delivery is to provide end users with safer, more dependable releases, you as the DevOps team will benefit from being able to deploy new versions in smaller parts and hence release more frequently. You can work on each feature separately and release it in tiny sprints. The time to market is shortened, and any DevOps team can now deploy better software more quickly. Finally, and this is something that is frequently ignored, progressive delivery leads to improved segregation of duties between the development and operations teams. This segregation of duties works better with progressive delivery since developers concentrate on creating new features while operations concentrate on rolling out the new features gradually in a strategy that suits the operational needs of the platform. Progressive delivery is best achieved with GitOps: This demand for progressive delivery in a cloud native manner can be achieved with GitOps. The objective behind GitOps is to define and declare everything in Git including operational tasks. Git is already used by developers to generate and collaborate on code. GitOps simply expands this concept to include the creation and setup of infrastructure as well. Git becomes the control plane for operations and deployments because everything is declared as code in Git. GitOps is being enabled by open-source tooling such as ArgoCD, Flux and Flagger, which automatically checks Git repositories for any new changes, and if it detects a change, it automatically deploys it to production. With progressive delivery, these automated deployments need to be done in phases and to multiple target Kubernetes clusters. These tools offer full control of the software delivery pipeline, rollback strategies, test executions, feature releases, and scaling of infrastructure resources. In conclusion, there are various methods for deploying an application to cater for applications with varying complexities, teams with different demands, and environments with different operational requirements and compliance levels. Selecting the right strategy or strategies and having full control over these strategies in code when combined by the right tools is an extremely powerful feature of cloud native platforms that greatly simplifies change management, release management, and operations of the applications. It completely disrupts the way operations teams traditionally thought of these processes as rigid and extremely sensitive with a dramatic business impact in case anything went wrong, into simplified processes and tasks that can be executed every day in the background without having an impact on the end-user.

Progressive Delivery with Kubernetes: Read More »

Cloud-Native, DevSecOps, , , ,